createActivation method
Generates an activation code and activation ID you can use to register your on-premises servers, edge devices, or virtual machine (VM) with Amazon Web Services Systems Manager. Registering these machines with Systems Manager makes it possible to manage them using Systems Manager tools. You use the activation code and ID when installing SSM Agent on machines in your hybrid environment. For more information about requirements for managing on-premises machines using Systems Manager, see Using Amazon Web Services Systems Manager in hybrid and multicloud environments in the Amazon Web Services Systems Manager User Guide.
May throw InternalServerError.
May throw InvalidParameters.
Parameter iamRole :
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
ssm.amazonaws.com. For more information, see Create
the IAM service role required for Systems Manager in a hybrid and
multicloud environments in the Amazon Web Services Systems Manager
User Guide.
Parameter defaultInstanceName :
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.
Parameter description :
A user-defined description of the resource that you want to register with
Systems Manager.
Parameter expirationDate :
The date by which this activation request should expire, in timestamp
format, such as "2024-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.
Parameter registrationLimit :
Specify the maximum number of managed nodes you want to register. The
default value is 1.
Parameter registrationMetadata :
Reserved for internal use.
Parameter tags :
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:
-
Key=OS,Value=Windows -
Key=Environment,Value=Production
Implementation
Future<CreateActivationResult> createActivation({
required String iamRole,
String? defaultInstanceName,
String? description,
DateTime? expirationDate,
int? registrationLimit,
List<RegistrationMetadataItem>? registrationMetadata,
List<Tag>? tags,
}) async {
_s.validateNumRange(
'registrationLimit',
registrationLimit,
1,
1000,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonSSM.CreateActivation'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'IamRole': iamRole,
if (defaultInstanceName != null)
'DefaultInstanceName': defaultInstanceName,
if (description != null) 'Description': description,
if (expirationDate != null)
'ExpirationDate': unixTimestampToJson(expirationDate),
if (registrationLimit != null) 'RegistrationLimit': registrationLimit,
if (registrationMetadata != null)
'RegistrationMetadata': registrationMetadata,
if (tags != null) 'Tags': tags,
},
);
return CreateActivationResult.fromJson(jsonResponse.body);
}