diff --git a/apis/cloudformation/2010-05-15/api-2.json b/apis/cloudformation/2010-05-15/api-2.json index bd1756a5cdd..a82b9e5ab3e 100644 --- a/apis/cloudformation/2010-05-15/api-2.json +++ b/apis/cloudformation/2010-05-15/api-2.json @@ -998,6 +998,15 @@ "type":"string", "pattern":"^[0-9]{12}$" }, + "AccountFilterType":{ + "type":"string", + "enum":[ + "NONE", + "INTERSECTION", + "DIFFERENCE", + "UNION" + ] + }, "AccountGateResult":{ "type":"structure", "members":{ @@ -1564,7 +1573,8 @@ "members":{ "Accounts":{"shape":"AccountList"}, "AccountsUrl":{"shape":"AccountsUrl"}, - "OrganizationalUnitIds":{"shape":"OrganizationalUnitIdList"} + "OrganizationalUnitIds":{"shape":"OrganizationalUnitIdList"}, + "AccountFilterType":{"shape":"AccountFilterType"} } }, "DeprecatedStatus":{ diff --git a/apis/cloudformation/2010-05-15/docs-2.json b/apis/cloudformation/2010-05-15/docs-2.json index 0b8919b6cbc..7fbb24a4024 100644 --- a/apis/cloudformation/2010-05-15/docs-2.json +++ b/apis/cloudformation/2010-05-15/docs-2.json @@ -87,6 +87,12 @@ "StackSetOperationResultSummary$Account": "

[Self-managed permissions] The name of the Amazon Web Services account for this operation result.

" } }, + "AccountFilterType": { + "base": null, + "refs": { + "DeploymentTargets$AccountFilterType": "

Limit deployment targets to individual accounts or include additional accounts with provided OUs.

The following is a list of possible values for the AccountFilterType operation.

" + } + }, "AccountGateResult": { "base": "

Structure that contains the results of the account gate function which CloudFormation invokes, if present, before proceeding with a stack set operation in an account and Region.

For each account and Region, CloudFormation lets you specify a Lambda function that encapsulates any requirements that must be met before CloudFormation can proceed with a stack set operation in that account and Region. CloudFormation invokes the function each time a stack set operation is requested for that account and Region; if the function returns FAILED, CloudFormation cancels the operation in that account and Region, and sets the stack set operation result status for that account and Region to FAILED.

For more information, see Configuring a target account gate.

", "refs": { diff --git a/apis/synthetics/2017-10-11/api-2.json b/apis/synthetics/2017-10-11/api-2.json index db89cbddfd7..294413c2dd0 100644 --- a/apis/synthetics/2017-10-11/api-2.json +++ b/apis/synthetics/2017-10-11/api-2.json @@ -13,6 +13,22 @@ "uid":"synthetics-2017-10-11" }, "operations":{ + "AssociateResource":{ + "name":"AssociateResource", + "http":{ + "method":"PATCH", + "requestUri":"/group/{groupIdentifier}/associate" + }, + "input":{"shape":"AssociateResourceRequest"}, + "output":{"shape":"AssociateResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, "CreateCanary":{ "name":"CreateCanary", "http":{ @@ -27,6 +43,21 @@ {"shape":"RequestEntityTooLargeException"} ] }, + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/group" + }, + "input":{"shape":"CreateGroupRequest"}, + "output":{"shape":"CreateGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"ServiceQuotaExceededException"} + ] + }, "DeleteCanary":{ "name":"DeleteCanary", "http":{ @@ -42,6 +73,21 @@ {"shape":"ConflictException"} ] }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"DELETE", + "requestUri":"/group/{groupIdentifier}" + }, + "input":{"shape":"DeleteGroupRequest"}, + "output":{"shape":"DeleteGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ] + }, "DescribeCanaries":{ "name":"DescribeCanaries", "http":{ @@ -81,6 +127,21 @@ {"shape":"ValidationException"} ] }, + "DisassociateResource":{ + "name":"DisassociateResource", + "http":{ + "method":"PATCH", + "requestUri":"/group/{groupIdentifier}/disassociate" + }, + "input":{"shape":"DisassociateResourceRequest"}, + "output":{"shape":"DisassociateResourceResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ] + }, "GetCanary":{ "name":"GetCanary", "http":{ @@ -108,6 +169,63 @@ {"shape":"ResourceNotFoundException"} ] }, + "GetGroup":{ + "name":"GetGroup", + "http":{ + "method":"GET", + "requestUri":"/group/{groupIdentifier}" + }, + "input":{"shape":"GetGroupRequest"}, + "output":{"shape":"GetGroupResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ] + }, + "ListAssociatedGroups":{ + "name":"ListAssociatedGroups", + "http":{ + "method":"POST", + "requestUri":"/resource/{resourceArn}/groups" + }, + "input":{"shape":"ListAssociatedGroupsRequest"}, + "output":{"shape":"ListAssociatedGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "ListGroupResources":{ + "name":"ListGroupResources", + "http":{ + "method":"POST", + "requestUri":"/group/{groupIdentifier}/resources" + }, + "input":{"shape":"ListGroupResourcesRequest"}, + "output":{"shape":"ListGroupResourcesResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ] + }, + "ListGroups":{ + "name":"ListGroups", + "http":{ + "method":"POST", + "requestUri":"/groups" + }, + "input":{"shape":"ListGroupsRequest"}, + "output":{"shape":"ListGroupsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ] + }, "ListTagsForResource":{ "name":"ListTagsForResource", "http":{ @@ -117,9 +235,11 @@ "input":{"shape":"ListTagsForResourceRequest"}, "output":{"shape":"ListTagsForResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ] }, "StartCanary":{ @@ -161,9 +281,11 @@ "input":{"shape":"TagResourceRequest"}, "output":{"shape":"TagResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ] }, "UntagResource":{ @@ -175,9 +297,11 @@ "input":{"shape":"UntagResourceRequest"}, "output":{"shape":"UntagResourceResponse"}, "errors":[ - {"shape":"InternalServerException"}, - {"shape":"ResourceNotFoundException"}, - {"shape":"ValidationException"} + {"shape":"BadRequestException"}, + {"shape":"NotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ConflictException"}, + {"shape":"InternalFailureException"} ] }, "UpdateCanary":{ @@ -210,6 +334,34 @@ "S3Encryption":{"shape":"S3EncryptionConfig"} } }, + "AssociateResourceRequest":{ + "type":"structure", + "required":[ + "GroupIdentifier", + "ResourceArn" + ], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "location":"uri", + "locationName":"groupIdentifier" + }, + "ResourceArn":{"shape":"CanaryArn"} + } + }, + "AssociateResourceResponse":{ + "type":"structure", + "members":{ + } + }, + "BadRequestException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + }, "BaseScreenshot":{ "type":"structure", "required":["ScreenshotName"], @@ -473,6 +625,20 @@ "Canary":{"shape":"Canary"} } }, + "CreateGroupRequest":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{"shape":"GroupName"}, + "Tags":{"shape":"TagMap"} + } + }, + "CreateGroupResponse":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"} + } + }, "DeleteCanaryRequest":{ "type":"structure", "required":["Name"], @@ -494,6 +660,22 @@ "members":{ } }, + "DeleteGroupRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "DeleteGroupResponse":{ + "type":"structure", + "members":{ + } + }, "DescribeCanariesLastRunNameFilter":{ "type":"list", "member":{"shape":"CanaryName"}, @@ -550,6 +732,26 @@ "NextToken":{"shape":"Token"} } }, + "DisassociateResourceRequest":{ + "type":"structure", + "required":[ + "GroupIdentifier", + "ResourceArn" + ], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "location":"uri", + "locationName":"groupIdentifier" + }, + "ResourceArn":{"shape":"CanaryArn"} + } + }, + "DisassociateResourceResponse":{ + "type":"structure", + "members":{ + } + }, "EncryptionMode":{ "type":"string", "enum":[ @@ -611,6 +813,70 @@ "NextToken":{"shape":"Token"} } }, + "GetGroupRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "GetGroupResponse":{ + "type":"structure", + "members":{ + "Group":{"shape":"Group"} + } + }, + "Group":{ + "type":"structure", + "members":{ + "Id":{"shape":"String"}, + "Name":{"shape":"GroupName"}, + "Arn":{"shape":"GroupArn"}, + "Tags":{"shape":"TagMap"}, + "CreatedTime":{"shape":"Timestamp"}, + "LastModifiedTime":{"shape":"Timestamp"} + } + }, + "GroupArn":{ + "type":"string", + "max":128, + "min":1, + "pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:group:[0-9a-z]+" + }, + "GroupIdentifier":{ + "type":"string", + "max":128, + "min":1 + }, + "GroupName":{ + "type":"string", + "max":64, + "min":1 + }, + "GroupSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"String"}, + "Name":{"shape":"GroupName"}, + "Arn":{"shape":"GroupArn"} + } + }, + "GroupSummaryList":{ + "type":"list", + "member":{"shape":"GroupSummary"} + }, + "InternalFailureException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true + }, "InternalServerException":{ "type":"structure", "members":{ @@ -625,10 +891,12 @@ "min":1, "pattern":"arn:(aws[a-zA-Z-]*)?:kms:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:key/[\\w\\-\\/]+" }, - "ListTagsForResourceRequest":{ + "ListAssociatedGroupsRequest":{ "type":"structure", "required":["ResourceArn"], "members":{ + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxGroupResults"}, "ResourceArn":{ "shape":"CanaryArn", "location":"uri", @@ -636,6 +904,58 @@ } } }, + "ListAssociatedGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{"shape":"GroupSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListGroupResourcesRequest":{ + "type":"structure", + "required":["GroupIdentifier"], + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxGroupResults"}, + "GroupIdentifier":{ + "shape":"GroupIdentifier", + "location":"uri", + "locationName":"groupIdentifier" + } + } + }, + "ListGroupResourcesResponse":{ + "type":"structure", + "members":{ + "Resources":{"shape":"StringList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, + "ListGroupsRequest":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"PaginationToken"}, + "MaxResults":{"shape":"MaxGroupResults"} + } + }, + "ListGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{"shape":"GroupSummaryList"}, + "NextToken":{"shape":"Token"} + } + }, + "ListTagsForResourceRequest":{ + "type":"structure", + "required":["ResourceArn"], + "members":{ + "ResourceArn":{ + "shape":"ResourceArn", + "location":"uri", + "locationName":"resourceArn" + } + } + }, "ListTagsForResourceResponse":{ "type":"structure", "members":{ @@ -652,6 +972,11 @@ "max":840, "min":3 }, + "MaxGroupResults":{ + "type":"integer", + "max":20, + "min":1 + }, "MaxOneYearInSeconds":{ "type":"long", "max":31622400, @@ -672,7 +997,21 @@ "max":3008, "min":960 }, + "NotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, "NullableBoolean":{"type":"boolean"}, + "PaginationToken":{ + "type":"string", + "max":512, + "min":1, + "pattern":"^.+$" + }, "RequestEntityTooLargeException":{ "type":"structure", "members":{ @@ -681,6 +1020,12 @@ "error":{"httpStatusCode":413}, "exception":true }, + "ResourceArn":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"arn:(aws[a-zA-Z-]*)?:synthetics:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:(canary|group):[0-9a-z_\\-]+" + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -722,6 +1067,14 @@ "max":5, "min":0 }, + "ServiceQuotaExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":402}, + "exception":true + }, "StartCanaryRequest":{ "type":"structure", "required":["Name"], @@ -759,6 +1112,10 @@ "max":1024, "min":1 }, + "StringList":{ + "type":"list", + "member":{"shape":"String"} + }, "SubnetId":{"type":"string"}, "SubnetIds":{ "type":"list", @@ -793,7 +1150,7 @@ ], "members":{ "ResourceArn":{ - "shape":"CanaryArn", + "shape":"ResourceArn", "location":"uri", "locationName":"resourceArn" }, @@ -815,6 +1172,14 @@ "max":252, "min":4 }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":429}, + "exception":true + }, "UUID":{ "type":"string", "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" @@ -827,7 +1192,7 @@ ], "members":{ "ResourceArn":{ - "shape":"CanaryArn", + "shape":"ResourceArn", "location":"uri", "locationName":"resourceArn" }, diff --git a/apis/synthetics/2017-10-11/docs-2.json b/apis/synthetics/2017-10-11/docs-2.json index 305cdfcf75f..e0c4a3fc242 100644 --- a/apis/synthetics/2017-10-11/docs-2.json +++ b/apis/synthetics/2017-10-11/docs-2.json @@ -2,19 +2,27 @@ "version": "2.0", "service": "Amazon CloudWatch Synthetics

You can use Amazon CloudWatch Synthetics to continually monitor your services. You can create and manage canaries, which are modular, lightweight scripts that monitor your endpoints and APIs from the outside-in. You can set up your canaries to run 24 hours a day, once per minute. The canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. The canaries seamlessly integrate with CloudWatch ServiceLens to help you trace the causes of impacted nodes in your applications. For more information, see Using ServiceLens to Monitor the Health of Your Applications in the Amazon CloudWatch User Guide.

Before you create and manage canaries, be aware of the security considerations. For more information, see Security Considerations for Synthetics Canaries.

", "operations": { - "CreateCanary": "

Creates a canary. Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.

Do not use CreateCanary to modify an existing canary. Use UpdateCanary instead.

To create canaries, you must have the CloudWatchSyntheticsFullAccess policy. If you are creating a new IAM role for the canary, you also need the the iam:CreateRole, iam:CreatePolicy and iam:AttachRolePolicy permissions. For more information, see Necessary Roles and Permissions.

Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see Security Considerations for Synthetics Canaries.

", - "DeleteCanary": "

Permanently deletes the specified canary.

If you specify DeleteLambda to true, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.

Other esources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:

Before you delete a canary, you might want to use GetCanary to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.

", + "AssociateResource": "

Associates a canary with a group. Using groups can help you with managing and automating your canaries, and you can also view aggregated run results and statistics for all canaries in a group.

You must run this operation in the Region where the canary exists.

", + "CreateCanary": "

Creates a canary. Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.

Do not use CreateCanary to modify an existing canary. Use UpdateCanary instead.

To create canaries, you must have the CloudWatchSyntheticsFullAccess policy. If you are creating a new IAM role for the canary, you also need the iam:CreateRole, iam:CreatePolicy and iam:AttachRolePolicy permissions. For more information, see Necessary Roles and Permissions.

Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see Security Considerations for Synthetics Canaries.

", + "CreateGroup": "

Creates a group which you can use to associate canaries with each other, including cross-Region canaries. Using groups can help you with managing and automating your canaries, and you can also view aggregated run results and statistics for all canaries in a group.

Groups are global resources. When you create a group, it is replicated across Amazon Web Services Regions, and you can view it and add canaries to it from any Region. Although the group ARN format reflects the Region name where it was created, a group is not constrained to any Region. This means that you can put canaries from multiple Regions into the same group, and then use that group to view and manage all of those canaries in a single view.

Groups are supported in all Regions except the Regions that are disabled by default. For more information about these Regions, see Enabling a Region.

Each group can contain as many as 10 canaries. You can have as many as 20 groups in your account. Any single canary can be a member of up to 10 groups.

", + "DeleteCanary": "

Permanently deletes the specified canary.

If you specify DeleteLambda to true, CloudWatch Synthetics also deletes the Lambda functions and layers that are used by the canary.

Other resources used and created by the canary are not automatically deleted. After you delete a canary that you do not intend to use again, you should also delete the following:

Before you delete a canary, you might want to use GetCanary to display the information about this canary. Make note of the information returned by this operation so that you can delete these resources after you delete the canary.

", + "DeleteGroup": "

Deletes a group. The group doesn't need to be empty to be deleted. If there are canaries in the group, they are not deleted when you delete the group.

Groups are a global resource that appear in all Regions, but the request to delete a group must be made from its home Region. You can find the home Region of a group within its ARN.

", "DescribeCanaries": "

This operation returns a list of the canaries in your account, along with full details about each canary.

This operation supports resource-level authorization using an IAM policy and the Names parameter. If you specify the Names parameter, the operation is successful only if you have authorization to view all the canaries that you specify in your request. If you do not have permission to view any of the canaries, the request fails with a 403 response.

You are required to use the Names parameter if you are logged on to a user or role that has an IAM policy that restricts which canaries that you are allowed to view. For more information, see Limiting a user to viewing specific canaries.

", "DescribeCanariesLastRun": "

Use this operation to see information from the most recent run of each canary that you have created.

This operation supports resource-level authorization using an IAM policy and the Names parameter. If you specify the Names parameter, the operation is successful only if you have authorization to view all the canaries that you specify in your request. If you do not have permission to view any of the canaries, the request fails with a 403 response.

You are required to use the Names parameter if you are logged on to a user or role that has an IAM policy that restricts which canaries that you are allowed to view. For more information, see Limiting a user to viewing specific canaries.

", "DescribeRuntimeVersions": "

Returns a list of Synthetics canary runtime versions. For more information, see Canary Runtime Versions.

", + "DisassociateResource": "

Removes a canary from a group. You must run this operation in the Region where the canary exists.

", "GetCanary": "

Retrieves complete information about one canary. You must specify the name of the canary that you want. To get a list of canaries and their names, use DescribeCanaries.

", "GetCanaryRuns": "

Retrieves a list of runs for a specified canary.

", - "ListTagsForResource": "

Displays the tags associated with a canary.

", + "GetGroup": "

Returns information about one group. Groups are a global resource, so you can use this operation from any Region.

", + "ListAssociatedGroups": "

Returns a list of the groups that the specified canary is associated with. The canary that you specify must be in the current Region.

", + "ListGroupResources": "

This operation returns a list of the ARNs of the canaries that are associated with the specified group.

", + "ListGroups": "

Returns a list of all groups in the account, displaying their names, unique IDs, and ARNs. The groups from all Regions are returned.

", + "ListTagsForResource": "

Displays the tags associated with a canary or group.

", "StartCanary": "

Use this operation to run a canary that has already been created. The frequency of the canary runs is determined by the value of the canary's Schedule. To see a canary's schedule, use GetCanary.

", - "StopCanary": "

Stops the canary to prevent all future runs. If the canary is currently running, Synthetics stops waiting for the current run of the specified canary to complete. The run that is in progress completes on its own, publishes metrics, and uploads artifacts, but it is not recorded in Synthetics as a completed run.

You can use StartCanary to start it running again with the canary’s current schedule at any point in the future.

", - "TagResource": "

Assigns one or more tags (key-value pairs) to the specified canary.

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.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

You can use the TagResource action with a canary that already has tags. If you specify a new tag key for the alarm, this tag is appended to the list of tags associated with the alarm. If you specify a tag key that is already associated with the alarm, the new tag value that you specify replaces the previous value for that tag.

You can associate as many as 50 tags with a canary.

", - "UntagResource": "

Removes one or more tags from the specified canary.

", - "UpdateCanary": "

Use this operation to change the settings of a canary that has already been created.

You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use TagResource.

" + "StopCanary": "

Stops the canary to prevent all future runs. If the canary is currently running,the run that is in progress completes on its own, publishes metrics, and uploads artifacts, but it is not recorded in Synthetics as a completed run.

You can use StartCanary to start it running again with the canary’s current schedule at any point in the future.

", + "TagResource": "

Assigns one or more tags (key-value pairs) to the specified canary or group.

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.

Tags don't have any semantic meaning to Amazon Web Services 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 for the resource, 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 canary or group.

", + "UntagResource": "

Removes one or more tags from the specified resource.

", + "UpdateCanary": "

Updates the configuration of a canary that has already been created.

You can't use this operation to update the tags of an existing canary. To change the tags of an existing canary, use TagResource.

" }, "shapes": { "ArtifactConfigInput": { @@ -30,6 +38,21 @@ "Canary$ArtifactConfig": "

A structure that contains the configuration for canary artifacts, including the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.

" } }, + "AssociateResourceRequest": { + "base": null, + "refs": { + } + }, + "AssociateResourceResponse": { + "base": null, + "refs": { + } + }, + "BadRequestException": { + "base": "

The request was not valid.

", + "refs": { + } + }, "BaseScreenshot": { "base": "

A structure representing a screenshot that is used as a baseline during visual monitoring comparisons made by the canary.

", "refs": { @@ -45,7 +68,7 @@ "BaseScreenshotIgnoreCoordinates": { "base": null, "refs": { - "BaseScreenshot$IgnoreCoordinates": "

Coordinates that define the part of a screen to ignore during screenshot comparisons. To obtain the coordinates to use here, use the CloudWatch Logs console to draw the boundaries on the screen. For more information, see {LINK}

" + "BaseScreenshot$IgnoreCoordinates": "

Coordinates that define the part of a screen to ignore during screenshot comparisons. To obtain the coordinates to use here, use the CloudWatch console to draw the boundaries on the screen. For more information, see Editing or deleting a canary

" } }, "BaseScreenshots": { @@ -78,15 +101,15 @@ "refs": { "Canaries$member": null, "CreateCanaryResponse$Canary": "

The full details about the canary you have created.

", - "GetCanaryResponse$Canary": "

A strucure that contains the full information about the canary.

" + "GetCanaryResponse$Canary": "

A structure that contains the full information about the canary.

" } }, "CanaryArn": { "base": null, "refs": { - "ListTagsForResourceRequest$ResourceArn": "

The ARN of the canary that you want to view tags for.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

", - "TagResourceRequest$ResourceArn": "

The ARN of the canary that you're adding tags to.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

", - "UntagResourceRequest$ResourceArn": "

The ARN of the canary that you're removing tags from.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

" + "AssociateResourceRequest$ResourceArn": "

The ARN of the canary that you want to associate with the specified group.

", + "DisassociateResourceRequest$ResourceArn": "

The ARN of the canary that you want to remove from the specified group.

", + "ListAssociatedGroupsRequest$ResourceArn": "

The ARN of the canary that you want to view groups for.

" } }, "CanaryCodeInput": { @@ -121,7 +144,7 @@ "GetCanaryRequest$Name": "

The name of the canary that you want details for.

", "GetCanaryRunsRequest$Name": "

The name of the canary that you want to see runs for.

", "StartCanaryRequest$Name": "

The name of the canary that you want to run. To find canary names, use DescribeCanaries.

", - "StopCanaryRequest$Name": "

The name of the canary that you want to stop. To find the names of your canaries, use DescribeCanaries.

", + "StopCanaryRequest$Name": "

The name of the canary that you want to stop. To find the names of your canaries, use ListCanaries.

", "UpdateCanaryRequest$Name": "

The name of the canary that you want to update. To find the names of your canaries, use DescribeCanaries.

You cannot change the name of a canary that has already been created.

" } }, @@ -135,8 +158,8 @@ "CanaryRunConfigInput": { "base": "

A structure that contains input information for a canary run.

", "refs": { - "CreateCanaryRequest$RunConfig": "

A structure that contains the configuration for individual canary runs, such as timeout value.

", - "UpdateCanaryRequest$RunConfig": "

A structure that contains the timeout value that is used for each individual run of the canary.

" + "CreateCanaryRequest$RunConfig": "

A structure that contains the configuration for individual canary runs, such as timeout value and environment variables.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

", + "UpdateCanaryRequest$RunConfig": "

A structure that contains the timeout value that is used for each individual run of the canary.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

" } }, "CanaryRunConfigOutput": { @@ -233,6 +256,16 @@ "refs": { } }, + "CreateGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateGroupResponse": { + "base": null, + "refs": { + } + }, "DeleteCanaryRequest": { "base": null, "refs": { @@ -243,6 +276,16 @@ "refs": { } }, + "DeleteGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteGroupResponse": { + "base": null, + "refs": { + } + }, "DescribeCanariesLastRunNameFilter": { "base": null, "refs": { @@ -285,6 +328,16 @@ "refs": { } }, + "DisassociateResourceRequest": { + "base": null, + "refs": { + } + }, + "DisassociateResourceResponse": { + "base": null, + "refs": { + } + }, "EncryptionMode": { "base": null, "refs": { @@ -306,16 +359,21 @@ "EnvironmentVariablesMap": { "base": null, "refs": { - "CanaryRunConfigInput$EnvironmentVariables": "

Specifies the keys and values to use for any environment variables used in the canary script. Use the following format:

{ \"key1\" : \"value1\", \"key2\" : \"value2\", ...}

Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see Runtime environment variables.

" + "CanaryRunConfigInput$EnvironmentVariables": "

Specifies the keys and values to use for any environment variables used in the canary script. Use the following format:

{ \"key1\" : \"value1\", \"key2\" : \"value2\", ...}

Keys must start with a letter and be at least two characters. The total size of your environment variables cannot exceed 4 KB. You can't specify any Lambda reserved environment variables as the keys for your environment variables. For more information about reserved keys, see Runtime environment variables.

The environment variables keys and values are not encrypted. Do not store sensitive information in this field.

" } }, "ErrorMessage": { "base": null, "refs": { + "BadRequestException$Message": null, "ConflictException$Message": null, + "InternalFailureException$Message": null, "InternalServerException$Message": null, + "NotFoundException$Message": null, "RequestEntityTooLargeException$Message": null, "ResourceNotFoundException$Message": null, + "ServiceQuotaExceededException$Message": null, + "TooManyRequestsException$Message": null, "ValidationException$Message": null } }, @@ -345,6 +403,66 @@ "refs": { } }, + "GetGroupRequest": { + "base": null, + "refs": { + } + }, + "GetGroupResponse": { + "base": null, + "refs": { + } + }, + "Group": { + "base": "

This structure contains information about one group.

", + "refs": { + "CreateGroupResponse$Group": "

A structure that contains information about the group that was just created.

", + "GetGroupResponse$Group": "

A structure that contains information about the group.

" + } + }, + "GroupArn": { + "base": null, + "refs": { + "Group$Arn": "

The ARN of the group.

", + "GroupSummary$Arn": "

The ARN of the group.

" + } + }, + "GroupIdentifier": { + "base": null, + "refs": { + "AssociateResourceRequest$GroupIdentifier": "

Specifies the group. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "DeleteGroupRequest$GroupIdentifier": "

Specifies which group to delete. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "DisassociateResourceRequest$GroupIdentifier": "

Specifies the group. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "GetGroupRequest$GroupIdentifier": "

Specifies the group to return information for. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

", + "ListGroupResourcesRequest$GroupIdentifier": "

Specifies the group to return information for. You can specify the group name, the ARN, or the group ID as the GroupIdentifier.

" + } + }, + "GroupName": { + "base": null, + "refs": { + "CreateGroupRequest$Name": "

The name for the group. It can include any Unicode characters.

The names for all groups in your account, across all Regions, must be unique.

", + "Group$Name": "

The name of the group.

", + "GroupSummary$Name": "

The name of the group.

" + } + }, + "GroupSummary": { + "base": "

A structure containing some information about a group.

", + "refs": { + "GroupSummaryList$member": null + } + }, + "GroupSummaryList": { + "base": null, + "refs": { + "ListAssociatedGroupsResponse$Groups": "

An array of structures that contain information about the groups that this canary is associated with.

", + "ListGroupsResponse$Groups": "

An array of structures that each contain information about one group.

" + } + }, + "InternalFailureException": { + "base": "

An internal failure occurred. Try the operation again.

", + "refs": { + } + }, "InternalServerException": { "base": "

An unknown internal error occurred.

", "refs": { @@ -356,6 +474,36 @@ "S3EncryptionConfig$KmsKeyArn": "

The ARN of the customer-managed KMS key to use, if you specify SSE-KMS for EncryptionMode

" } }, + "ListAssociatedGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListAssociatedGroupsResponse": { + "base": null, + "refs": { + } + }, + "ListGroupResourcesRequest": { + "base": null, + "refs": { + } + }, + "ListGroupResourcesResponse": { + "base": null, + "refs": { + } + }, + "ListGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListGroupsResponse": { + "base": null, + "refs": { + } + }, "ListTagsForResourceRequest": { "base": null, "refs": { @@ -379,6 +527,14 @@ "CanaryRunConfigOutput$TimeoutInSeconds": "

How long the canary is allowed to run before it must stop.

" } }, + "MaxGroupResults": { + "base": null, + "refs": { + "ListAssociatedGroupsRequest$MaxResults": "

Specify this parameter to limit how many groups are returned each time you use the ListAssociatedGroups operation. If you omit this parameter, the default of 20 is used.

", + "ListGroupResourcesRequest$MaxResults": "

Specify this parameter to limit how many canary ARNs are returned each time you use the ListGroupResources operation. If you omit this parameter, the default of 20 is used.

", + "ListGroupsRequest$MaxResults": "

Specify this parameter to limit how many groups are returned each time you use the ListGroups operation. If you omit this parameter, the default of 20 is used.

" + } + }, "MaxOneYearInSeconds": { "base": null, "refs": { @@ -412,6 +568,11 @@ "CanaryRunConfigOutput$MemoryInMB": "

The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.

" } }, + "NotFoundException": { + "base": "

The specified resource was not found.

", + "refs": { + } + }, "NullableBoolean": { "base": null, "refs": { @@ -419,11 +580,29 @@ "CanaryRunConfigOutput$ActiveTracing": "

Displays whether this canary run used active X-Ray tracing.

" } }, + "PaginationToken": { + "base": null, + "refs": { + "ListAssociatedGroupsRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

", + "ListAssociatedGroupsResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent ListAssociatedGroups operation to retrieve the next set of results.

", + "ListGroupResourcesRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

", + "ListGroupResourcesResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent ListGroupResources operation to retrieve the next set of results.

", + "ListGroupsRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

" + } + }, "RequestEntityTooLargeException": { "base": "

One of the input resources is larger than is allowed.

", "refs": { } }, + "ResourceArn": { + "base": null, + "refs": { + "ListTagsForResourceRequest$ResourceArn": "

The ARN of the canary or group that you want to view tags for.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

", + "TagResourceRequest$ResourceArn": "

The ARN of the canary or group that you're adding tags to.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

", + "UntagResourceRequest$ResourceArn": "

The ARN of the canary or group that you're removing tags from.

The ARN format of a canary is arn:aws:synthetics:Region:account-id:canary:canary-name .

The ARN format of a group is arn:aws:synthetics:Region:account-id:group:group-name

" + } + }, "ResourceNotFoundException": { "base": "

One of the specified resources was not found.

", "refs": { @@ -469,6 +648,11 @@ "VpcConfigOutput$SecurityGroupIds": "

The IDs of the security groups for this canary.

" } }, + "ServiceQuotaExceededException": { + "base": "

The request exceeded a service quota value.

", + "refs": { + } + }, "StartCanaryRequest": { "base": null, "refs": { @@ -507,12 +691,21 @@ "CanaryStatus$StateReason": "

If the canary has insufficient permissions to run, this field provides more details.

", "CreateCanaryRequest$ArtifactS3Location": "

The location in Amazon S3 where Synthetics stores artifacts from the test runs of this canary. Artifacts include the log file, screenshots, and HAR files. The name of the S3 bucket can't include a period (.).

", "CreateCanaryRequest$RuntimeVersion": "

Specifies the runtime version to use for the canary. For a list of valid runtime versions and more information about runtime versions, see Canary Runtime Versions.

", + "Group$Id": "

The unique ID of the group.

", + "GroupSummary$Id": "

The unique ID of the group.

", "RuntimeVersion$VersionName": "

The name of the runtime version. For a list of valid runtime versions, see Canary Runtime Versions.

", "RuntimeVersion$Description": "

A description of the runtime version, created by Amazon.

", + "StringList$member": null, "UpdateCanaryRequest$RuntimeVersion": "

Specifies the runtime version to use for the canary. For a list of valid runtime versions and for more information about runtime versions, see Canary Runtime Versions.

", "UpdateCanaryRequest$ArtifactS3Location": "

The location in Amazon S3 where Synthetics stores artifacts from the test runs of this canary. Artifacts include the log file, screenshots, and HAR files. The name of the S3 bucket can't include a period (.).

", "VisualReferenceInput$BaseCanaryRunId": "

Specifies which canary run to use the screenshots from as the baseline for future visual monitoring with this canary. Valid values are nextrun to use the screenshots from the next run after this update is made, lastrun to use the screenshots from the most recent run before this update was made, or the value of Id in the CanaryRun from any past run of this canary.

", - "VisualReferenceOutput$BaseCanaryRunId": "

The ID of the canary run that produced the screenshots that are used as the baseline for visual monitoring comparisons during future runs of this canary.

" + "VisualReferenceOutput$BaseCanaryRunId": "

The ID of the canary run that produced the baseline screenshots that are used for visual monitoring comparisons by this canary.

" + } + }, + "StringList": { + "base": null, + "refs": { + "ListGroupResourcesResponse$Resources": "

An array of ARNs. These ARNs are for the canaries that are associated with the group.

" } }, "SubnetId": { @@ -546,8 +739,10 @@ "refs": { "Canary$Tags": "

The list of key-value pairs that are associated with the canary.

", "CreateCanaryRequest$Tags": "

A list of key-value pairs to associate with the canary. You can associate as many as 50 tags with a canary.

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 the resources that have certain tag values.

", - "ListTagsForResourceResponse$Tags": "

The list of tag keys and values associated with the canary that you specified.

", - "TagResourceRequest$Tags": "

The list of key-value pairs to associate with the canary.

" + "CreateGroupRequest$Tags": "

A list of key-value pairs to associate with the group. You can associate as many as 50 tags with a group.

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 the resources that have certain tag values.

", + "Group$Tags": "

The list of key-value pairs that are associated with the canary.

", + "ListTagsForResourceResponse$Tags": "

The list of tag keys and values associated with the resource that you specified.

", + "TagResourceRequest$Tags": "

The list of key-value pairs to associate with the resource.

" } }, "TagResourceRequest": { @@ -575,6 +770,8 @@ "CanaryTimeline$LastModified": "

The date and time the canary was most recently modified.

", "CanaryTimeline$LastStarted": "

The date and time that the canary's most recent run started.

", "CanaryTimeline$LastStopped": "

The date and time that the canary's most recent run ended.

", + "Group$CreatedTime": "

The date and time that the group was created.

", + "Group$LastModifiedTime": "

The date and time that the group was most recently updated.

", "RuntimeVersion$ReleaseDate": "

The date that the runtime version was released.

", "RuntimeVersion$DeprecationDate": "

If this runtime version is deprecated, this value is the date of deprecation.

" } @@ -582,14 +779,20 @@ "Token": { "base": null, "refs": { - "DescribeCanariesLastRunRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanaries operation to retrieve the next set of results.

", + "DescribeCanariesLastRunRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanariesLastRun operation to retrieve the next set of results.

", "DescribeCanariesLastRunResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanariesLastRun operation to retrieve the next set of results.

", "DescribeCanariesRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent operation to retrieve the next set of results.

", "DescribeCanariesResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeCanaries operation to retrieve the next set of results.

", "DescribeRuntimeVersionsRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeRuntimeVersions operation to retrieve the next set of results.

", "DescribeRuntimeVersionsResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent DescribeRuntimeVersions operation to retrieve the next set of results.

", "GetCanaryRunsRequest$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent GetCanaryRuns operation to retrieve the next set of results.

", - "GetCanaryRunsResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent GetCanaryRuns operation to retrieve the next set of results.

" + "GetCanaryRunsResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent GetCanaryRuns operation to retrieve the next set of results.

", + "ListGroupsResponse$NextToken": "

A token that indicates that there is more data available. You can use this token in a subsequent ListGroups operation to retrieve the next set of results.

" + } + }, + "TooManyRequestsException": { + "base": "

There were too many simultaneous requests. Try the operation again.

", + "refs": { } }, "UUID": { @@ -625,7 +828,7 @@ } }, "VisualReferenceInput": { - "base": "

An object that specifies what screenshots to use as a baseline for visual monitoring by this canary, and optionally the parts of the screenshots to ignore during the visual monitoring comparison.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later. For more information, see Visual monitoring and Visual monitoring blueprint

", + "base": "

An object that specifies what screenshots to use as a baseline for visual monitoring by this canary. It can optionally also specify parts of the screenshots to ignore during the visual monitoring comparison.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later. For more information, see Visual monitoring and Visual monitoring blueprint

", "refs": { "UpdateCanaryRequest$VisualReference": "

Defines the screenshots to use as the baseline for comparisons during visual monitoring comparisons during future runs of this canary. If you omit this parameter, no changes are made to any baseline screenshots that the canary might be using already.

Visual monitoring is supported only on canaries running the syn-puppeteer-node-3.2 runtime or later. For more information, see Visual monitoring and Visual monitoring blueprint

" } diff --git a/apis/synthetics/2017-10-11/paginators-1.json b/apis/synthetics/2017-10-11/paginators-1.json index e5412aa47fd..6deb61db50e 100644 --- a/apis/synthetics/2017-10-11/paginators-1.json +++ b/apis/synthetics/2017-10-11/paginators-1.json @@ -19,6 +19,21 @@ "input_token": "NextToken", "limit_key": "MaxResults", "output_token": "NextToken" + }, + "ListAssociatedGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListGroupResources": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" + }, + "ListGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken" } } } \ No newline at end of file diff --git a/gems/aws-sdk-cloudformation/CHANGELOG.md b/gems/aws-sdk-cloudformation/CHANGELOG.md index 9a3becefcb6..c3ca28b8209 100644 --- a/gems/aws-sdk-cloudformation/CHANGELOG.md +++ b/gems/aws-sdk-cloudformation/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.70.0 (2022-07-06) +------------------ + +* Feature - My AWS Service (placeholder) - Add a new feature Account-level Targeting for StackSet operation + 1.69.0 (2022-05-25) ------------------ diff --git a/gems/aws-sdk-cloudformation/VERSION b/gems/aws-sdk-cloudformation/VERSION index 49349856550..832e9afb6c1 100644 --- a/gems/aws-sdk-cloudformation/VERSION +++ b/gems/aws-sdk-cloudformation/VERSION @@ -1 +1 @@ -1.69.0 +1.70.0 diff --git a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation.rb b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation.rb index a9925d6ff55..43709dde804 100644 --- a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation.rb +++ b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation.rb @@ -53,6 +53,6 @@ # @!group service module Aws::CloudFormation - GEM_VERSION = '1.69.0' + GEM_VERSION = '1.70.0' end diff --git a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client.rb b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client.rb index 344957f10f4..8a9576331f2 100644 --- a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client.rb +++ b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client.rb @@ -1433,6 +1433,7 @@ def create_stack(params = {}, options = {}) # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # parameter_overrides: [ @@ -1990,6 +1991,7 @@ def delete_stack(params = {}, options = {}) # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # operation_preferences: { @@ -3026,6 +3028,7 @@ def describe_stack_set(params = {}, options = {}) # resp.stack_set_operation.deployment_targets.accounts_url #=> String # resp.stack_set_operation.deployment_targets.organizational_unit_ids #=> Array # resp.stack_set_operation.deployment_targets.organizational_unit_ids[0] #=> String + # resp.stack_set_operation.deployment_targets.account_filter_type #=> String, one of "NONE", "INTERSECTION", "DIFFERENCE", "UNION" # resp.stack_set_operation.stack_set_drift_detection_details.drift_status #=> String, one of "DRIFTED", "IN_SYNC", "NOT_CHECKED" # resp.stack_set_operation.stack_set_drift_detection_details.drift_detection_status #=> String, one of "COMPLETED", "FAILED", "PARTIAL_SUCCESS", "IN_PROGRESS", "STOPPED" # resp.stack_set_operation.stack_set_drift_detection_details.last_drift_check_timestamp #=> Time @@ -6229,6 +6232,7 @@ def update_stack(params = {}, options = {}) # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # parameter_overrides: [ @@ -6626,6 +6630,7 @@ def update_stack_instances(params = {}, options = {}) # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED # auto_deployment: { @@ -6780,7 +6785,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-cloudformation' - context[:gem_version] = '1.69.0' + context[:gem_version] = '1.70.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client_api.rb b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client_api.rb index 5ca3e34b775..8056f95d45a 100644 --- a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client_api.rb +++ b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/client_api.rb @@ -15,6 +15,7 @@ module ClientApi AcceptTermsAndConditions = Shapes::BooleanShape.new(name: 'AcceptTermsAndConditions') Account = Shapes::StringShape.new(name: 'Account') + AccountFilterType = Shapes::StringShape.new(name: 'AccountFilterType') AccountGateResult = Shapes::StructureShape.new(name: 'AccountGateResult') AccountGateStatus = Shapes::StringShape.new(name: 'AccountGateStatus') AccountGateStatusReason = Shapes::StringShape.new(name: 'AccountGateStatusReason') @@ -705,6 +706,7 @@ module ClientApi DeploymentTargets.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts")) DeploymentTargets.add_member(:accounts_url, Shapes::ShapeRef.new(shape: AccountsUrl, location_name: "AccountsUrl")) DeploymentTargets.add_member(:organizational_unit_ids, Shapes::ShapeRef.new(shape: OrganizationalUnitIdList, location_name: "OrganizationalUnitIds")) + DeploymentTargets.add_member(:account_filter_type, Shapes::ShapeRef.new(shape: AccountFilterType, location_name: "AccountFilterType")) DeploymentTargets.struct_class = Types::DeploymentTargets DeregisterTypeInput.add_member(:arn, Shapes::ShapeRef.new(shape: PrivateTypeArn, location_name: "Arn")) diff --git a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/types.rb b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/types.rb index 6df7528e269..7a3ea51e32b 100644 --- a/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/types.rb +++ b/gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/types.rb @@ -1413,6 +1413,7 @@ class CreateStackInput < Struct.new( # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # parameter_overrides: [ @@ -2072,6 +2073,7 @@ class DeleteStackInput < Struct.new( # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # operation_preferences: { @@ -2262,6 +2264,7 @@ class DeleteStackSetOutput < Aws::EmptyStructure; end # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # } # # @!attribute [rw] accounts @@ -2278,12 +2281,39 @@ class DeleteStackSetOutput < Aws::EmptyStructure; end # StackSets deploys. # @return [Array] # + # @!attribute [rw] account_filter_type + # Limit deployment targets to individual accounts or include + # additional accounts with provided OUs. + # + # The following is a list of possible values for the + # `AccountFilterType` operation. + # + # * `INTERSECTION`\: StackSets deploys to the accounts specified in + # `Accounts` parameter. + # + # * `DIFFERENCE`\: StackSets excludes the accounts specified in + # `Accounts` parameter. This enables user to avoid certain accounts + # within an OU such as suspended accounts. + # + # * `UNION`\: (default value) StackSets includes additional accounts + # deployment targets. + # + # This is the default value if `AccountFilterType` is not provided. + # This enables user to update an entire OU and individual accounts + # from a different OU in one request, which used to be two separate + # requests. + # + # * `NONE`\: Deploys to all the accounts in specified organizational + # units (OU). + # @return [String] + # # @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeploymentTargets AWS API Documentation # class DeploymentTargets < Struct.new( :accounts, :accounts_url, - :organizational_unit_ids) + :organizational_unit_ids, + :account_filter_type) SENSITIVE = [] include Aws::Structure end @@ -9915,6 +9945,7 @@ class UpdateStackInput < Struct.new( # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # regions: ["Region"], # required # parameter_overrides: [ @@ -10135,6 +10166,7 @@ class UpdateStackOutput < Struct.new( # accounts: ["Account"], # accounts_url: "AccountsUrl", # organizational_unit_ids: ["OrganizationalUnitId"], + # account_filter_type: "NONE", # accepts NONE, INTERSECTION, DIFFERENCE, UNION # }, # permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED # auto_deployment: { diff --git a/gems/aws-sdk-synthetics/CHANGELOG.md b/gems/aws-sdk-synthetics/CHANGELOG.md index 75b06d7a989..c45efcf2b8f 100644 --- a/gems/aws-sdk-synthetics/CHANGELOG.md +++ b/gems/aws-sdk-synthetics/CHANGELOG.md @@ -1,6 +1,11 @@ Unreleased Changes ------------------ +1.28.0 (2022-07-06) +------------------ + +* Feature - This release introduces Group feature, which enables users to group cross-region canaries. + 1.27.0 (2022-05-02) ------------------ diff --git a/gems/aws-sdk-synthetics/VERSION b/gems/aws-sdk-synthetics/VERSION index 5db08bf2dc5..cfc730712d5 100644 --- a/gems/aws-sdk-synthetics/VERSION +++ b/gems/aws-sdk-synthetics/VERSION @@ -1 +1 @@ -1.27.0 +1.28.0 diff --git a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics.rb b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics.rb index d87998c2abf..5307eebd452 100644 --- a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics.rb +++ b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics.rb @@ -28,7 +28,7 @@ # structure. # # synthetics = Aws::Synthetics::Client.new -# resp = synthetics.create_canary(params) +# resp = synthetics.associate_resource(params) # # See {Client} for more information. # @@ -48,6 +48,6 @@ # @!group service module Aws::Synthetics - GEM_VERSION = '1.27.0' + GEM_VERSION = '1.28.0' end diff --git a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client.rb b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client.rb index 79522b63d52..2c8483435d9 100644 --- a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client.rb +++ b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client.rb @@ -351,6 +351,38 @@ def initialize(*args) # @!group API Operations + # Associates a canary with a group. Using groups can help you with + # managing and automating your canaries, and you can also view + # aggregated run results and statistics for all canaries in a group. + # + # You must run this operation in the Region where the canary exists. + # + # @option params [required, String] :group_identifier + # Specifies the group. You can specify the group name, the ARN, or the + # group ID as the `GroupIdentifier`. + # + # @option params [required, String] :resource_arn + # The ARN of the canary that you want to associate with the specified + # group. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.associate_resource({ + # group_identifier: "GroupIdentifier", # required + # resource_arn: "CanaryArn", # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/AssociateResource AWS API Documentation + # + # @overload associate_resource(params = {}) + # @param [Hash] params ({}) + def associate_resource(params = {}, options = {}) + req = build_request(:associate_resource, params) + req.send_request(options) + end + # Creates a canary. Canaries are scripts that monitor your endpoints and # APIs from the outside-in. Canaries help you check the availability and # latency of your web services and troubleshoot anomalies by @@ -362,7 +394,7 @@ def initialize(*args) # # To create canaries, you must have the `CloudWatchSyntheticsFullAccess` # policy. If you are creating a new IAM role for the canary, you also - # need the the `iam:CreateRole`, `iam:CreatePolicy` and + # need the `iam:CreateRole`, `iam:CreatePolicy` and # `iam:AttachRolePolicy` permissions. For more information, see # [Necessary Roles and Permissions][2]. # @@ -427,7 +459,10 @@ def initialize(*args) # # @option params [Types::CanaryRunConfigInput] :run_config # A structure that contains the configuration for individual canary - # runs, such as timeout value. + # runs, such as timeout value and environment variables. + # + # The environment variables keys and values are not encrypted. Do not + # store sensitive information in this field. # # @option params [Integer] :success_retention_period_in_days # The number of days to retain data about successful runs of this @@ -565,12 +600,83 @@ def create_canary(params = {}, options = {}) req.send_request(options) end + # Creates a group which you can use to associate canaries with each + # other, including cross-Region canaries. Using groups can help you with + # managing and automating your canaries, and you can also view + # aggregated run results and statistics for all canaries in a group. + # + # Groups are global resources. When you create a group, it is replicated + # across Amazon Web Services Regions, and you can view it and add + # canaries to it from any Region. Although the group ARN format reflects + # the Region name where it was created, a group is not constrained to + # any Region. This means that you can put canaries from multiple Regions + # into the same group, and then use that group to view and manage all of + # those canaries in a single view. + # + # Groups are supported in all Regions except the Regions that are + # disabled by default. For more information about these Regions, see + # [Enabling a Region][1]. + # + # Each group can contain as many as 10 canaries. You can have as many as + # 20 groups in your account. Any single canary can be a member of up to + # 10 groups. + # + # + # + # [1]: https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable + # + # @option params [required, String] :name + # The name for the group. It can include any Unicode characters. + # + # The names for all groups in your account, across all Regions, must be + # unique. + # + # @option params [Hash] :tags + # A list of key-value pairs to associate with the group. You can + # associate as many as 50 tags with a group. + # + # 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 the resources that have certain tag values. + # + # @return [Types::CreateGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::CreateGroupResponse#group #group} => Types::Group + # + # @example Request syntax with placeholder values + # + # resp = client.create_group({ + # name: "GroupName", # required + # tags: { + # "TagKey" => "TagValue", + # }, + # }) + # + # @example Response structure + # + # resp.group.id #=> String + # resp.group.name #=> String + # resp.group.arn #=> String + # resp.group.tags #=> Hash + # resp.group.tags["TagKey"] #=> String + # resp.group.created_time #=> Time + # resp.group.last_modified_time #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateGroup AWS API Documentation + # + # @overload create_group(params = {}) + # @param [Hash] params ({}) + def create_group(params = {}, options = {}) + req = build_request(:create_group, params) + req.send_request(options) + end + # Permanently deletes the specified canary. # # If you specify `DeleteLambda` to `true`, CloudWatch Synthetics also # deletes the Lambda functions and layers that are used by the canary. # - # Other esources used and created by the canary are not automatically + # Other resources used and created by the canary are not automatically # deleted. After you delete a canary that you do not intend to use # again, you should also delete the following: # @@ -624,6 +730,35 @@ def delete_canary(params = {}, options = {}) req.send_request(options) end + # Deletes a group. The group doesn't need to be empty to be deleted. If + # there are canaries in the group, they are not deleted when you delete + # the group. + # + # Groups are a global resource that appear in all Regions, but the + # request to delete a group must be made from its home Region. You can + # find the home Region of a group within its ARN. + # + # @option params [required, String] :group_identifier + # Specifies which group to delete. You can specify the group name, the + # ARN, or the group ID as the `GroupIdentifier`. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.delete_group({ + # group_identifier: "GroupIdentifier", # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteGroup AWS API Documentation + # + # @overload delete_group(params = {}) + # @param [Hash] params ({}) + def delete_group(params = {}, options = {}) + req = build_request(:delete_group, params) + req.send_request(options) + end + # This operation returns a list of the canaries in your account, along # with full details about each canary. # @@ -757,8 +892,8 @@ def describe_canaries(params = {}, options = {}) # # @option params [String] :next_token # A token that indicates that there is more data available. You can use - # this token in a subsequent `DescribeCanaries` operation to retrieve - # the next set of results. + # this token in a subsequent `DescribeCanariesLastRun` operation to + # retrieve the next set of results. # # @option params [Integer] :max_results # Specify this parameter to limit how many runs are returned each time @@ -870,6 +1005,35 @@ def describe_runtime_versions(params = {}, options = {}) req.send_request(options) end + # Removes a canary from a group. You must run this operation in the + # Region where the canary exists. + # + # @option params [required, String] :group_identifier + # Specifies the group. You can specify the group name, the ARN, or the + # group ID as the `GroupIdentifier`. + # + # @option params [required, String] :resource_arn + # The ARN of the canary that you want to remove from the specified + # group. + # + # @return [Struct] Returns an empty {Seahorse::Client::Response response}. + # + # @example Request syntax with placeholder values + # + # resp = client.disassociate_resource({ + # group_identifier: "GroupIdentifier", # required + # resource_arn: "CanaryArn", # required + # }) + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DisassociateResource AWS API Documentation + # + # @overload disassociate_resource(params = {}) + # @param [Hash] params ({}) + def disassociate_resource(params = {}, options = {}) + req = build_request(:disassociate_resource, params) + req.send_request(options) + end + # Retrieves complete information about one canary. You must specify the # name of the canary that you want. To get a list of canaries and their # names, use [DescribeCanaries][1]. @@ -991,14 +1155,192 @@ def get_canary_runs(params = {}, options = {}) req.send_request(options) end - # Displays the tags associated with a canary. + # Returns information about one group. Groups are a global resource, so + # you can use this operation from any Region. + # + # @option params [required, String] :group_identifier + # Specifies the group to return information for. You can specify the + # group name, the ARN, or the group ID as the `GroupIdentifier`. + # + # @return [Types::GetGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::GetGroupResponse#group #group} => Types::Group + # + # @example Request syntax with placeholder values + # + # resp = client.get_group({ + # group_identifier: "GroupIdentifier", # required + # }) + # + # @example Response structure + # + # resp.group.id #=> String + # resp.group.name #=> String + # resp.group.arn #=> String + # resp.group.tags #=> Hash + # resp.group.tags["TagKey"] #=> String + # resp.group.created_time #=> Time + # resp.group.last_modified_time #=> Time + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetGroup AWS API Documentation + # + # @overload get_group(params = {}) + # @param [Hash] params ({}) + def get_group(params = {}, options = {}) + req = build_request(:get_group, params) + req.send_request(options) + end + + # Returns a list of the groups that the specified canary is associated + # with. The canary that you specify must be in the current Region. + # + # @option params [String] :next_token + # A token that indicates that there is more data available. You can use + # this token in a subsequent operation to retrieve the next set of + # results. + # + # @option params [Integer] :max_results + # Specify this parameter to limit how many groups are returned each time + # you use the `ListAssociatedGroups` operation. If you omit this + # parameter, the default of 20 is used. + # + # @option params [required, String] :resource_arn + # The ARN of the canary that you want to view groups for. + # + # @return [Types::ListAssociatedGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListAssociatedGroupsResponse#groups #groups} => Array<Types::GroupSummary> + # * {Types::ListAssociatedGroupsResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_associated_groups({ + # next_token: "PaginationToken", + # max_results: 1, + # resource_arn: "CanaryArn", # required + # }) + # + # @example Response structure + # + # resp.groups #=> Array + # resp.groups[0].id #=> String + # resp.groups[0].name #=> String + # resp.groups[0].arn #=> String + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListAssociatedGroups AWS API Documentation + # + # @overload list_associated_groups(params = {}) + # @param [Hash] params ({}) + def list_associated_groups(params = {}, options = {}) + req = build_request(:list_associated_groups, params) + req.send_request(options) + end + + # This operation returns a list of the ARNs of the canaries that are + # associated with the specified group. + # + # @option params [String] :next_token + # A token that indicates that there is more data available. You can use + # this token in a subsequent operation to retrieve the next set of + # results. + # + # @option params [Integer] :max_results + # Specify this parameter to limit how many canary ARNs are returned each + # time you use the `ListGroupResources` operation. If you omit this + # parameter, the default of 20 is used. + # + # @option params [required, String] :group_identifier + # Specifies the group to return information for. You can specify the + # group name, the ARN, or the group ID as the `GroupIdentifier`. + # + # @return [Types::ListGroupResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListGroupResourcesResponse#resources #resources} => Array<String> + # * {Types::ListGroupResourcesResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_group_resources({ + # next_token: "PaginationToken", + # max_results: 1, + # group_identifier: "GroupIdentifier", # required + # }) + # + # @example Response structure + # + # resp.resources #=> Array + # resp.resources[0] #=> String + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroupResources AWS API Documentation + # + # @overload list_group_resources(params = {}) + # @param [Hash] params ({}) + def list_group_resources(params = {}, options = {}) + req = build_request(:list_group_resources, params) + req.send_request(options) + end + + # Returns a list of all groups in the account, displaying their names, + # unique IDs, and ARNs. The groups from all Regions are returned. + # + # @option params [String] :next_token + # A token that indicates that there is more data available. You can use + # this token in a subsequent operation to retrieve the next set of + # results. + # + # @option params [Integer] :max_results + # Specify this parameter to limit how many groups are returned each time + # you use the `ListGroups` operation. If you omit this parameter, the + # default of 20 is used. + # + # @return [Types::ListGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: + # + # * {Types::ListGroupsResponse#groups #groups} => Array<Types::GroupSummary> + # * {Types::ListGroupsResponse#next_token #next_token} => String + # + # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}. + # + # @example Request syntax with placeholder values + # + # resp = client.list_groups({ + # next_token: "PaginationToken", + # max_results: 1, + # }) + # + # @example Response structure + # + # resp.groups #=> Array + # resp.groups[0].id #=> String + # resp.groups[0].name #=> String + # resp.groups[0].arn #=> String + # resp.next_token #=> String + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroups AWS API Documentation + # + # @overload list_groups(params = {}) + # @param [Hash] params ({}) + def list_groups(params = {}, options = {}) + req = build_request(:list_groups, params) + req.send_request(options) + end + + # Displays the tags associated with a canary or group. # # @option params [required, String] :resource_arn - # The ARN of the canary that you want to view tags for. + # The ARN of the canary or group that you want to view tags for. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` + # # @return [Types::ListTagsForResourceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods: # # * {Types::ListTagsForResourceResponse#tags #tags} => Hash<String,String> @@ -1006,7 +1348,7 @@ def get_canary_runs(params = {}, options = {}) # @example Request syntax with placeholder values # # resp = client.list_tags_for_resource({ - # resource_arn: "CanaryArn", # required + # resource_arn: "ResourceArn", # required # }) # # @example Response structure @@ -1057,17 +1399,16 @@ def start_canary(params = {}, options = {}) end # Stops the canary to prevent all future runs. If the canary is - # currently running, Synthetics stops waiting for the current run of the - # specified canary to complete. The run that is in progress completes on - # its own, publishes metrics, and uploads artifacts, but it is not - # recorded in Synthetics as a completed run. + # currently running,the run that is in progress completes on its own, + # publishes metrics, and uploads artifacts, but it is not recorded in + # Synthetics as a completed run. # # You can use `StartCanary` to start it running again with the canary’s # current schedule at any point in the future. # # @option params [required, String] :name # The name of the canary that you want to stop. To find the names of - # your canaries, use [DescribeCanaries][1]. + # your canaries, use [ListCanaries][1]. # # # @@ -1090,7 +1431,8 @@ def stop_canary(params = {}, options = {}) req.send_request(options) end - # Assigns one or more tags (key-value pairs) to the specified canary. + # Assigns one or more tags (key-value pairs) to the specified canary or + # group. # # Tags can help you organize and categorize your resources. You can also # use them to scope user permissions, by granting a user permission to @@ -1099,29 +1441,33 @@ def stop_canary(params = {}, options = {}) # Tags don't have any semantic meaning to Amazon Web Services and are # interpreted strictly as strings of characters. # - # You can use the `TagResource` action with a canary that already has - # tags. If you specify a new tag key for the alarm, this tag is appended - # to the list of tags associated with the alarm. If you specify a tag - # key that is already associated with the alarm, the new tag value that - # you specify replaces the previous value for that tag. + # You can use the `TagResource` action with a resource that already has + # tags. If you specify a new tag key for the resource, 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 canary. + # You can associate as many as 50 tags with a canary or group. # # @option params [required, String] :resource_arn - # The ARN of the canary that you're adding tags to. + # The ARN of the canary or group that you're adding tags to. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` + # # @option params [required, Hash] :tags - # The list of key-value pairs to associate with the canary. + # The list of key-value pairs to associate with the resource. # # @return [Struct] Returns an empty {Seahorse::Client::Response response}. # # @example Request syntax with placeholder values # # resp = client.tag_resource({ - # resource_arn: "CanaryArn", # required + # resource_arn: "ResourceArn", # required # tags: { # required # "TagKey" => "TagValue", # }, @@ -1136,14 +1482,17 @@ def tag_resource(params = {}, options = {}) req.send_request(options) end - # Removes one or more tags from the specified canary. + # Removes one or more tags from the specified resource. # # @option params [required, String] :resource_arn - # The ARN of the canary that you're removing tags from. + # The ARN of the canary or group that you're removing tags from. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` + # # @option params [required, Array] :tag_keys # The list of tag keys to remove from the resource. # @@ -1152,7 +1501,7 @@ def tag_resource(params = {}, options = {}) # @example Request syntax with placeholder values # # resp = client.untag_resource({ - # resource_arn: "CanaryArn", # required + # resource_arn: "ResourceArn", # required # tag_keys: ["TagKey"], # required # }) # @@ -1165,8 +1514,7 @@ def untag_resource(params = {}, options = {}) req.send_request(options) end - # Use this operation to change the settings of a canary that has already - # been created. + # Updates the configuration of a canary that has already been created. # # You can't use this operation to update the tags of an existing # canary. To change the tags of an existing canary, use @@ -1228,6 +1576,9 @@ def untag_resource(params = {}, options = {}) # A structure that contains the timeout value that is used for each # individual run of the canary. # + # The environment variables keys and values are not encrypted. Do not + # store sensitive information in this field. + # # @option params [Integer] :success_retention_period_in_days # The number of days to retain data about successful runs of this # canary. @@ -1342,7 +1693,7 @@ def build_request(operation_name, params = {}) params: params, config: config) context[:gem_name] = 'aws-sdk-synthetics' - context[:gem_version] = '1.27.0' + context[:gem_version] = '1.28.0' Seahorse::Client::Request.new(handlers, context) end diff --git a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client_api.rb b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client_api.rb index 2522d317003..fc6237b0e8b 100644 --- a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client_api.rb +++ b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/client_api.rb @@ -15,6 +15,9 @@ module ClientApi ArtifactConfigInput = Shapes::StructureShape.new(name: 'ArtifactConfigInput') ArtifactConfigOutput = Shapes::StructureShape.new(name: 'ArtifactConfigOutput') + AssociateResourceRequest = Shapes::StructureShape.new(name: 'AssociateResourceRequest') + AssociateResourceResponse = Shapes::StructureShape.new(name: 'AssociateResourceResponse') + BadRequestException = Shapes::StructureShape.new(name: 'BadRequestException') BaseScreenshot = Shapes::StructureShape.new(name: 'BaseScreenshot') BaseScreenshotConfigIgnoreCoordinate = Shapes::StringShape.new(name: 'BaseScreenshotConfigIgnoreCoordinate') BaseScreenshotIgnoreCoordinates = Shapes::ListShape.new(name: 'BaseScreenshotIgnoreCoordinates') @@ -46,8 +49,12 @@ module ClientApi ConflictException = Shapes::StructureShape.new(name: 'ConflictException') CreateCanaryRequest = Shapes::StructureShape.new(name: 'CreateCanaryRequest') CreateCanaryResponse = Shapes::StructureShape.new(name: 'CreateCanaryResponse') + CreateGroupRequest = Shapes::StructureShape.new(name: 'CreateGroupRequest') + CreateGroupResponse = Shapes::StructureShape.new(name: 'CreateGroupResponse') DeleteCanaryRequest = Shapes::StructureShape.new(name: 'DeleteCanaryRequest') DeleteCanaryResponse = Shapes::StructureShape.new(name: 'DeleteCanaryResponse') + DeleteGroupRequest = Shapes::StructureShape.new(name: 'DeleteGroupRequest') + DeleteGroupResponse = Shapes::StructureShape.new(name: 'DeleteGroupResponse') DescribeCanariesLastRunNameFilter = Shapes::ListShape.new(name: 'DescribeCanariesLastRunNameFilter') DescribeCanariesLastRunRequest = Shapes::StructureShape.new(name: 'DescribeCanariesLastRunRequest') DescribeCanariesLastRunResponse = Shapes::StructureShape.new(name: 'DescribeCanariesLastRunResponse') @@ -56,6 +63,8 @@ module ClientApi DescribeCanariesResponse = Shapes::StructureShape.new(name: 'DescribeCanariesResponse') DescribeRuntimeVersionsRequest = Shapes::StructureShape.new(name: 'DescribeRuntimeVersionsRequest') DescribeRuntimeVersionsResponse = Shapes::StructureShape.new(name: 'DescribeRuntimeVersionsResponse') + DisassociateResourceRequest = Shapes::StructureShape.new(name: 'DisassociateResourceRequest') + DisassociateResourceResponse = Shapes::StructureShape.new(name: 'DisassociateResourceResponse') EncryptionMode = Shapes::StringShape.new(name: 'EncryptionMode') EnvironmentVariableName = Shapes::StringShape.new(name: 'EnvironmentVariableName') EnvironmentVariableValue = Shapes::StringShape.new(name: 'EnvironmentVariableValue') @@ -66,18 +75,37 @@ module ClientApi GetCanaryResponse = Shapes::StructureShape.new(name: 'GetCanaryResponse') GetCanaryRunsRequest = Shapes::StructureShape.new(name: 'GetCanaryRunsRequest') GetCanaryRunsResponse = Shapes::StructureShape.new(name: 'GetCanaryRunsResponse') + GetGroupRequest = Shapes::StructureShape.new(name: 'GetGroupRequest') + GetGroupResponse = Shapes::StructureShape.new(name: 'GetGroupResponse') + Group = Shapes::StructureShape.new(name: 'Group') + GroupArn = Shapes::StringShape.new(name: 'GroupArn') + GroupIdentifier = Shapes::StringShape.new(name: 'GroupIdentifier') + GroupName = Shapes::StringShape.new(name: 'GroupName') + GroupSummary = Shapes::StructureShape.new(name: 'GroupSummary') + GroupSummaryList = Shapes::ListShape.new(name: 'GroupSummaryList') + InternalFailureException = Shapes::StructureShape.new(name: 'InternalFailureException') InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException') KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn') + ListAssociatedGroupsRequest = Shapes::StructureShape.new(name: 'ListAssociatedGroupsRequest') + ListAssociatedGroupsResponse = Shapes::StructureShape.new(name: 'ListAssociatedGroupsResponse') + ListGroupResourcesRequest = Shapes::StructureShape.new(name: 'ListGroupResourcesRequest') + ListGroupResourcesResponse = Shapes::StructureShape.new(name: 'ListGroupResourcesResponse') + ListGroupsRequest = Shapes::StructureShape.new(name: 'ListGroupsRequest') + ListGroupsResponse = Shapes::StructureShape.new(name: 'ListGroupsResponse') ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest') ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse') MaxCanaryResults = Shapes::IntegerShape.new(name: 'MaxCanaryResults') MaxFifteenMinutesInSeconds = Shapes::IntegerShape.new(name: 'MaxFifteenMinutesInSeconds') + MaxGroupResults = Shapes::IntegerShape.new(name: 'MaxGroupResults') MaxOneYearInSeconds = Shapes::IntegerShape.new(name: 'MaxOneYearInSeconds') MaxSize100 = Shapes::IntegerShape.new(name: 'MaxSize100') MaxSize1024 = Shapes::IntegerShape.new(name: 'MaxSize1024') MaxSize3008 = Shapes::IntegerShape.new(name: 'MaxSize3008') + NotFoundException = Shapes::StructureShape.new(name: 'NotFoundException') NullableBoolean = Shapes::BooleanShape.new(name: 'NullableBoolean') + PaginationToken = Shapes::StringShape.new(name: 'PaginationToken') RequestEntityTooLargeException = Shapes::StructureShape.new(name: 'RequestEntityTooLargeException') + ResourceArn = Shapes::StringShape.new(name: 'ResourceArn') ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException') RoleArn = Shapes::StringShape.new(name: 'RoleArn') RuntimeVersion = Shapes::StructureShape.new(name: 'RuntimeVersion') @@ -85,11 +113,13 @@ module ClientApi S3EncryptionConfig = Shapes::StructureShape.new(name: 'S3EncryptionConfig') SecurityGroupId = Shapes::StringShape.new(name: 'SecurityGroupId') SecurityGroupIds = Shapes::ListShape.new(name: 'SecurityGroupIds') + ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException') StartCanaryRequest = Shapes::StructureShape.new(name: 'StartCanaryRequest') StartCanaryResponse = Shapes::StructureShape.new(name: 'StartCanaryResponse') StopCanaryRequest = Shapes::StructureShape.new(name: 'StopCanaryRequest') StopCanaryResponse = Shapes::StructureShape.new(name: 'StopCanaryResponse') String = Shapes::StringShape.new(name: 'String') + StringList = Shapes::ListShape.new(name: 'StringList') SubnetId = Shapes::StringShape.new(name: 'SubnetId') SubnetIds = Shapes::ListShape.new(name: 'SubnetIds') TagKey = Shapes::StringShape.new(name: 'TagKey') @@ -100,6 +130,7 @@ module ClientApi TagValue = Shapes::StringShape.new(name: 'TagValue') Timestamp = Shapes::TimestampShape.new(name: 'Timestamp') Token = Shapes::StringShape.new(name: 'Token') + TooManyRequestsException = Shapes::StructureShape.new(name: 'TooManyRequestsException') UUID = Shapes::StringShape.new(name: 'UUID') UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest') UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse') @@ -119,6 +150,15 @@ module ClientApi ArtifactConfigOutput.add_member(:s3_encryption, Shapes::ShapeRef.new(shape: S3EncryptionConfig, location_name: "S3Encryption")) ArtifactConfigOutput.struct_class = Types::ArtifactConfigOutput + AssociateResourceRequest.add_member(:group_identifier, Shapes::ShapeRef.new(shape: GroupIdentifier, required: true, location: "uri", location_name: "groupIdentifier")) + AssociateResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location_name: "ResourceArn")) + AssociateResourceRequest.struct_class = Types::AssociateResourceRequest + + AssociateResourceResponse.struct_class = Types::AssociateResourceResponse + + BadRequestException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) + BadRequestException.struct_class = Types::BadRequestException + BaseScreenshot.add_member(:screenshot_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ScreenshotName")) BaseScreenshot.add_member(:ignore_coordinates, Shapes::ShapeRef.new(shape: BaseScreenshotIgnoreCoordinates, location_name: "IgnoreCoordinates")) BaseScreenshot.struct_class = Types::BaseScreenshot @@ -233,12 +273,24 @@ module ClientApi CreateCanaryResponse.add_member(:canary, Shapes::ShapeRef.new(shape: Canary, location_name: "Canary")) CreateCanaryResponse.struct_class = Types::CreateCanaryResponse + CreateGroupRequest.add_member(:name, Shapes::ShapeRef.new(shape: GroupName, required: true, location_name: "Name")) + CreateGroupRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) + CreateGroupRequest.struct_class = Types::CreateGroupRequest + + CreateGroupResponse.add_member(:group, Shapes::ShapeRef.new(shape: Group, location_name: "Group")) + CreateGroupResponse.struct_class = Types::CreateGroupResponse + DeleteCanaryRequest.add_member(:name, Shapes::ShapeRef.new(shape: CanaryName, required: true, location: "uri", location_name: "name")) DeleteCanaryRequest.add_member(:delete_lambda, Shapes::ShapeRef.new(shape: boolean, location: "querystring", location_name: "deleteLambda")) DeleteCanaryRequest.struct_class = Types::DeleteCanaryRequest DeleteCanaryResponse.struct_class = Types::DeleteCanaryResponse + DeleteGroupRequest.add_member(:group_identifier, Shapes::ShapeRef.new(shape: GroupIdentifier, required: true, location: "uri", location_name: "groupIdentifier")) + DeleteGroupRequest.struct_class = Types::DeleteGroupRequest + + DeleteGroupResponse.struct_class = Types::DeleteGroupResponse + DescribeCanariesLastRunNameFilter.member = Shapes::ShapeRef.new(shape: CanaryName) DescribeCanariesLastRunRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "NextToken")) @@ -269,6 +321,12 @@ module ClientApi DescribeRuntimeVersionsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "NextToken")) DescribeRuntimeVersionsResponse.struct_class = Types::DescribeRuntimeVersionsResponse + DisassociateResourceRequest.add_member(:group_identifier, Shapes::ShapeRef.new(shape: GroupIdentifier, required: true, location: "uri", location_name: "groupIdentifier")) + DisassociateResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location_name: "ResourceArn")) + DisassociateResourceRequest.struct_class = Types::DisassociateResourceRequest + + DisassociateResourceResponse.struct_class = Types::DisassociateResourceResponse + EnvironmentVariablesMap.key = Shapes::ShapeRef.new(shape: EnvironmentVariableName) EnvironmentVariablesMap.value = Shapes::ShapeRef.new(shape: EnvironmentVariableValue) @@ -287,15 +345,68 @@ module ClientApi GetCanaryRunsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "NextToken")) GetCanaryRunsResponse.struct_class = Types::GetCanaryRunsResponse + GetGroupRequest.add_member(:group_identifier, Shapes::ShapeRef.new(shape: GroupIdentifier, required: true, location: "uri", location_name: "groupIdentifier")) + GetGroupRequest.struct_class = Types::GetGroupRequest + + GetGroupResponse.add_member(:group, Shapes::ShapeRef.new(shape: Group, location_name: "Group")) + GetGroupResponse.struct_class = Types::GetGroupResponse + + Group.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "Id")) + Group.add_member(:name, Shapes::ShapeRef.new(shape: GroupName, location_name: "Name")) + Group.add_member(:arn, Shapes::ShapeRef.new(shape: GroupArn, location_name: "Arn")) + Group.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) + Group.add_member(:created_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTime")) + Group.add_member(:last_modified_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastModifiedTime")) + Group.struct_class = Types::Group + + GroupSummary.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "Id")) + GroupSummary.add_member(:name, Shapes::ShapeRef.new(shape: GroupName, location_name: "Name")) + GroupSummary.add_member(:arn, Shapes::ShapeRef.new(shape: GroupArn, location_name: "Arn")) + GroupSummary.struct_class = Types::GroupSummary + + GroupSummaryList.member = Shapes::ShapeRef.new(shape: GroupSummary) + + InternalFailureException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) + InternalFailureException.struct_class = Types::InternalFailureException + InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) InternalServerException.struct_class = Types::InternalServerException - ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location: "uri", location_name: "resourceArn")) + ListAssociatedGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) + ListAssociatedGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxGroupResults, location_name: "MaxResults")) + ListAssociatedGroupsRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location: "uri", location_name: "resourceArn")) + ListAssociatedGroupsRequest.struct_class = Types::ListAssociatedGroupsRequest + + ListAssociatedGroupsResponse.add_member(:groups, Shapes::ShapeRef.new(shape: GroupSummaryList, location_name: "Groups")) + ListAssociatedGroupsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) + ListAssociatedGroupsResponse.struct_class = Types::ListAssociatedGroupsResponse + + ListGroupResourcesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) + ListGroupResourcesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxGroupResults, location_name: "MaxResults")) + ListGroupResourcesRequest.add_member(:group_identifier, Shapes::ShapeRef.new(shape: GroupIdentifier, required: true, location: "uri", location_name: "groupIdentifier")) + ListGroupResourcesRequest.struct_class = Types::ListGroupResourcesRequest + + ListGroupResourcesResponse.add_member(:resources, Shapes::ShapeRef.new(shape: StringList, location_name: "Resources")) + ListGroupResourcesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) + ListGroupResourcesResponse.struct_class = Types::ListGroupResourcesResponse + + ListGroupsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: PaginationToken, location_name: "NextToken")) + ListGroupsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxGroupResults, location_name: "MaxResults")) + ListGroupsRequest.struct_class = Types::ListGroupsRequest + + ListGroupsResponse.add_member(:groups, Shapes::ShapeRef.new(shape: GroupSummaryList, location_name: "Groups")) + ListGroupsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "NextToken")) + ListGroupsResponse.struct_class = Types::ListGroupsResponse + + ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location: "uri", location_name: "resourceArn")) ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest ListTagsForResourceResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags")) ListTagsForResourceResponse.struct_class = Types::ListTagsForResourceResponse + NotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) + NotFoundException.struct_class = Types::NotFoundException + RequestEntityTooLargeException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) RequestEntityTooLargeException.struct_class = Types::RequestEntityTooLargeException @@ -316,6 +427,9 @@ module ClientApi SecurityGroupIds.member = Shapes::ShapeRef.new(shape: SecurityGroupId) + ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) + ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException + StartCanaryRequest.add_member(:name, Shapes::ShapeRef.new(shape: CanaryName, required: true, location: "uri", location_name: "name")) StartCanaryRequest.struct_class = Types::StartCanaryRequest @@ -326,6 +440,8 @@ module ClientApi StopCanaryResponse.struct_class = Types::StopCanaryResponse + StringList.member = Shapes::ShapeRef.new(shape: String) + SubnetIds.member = Shapes::ShapeRef.new(shape: SubnetId) TagKeyList.member = Shapes::ShapeRef.new(shape: TagKey) @@ -333,13 +449,16 @@ module ClientApi TagMap.key = Shapes::ShapeRef.new(shape: TagKey) TagMap.value = Shapes::ShapeRef.new(shape: TagValue) - TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location: "uri", location_name: "resourceArn")) + TagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location: "uri", location_name: "resourceArn")) TagResourceRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, required: true, location_name: "Tags")) TagResourceRequest.struct_class = Types::TagResourceRequest TagResourceResponse.struct_class = Types::TagResourceResponse - UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: CanaryArn, required: true, location: "uri", location_name: "resourceArn")) + TooManyRequestsException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message")) + TooManyRequestsException.struct_class = Types::TooManyRequestsException + + UntagResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location: "uri", location_name: "resourceArn")) UntagResourceRequest.add_member(:tag_keys, Shapes::ShapeRef.new(shape: TagKeyList, required: true, location: "querystring", location_name: "tagKeys")) UntagResourceRequest.struct_class = Types::UntagResourceRequest @@ -400,6 +519,19 @@ module ClientApi "uid" => "synthetics-2017-10-11", } + api.add_operation(:associate_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "AssociateResource" + o.http_method = "PATCH" + o.http_request_uri = "/group/{groupIdentifier}/associate" + o.input = Shapes::ShapeRef.new(shape: AssociateResourceRequest) + o.output = Shapes::ShapeRef.new(shape: AssociateResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + end) + api.add_operation(:create_canary, Seahorse::Model::Operation.new.tap do |o| o.name = "CreateCanary" o.http_method = "POST" @@ -411,6 +543,18 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: RequestEntityTooLargeException) end) + api.add_operation(:create_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "CreateGroup" + o.http_method = "POST" + o.http_request_uri = "/group" + o.input = Shapes::ShapeRef.new(shape: CreateGroupRequest) + o.output = Shapes::ShapeRef.new(shape: CreateGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException) + end) + api.add_operation(:delete_canary, Seahorse::Model::Operation.new.tap do |o| o.name = "DeleteCanary" o.http_method = "DELETE" @@ -423,6 +567,18 @@ module ClientApi o.errors << Shapes::ShapeRef.new(shape: ConflictException) end) + api.add_operation(:delete_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "DeleteGroup" + o.http_method = "DELETE" + o.http_request_uri = "/group/{groupIdentifier}" + o.input = Shapes::ShapeRef.new(shape: DeleteGroupRequest) + o.output = Shapes::ShapeRef.new(shape: DeleteGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + end) + api.add_operation(:describe_canaries, Seahorse::Model::Operation.new.tap do |o| o.name = "DescribeCanaries" o.http_method = "POST" @@ -471,6 +627,18 @@ module ClientApi ) end) + api.add_operation(:disassociate_resource, Seahorse::Model::Operation.new.tap do |o| + o.name = "DisassociateResource" + o.http_method = "PATCH" + o.http_request_uri = "/group/{groupIdentifier}/disassociate" + o.input = Shapes::ShapeRef.new(shape: DisassociateResourceRequest) + o.output = Shapes::ShapeRef.new(shape: DisassociateResourceResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + end) + api.add_operation(:get_canary, Seahorse::Model::Operation.new.tap do |o| o.name = "GetCanary" o.http_method = "GET" @@ -498,15 +666,80 @@ module ClientApi ) end) + api.add_operation(:get_group, Seahorse::Model::Operation.new.tap do |o| + o.name = "GetGroup" + o.http_method = "GET" + o.http_request_uri = "/group/{groupIdentifier}" + o.input = Shapes::ShapeRef.new(shape: GetGroupRequest) + o.output = Shapes::ShapeRef.new(shape: GetGroupResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + end) + + api.add_operation(:list_associated_groups, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListAssociatedGroups" + o.http_method = "POST" + o.http_request_uri = "/resource/{resourceArn}/groups" + o.input = Shapes::ShapeRef.new(shape: ListAssociatedGroupsRequest) + o.output = Shapes::ShapeRef.new(shape: ListAssociatedGroupsResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_group_resources, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListGroupResources" + o.http_method = "POST" + o.http_request_uri = "/group/{groupIdentifier}/resources" + o.input = Shapes::ShapeRef.new(shape: ListGroupResourcesRequest) + o.output = Shapes::ShapeRef.new(shape: ListGroupResourcesResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + + api.add_operation(:list_groups, Seahorse::Model::Operation.new.tap do |o| + o.name = "ListGroups" + o.http_method = "POST" + o.http_request_uri = "/groups" + o.input = Shapes::ShapeRef.new(shape: ListGroupsRequest) + o.output = Shapes::ShapeRef.new(shape: ListGroupsResponse) + o.errors << Shapes::ShapeRef.new(shape: InternalServerException) + o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o[:pager] = Aws::Pager.new( + limit_key: "max_results", + tokens: { + "next_token" => "next_token" + } + ) + end) + api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o| o.name = "ListTagsForResource" o.http_method = "GET" o.http_request_uri = "/tags/{resourceArn}" o.input = Shapes::ShapeRef.new(shape: ListTagsForResourceRequest) o.output = Shapes::ShapeRef.new(shape: ListTagsForResourceResponse) - o.errors << Shapes::ShapeRef.new(shape: InternalServerException) - o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) - o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: NotFoundException) + o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalFailureException) end) api.add_operation(:start_canary, Seahorse::Model::Operation.new.tap do |o| @@ -539,9 +772,11 @@ module ClientApi o.http_request_uri = "/tags/{resourceArn}" o.input = Shapes::ShapeRef.new(shape: TagResourceRequest) o.output = Shapes::ShapeRef.new(shape: TagResourceResponse) - o.errors << Shapes::ShapeRef.new(shape: InternalServerException) - o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) - o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: NotFoundException) + o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalFailureException) end) api.add_operation(:untag_resource, Seahorse::Model::Operation.new.tap do |o| @@ -550,9 +785,11 @@ module ClientApi o.http_request_uri = "/tags/{resourceArn}" o.input = Shapes::ShapeRef.new(shape: UntagResourceRequest) o.output = Shapes::ShapeRef.new(shape: UntagResourceResponse) - o.errors << Shapes::ShapeRef.new(shape: InternalServerException) - o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException) - o.errors << Shapes::ShapeRef.new(shape: ValidationException) + o.errors << Shapes::ShapeRef.new(shape: BadRequestException) + o.errors << Shapes::ShapeRef.new(shape: NotFoundException) + o.errors << Shapes::ShapeRef.new(shape: TooManyRequestsException) + o.errors << Shapes::ShapeRef.new(shape: ConflictException) + o.errors << Shapes::ShapeRef.new(shape: InternalFailureException) end) api.add_operation(:update_canary, Seahorse::Model::Operation.new.tap do |o| diff --git a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/errors.rb b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/errors.rb index 7295313f659..9dbd3ab9631 100644 --- a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/errors.rb +++ b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/errors.rb @@ -27,10 +27,15 @@ module Aws::Synthetics # See {Seahorse::Client::RequestContext} for more information. # # ## Error Classes + # * {BadRequestException} # * {ConflictException} + # * {InternalFailureException} # * {InternalServerException} + # * {NotFoundException} # * {RequestEntityTooLargeException} # * {ResourceNotFoundException} + # * {ServiceQuotaExceededException} + # * {TooManyRequestsException} # * {ValidationException} # # Additionally, error classes are dynamically generated for service errors based on the error code @@ -39,6 +44,21 @@ module Errors extend Aws::Errors::DynamicErrors + class BadRequestException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Synthetics::Types::BadRequestException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + class ConflictException < ServiceError # @param [Seahorse::Client::RequestContext] context @@ -54,6 +74,21 @@ def message end end + class InternalFailureException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Synthetics::Types::InternalFailureException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + class InternalServerException < ServiceError # @param [Seahorse::Client::RequestContext] context @@ -69,6 +104,21 @@ def message end end + class NotFoundException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Synthetics::Types::NotFoundException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + class RequestEntityTooLargeException < ServiceError # @param [Seahorse::Client::RequestContext] context @@ -99,6 +149,36 @@ def message end end + class ServiceQuotaExceededException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Synthetics::Types::ServiceQuotaExceededException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + + class TooManyRequestsException < ServiceError + + # @param [Seahorse::Client::RequestContext] context + # @param [String] message + # @param [Aws::Synthetics::Types::TooManyRequestsException] data + def initialize(context, message, data = Aws::EmptyStructure.new) + super(context, message, data) + end + + # @return [String] + def message + @message || @data[:message] + end + end + class ValidationException < ServiceError # @param [Seahorse::Client::RequestContext] context diff --git a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/types.rb b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/types.rb index 3396f768795..3384b42ef62 100644 --- a/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/types.rb +++ b/gems/aws-sdk-synthetics/lib/aws-sdk-synthetics/types.rb @@ -62,6 +62,50 @@ class ArtifactConfigOutput < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass AssociateResourceRequest + # data as a hash: + # + # { + # group_identifier: "GroupIdentifier", # required + # resource_arn: "CanaryArn", # required + # } + # + # @!attribute [rw] group_identifier + # Specifies the group. You can specify the group name, the ARN, or the + # group ID as the `GroupIdentifier`. + # @return [String] + # + # @!attribute [rw] resource_arn + # The ARN of the canary that you want to associate with the specified + # group. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/AssociateResourceRequest AWS API Documentation + # + class AssociateResourceRequest < Struct.new( + :group_identifier, + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/AssociateResourceResponse AWS API Documentation + # + class AssociateResourceResponse < Aws::EmptyStructure; end + + # The request was not valid. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/BadRequestException AWS API Documentation + # + class BadRequestException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + # A structure representing a screenshot that is used as a baseline # during visual monitoring comparisons made by the canary. # @@ -82,8 +126,12 @@ class ArtifactConfigOutput < Struct.new( # @!attribute [rw] ignore_coordinates # Coordinates that define the part of a screen to ignore during # screenshot comparisons. To obtain the coordinates to use here, use - # the CloudWatch Logs console to draw the boundaries on the screen. - # For more information, see \\\{LINK\\} + # the CloudWatch console to draw the boundaries on the screen. For + # more information, see [ Editing or deleting a canary][1] + # + # + # + # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/synthetics_canaries_deletion.html # @return [Array] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/BaseScreenshot AWS API Documentation @@ -422,6 +470,9 @@ class CanaryRun < Struct.new( # for your environment variables. For more information about reserved # keys, see [ Runtime environment variables][1]. # + # The environment variables keys and values are not encrypted. Do not + # store sensitive information in this field. + # # # # [1]: https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime @@ -773,7 +824,10 @@ class ConflictException < Struct.new( # # @!attribute [rw] run_config # A structure that contains the configuration for individual canary - # runs, such as timeout value. + # runs, such as timeout value and environment variables. + # + # The environment variables keys and values are not encrypted. Do not + # store sensitive information in this field. # @return [Types::CanaryRunConfigInput] # # @!attribute [rw] success_retention_period_in_days @@ -855,6 +909,55 @@ class CreateCanaryResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass CreateGroupRequest + # data as a hash: + # + # { + # name: "GroupName", # required + # tags: { + # "TagKey" => "TagValue", + # }, + # } + # + # @!attribute [rw] name + # The name for the group. It can include any Unicode characters. + # + # The names for all groups in your account, across all Regions, must + # be unique. + # @return [String] + # + # @!attribute [rw] tags + # A list of key-value pairs to associate with the group. You can + # associate as many as 50 tags with a group. + # + # 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 the resources that have certain + # tag values. + # @return [Hash] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateGroupRequest AWS API Documentation + # + class CreateGroupRequest < Struct.new( + :name, + :tags) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] group + # A structure that contains information about the group that was just + # created. + # @return [Types::Group] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateGroupResponse AWS API Documentation + # + class CreateGroupResponse < Struct.new( + :group) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass DeleteCanaryRequest # data as a hash: # @@ -892,6 +995,30 @@ class DeleteCanaryRequest < Struct.new( # class DeleteCanaryResponse < Aws::EmptyStructure; end + # @note When making an API call, you may pass DeleteGroupRequest + # data as a hash: + # + # { + # group_identifier: "GroupIdentifier", # required + # } + # + # @!attribute [rw] group_identifier + # Specifies which group to delete. You can specify the group name, the + # ARN, or the group ID as the `GroupIdentifier`. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteGroupRequest AWS API Documentation + # + class DeleteGroupRequest < Struct.new( + :group_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteGroupResponse AWS API Documentation + # + class DeleteGroupResponse < Aws::EmptyStructure; end + # @note When making an API call, you may pass DescribeCanariesLastRunRequest # data as a hash: # @@ -903,8 +1030,8 @@ class DeleteCanaryResponse < Aws::EmptyStructure; end # # @!attribute [rw] next_token # A token that indicates that there is more data available. You can - # use this token in a subsequent `DescribeCanaries` operation to - # retrieve the next set of results. + # use this token in a subsequent `DescribeCanariesLastRun` operation + # to retrieve the next set of results. # @return [String] # # @!attribute [rw] max_results @@ -1081,6 +1208,37 @@ class DescribeRuntimeVersionsResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass DisassociateResourceRequest + # data as a hash: + # + # { + # group_identifier: "GroupIdentifier", # required + # resource_arn: "CanaryArn", # required + # } + # + # @!attribute [rw] group_identifier + # Specifies the group. You can specify the group name, the ARN, or the + # group ID as the `GroupIdentifier`. + # @return [String] + # + # @!attribute [rw] resource_arn + # The ARN of the canary that you want to remove from the specified + # group. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DisassociateResourceRequest AWS API Documentation + # + class DisassociateResourceRequest < Struct.new( + :group_identifier, + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DisassociateResourceResponse AWS API Documentation + # + class DisassociateResourceResponse < Aws::EmptyStructure; end + # @note When making an API call, you may pass GetCanaryRequest # data as a hash: # @@ -1101,7 +1259,7 @@ class GetCanaryRequest < Struct.new( end # @!attribute [rw] canary - # A strucure that contains the full information about the canary. + # A structure that contains the full information about the canary. # @return [Types::Canary] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanaryResponse AWS API Documentation @@ -1167,6 +1325,114 @@ class GetCanaryRunsResponse < Struct.new( include Aws::Structure end + # @note When making an API call, you may pass GetGroupRequest + # data as a hash: + # + # { + # group_identifier: "GroupIdentifier", # required + # } + # + # @!attribute [rw] group_identifier + # Specifies the group to return information for. You can specify the + # group name, the ARN, or the group ID as the `GroupIdentifier`. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetGroupRequest AWS API Documentation + # + class GetGroupRequest < Struct.new( + :group_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] group + # A structure that contains information about the group. + # @return [Types::Group] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetGroupResponse AWS API Documentation + # + class GetGroupResponse < Struct.new( + :group) + SENSITIVE = [] + include Aws::Structure + end + + # This structure contains information about one group. + # + # @!attribute [rw] id + # The unique ID of the group. + # @return [String] + # + # @!attribute [rw] name + # The name of the group. + # @return [String] + # + # @!attribute [rw] arn + # The ARN of the group. + # @return [String] + # + # @!attribute [rw] tags + # The list of key-value pairs that are associated with the canary. + # @return [Hash] + # + # @!attribute [rw] created_time + # The date and time that the group was created. + # @return [Time] + # + # @!attribute [rw] last_modified_time + # The date and time that the group was most recently updated. + # @return [Time] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/Group AWS API Documentation + # + class Group < Struct.new( + :id, + :name, + :arn, + :tags, + :created_time, + :last_modified_time) + SENSITIVE = [] + include Aws::Structure + end + + # A structure containing some information about a group. + # + # @!attribute [rw] id + # The unique ID of the group. + # @return [String] + # + # @!attribute [rw] name + # The name of the group. + # @return [String] + # + # @!attribute [rw] arn + # The ARN of the group. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GroupSummary AWS API Documentation + # + class GroupSummary < Struct.new( + :id, + :name, + :arn) + SENSITIVE = [] + include Aws::Structure + end + + # An internal failure occurred. Try the operation again. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/InternalFailureException AWS API Documentation + # + class InternalFailureException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + # An unknown internal error occurred. # # @!attribute [rw] message @@ -1180,18 +1446,181 @@ class InternalServerException < Struct.new( include Aws::Structure end - # @note When making an API call, you may pass ListTagsForResourceRequest + # @note When making an API call, you may pass ListAssociatedGroupsRequest # data as a hash: # # { + # next_token: "PaginationToken", + # max_results: 1, # resource_arn: "CanaryArn", # required # } # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent operation to retrieve the next set of + # results. + # @return [String] + # + # @!attribute [rw] max_results + # Specify this parameter to limit how many groups are returned each + # time you use the `ListAssociatedGroups` operation. If you omit this + # parameter, the default of 20 is used. + # @return [Integer] + # # @!attribute [rw] resource_arn - # The ARN of the canary that you want to view tags for. + # The ARN of the canary that you want to view groups for. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListAssociatedGroupsRequest AWS API Documentation + # + class ListAssociatedGroupsRequest < Struct.new( + :next_token, + :max_results, + :resource_arn) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] groups + # An array of structures that contain information about the groups + # that this canary is associated with. + # @return [Array] + # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent `ListAssociatedGroups` operation to + # retrieve the next set of results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListAssociatedGroupsResponse AWS API Documentation + # + class ListAssociatedGroupsResponse < Struct.new( + :groups, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListGroupResourcesRequest + # data as a hash: + # + # { + # next_token: "PaginationToken", + # max_results: 1, + # group_identifier: "GroupIdentifier", # required + # } + # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent operation to retrieve the next set of + # results. + # @return [String] + # + # @!attribute [rw] max_results + # Specify this parameter to limit how many canary ARNs are returned + # each time you use the `ListGroupResources` operation. If you omit + # this parameter, the default of 20 is used. + # @return [Integer] + # + # @!attribute [rw] group_identifier + # Specifies the group to return information for. You can specify the + # group name, the ARN, or the group ID as the `GroupIdentifier`. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroupResourcesRequest AWS API Documentation + # + class ListGroupResourcesRequest < Struct.new( + :next_token, + :max_results, + :group_identifier) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] resources + # An array of ARNs. These ARNs are for the canaries that are + # associated with the group. + # @return [Array] + # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent `ListGroupResources` operation to + # retrieve the next set of results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroupResourcesResponse AWS API Documentation + # + class ListGroupResourcesResponse < Struct.new( + :resources, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListGroupsRequest + # data as a hash: + # + # { + # next_token: "PaginationToken", + # max_results: 1, + # } + # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent operation to retrieve the next set of + # results. + # @return [String] + # + # @!attribute [rw] max_results + # Specify this parameter to limit how many groups are returned each + # time you use the `ListGroups` operation. If you omit this parameter, + # the default of 20 is used. + # @return [Integer] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroupsRequest AWS API Documentation + # + class ListGroupsRequest < Struct.new( + :next_token, + :max_results) + SENSITIVE = [] + include Aws::Structure + end + + # @!attribute [rw] groups + # An array of structures that each contain information about one + # group. + # @return [Array] + # + # @!attribute [rw] next_token + # A token that indicates that there is more data available. You can + # use this token in a subsequent `ListGroups` operation to retrieve + # the next set of results. + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListGroupsResponse AWS API Documentation + # + class ListGroupsResponse < Struct.new( + :groups, + :next_token) + SENSITIVE = [] + include Aws::Structure + end + + # @note When making an API call, you may pass ListTagsForResourceRequest + # data as a hash: + # + # { + # resource_arn: "ResourceArn", # required + # } + # + # @!attribute [rw] resource_arn + # The ARN of the canary or group that you want to view tags for. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. + # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResourceRequest AWS API Documentation @@ -1203,8 +1632,8 @@ class ListTagsForResourceRequest < Struct.new( end # @!attribute [rw] tags - # The list of tag keys and values associated with the canary that you - # specified. + # The list of tag keys and values associated with the resource that + # you specified. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResourceResponse AWS API Documentation @@ -1215,6 +1644,19 @@ class ListTagsForResourceResponse < Struct.new( include Aws::Structure end + # The specified resource was not found. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/NotFoundException AWS API Documentation + # + class NotFoundException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + # One of the input resources is larger than is allowed. # # @!attribute [rw] message @@ -1323,6 +1765,19 @@ class S3EncryptionConfig < Struct.new( include Aws::Structure end + # The request exceeded a service quota value. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ServiceQuotaExceededException AWS API Documentation + # + class ServiceQuotaExceededException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass StartCanaryRequest # data as a hash: # @@ -1360,7 +1815,7 @@ class StartCanaryResponse < Aws::EmptyStructure; end # # @!attribute [rw] name # The name of the canary that you want to stop. To find the names of - # your canaries, use [DescribeCanaries][1]. + # your canaries, use [ListCanaries][1]. # # # @@ -1383,21 +1838,24 @@ class StopCanaryResponse < Aws::EmptyStructure; end # data as a hash: # # { - # resource_arn: "CanaryArn", # required + # resource_arn: "ResourceArn", # required # tags: { # required # "TagKey" => "TagValue", # }, # } # # @!attribute [rw] resource_arn - # The ARN of the canary that you're adding tags to. + # The ARN of the canary or group that you're adding tags to. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. + # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` # @return [String] # # @!attribute [rw] tags - # The list of key-value pairs to associate with the canary. + # The list of key-value pairs to associate with the resource. # @return [Hash] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TagResourceRequest AWS API Documentation @@ -1413,19 +1871,35 @@ class TagResourceRequest < Struct.new( # class TagResourceResponse < Aws::EmptyStructure; end + # There were too many simultaneous requests. Try the operation again. + # + # @!attribute [rw] message + # @return [String] + # + # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TooManyRequestsException AWS API Documentation + # + class TooManyRequestsException < Struct.new( + :message) + SENSITIVE = [] + include Aws::Structure + end + # @note When making an API call, you may pass UntagResourceRequest # data as a hash: # # { - # resource_arn: "CanaryArn", # required + # resource_arn: "ResourceArn", # required # tag_keys: ["TagKey"], # required # } # # @!attribute [rw] resource_arn - # The ARN of the canary that you're removing tags from. + # The ARN of the canary or group that you're removing tags from. # # The ARN format of a canary is # `arn:aws:synthetics:Region:account-id:canary:canary-name `. + # + # The ARN format of a group is + # `arn:aws:synthetics:Region:account-id:group:group-name ` # @return [String] # # @!attribute [rw] tag_keys @@ -1552,6 +2026,9 @@ class UntagResourceResponse < Aws::EmptyStructure; end # @!attribute [rw] run_config # A structure that contains the timeout value that is used for each # individual run of the canary. + # + # The environment variables keys and values are not encrypted. Do not + # store sensitive information in this field. # @return [Types::CanaryRunConfigInput] # # @!attribute [rw] success_retention_period_in_days @@ -1639,8 +2116,8 @@ class ValidationException < Struct.new( end # An object that specifies what screenshots to use as a baseline for - # visual monitoring by this canary, and optionally the parts of the - # screenshots to ignore during the visual monitoring comparison. + # visual monitoring by this canary. It can optionally also specify parts + # of the screenshots to ignore during the visual monitoring comparison. # # Visual monitoring is supported only on canaries running the # **syn-puppeteer-node-3.2** runtime or later. For more information, see @@ -1707,9 +2184,8 @@ class VisualReferenceInput < Struct.new( # @return [Array] # # @!attribute [rw] base_canary_run_id - # The ID of the canary run that produced the screenshots that are used - # as the baseline for visual monitoring comparisons during future runs - # of this canary. + # The ID of the canary run that produced the baseline screenshots that + # are used for visual monitoring comparisons by this canary. # @return [String] # # @see http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/VisualReferenceOutput AWS API Documentation