createRelay method

Future<CreateRelayResponse> createRelay({
  1. required RelayAuthentication authentication,
  2. required String relayName,
  3. required String serverName,
  4. required int serverPort,
  5. String? clientToken,
  6. List<Tag>? tags,
})

Creates a relay resource which can be used in rules to relay incoming emails to defined relay destinations.

May throw ConflictException. May throw ServiceQuotaExceededException. May throw ValidationException.

Parameter authentication : Authentication for the relay destination server—specify the secretARN where the SMTP credentials are stored.

Parameter relayName : The unique name of the relay resource.

Parameter serverName : The destination relay server address.

Parameter serverPort : The destination relay server port.

Parameter clientToken : A unique token that Amazon SES uses to recognize subsequent retries of the same request.

Parameter tags : The tags used to organize, track, or control access for the resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }.

Implementation

Future<CreateRelayResponse> createRelay({
  required RelayAuthentication authentication,
  required String relayName,
  required String serverName,
  required int serverPort,
  String? clientToken,
  List<Tag>? tags,
}) async {
  _s.validateNumRange(
    'serverPort',
    serverPort,
    1,
    65535,
    isRequired: true,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'MailManagerSvc.CreateRelay'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Authentication': authentication,
      'RelayName': relayName,
      'ServerName': serverName,
      'ServerPort': serverPort,
      'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
      if (tags != null) 'Tags': tags,
    },
  );

  return CreateRelayResponse.fromJson(jsonResponse.body);
}