// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateActivation`](crate::operation::create_activation::builders::CreateActivationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`description(impl Into<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_description):<br>required: **false**<br><p>A user-defined description of the resource that you want to register with Systems Manager. </p> <important> <p>Don't enter personally identifiable information in this field.</p> </important><br>
/// - [`default_instance_name(impl Into<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::default_instance_name) / [`set_default_instance_name(Option<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_default_instance_name):<br>required: **false**<br><p>The name of the registered, managed node as it will appear in the Amazon Web Services Systems Manager console or when you use the Amazon Web Services command line tools to list Systems Manager resources.</p> <important> <p>Don't enter personally identifiable information in this field.</p> </important><br>
/// - [`iam_role(impl Into<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::iam_role) / [`set_iam_role(Option<String>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_iam_role):<br>required: **true**<br><p>The name of the Identity and Access Management (IAM) role that you want to assign to the managed node. This IAM role must provide AssumeRole permissions for the Amazon Web Services Systems Manager service principal <code>ssm.amazonaws.com</code>. For more information, see <a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-service-role.html">Create an IAM service role for a hybrid environment</a> in the <i>Amazon Web Services Systems Manager User Guide</i>.</p> <note> <p>You can't specify an IAM service-linked role for this parameter. You must create a unique role.</p> </note><br>
/// - [`registration_limit(i32)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::registration_limit) / [`set_registration_limit(Option<i32>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_registration_limit):<br>required: **false**<br><p>Specify the maximum number of managed nodes you want to register. The default value is <code>1</code>.</p><br>
/// - [`expiration_date(DateTime)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::expiration_date) / [`set_expiration_date(Option<DateTime>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_expiration_date):<br>required: **false**<br><p>The date by which this activation request should expire, in timestamp format, such as "2021-07-07T00:00:00". You can specify a date up to 30 days in advance. If you don't provide an expiration date, the activation code expires in 24 hours.</p><br>
/// - [`tags(Tag)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::tags) / [`set_tags(Option<Vec::<Tag>>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_tags):<br>required: **false**<br><p>Optional metadata that you assign to a resource. Tags enable you to categorize a resource in different ways, such as by purpose, owner, or environment. For example, you might want to tag an activation to identify which servers or virtual machines (VMs) in your on-premises environment you intend to activate. In this case, you could specify the following key-value pairs:</p> <ul> <li> <p> <code>Key=OS,Value=Windows</code> </p> </li> <li> <p> <code>Key=Environment,Value=Production</code> </p> </li> </ul> <important> <p>When you install SSM Agent on your on-premises servers and VMs, you specify an activation ID and code. When you specify the activation ID and code, tags assigned to the activation are automatically applied to the on-premises servers or VMs.</p> </important> <p>You can't add tags to or delete tags from an existing activation. You can tag your on-premises servers, edge devices, and VMs after they connect to Systems Manager for the first time and are assigned a managed node ID. This means they are listed in the Amazon Web Services Systems Manager console with an ID that is prefixed with "mi-". For information about how to add tags to your managed nodes, see <code>AddTagsToResource</code>. For information about how to remove tags from your managed nodes, see <code>RemoveTagsFromResource</code>.</p><br>
/// - [`registration_metadata(RegistrationMetadataItem)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::registration_metadata) / [`set_registration_metadata(Option<Vec::<RegistrationMetadataItem>>)`](crate::operation::create_activation::builders::CreateActivationFluentBuilder::set_registration_metadata):<br>required: **false**<br><p>Reserved for internal use.</p><br>
/// - On success, responds with [`CreateActivationOutput`](crate::operation::create_activation::CreateActivationOutput) with field(s):
/// - [`activation_id(Option<String>)`](crate::operation::create_activation::CreateActivationOutput::activation_id): <p>The ID number generated by the system when it processed the activation. The activation ID functions like a user name.</p>
/// - [`activation_code(Option<String>)`](crate::operation::create_activation::CreateActivationOutput::activation_code): <p>The code the system generates when it processes the activation. The activation code functions like a password to validate the activation ID. </p>
/// - On failure, responds with [`SdkError<CreateActivationError>`](crate::operation::create_activation::CreateActivationError)
pub fn create_activation(&self) -> crate::operation::create_activation::builders::CreateActivationFluentBuilder {
crate::operation::create_activation::builders::CreateActivationFluentBuilder::new(self.handle.clone())
}
}