updateInstance method

Future<void> updateInstance({
  1. required String instanceArn,
  2. EncryptionConfiguration? encryptionConfiguration,
  3. String? name,
  4. bool? permissionSetsEnabled,
})

Update the details for the instance of IAM Identity Center that is owned by the Amazon Web Services account.

In a single UpdateInstance request, you can perform only one of the following operations:

  • Update the encryption configuration of the instance by specifying EncryptionConfiguration.
  • Enable permission sets for the instance by specifying PermissionSetsEnabled.
A request that specifies both EncryptionConfiguration and PermissionSetsEnabled returns a ValidationException. To perform both operations, call UpdateInstance separately for each. The two calls can be made in parallel.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter instanceArn : The ARN of the instance of IAM Identity Center under which the operation will run. For more information about ARNs, see Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces in the Amazon Web Services General Reference.

Parameter encryptionConfiguration : Specifies the encryption configuration for your IAM Identity Center instance. You can use this to configure customer managed KMS keys or Amazon Web Services owned KMS keys for encrypting your instance data.

Parameter name : Updates the instance name.

Parameter permissionSetsEnabled : Enables permission sets for this Identity Center instance. The only accepted value is true . After permission sets are enabled, they cannot be disabled.

Implementation

Future<void> updateInstance({
  required String instanceArn,
  EncryptionConfiguration? encryptionConfiguration,
  String? name,
  bool? permissionSetsEnabled,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'SWBExternalService.UpdateInstance'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'InstanceArn': instanceArn,
      if (encryptionConfiguration != null)
        'EncryptionConfiguration': encryptionConfiguration,
      if (name != null) 'Name': name,
      if (permissionSetsEnabled != null)
        'PermissionSetsEnabled': permissionSetsEnabled,
    },
  );
}