
commonMain.aws.sdk.kotlin.services.ssm.model.Target.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.ssm.model
/**
* 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/maintenance-windows-targetless-tasks.html) in the *Amazon Web Services Systems Manager User Guide*.
*
* Supported formats include the following.
* + `Key=InstanceIds,Values=,,`
* + `Key=tag:,Values=,`
* + `Key=tag-key,Values=,`
* + **Run Command and Maintenance window targets only**: `Key=resource-groups:Name,Values=`
* + **Maintenance window targets only**: `Key=resource-groups:ResourceTypeFilters,Values=,`
* + **Automation targets only**: `Key=ResourceGroup;Values=`
*
* 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 managed nodes](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-multiple.html#send-commands-targeting) in the *Amazon Web Services Systems Manager User Guide*.
*/
public class Target private constructor(builder: Builder) {
/**
* User-defined criteria for sending commands that target managed nodes that meet the criteria.
*/
public val key: kotlin.String? = builder.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.
*/
public val values: List? = builder.values
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.ssm.model.Target = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("Target(")
append("key=$key,")
append("values=$values")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = key?.hashCode() ?: 0
result = 31 * result + (values?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as Target
if (key != other.key) return false
if (values != other.values) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.ssm.model.Target = Builder(this).apply(block).build()
public class Builder {
/**
* User-defined criteria for sending commands that target managed nodes that meet the criteria.
*/
public var key: kotlin.String? = null
/**
* 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.
*/
public var values: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.ssm.model.Target) : this() {
this.key = x.key
this.values = x.values
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.ssm.model.Target = Target(this)
internal fun correctErrors(): Builder {
return this
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy