exportServerEngineAttribute method

Future<ExportServerEngineAttributeResponse> exportServerEngineAttribute({
  1. required String exportAttributeName,
  2. required String serverName,
  3. List<EngineAttribute>? inputAttributes,
})

Exports a specified server engine attribute as a base64-encoded string. For example, you can export user data that you can use in EC2 to associate nodes with a server.

This operation is synchronous.

A ValidationException is raised when parameters of the request are not valid. A ResourceNotFoundException is thrown when the server does not exist. An InvalidStateException is thrown when the server is in any of the following states: CREATING, TERMINATED, FAILED or DELETING.

May throw ValidationException. May throw ResourceNotFoundException. May throw InvalidStateException.

Parameter exportAttributeName : The name of the export attribute. Currently, the supported export attribute is Userdata. This exports a user data script that includes parameters and values provided in the InputAttributes list.

Parameter serverName : The name of the server from which you are exporting the attribute.

Parameter inputAttributes : The list of engine attributes. The list type is EngineAttribute. An EngineAttribute list item is a pair that includes an attribute name and its value. For the Userdata ExportAttributeName, the following are supported engine attribute names.

  • RunList In Chef, a list of roles or recipes that are run in the specified order. In Puppet, this parameter is ignored.
  • OrganizationName In Chef, an organization name. AWS OpsWorks for Chef Automate always creates the organization default. In Puppet, this parameter is ignored.
  • NodeEnvironment In Chef, a node environment (for example, development, staging, or one-box). In Puppet, this parameter is ignored.
  • NodeClientVersion In Chef, the version of the Chef engine (three numbers separated by dots, such as 13.8.5). If this attribute is empty, OpsWorks for Chef Automate uses the most current version. In Puppet, this parameter is ignored.

Implementation

Future<ExportServerEngineAttributeResponse> exportServerEngineAttribute({
  required String exportAttributeName,
  required String serverName,
  List<EngineAttribute>? inputAttributes,
}) async {
  ArgumentError.checkNotNull(exportAttributeName, 'exportAttributeName');
  _s.validateStringLength(
    'exportAttributeName',
    exportAttributeName,
    0,
    10000,
    isRequired: true,
  );
  ArgumentError.checkNotNull(serverName, 'serverName');
  _s.validateStringLength(
    'serverName',
    serverName,
    1,
    40,
    isRequired: true,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'OpsWorksCM_V2016_11_01.ExportServerEngineAttribute'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ExportAttributeName': exportAttributeName,
      'ServerName': serverName,
      if (inputAttributes != null) 'InputAttributes': inputAttributes,
    },
  );

  return ExportServerEngineAttributeResponse.fromJson(jsonResponse.body);
}