updateMissionProfile method

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

Updates a mission profile.

Updating a mission profile will not update the execution parameters for existing future contacts.

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

Parameter missionProfileId : UUID of a mission profile.

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 after a contact ends that you'd like to receive a Ground Station Contact State Change event indicating the pass has finished.

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 streamsKmsKey : KMS key to use for encrypting streams.

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

Parameter telemetrySinkConfigArn : ARN of a telemetry sink Config.

Parameter trackingConfigArn : ARN of a tracking Config.

Implementation

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