/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.simplesystemsmanagement.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* An array of search criteria that targets managed nodes using a key-value pair that you specify. *
** One or more targets must be specified for maintenance window Run Command-type tasks. Depending on the task, targets * are optional for other maintenance window task types (Automation, Lambda, and Step Functions). For more information * about running tasks that don't specify targets, see Registering maintenance window tasks without targets in the Amazon Web Services Systems Manager User * Guide. *
** Supported formats include the following. *
*
* Key=InstanceIds,Values=<instance-id-1>,<instance-id-2>,<instance-id-3>
*
* Key=tag:<my-tag-key>,Values=<my-tag-value-1>,<my-tag-value-2>
*
* Key=tag-key,Values=<my-tag-key-1>,<my-tag-key-2>
*
* Run Command and Maintenance window targets only:
* Key=resource-groups:Name,Values=<resource-group-name>
*
* Maintenance window targets only:
* Key=resource-groups:ResourceTypeFilters,Values=<resource-type-1>,<resource-type-2>
*
* Automation targets only: Key=ResourceGroup;Values=<resource-group-name>
*
* For example: *
*
* Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
*
* Key=tag:CostCenter,Values=CostCenter1,CostCenter2,CostCenter3
*
* Key=tag-key,Values=Name,Instance-Type,CostCenter
*
* Run Command and Maintenance window targets only:
* Key=resource-groups:Name,Values=ProductionResourceGroup
*
* This example demonstrates how to target all resources in the resource group ProductionResourceGroup in your * maintenance window. *
*
* Maintenance window targets only:
* Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::INSTANCE,AWS::EC2::VPC
*
* This example demonstrates how to target only Amazon Elastic Compute Cloud (Amazon EC2) instances and VPCs in your * maintenance window. *
*
* Automation targets only: Key=ResourceGroup,Values=MyResourceGroup
*
* State Manager association targets only: Key=InstanceIds,Values=*
*
* This example demonstrates how to target all managed instances in the Amazon Web Services Region where the association * was created. *
*
* For more information about how to send commands that target managed nodes using Key,Value
parameters,
* see Targeting multiple instances in the Amazon Web Services Systems Manager User Guide.
*
* User-defined criteria for sending commands that target managed nodes that meet the criteria. *
*/ private String key; /** *
* User-defined criteria that maps to Key
. For example, if you specified tag:ServerRole
,
* you could specify value:WebServer
to run a command on instances that include EC2 tags of
* ServerRole,WebServer
.
*
* Depending on the type of target, the maximum number of values for a key might be lower than the global maximum of * 50. *
*/ private com.amazonaws.internal.SdkInternalList* User-defined criteria for sending commands that target managed nodes that meet the criteria. *
* * @param key * User-defined criteria for sending commands that target managed nodes that meet the criteria. */ public void setKey(String key) { this.key = key; } /** ** User-defined criteria for sending commands that target managed nodes that meet the criteria. *
* * @return User-defined criteria for sending commands that target managed nodes that meet the criteria. */ public String getKey() { return this.key; } /** ** User-defined criteria for sending commands that target managed nodes that meet the criteria. *
* * @param key * User-defined criteria for sending commands that target managed nodes that meet the criteria. * @return Returns a reference to this object so that method calls can be chained together. */ public Target withKey(String key) { setKey(key); return this; } /** *
* User-defined criteria that maps to Key
. For example, if you specified tag:ServerRole
,
* you could specify value:WebServer
to run a command on instances that include EC2 tags of
* ServerRole,WebServer
.
*
* Depending on the type of target, the maximum number of values for a key might be lower than the global maximum of * 50. *
* * @return User-defined criteria that maps toKey
. For example, if you specified
* tag:ServerRole
, you could specify value:WebServer
to run a command on instances
* that include EC2 tags of ServerRole,WebServer
.
*
* Depending on the type of target, the maximum number of values for a key might be lower than the global
* maximum of 50.
*/
public java.util.List
* User-defined criteria that maps to
* Depending on the type of target, the maximum number of values for a key might be lower than the global maximum of
* 50.
* Key
. For example, if you specified tag:ServerRole
,
* you could specify value:WebServer
to run a command on instances that include EC2 tags of
* ServerRole,WebServer
.
* Key
. For example, if you specified
* tag:ServerRole
, you could specify value:WebServer
to run a command on instances
* that include EC2 tags of ServerRole,WebServer
.
* Depending on the type of target, the maximum number of values for a key might be lower than the global
* maximum of 50.
*/
public void setValues(java.util.Collection
* User-defined criteria that maps to
* Depending on the type of target, the maximum number of values for a key might be lower than the global maximum of
* 50.
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setValues(java.util.Collection)} or {@link #withValues(java.util.Collection)} if you want to override the
* existing values.
* Key
. For example, if you specified tag:ServerRole
,
* you could specify value:WebServer
to run a command on instances that include EC2 tags of
* ServerRole,WebServer
.
* Key
. For example, if you specified
* tag:ServerRole
, you could specify value:WebServer
to run a command on instances
* that include EC2 tags of ServerRole,WebServer
.
* Depending on the type of target, the maximum number of values for a key might be lower than the global
* maximum of 50.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Target withValues(String... values) {
if (this.values == null) {
setValues(new com.amazonaws.internal.SdkInternalList
* User-defined criteria that maps to
* Depending on the type of target, the maximum number of values for a key might be lower than the global maximum of
* 50.
* Key
. For example, if you specified tag:ServerRole
,
* you could specify value:WebServer
to run a command on instances that include EC2 tags of
* ServerRole,WebServer
.
* Key
. For example, if you specified
* tag:ServerRole
, you could specify value:WebServer
to run a command on instances
* that include EC2 tags of ServerRole,WebServer
.
* Depending on the type of target, the maximum number of values for a key might be lower than the global
* maximum of 50.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Target withValues(java.util.Collection