Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.ssm.kotlin
import com.pulumi.awsnative.ssm.kotlin.enums.AssociationComplianceSeverity
import com.pulumi.awsnative.ssm.kotlin.enums.AssociationSyncCompliance
import com.pulumi.awsnative.ssm.kotlin.outputs.AssociationInstanceAssociationOutputLocation
import com.pulumi.awsnative.ssm.kotlin.outputs.AssociationTarget
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.awsnative.ssm.kotlin.enums.AssociationComplianceSeverity.Companion.toKotlin as associationComplianceSeverityToKotlin
import com.pulumi.awsnative.ssm.kotlin.enums.AssociationSyncCompliance.Companion.toKotlin as associationSyncComplianceToKotlin
import com.pulumi.awsnative.ssm.kotlin.outputs.AssociationInstanceAssociationOutputLocation.Companion.toKotlin as associationInstanceAssociationOutputLocationToKotlin
import com.pulumi.awsnative.ssm.kotlin.outputs.AssociationTarget.Companion.toKotlin as associationTargetToKotlin
/**
* Builder for [Association].
*/
@PulumiTagMarker
public class AssociationResourceBuilder internal constructor() {
public var name: String? = null
public var args: AssociationArgs = AssociationArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend AssociationArgsBuilder.() -> Unit) {
val builder = AssociationArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): Association {
val builtJavaResource = com.pulumi.awsnative.ssm.Association(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return Association(builtJavaResource)
}
}
/**
* The AWS::SSM::Association resource associates an SSM document in AWS Systems Manager with EC2 instances that contain a configuration agent to process the document.
* ## Example Usage
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
* ### Example
* No Java example available.
*/
public class Association internal constructor(
override val javaResource: com.pulumi.awsnative.ssm.Association,
) : KotlinCustomResource(javaResource, AssociationMapper) {
/**
* By default, when you create a new association, the system runs it immediately after it is created and then according to the schedule you specified. Specify this option if you don't want an association to run immediately after you create it. This parameter is not supported for rate expressions.
*/
public val applyOnlyAtCronInterval: Output?
get() = javaResource.applyOnlyAtCronInterval().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Unique identifier of the association.
*/
public val associationId: Output
get() = javaResource.associationId().applyValue({ args0 -> args0 })
/**
* The name of the association.
*/
public val associationName: Output?
get() = javaResource.associationName().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Choose the parameter that will define how your automation will branch out. This target is required for associations that use an Automation runbook and target resources by using rate controls. Automation is a capability of AWS Systems Manager .
*/
public val automationTargetParameterName: Output?
get() = javaResource.automationTargetParameterName().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The names or Amazon Resource Names (ARNs) of the Change Calendar type documents your associations are gated under. The associations only run when that Change Calendar is open. For more information, see [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar) .
*/
public val calendarNames: Output>?
get() = javaResource.calendarNames().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 -> args0 })
}).orElse(null)
})
/**
* The severity level that is assigned to the association.
*/
public val complianceSeverity: Output?
get() = javaResource.complianceSeverity().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> associationComplianceSeverityToKotlin(args0) })
}).orElse(null)
})
/**
* The version of the SSM document to associate with the target.
*/
public val documentVersion: Output?
get() = javaResource.documentVersion().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The ID of the instance that the SSM document is associated with.
*/
public val instanceId: Output?
get() = javaResource.instanceId().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The maximum number of targets allowed to run the association at the same time. You can specify a number, for example 10, or a percentage of the target set, for example 10%. The default value is 100%, which means all targets run the association at the same time.
* If a new managed node starts and attempts to run an association while Systems Manager is running `MaxConcurrency` associations, the association is allowed to run. During the next association interval, the new managed node will process its association within the limit specified for `MaxConcurrency` .
*/
public val maxConcurrency: Output?
get() = javaResource.maxConcurrency().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The number of errors that are allowed before the system stops sending requests to run the association on additional targets. You can specify either an absolute number of errors, for example 10, or a percentage of the target set, for example 10%. If you specify 3, for example, the system stops sending requests when the fourth error is received. If you specify 0, then the system stops sending requests after the first error is returned. If you run an association on 50 managed nodes and set `MaxError` to 10%, then the system stops sending the request when the sixth error is received.
* Executions that are already running an association when `MaxErrors` is reached are allowed to complete, but some of these executions may fail as well. If you need to ensure that there won't be more than max-errors failed executions, set `MaxConcurrency` to 1 so that executions proceed one at a time.
*/
public val maxErrors: Output?
get() = javaResource.maxErrors().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* The name of the SSM document.
*/
public val name: Output
get() = javaResource.name().applyValue({ args0 -> args0 })
/**
* An Amazon Simple Storage Service (Amazon S3) bucket where you want to store the output details of the request.
*/
public val outputLocation: Output?
get() = javaResource.outputLocation().applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
associationInstanceAssociationOutputLocationToKotlin(args0)
})
}).orElse(null)
})
/**
* Parameter values that the SSM document uses at runtime.
*/
public val parameters: Output