Copyright | (c) 2013-2023 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
Documentation
data ResourceQuery Source #
The query that is used to define a resource group or a search for resources. A query specifies both a query type and a query string as a JSON object. See the examples section for example JSON strings.
The examples that follow are shown as standard JSON strings. If you include such a string as a parameter to the AWS CLI or an SDK API, you might need to 'escape' the string into a single line. For example, see the Quoting strings in the AWS CLI User Guide.
Example 1
The following generic example shows a resource query JSON string that includes only resources that meet the following criteria:
- The resource type must be either
resource_type1
orresource_type2
. - The resource must have a tag
Key1
with a value of eitherValueA
orValueB
. - The resource must have a tag
Key2
with a value of eitherValueC
orValueD
.
{ "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1", "resource_type2"], "TagFilters": [ { "Key": "Key1", "Values": ["ValueA","ValueB"] }, { "Key":"Key2", "Values":["ValueC","ValueD"] } ] } }
This has the equivalent "shortcut" syntax of the following:
{ "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": [ "resource_type1", "resource_type2"], "TagFilters": [ { "Key1": ["ValueA","ValueB"] }, { "Key2": ["ValueC","ValueD"] } ] } }
Example 2
The following example shows a resource query JSON string that includes
only Amazon EC2 instances that are tagged Stage
with a value of
Test
.
{ "Type": "TAG_FILTERS_1_0", "Query": "{ "ResourceTypeFilters": "AWS::EC2::Instance", "TagFilters": { "Stage": "Test" } } }
Example 3
The following example shows a resource query JSON string that includes
resource of any supported type as long as it is tagged Stage
with a
value of Prod
.
{ "Type": "TAG_FILTERS_1_0", "Query": { "ResourceTypeFilters": "AWS::AllSupported", "TagFilters": { "Stage": "Prod" } } }
Example 4
The following example shows a resource query JSON string that includes only Amazon EC2 instances and Amazon S3 buckets that are part of the specified AWS CloudFormation stack.
{ "Type": "CLOUDFORMATION_STACK_1_0", "Query": { "ResourceTypeFilters": [ "AWS::EC2::Instance", "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/AWStestuseraccount/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE" } }
See: newResourceQuery
smart constructor.
ResourceQuery' | |
|
Instances
Create a value of ResourceQuery
with all optional fields omitted.
Use generic-lens or optics to modify other optional fields.
The following record fields are available, with the corresponding lenses provided for backwards compatibility:
$sel:type':ResourceQuery'
, resourceQuery_type
- The type of the query. You can use the following values:
CLOUDFORMATION_STACK_1_0:
Specifies that theQuery
contains an ARN for a CloudFormation stack.TAG_FILTERS_1_0:
Specifies that theQuery
parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to theFor example, consider the following sample query for resources that have two tags,
Stage
andVersion
, with two values each:[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]
The results of this query could include the following.
- An EC2 instance that has the following two tags:
{"Stage":"Deploy"}
, and{"Version":"2"}
- An S3 bucket that has the following two tags:
{"Stage":"Test"}
, and{"Version":"1"}
The query would not include the following items in the results, however.
An EC2 instance that has only the following tag:
{"Stage":"Deploy"}
.The instance does not have all of the tag keys specified in the filter, so it is excluded from the results.
An RDS database that has the following two tags:
{"Stage":"Archived"}
and{"Version":"4"}
The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter.
- An EC2 instance that has the following two tags:
$sel:query:ResourceQuery'
, resourceQuery_searchQuery
- The query that defines a group or a search.
resourceQuery_type :: Lens' ResourceQuery QueryType Source #
The type of the query. You can use the following values:
CLOUDFORMATION_STACK_1_0:
Specifies that theQuery
contains an ARN for a CloudFormation stack.TAG_FILTERS_1_0:
Specifies that theQuery
parameter contains a JSON string that represents a collection of simple tag filters for resource types and tags. The JSON string uses a syntax similar to theFor example, consider the following sample query for resources that have two tags,
Stage
andVersion
, with two values each:[{"Stage":["Test","Deploy"]},{"Version":["1","2"]}]
The results of this query could include the following.
- An EC2 instance that has the following two tags:
{"Stage":"Deploy"}
, and{"Version":"2"}
- An S3 bucket that has the following two tags:
{"Stage":"Test"}
, and{"Version":"1"}
The query would not include the following items in the results, however.
An EC2 instance that has only the following tag:
{"Stage":"Deploy"}
.The instance does not have all of the tag keys specified in the filter, so it is excluded from the results.
An RDS database that has the following two tags:
{"Stage":"Archived"}
and{"Version":"4"}
The database has all of the tag keys, but none of those keys has an associated value that matches at least one of the specified values in the filter.
- An EC2 instance that has the following two tags:
resourceQuery_searchQuery :: Lens' ResourceQuery Text Source #
The query that defines a group or a search.