createMissionProfile method

Future<MissionProfileIdResponse> createMissionProfile({
  1. required List<List<String>> dataflowEdges,
  2. required int minimumViableContactDurationSeconds,
  3. required String name,
  4. required String trackingConfigArn,
  5. int? contactPostPassDurationSeconds,
  6. int? contactPrePassDurationSeconds,
  7. KmsKey? streamsKmsKey,
  8. String? streamsKmsRole,
  9. Map<String, String>? tags,
  10. String? telemetrySinkConfigArn,
})

Creates a mission profile.

dataflowEdges is a list of lists of strings. Each lower level list of strings has two elements: a from ARN and a to ARN.

May throw DependencyException. May throw InvalidParameterException. May throw ResourceNotFoundException.

Parameter dataflowEdges : A list of lists of ARNs. Each list of ARNs is an edge, with a from Config and a to Config.

Parameter minimumViableContactDurationSeconds : Smallest amount of time in seconds that you'd like to see for an available contact. AWS Ground Station will not present you with contacts shorter than this duration.

Parameter name : Name of a mission profile.

Parameter trackingConfigArn : ARN of a tracking Config.

Parameter contactPostPassDurationSeconds : Amount of time after a contact ends that you'd like to receive a Ground Station Contact State Change event indicating the pass has finished.

Parameter contactPrePassDurationSeconds : Amount of time prior to contact start you'd like to receive a Ground Station Contact State Change event indicating an upcoming pass.

Parameter streamsKmsKey : KMS key to use for encrypting streams.

Parameter streamsKmsRole : Role to use for encrypting streams with KMS key.

Parameter tags : Tags assigned to a mission profile.

Parameter telemetrySinkConfigArn : ARN of a telemetry sink Config.

Implementation

Future<MissionProfileIdResponse> createMissionProfile({
  required List<List<String>> dataflowEdges,
  required int minimumViableContactDurationSeconds,
  required String name,
  required String trackingConfigArn,
  int? contactPostPassDurationSeconds,
  int? contactPrePassDurationSeconds,
  KmsKey? streamsKmsKey,
  String? streamsKmsRole,
  Map<String, String>? tags,
  String? telemetrySinkConfigArn,
}) async {
  _s.validateNumRange(
    'minimumViableContactDurationSeconds',
    minimumViableContactDurationSeconds,
    1,
    21600,
    isRequired: true,
  );
  _s.validateNumRange(
    'contactPostPassDurationSeconds',
    contactPostPassDurationSeconds,
    0,
    21600,
  );
  _s.validateNumRange(
    'contactPrePassDurationSeconds',
    contactPrePassDurationSeconds,
    0,
    21600,
  );
  final $payload = <String, dynamic>{
    'dataflowEdges': dataflowEdges,
    'minimumViableContactDurationSeconds':
        minimumViableContactDurationSeconds,
    'name': name,
    'trackingConfigArn': trackingConfigArn,
    if (contactPostPassDurationSeconds != null)
      'contactPostPassDurationSeconds': contactPostPassDurationSeconds,
    if (contactPrePassDurationSeconds != null)
      'contactPrePassDurationSeconds': contactPrePassDurationSeconds,
    if (streamsKmsKey != null) 'streamsKmsKey': streamsKmsKey,
    if (streamsKmsRole != null) 'streamsKmsRole': streamsKmsRole,
    if (tags != null) 'tags': tags,
    if (telemetrySinkConfigArn != null)
      'telemetrySinkConfigArn': telemetrySinkConfigArn,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/missionprofile',
    exceptionFnMap: _exceptionFns,
  );
  return MissionProfileIdResponse.fromJson(response);
}