From be98eba208ec1f15aa58c55f5384c59a0f1891d7 Mon Sep 17 00:00:00 2001 From: awstools Date: Wed, 18 Dec 2024 19:12:49 +0000 Subject: [PATCH] feat(client-amplify): Added WAF Configuration to Amplify Apps --- .../src/commands/CreateAppCommand.ts | 6 + .../src/commands/DeleteAppCommand.ts | 6 + .../src/commands/DeleteJobCommand.ts | 2 +- .../src/commands/GetAppCommand.ts | 6 + .../src/commands/GetJobCommand.ts | 4 +- .../src/commands/ListAppsCommand.ts | 6 + .../src/commands/ListJobsCommand.ts | 2 +- .../src/commands/StartDeploymentCommand.ts | 2 +- .../src/commands/StartJobCommand.ts | 2 +- .../src/commands/StopJobCommand.ts | 2 +- .../src/commands/UpdateAppCommand.ts | 6 + clients/client-amplify/src/models/models_0.ts | 73 ++++++++++-- .../src/protocols/Aws_restJson1.ts | 4 + codegen/sdk-codegen/aws-models/amplify.json | 106 ++++++++++++++++-- 14 files changed, 206 insertions(+), 21 deletions(-) diff --git a/clients/client-amplify/src/commands/CreateAppCommand.ts b/clients/client-amplify/src/commands/CreateAppCommand.ts index 5818d7f32d21d..68fca6fa4291e 100644 --- a/clients/client-amplify/src/commands/CreateAppCommand.ts +++ b/clients/client-amplify/src/commands/CreateAppCommand.ts @@ -152,6 +152,12 @@ export interface CreateAppCommandOutput extends CreateAppResult, __MetadataBeare * // cacheConfig: { // CacheConfig * // type: "AMPLIFY_MANAGED" || "AMPLIFY_MANAGED_NO_COOKIES", // required * // }, + * // webhookCreateTime: new Date("TIMESTAMP"), + * // wafConfiguration: { // WafConfiguration + * // webAclArn: "STRING_VALUE", + * // wafStatus: "ASSOCIATING" || "ASSOCIATION_FAILED" || "ASSOCIATION_SUCCESS" || "DISASSOCIATING" || "DISASSOCIATION_FAILED", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // }; * diff --git a/clients/client-amplify/src/commands/DeleteAppCommand.ts b/clients/client-amplify/src/commands/DeleteAppCommand.ts index f1f9c29ae32e1..55c5f9c1c4498 100644 --- a/clients/client-amplify/src/commands/DeleteAppCommand.ts +++ b/clients/client-amplify/src/commands/DeleteAppCommand.ts @@ -100,6 +100,12 @@ export interface DeleteAppCommandOutput extends DeleteAppResult, __MetadataBeare * // cacheConfig: { // CacheConfig * // type: "AMPLIFY_MANAGED" || "AMPLIFY_MANAGED_NO_COOKIES", // required * // }, + * // webhookCreateTime: new Date("TIMESTAMP"), + * // wafConfiguration: { // WafConfiguration + * // webAclArn: "STRING_VALUE", + * // wafStatus: "ASSOCIATING" || "ASSOCIATION_FAILED" || "ASSOCIATION_SUCCESS" || "DISASSOCIATING" || "DISASSOCIATION_FAILED", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // }; * diff --git a/clients/client-amplify/src/commands/DeleteJobCommand.ts b/clients/client-amplify/src/commands/DeleteJobCommand.ts index 621311a554e48..c8f0c74ca9981 100644 --- a/clients/client-amplify/src/commands/DeleteJobCommand.ts +++ b/clients/client-amplify/src/commands/DeleteJobCommand.ts @@ -50,7 +50,7 @@ export interface DeleteJobCommandOutput extends DeleteJobResult, __MetadataBeare * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/GetAppCommand.ts b/clients/client-amplify/src/commands/GetAppCommand.ts index 012d4e99fffea..49bbc214e7468 100644 --- a/clients/client-amplify/src/commands/GetAppCommand.ts +++ b/clients/client-amplify/src/commands/GetAppCommand.ts @@ -100,6 +100,12 @@ export interface GetAppCommandOutput extends GetAppResult, __MetadataBearer {} * // cacheConfig: { // CacheConfig * // type: "AMPLIFY_MANAGED" || "AMPLIFY_MANAGED_NO_COOKIES", // required * // }, + * // webhookCreateTime: new Date("TIMESTAMP"), + * // wafConfiguration: { // WafConfiguration + * // webAclArn: "STRING_VALUE", + * // wafStatus: "ASSOCIATING" || "ASSOCIATION_FAILED" || "ASSOCIATION_SUCCESS" || "DISASSOCIATING" || "DISASSOCIATION_FAILED", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // }; * diff --git a/clients/client-amplify/src/commands/GetJobCommand.ts b/clients/client-amplify/src/commands/GetJobCommand.ts index 5d63c32e10d6d..90b6fbbcfb18b 100644 --- a/clients/client-amplify/src/commands/GetJobCommand.ts +++ b/clients/client-amplify/src/commands/GetJobCommand.ts @@ -51,7 +51,7 @@ export interface GetJobCommandOutput extends GetJobResult, __MetadataBearer {} * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", @@ -61,7 +61,7 @@ export interface GetJobCommandOutput extends GetJobResult, __MetadataBearer {} * // { // Step * // stepName: "STRING_VALUE", // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), // required * // logUrl: "STRING_VALUE", * // artifactsUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/ListAppsCommand.ts b/clients/client-amplify/src/commands/ListAppsCommand.ts index 1365189f67c7f..f9289fbb8eb43 100644 --- a/clients/client-amplify/src/commands/ListAppsCommand.ts +++ b/clients/client-amplify/src/commands/ListAppsCommand.ts @@ -102,6 +102,12 @@ export interface ListAppsCommandOutput extends ListAppsResult, __MetadataBearer * // cacheConfig: { // CacheConfig * // type: "AMPLIFY_MANAGED" || "AMPLIFY_MANAGED_NO_COOKIES", // required * // }, + * // webhookCreateTime: new Date("TIMESTAMP"), + * // wafConfiguration: { // WafConfiguration + * // webAclArn: "STRING_VALUE", + * // wafStatus: "ASSOCIATING" || "ASSOCIATION_FAILED" || "ASSOCIATION_SUCCESS" || "DISASSOCIATING" || "DISASSOCIATION_FAILED", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // ], * // nextToken: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/ListJobsCommand.ts b/clients/client-amplify/src/commands/ListJobsCommand.ts index bab94adb53e34..5bd1848560ea0 100644 --- a/clients/client-amplify/src/commands/ListJobsCommand.ts +++ b/clients/client-amplify/src/commands/ListJobsCommand.ts @@ -52,7 +52,7 @@ export interface ListJobsCommandOutput extends ListJobsResult, __MetadataBearer * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/StartDeploymentCommand.ts b/clients/client-amplify/src/commands/StartDeploymentCommand.ts index 6e0fb674105fd..871d0fc4dcb23 100644 --- a/clients/client-amplify/src/commands/StartDeploymentCommand.ts +++ b/clients/client-amplify/src/commands/StartDeploymentCommand.ts @@ -57,7 +57,7 @@ export interface StartDeploymentCommandOutput extends StartDeploymentResult, __M * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/StartJobCommand.ts b/clients/client-amplify/src/commands/StartJobCommand.ts index a8c649591849a..609c55a29f965 100644 --- a/clients/client-amplify/src/commands/StartJobCommand.ts +++ b/clients/client-amplify/src/commands/StartJobCommand.ts @@ -55,7 +55,7 @@ export interface StartJobCommandOutput extends StartJobResult, __MetadataBearer * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/StopJobCommand.ts b/clients/client-amplify/src/commands/StopJobCommand.ts index 81c270b5ba770..f4a3aacd7d686 100644 --- a/clients/client-amplify/src/commands/StopJobCommand.ts +++ b/clients/client-amplify/src/commands/StopJobCommand.ts @@ -50,7 +50,7 @@ export interface StopJobCommandOutput extends StopJobResult, __MetadataBearer {} * // commitMessage: "STRING_VALUE", // required * // commitTime: new Date("TIMESTAMP"), // required * // startTime: new Date("TIMESTAMP"), // required - * // status: "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required + * // status: "CREATED" || "PENDING" || "PROVISIONING" || "RUNNING" || "FAILED" || "SUCCEED" || "CANCELLING" || "CANCELLED", // required * // endTime: new Date("TIMESTAMP"), * // jobType: "RELEASE" || "RETRY" || "MANUAL" || "WEB_HOOK", // required * // sourceUrl: "STRING_VALUE", diff --git a/clients/client-amplify/src/commands/UpdateAppCommand.ts b/clients/client-amplify/src/commands/UpdateAppCommand.ts index 3f6671bbc5311..49317ab521c4a 100644 --- a/clients/client-amplify/src/commands/UpdateAppCommand.ts +++ b/clients/client-amplify/src/commands/UpdateAppCommand.ts @@ -150,6 +150,12 @@ export interface UpdateAppCommandOutput extends UpdateAppResult, __MetadataBeare * // cacheConfig: { // CacheConfig * // type: "AMPLIFY_MANAGED" || "AMPLIFY_MANAGED_NO_COOKIES", // required * // }, + * // webhookCreateTime: new Date("TIMESTAMP"), + * // wafConfiguration: { // WafConfiguration + * // webAclArn: "STRING_VALUE", + * // wafStatus: "ASSOCIATING" || "ASSOCIATION_FAILED" || "ASSOCIATION_SUCCESS" || "DISASSOCIATING" || "DISASSOCIATION_FAILED", + * // statusReason: "STRING_VALUE", + * // }, * // }, * // }; * diff --git a/clients/client-amplify/src/models/models_0.ts b/clients/client-amplify/src/models/models_0.ts index f306aee2c3b8d..6cda5c28ee23a 100644 --- a/clients/client-amplify/src/models/models_0.ts +++ b/clients/client-amplify/src/models/models_0.ts @@ -421,6 +421,51 @@ export const RepositoryCloneMethod = { */ export type RepositoryCloneMethod = (typeof RepositoryCloneMethod)[keyof typeof RepositoryCloneMethod]; +/** + * @public + * @enum + */ +export const WafStatus = { + ASSOCIATING: "ASSOCIATING", + ASSOCIATION_FAILED: "ASSOCIATION_FAILED", + ASSOCIATION_SUCCESS: "ASSOCIATION_SUCCESS", + DISASSOCIATING: "DISASSOCIATING", + DISASSOCIATION_FAILED: "DISASSOCIATION_FAILED", +} as const; + +/** + * @public + */ +export type WafStatus = (typeof WafStatus)[keyof typeof WafStatus]; + +/** + *

Describes the Firewall configuration for a hosted Amplify application. + * Firewall support enables you to protect your web applications with a direct integration + * with WAF. For more information about using WAF protections for an Amplify application, see + * Firewall support for hosted sites in the Amplify + * User Guide.

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

The Amazon Resource Name (ARN) for the web ACL associated with an Amplify app.

+ * @public + */ + webAclArn?: string | undefined; + + /** + *

The status of the process to associate or disassociate a web ACL to an Amplify app.

+ * @public + */ + wafStatus?: WafStatus | undefined; + + /** + *

The reason for the current status of the Firewall configuration.

+ * @public + */ + statusReason?: string | undefined; +} + /** *

Represents the different branches of a repository for building, deploying, and hosting * an Amplify app.

@@ -475,13 +520,13 @@ export interface App { platform: Platform | undefined; /** - *

Creates a date and time for the Amplify app.

+ *

A timestamp of when Amplify created the application.

* @public */ createTime: Date | undefined; /** - *

Updates the date and time for the Amplify app.

+ *

A timestamp of when Amplify updated the application.

* @public */ updateTime: Date | undefined; @@ -598,6 +643,19 @@ export interface App { * @public */ cacheConfig?: CacheConfig | undefined; + + /** + *

A timestamp of when Amplify created the webhook in your Git repository.

+ * @public + */ + webhookCreateTime?: Date | undefined; + + /** + *

Describes the Firewall configuration for the Amplify app. Firewall support enables you to protect your hosted applications with a direct integration + * with WAF.

+ * @public + */ + wafConfiguration?: WafConfiguration | undefined; } /** @@ -999,13 +1057,13 @@ export interface Branch { enableNotification: boolean | undefined; /** - *

The creation date and time for a branch that is part of an Amplify app.

+ *

A timestamp of when Amplify created the branch.

* @public */ createTime: Date | undefined; /** - *

The last updated date and time for a branch that is part of an Amplify app.

+ *

A timestamp for the last updated time for a branch.

* @public */ updateTime: Date | undefined; @@ -1615,13 +1673,13 @@ export interface Webhook { description: string | undefined; /** - *

The create date and time for a webhook.

+ *

A timestamp of when Amplify created the webhook in your Git repository.

* @public */ createTime: Date | undefined; /** - *

Updates the date and time for a webhook.

+ *

A timestamp of when Amplify updated the webhook in your Git repository.

* @public */ updateTime: Date | undefined; @@ -1814,6 +1872,7 @@ export type SourceUrlType = (typeof SourceUrlType)[keyof typeof SourceUrlType]; export const JobStatus = { CANCELLED: "CANCELLED", CANCELLING: "CANCELLING", + CREATED: "CREATED", FAILED: "FAILED", PENDING: "PENDING", PROVISIONING: "PROVISIONING", @@ -1856,7 +1915,7 @@ export interface JobSummary { commitMessage: string | undefined; /** - *

The commit date and time for the job.

+ *

The commit date and time for the job.

* @public */ commitTime: Date | undefined; diff --git a/clients/client-amplify/src/protocols/Aws_restJson1.ts b/clients/client-amplify/src/protocols/Aws_restJson1.ts index 78b7d14d0af31..e203c1ebd98a6 100644 --- a/clients/client-amplify/src/protocols/Aws_restJson1.ts +++ b/clients/client-amplify/src/protocols/Aws_restJson1.ts @@ -1953,6 +1953,8 @@ const de_App = (output: any, context: __SerdeContext): App => { repositoryCloneMethod: __expectString, tags: _json, updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + wafConfiguration: _json, + webhookCreateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), }) as any; }; @@ -2168,6 +2170,8 @@ const de_Steps = (output: any, context: __SerdeContext): Step[] => { // de_TagMap omitted. +// de_WafConfiguration omitted. + /** * deserializeAws_restJson1Webhook */ diff --git a/codegen/sdk-codegen/aws-models/amplify.json b/codegen/sdk-codegen/aws-models/amplify.json index dd89d76dac5f4..51511a7f38c75 100644 --- a/codegen/sdk-codegen/aws-models/amplify.json +++ b/codegen/sdk-codegen/aws-models/amplify.json @@ -1100,14 +1100,14 @@ "createTime": { "target": "com.amazonaws.amplify#CreateTime", "traits": { - "smithy.api#documentation": "

Creates a date and time for the Amplify app.

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

A timestamp of when Amplify created the application.

", "smithy.api#required": {} } }, "updateTime": { "target": "com.amazonaws.amplify#UpdateTime", "traits": { - "smithy.api#documentation": "

Updates the date and time for the Amplify app.

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

A timestamp of when Amplify updated the application.

", "smithy.api#required": {} } }, @@ -1210,6 +1210,18 @@ "traits": { "smithy.api#documentation": "

The cache configuration for the Amplify app. If you don't specify the\n cache configuration type, Amplify uses the default\n AMPLIFY_MANAGED setting.

" } + }, + "webhookCreateTime": { + "target": "com.amazonaws.amplify#webhookCreateTime", + "traits": { + "smithy.api#documentation": "

A timestamp of when Amplify created the webhook in your Git repository.

" + } + }, + "wafConfiguration": { + "target": "com.amazonaws.amplify#WafConfiguration", + "traits": { + "smithy.api#documentation": "

Describes the Firewall configuration for the Amplify app. Firewall support enables you to protect your hosted applications with a direct integration\n with WAF.

" + } } }, "traits": { @@ -1587,14 +1599,14 @@ "createTime": { "target": "com.amazonaws.amplify#CreateTime", "traits": { - "smithy.api#documentation": "

The creation date and time for a branch that is part of an Amplify app.

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

A timestamp of when Amplify created the branch.

", "smithy.api#required": {} } }, "updateTime": { "target": "com.amazonaws.amplify#UpdateTime", "traits": { - "smithy.api#documentation": "

The last updated date and time for a branch that is part of an Amplify app.

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

A timestamp for the last updated time for a branch.

", "smithy.api#required": {} } }, @@ -4169,6 +4181,12 @@ "com.amazonaws.amplify#JobStatus": { "type": "enum", "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATED" + } + }, "PENDING": { "target": "smithy.api#Unit", "traits": { @@ -4253,7 +4271,7 @@ "commitTime": { "target": "com.amazonaws.amplify#CommitTime", "traits": { - "smithy.api#documentation": "

The commit date and time for the job.

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

The commit date and time for the job.

", "smithy.api#required": {} } }, @@ -6686,6 +6704,77 @@ "com.amazonaws.amplify#Verified": { "type": "boolean" }, + "com.amazonaws.amplify#WafConfiguration": { + "type": "structure", + "members": { + "webAclArn": { + "target": "com.amazonaws.amplify#WebAclArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) for the web ACL associated with an Amplify app.

" + } + }, + "wafStatus": { + "target": "com.amazonaws.amplify#WafStatus", + "traits": { + "smithy.api#documentation": "

The status of the process to associate or disassociate a web ACL to an Amplify app.

" + } + }, + "statusReason": { + "target": "com.amazonaws.amplify#StatusReason", + "traits": { + "smithy.api#documentation": "

The reason for the current status of the Firewall configuration.

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

Describes the Firewall configuration for a hosted Amplify application.\n Firewall support enables you to protect your web applications with a direct integration\n with WAF. For more information about using WAF protections for an Amplify application, see\n Firewall support for hosted sites in the Amplify\n User Guide.

" + } + }, + "com.amazonaws.amplify#WafStatus": { + "type": "enum", + "members": { + "ASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASSOCIATING" + } + }, + "ASSOCIATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASSOCIATION_FAILED" + } + }, + "ASSOCIATION_SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ASSOCIATION_SUCCESS" + } + }, + "DISASSOCIATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISASSOCIATING" + } + }, + "DISASSOCIATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISASSOCIATION_FAILED" + } + } + } + }, + "com.amazonaws.amplify#WebAclArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 + }, + "smithy.api#pattern": "^arn:aws:wafv2:" + } + }, "com.amazonaws.amplify#Webhook": { "type": "structure", "members": { @@ -6727,14 +6816,14 @@ "createTime": { "target": "com.amazonaws.amplify#CreateTime", "traits": { - "smithy.api#documentation": "

The create date and time for a webhook.

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

A timestamp of when Amplify created the webhook in your Git repository.

", "smithy.api#required": {} } }, "updateTime": { "target": "com.amazonaws.amplify#UpdateTime", "traits": { - "smithy.api#documentation": "

Updates the date and time for a webhook.

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

A timestamp of when Amplify updated the webhook in your Git repository.

", "smithy.api#required": {} } } @@ -6776,6 +6865,9 @@ "member": { "target": "com.amazonaws.amplify#Webhook" } + }, + "com.amazonaws.amplify#webhookCreateTime": { + "type": "timestamp" } } }