activateGateway method

Future<ActivateGatewayOutput> activateGateway({
  1. required String activationKey,
  2. required String gatewayName,
  3. required String gatewayRegion,
  4. required String gatewayTimezone,
  5. String? gatewayType,
  6. String? mediumChangerType,
  7. List<Tag>? tags,
  8. String? tapeDriveType,
})

Activates the gateway you previously deployed on your host. In the activation process, you specify information such as the AWS Region that you want to use for storing snapshots or tapes, the time zone for scheduled snapshots the gateway snapshot schedule window, an activation key, and a name for your gateway. The activation process also associates your gateway with your account. For more information, see UpdateGatewayInformation.

May throw InvalidGatewayRequestException. May throw InternalServerError.

Parameter activationKey : Your gateway activation key. You can obtain the activation key by sending an HTTP GET request with redirects enabled to the gateway IP address (port 80). The redirect URL returned in the response provides you the activation key for your gateway in the query string parameter activationKey. It may also include other activation-related parameters, however, these are merely defaults -- the arguments you pass to the ActivateGateway API call determine the actual configuration of your gateway.

For more information, see Getting activation key in the AWS Storage Gateway User Guide.

Parameter gatewayName : The name you configured for your gateway.

Parameter gatewayRegion : A value that indicates the AWS Region where you want to store your data. The gateway AWS Region specified must be the same AWS Region as the AWS Region in your Host header in the request. For more information about available AWS Regions and endpoints for AWS Storage Gateway, see AWS Storage Gateway endpoints and quotas in the AWS General Reference.

Valid Values: See AWS Storage Gateway endpoints and quotas in the AWS General Reference.

Parameter gatewayTimezone : A value that indicates the time zone you want to set for the gateway. The time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00 indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is 2 hours ahead of GMT. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance schedule.

Parameter gatewayType : A value that defines the type of gateway to activate. The type specified is critical to all later functions of the gateway and cannot be changed after activation. The default value is CACHED.

Valid Values: STORED | CACHED | VTL | FILE_S3

Parameter mediumChangerType : The value that indicates the type of medium changer to use for tape gateway. This field is optional.

Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402

Parameter tags : A list of up to 50 tags that you can assign to the gateway. Each tag is a key-value pair.

    • = . _ : / @. The maximum length of a tag's key is 128 characters, and the maximum length for a tag's value is 256 characters.

Parameter tapeDriveType : The value that indicates the type of tape drive to use for tape gateway. This field is optional.

Valid Values: IBM-ULT3580-TD5

Implementation

Future<ActivateGatewayOutput> activateGateway({
  required String activationKey,
  required String gatewayName,
  required String gatewayRegion,
  required String gatewayTimezone,
  String? gatewayType,
  String? mediumChangerType,
  List<Tag>? tags,
  String? tapeDriveType,
}) async {
  ArgumentError.checkNotNull(activationKey, 'activationKey');
  _s.validateStringLength(
    'activationKey',
    activationKey,
    1,
    50,
    isRequired: true,
  );
  ArgumentError.checkNotNull(gatewayName, 'gatewayName');
  _s.validateStringLength(
    'gatewayName',
    gatewayName,
    2,
    255,
    isRequired: true,
  );
  ArgumentError.checkNotNull(gatewayRegion, 'gatewayRegion');
  _s.validateStringLength(
    'gatewayRegion',
    gatewayRegion,
    1,
    25,
    isRequired: true,
  );
  ArgumentError.checkNotNull(gatewayTimezone, 'gatewayTimezone');
  _s.validateStringLength(
    'gatewayTimezone',
    gatewayTimezone,
    3,
    10,
    isRequired: true,
  );
  _s.validateStringLength(
    'gatewayType',
    gatewayType,
    2,
    20,
  );
  _s.validateStringLength(
    'mediumChangerType',
    mediumChangerType,
    2,
    50,
  );
  _s.validateStringLength(
    'tapeDriveType',
    tapeDriveType,
    2,
    50,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'StorageGateway_20130630.ActivateGateway'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ActivationKey': activationKey,
      'GatewayName': gatewayName,
      'GatewayRegion': gatewayRegion,
      'GatewayTimezone': gatewayTimezone,
      if (gatewayType != null) 'GatewayType': gatewayType,
      if (mediumChangerType != null) 'MediumChangerType': mediumChangerType,
      if (tags != null) 'Tags': tags,
      if (tapeDriveType != null) 'TapeDriveType': tapeDriveType,
    },
  );

  return ActivateGatewayOutput.fromJson(jsonResponse.body);
}