{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2019-05-23",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"groundstation",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS Ground Station",
    "serviceId":"GroundStation",
    "signatureVersion":"v4",
    "signingName":"groundstation",
    "uid":"groundstation-2019-05-23"
  },
  "operations":{
    "CancelContact":{
      "name":"CancelContact",
      "http":{
        "method":"DELETE",
        "requestUri":"/contact/{contactId}",
        "responseCode":200
      },
      "input":{"shape":"CancelContactRequest"},
      "output":{"shape":"ContactIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Cancels or stops a contact with a specified contact ID based on its position in the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/contacts.lifecycle.html\">contact lifecycle</a>.</p> <p>For contacts that:</p> <ul> <li> <p>Have yet to start, the contact will be cancelled.</p> </li> <li> <p>Have started but have yet to finish, the contact will be stopped.</p> </li> </ul>",
      "idempotent":true
    },
    "CreateConfig":{
      "name":"CreateConfig",
      "http":{
        "method":"POST",
        "requestUri":"/config",
        "responseCode":200
      },
      "input":{"shape":"CreateConfigRequest"},
      "output":{"shape":"ConfigIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a <code>Config</code> with the specified <code>configData</code> parameters.</p> <p>Only one type of <code>configData</code> can be specified.</p>"
    },
    "CreateDataflowEndpointGroup":{
      "name":"CreateDataflowEndpointGroup",
      "http":{
        "method":"POST",
        "requestUri":"/dataflowEndpointGroup",
        "responseCode":200
      },
      "input":{"shape":"CreateDataflowEndpointGroupRequest"},
      "output":{"shape":"DataflowEndpointGroupIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a <code>DataflowEndpoint</code> group containing the specified list of <code> DataflowEndpoint</code> objects.</p> <p>The <code>name</code> field in each endpoint is used in your mission profile <code> DataflowEndpointConfig</code> to specify which endpoints to use during a contact.</p> <p>When a contact uses multiple <code>DataflowEndpointConfig</code> objects, each <code> Config</code> must match a <code>DataflowEndpoint</code> in the same group.</p>"
    },
    "CreateDataflowEndpointGroupV2":{
      "name":"CreateDataflowEndpointGroupV2",
      "http":{
        "method":"POST",
        "requestUri":"/dataflowEndpointGroupV2",
        "responseCode":200
      },
      "input":{"shape":"CreateDataflowEndpointGroupV2Request"},
      "output":{"shape":"CreateDataflowEndpointGroupV2Response"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a <code>DataflowEndpoint</code> group containing the specified list of Ground Station Agent based endpoints.</p> <p>The <code>name</code> field in each endpoint is used in your mission profile <code> DataflowEndpointConfig</code> to specify which endpoints to use during a contact.</p> <p>When a contact uses multiple <code>DataflowEndpointConfig</code> objects, each <code> Config</code> must match a <code>DataflowEndpoint</code> in the same group.</p>"
    },
    "CreateEphemeris":{
      "name":"CreateEphemeris",
      "http":{
        "method":"POST",
        "requestUri":"/ephemeris",
        "responseCode":200
      },
      "input":{"shape":"CreateEphemerisRequest"},
      "output":{"shape":"EphemerisIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Create an ephemeris with your specified <a>EphemerisData</a>.</p>"
    },
    "CreateMissionProfile":{
      "name":"CreateMissionProfile",
      "http":{
        "method":"POST",
        "requestUri":"/missionprofile",
        "responseCode":200
      },
      "input":{"shape":"CreateMissionProfileRequest"},
      "output":{"shape":"MissionProfileIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a mission profile.</p> <p> <code>dataflowEdges</code> is a list of lists of strings. Each lower level list of strings has two elements: a <i>from</i> ARN and a <i>to</i> ARN.</p>"
    },
    "DeleteConfig":{
      "name":"DeleteConfig",
      "http":{
        "method":"DELETE",
        "requestUri":"/config/{configType}/{configId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteConfigRequest"},
      "output":{"shape":"ConfigIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes a <code>Config</code>.</p>",
      "idempotent":true
    },
    "DeleteDataflowEndpointGroup":{
      "name":"DeleteDataflowEndpointGroup",
      "http":{
        "method":"DELETE",
        "requestUri":"/dataflowEndpointGroup/{dataflowEndpointGroupId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteDataflowEndpointGroupRequest"},
      "output":{"shape":"DataflowEndpointGroupIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes a dataflow endpoint group.</p>",
      "idempotent":true
    },
    "DeleteEphemeris":{
      "name":"DeleteEphemeris",
      "http":{
        "method":"DELETE",
        "requestUri":"/ephemeris/{ephemerisId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteEphemerisRequest"},
      "output":{"shape":"EphemerisIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ResourceInUseException"}
      ],
      "documentation":"<p>Delete an ephemeris.</p>",
      "idempotent":true
    },
    "DeleteMissionProfile":{
      "name":"DeleteMissionProfile",
      "http":{
        "method":"DELETE",
        "requestUri":"/missionprofile/{missionProfileId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteMissionProfileRequest"},
      "output":{"shape":"MissionProfileIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deletes a mission profile.</p>",
      "idempotent":true
    },
    "DescribeContact":{
      "name":"DescribeContact",
      "http":{
        "method":"GET",
        "requestUri":"/contact/{contactId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeContactRequest"},
      "output":{"shape":"DescribeContactResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Describes an existing contact.</p>",
      "readonly":true
    },
    "DescribeContactVersion":{
      "name":"DescribeContactVersion",
      "http":{
        "method":"GET",
        "requestUri":"/contact/{contactId}/versions/{versionId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeContactVersionRequest"},
      "output":{"shape":"DescribeContactVersionResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Describes a specific version of a contact.</p>",
      "readonly":true
    },
    "DescribeEphemeris":{
      "name":"DescribeEphemeris",
      "http":{
        "method":"GET",
        "requestUri":"/ephemeris/{ephemerisId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeEphemerisRequest"},
      "output":{"shape":"DescribeEphemerisResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Retrieve information about an existing ephemeris.</p>",
      "readonly":true
    },
    "GetAgentConfiguration":{
      "name":"GetAgentConfiguration",
      "http":{
        "method":"GET",
        "requestUri":"/agent/{agentId}/configuration",
        "responseCode":200
      },
      "input":{"shape":"GetAgentConfigurationRequest"},
      "output":{"shape":"GetAgentConfigurationResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p><note> <p> For use by AWS Ground Station Agent and shouldn't be called directly.</p> </note> <p>Gets the latest configuration information for a registered agent.</p></p>",
      "readonly":true
    },
    "GetAgentTaskResponseUrl":{
      "name":"GetAgentTaskResponseUrl",
      "http":{
        "method":"GET",
        "requestUri":"/agentResponseUrl/{agentId}/{taskId}",
        "responseCode":200
      },
      "input":{"shape":"GetAgentTaskResponseUrlRequest"},
      "output":{"shape":"GetAgentTaskResponseUrlResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p><note> <p> For use by AWS Ground Station Agent and shouldn't be called directly.</p> </note> <p>Gets a presigned URL for uploading agent task response logs.</p></p>",
      "readonly":true
    },
    "GetConfig":{
      "name":"GetConfig",
      "http":{
        "method":"GET",
        "requestUri":"/config/{configType}/{configId}",
        "responseCode":200
      },
      "input":{"shape":"GetConfigRequest"},
      "output":{"shape":"GetConfigResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns <code>Config</code> information.</p> <p>Only one <code>Config</code> response can be returned.</p>",
      "readonly":true
    },
    "GetDataflowEndpointGroup":{
      "name":"GetDataflowEndpointGroup",
      "http":{
        "method":"GET",
        "requestUri":"/dataflowEndpointGroup/{dataflowEndpointGroupId}",
        "responseCode":200
      },
      "input":{"shape":"GetDataflowEndpointGroupRequest"},
      "output":{"shape":"GetDataflowEndpointGroupResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns the dataflow endpoint group.</p>",
      "readonly":true
    },
    "GetMinuteUsage":{
      "name":"GetMinuteUsage",
      "http":{
        "method":"POST",
        "requestUri":"/minute-usage",
        "responseCode":200
      },
      "input":{"shape":"GetMinuteUsageRequest"},
      "output":{"shape":"GetMinuteUsageResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns the number of reserved minutes used by account.</p>",
      "readonly":true
    },
    "GetMissionProfile":{
      "name":"GetMissionProfile",
      "http":{
        "method":"GET",
        "requestUri":"/missionprofile/{missionProfileId}",
        "responseCode":200
      },
      "input":{"shape":"GetMissionProfileRequest"},
      "output":{"shape":"GetMissionProfileResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a mission profile.</p>",
      "readonly":true
    },
    "GetSatellite":{
      "name":"GetSatellite",
      "http":{
        "method":"GET",
        "requestUri":"/satellite/{satelliteId}",
        "responseCode":200
      },
      "input":{"shape":"GetSatelliteRequest"},
      "output":{"shape":"GetSatelliteResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a satellite.</p>",
      "readonly":true
    },
    "ListAntennas":{
      "name":"ListAntennas",
      "http":{
        "method":"GET",
        "requestUri":"/groundstation/{groundStationId}/antenna",
        "responseCode":200
      },
      "input":{"shape":"ListAntennasRequest"},
      "output":{"shape":"ListAntennasResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"}
      ],
      "documentation":"<p>Returns a list of antennas at a specified ground station.</p>",
      "readonly":true
    },
    "ListConfigs":{
      "name":"ListConfigs",
      "http":{
        "method":"GET",
        "requestUri":"/config",
        "responseCode":200
      },
      "input":{"shape":"ListConfigsRequest"},
      "output":{"shape":"ListConfigsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of <code>Config</code> objects.</p>",
      "readonly":true
    },
    "ListContactVersions":{
      "name":"ListContactVersions",
      "http":{
        "method":"GET",
        "requestUri":"/contact/{contactId}/versions",
        "responseCode":200
      },
      "input":{"shape":"ListContactVersionsRequest"},
      "output":{"shape":"ListContactVersionsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of versions for a specified contact.</p>",
      "readonly":true
    },
    "ListContacts":{
      "name":"ListContacts",
      "http":{
        "method":"POST",
        "requestUri":"/contacts",
        "responseCode":200
      },
      "input":{"shape":"ListContactsRequest"},
      "output":{"shape":"ListContactsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of contacts.</p> <p>If <code>statusList</code> contains AVAILABLE, the request must include <code> groundStation</code>, <code>missionprofileArn</code>, and <code>satelliteArn</code>. </p>",
      "readonly":true
    },
    "ListDataflowEndpointGroups":{
      "name":"ListDataflowEndpointGroups",
      "http":{
        "method":"GET",
        "requestUri":"/dataflowEndpointGroup",
        "responseCode":200
      },
      "input":{"shape":"ListDataflowEndpointGroupsRequest"},
      "output":{"shape":"ListDataflowEndpointGroupsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of <code>DataflowEndpoint</code> groups.</p>",
      "readonly":true
    },
    "ListEphemerides":{
      "name":"ListEphemerides",
      "http":{
        "method":"POST",
        "requestUri":"/ephemerides",
        "responseCode":200
      },
      "input":{"shape":"ListEphemeridesRequest"},
      "output":{"shape":"ListEphemeridesResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>List your existing ephemerides.</p>",
      "readonly":true
    },
    "ListGroundStationReservations":{
      "name":"ListGroundStationReservations",
      "http":{
        "method":"GET",
        "requestUri":"/groundstation/{groundStationId}/reservation",
        "responseCode":200
      },
      "input":{"shape":"ListGroundStationReservationsRequest"},
      "output":{"shape":"ListGroundStationReservationsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"}
      ],
      "documentation":"<p>Returns a list of reservations for a specified ground station.</p>",
      "readonly":true
    },
    "ListGroundStations":{
      "name":"ListGroundStations",
      "http":{
        "method":"GET",
        "requestUri":"/groundstation",
        "responseCode":200
      },
      "input":{"shape":"ListGroundStationsRequest"},
      "output":{"shape":"ListGroundStationsResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of ground stations. </p>",
      "readonly":true
    },
    "ListMissionProfiles":{
      "name":"ListMissionProfiles",
      "http":{
        "method":"GET",
        "requestUri":"/missionprofile",
        "responseCode":200
      },
      "input":{"shape":"ListMissionProfilesRequest"},
      "output":{"shape":"ListMissionProfilesResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of mission profiles.</p>",
      "readonly":true
    },
    "ListSatellites":{
      "name":"ListSatellites",
      "http":{
        "method":"GET",
        "requestUri":"/satellite",
        "responseCode":200
      },
      "input":{"shape":"ListSatellitesRequest"},
      "output":{"shape":"ListSatellitesResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of satellites.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Returns a list of tags for a specified resource.</p>",
      "readonly":true
    },
    "RegisterAgent":{
      "name":"RegisterAgent",
      "http":{
        "method":"POST",
        "requestUri":"/agent",
        "responseCode":200
      },
      "input":{"shape":"RegisterAgentRequest"},
      "output":{"shape":"RegisterAgentResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p><note> <p> For use by AWS Ground Station Agent and shouldn't be called directly.</p> </note> <p> Registers a new agent with AWS Ground Station. </p></p>"
    },
    "ReserveContact":{
      "name":"ReserveContact",
      "http":{
        "method":"POST",
        "requestUri":"/contact",
        "responseCode":200
      },
      "input":{"shape":"ReserveContactRequest"},
      "output":{"shape":"ContactIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Reserves a contact using specified parameters.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Assigns a tag to a resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Deassigns a resource tag.</p>",
      "idempotent":true
    },
    "UpdateAgentStatus":{
      "name":"UpdateAgentStatus",
      "http":{
        "method":"PUT",
        "requestUri":"/agent/{agentId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAgentStatusRequest"},
      "output":{"shape":"UpdateAgentStatusResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p><note> <p> For use by AWS Ground Station Agent and shouldn't be called directly.</p> </note> <p>Update the status of the agent.</p></p>",
      "idempotent":true
    },
    "UpdateConfig":{
      "name":"UpdateConfig",
      "http":{
        "method":"PUT",
        "requestUri":"/config/{configType}/{configId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateConfigRequest"},
      "output":{"shape":"ConfigIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates the <code>Config</code> used when scheduling contacts.</p> <p>Updating a <code>Config</code> will not update the execution parameters for existing future contacts scheduled with this <code>Config</code>.</p>",
      "idempotent":true
    },
    "UpdateContact":{
      "name":"UpdateContact",
      "http":{
        "method":"POST",
        "requestUri":"/contact/{contactId}/versions",
        "responseCode":200
      },
      "input":{"shape":"UpdateContactRequest"},
      "output":{"shape":"UpdateContactResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceLimitExceededException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates a specific contact.</p>",
      "idempotent":true
    },
    "UpdateEphemeris":{
      "name":"UpdateEphemeris",
      "http":{
        "method":"PUT",
        "requestUri":"/ephemeris/{ephemerisId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateEphemerisRequest"},
      "output":{"shape":"EphemerisIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Update an existing ephemeris.</p>",
      "idempotent":true
    },
    "UpdateMissionProfile":{
      "name":"UpdateMissionProfile",
      "http":{
        "method":"PUT",
        "requestUri":"/missionprofile/{missionProfileId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateMissionProfileRequest"},
      "output":{"shape":"MissionProfileIdResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"DependencyException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Updates a mission profile.</p> <p>Updating a mission profile will not update the execution parameters for existing future contacts.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AWSRegion":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\w-]+"
    },
    "AgentCpuCoresList":{
      "type":"list",
      "member":{"shape":"Integer"},
      "max":256,
      "min":0
    },
    "AgentDetails":{
      "type":"structure",
      "required":[
        "agentVersion",
        "instanceId",
        "instanceType",
        "componentVersions"
      ],
      "members":{
        "agentVersion":{
          "shape":"VersionString",
          "documentation":"<p>Current agent version.</p>"
        },
        "instanceId":{
          "shape":"InstanceId",
          "documentation":"<p>ID of EC2 instance agent is running on.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>Type of EC2 instance agent is running on.</p>"
        },
        "reservedCpuCores":{
          "shape":"AgentCpuCoresList",
          "documentation":"<p><note> <p>This field should not be used. Use agentCpuCores instead.</p> </note> <p>List of CPU cores reserved for processes other than the agent running on the EC2 instance.</p></p>"
        },
        "agentCpuCores":{
          "shape":"AgentCpuCoresList",
          "documentation":"<p>List of CPU cores reserved for the agent.</p>"
        },
        "componentVersions":{
          "shape":"ComponentVersionList",
          "documentation":"<p>List of versions being used by agent components.</p>"
        }
      },
      "documentation":"<p>Detailed information about the agent.</p>"
    },
    "AgentStatus":{
      "type":"string",
      "enum":[
        "SUCCESS",
        "FAILED",
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "AggregateStatus":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"AgentStatus",
          "documentation":"<p>Aggregate status.</p>"
        },
        "signatureMap":{
          "shape":"SignatureMap",
          "documentation":"<p>Sparse map of failure signatures.</p>"
        }
      },
      "documentation":"<p>Aggregate status of Agent components.</p>"
    },
    "AngleUnits":{
      "type":"string",
      "enum":[
        "DEGREE_ANGLE",
        "RADIAN"
      ]
    },
    "AntennaDemodDecodeDetails":{
      "type":"structure",
      "members":{
        "outputNode":{
          "shape":"String",
          "documentation":"<p>Name of an antenna demod decode output node used in a contact.</p>"
        }
      },
      "documentation":"<p>Details about an antenna demod decode <code>Config</code> used in a contact.</p>"
    },
    "AntennaDownlinkConfig":{
      "type":"structure",
      "required":["spectrumConfig"],
      "members":{
        "spectrumConfig":{
          "shape":"SpectrumConfig",
          "documentation":"<p>Object that describes a spectral <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Information about how AWS Ground Station should configure an antenna for downlink during a contact.</p>"
    },
    "AntennaDownlinkDemodDecodeConfig":{
      "type":"structure",
      "required":[
        "spectrumConfig",
        "demodulationConfig",
        "decodeConfig"
      ],
      "members":{
        "spectrumConfig":{
          "shape":"SpectrumConfig",
          "documentation":"<p>Information about the spectral <code>Config</code>.</p>"
        },
        "demodulationConfig":{
          "shape":"DemodulationConfig",
          "documentation":"<p>Information about the demodulation <code>Config</code>.</p>"
        },
        "decodeConfig":{
          "shape":"DecodeConfig",
          "documentation":"<p>Information about the decode <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.</p>"
    },
    "AntennaList":{
      "type":"list",
      "member":{"shape":"AntennaListItem"},
      "max":100,
      "min":0
    },
    "AntennaListItem":{
      "type":"structure",
      "required":[
        "groundStationName",
        "antennaName",
        "region"
      ],
      "members":{
        "groundStationName":{
          "shape":"GroundStationName",
          "documentation":"<p>Name of the ground station the antenna is associated with.</p>"
        },
        "antennaName":{
          "shape":"AntennaName",
          "documentation":"<p>Name of the antenna.</p>"
        },
        "region":{
          "shape":"AWSRegion",
          "documentation":"<p>Region of the antenna.</p>"
        }
      },
      "documentation":"<p>An antenna at a ground station.</p>"
    },
    "AntennaName":{
      "type":"string",
      "max":256,
      "min":4,
      "pattern":"[ a-zA-Z0-9-._:=]{4,256}"
    },
    "AntennaUplinkConfig":{
      "type":"structure",
      "required":[
        "spectrumConfig",
        "targetEirp"
      ],
      "members":{
        "transmitDisabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether or not uplink transmit is disabled.</p>"
        },
        "spectrumConfig":{
          "shape":"UplinkSpectrumConfig",
          "documentation":"<p>Information about the uplink spectral <code>Config</code>.</p>"
        },
        "targetEirp":{
          "shape":"Eirp",
          "documentation":"<p>EIRP of the target.</p>"
        }
      },
      "documentation":"<p>Information about the uplink <code>Config</code> of an antenna.</p>"
    },
    "AnyArn":{
      "type":"string",
      "max":1024,
      "min":5,
      "pattern":"(arn:aws:)[\\s\\S]{0,1024}"
    },
    "AuditResults":{
      "type":"string",
      "enum":[
        "HEALTHY",
        "UNHEALTHY"
      ]
    },
    "AwsGroundStationAgentEndpoint":{
      "type":"structure",
      "required":[
        "name",
        "egressAddress",
        "ingressAddress"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name string associated with AgentEndpoint. Used as a human-readable identifier for AgentEndpoint.</p>"
        },
        "egressAddress":{
          "shape":"ConnectionDetails",
          "documentation":"<p>The egress address of AgentEndpoint.</p>"
        },
        "ingressAddress":{
          "shape":"RangedConnectionDetails",
          "documentation":"<p>The ingress address of AgentEndpoint.</p>"
        },
        "agentStatus":{
          "shape":"AgentStatus",
          "documentation":"<p>The status of AgentEndpoint.</p>"
        },
        "auditResults":{
          "shape":"AuditResults",
          "documentation":"<p>The results of the audit.</p>"
        }
      },
      "documentation":"<p>Information about AwsGroundStationAgentEndpoint.</p>"
    },
    "AzElEphemeris":{
      "type":"structure",
      "required":[
        "groundStation",
        "data"
      ],
      "members":{
        "groundStation":{
          "shape":"GroundStationName",
          "documentation":"<p>The ground station name for which you're providing azimuth elevation data.</p> <p>This ephemeris is specific to this ground station and can't be used at other locations.</p>"
        },
        "data":{
          "shape":"AzElSegmentsData",
          "documentation":"<p>Azimuth elevation segment data.</p> <p>You can provide data inline in the request or through an Amazon S3 object reference.</p>"
        }
      },
      "documentation":"<p>Azimuth elevation ephemeris data.</p> <p> Use this ephemeris type to provide pointing angles directly, rather than satellite orbital elements. Use this when you need precise antenna pointing but have imprecise or unknown satellite trajectory information. </p> <p> The azimuth elevation data specifies the antenna pointing direction at specific times relative to a ground station location. AWS Ground Station uses 4th order Lagrange interpolation to compute pointing angles between the provided data points. </p> <p> AWS Ground Station automatically filters interpolated pointing angles, including only those that are above the site mask elevation of the specified ground station. </p> <p> For more detail about providing azimuth elevation ephemerides to AWS Ground Station, see the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/providing-azimuth-elevation-ephemeris-data.html\">azimuth elevation ephemeris section</a> of the AWS Ground Station User Guide. </p>"
    },
    "AzElEphemerisFilter":{
      "type":"structure",
      "required":["id"],
      "members":{
        "id":{
          "shape":"Uuid",
          "documentation":"<p>Unique identifier of the azimuth elevation ephemeris.</p>"
        }
      },
      "documentation":"<p>Filter for selecting contacts that use a specific <a>AzElEphemeris</a>.</p>"
    },
    "AzElProgramTrackSettings":{
      "type":"structure",
      "required":["ephemerisId"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>Unique identifier of the azimuth elevation ephemeris.</p>"
        }
      },
      "documentation":"<p>Program track settings for <a>AzElEphemeris</a>.</p>"
    },
    "AzElSegment":{
      "type":"structure",
      "required":[
        "referenceEpoch",
        "validTimeRange",
        "azElList"
      ],
      "members":{
        "referenceEpoch":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The reference time for this segment in ISO 8601 format in Coordinated Universal Time (UTC).</p> <p>All time values within the segment's <a>AzElSegment$azElList</a> are specified as offsets in atomic seconds from this reference epoch.</p> <p>Example: <code>2024-01-15T12:00:00.000Z</code> </p>"
        },
        "validTimeRange":{
          "shape":"ISO8601TimeRange",
          "documentation":"<p>The valid time range for this segment.</p> <p> Specifies the start and end timestamps in ISO 8601 format in Coordinated Universal Time (UTC). The segment's pointing data must cover this entire time range. </p>"
        },
        "azElList":{
          "shape":"TimeAzElList",
          "documentation":"<p>List of time-tagged azimuth elevation data points.</p> <p> Must contain at least five points to support 4th order Lagrange interpolation. Points must be in chronological order with no duplicates. </p>"
        }
      },
      "documentation":"<p>A time segment containing azimuth elevation pointing data.</p> <p> Each segment defines a continuous time period with pointing angle data points. AWS Ground Station uses 4th order Lagrange interpolation between the provided points, so each segment must contain at least five data points. </p>"
    },
    "AzElSegmentList":{
      "type":"list",
      "member":{"shape":"AzElSegment"},
      "max":100,
      "min":1
    },
    "AzElSegments":{
      "type":"structure",
      "required":[
        "angleUnit",
        "azElSegmentList"
      ],
      "members":{
        "angleUnit":{
          "shape":"AngleUnits",
          "documentation":"<p>The unit of measure for azimuth and elevation angles. All angles in all segments must use the same unit.</p>"
        },
        "azElSegmentList":{
          "shape":"AzElSegmentList",
          "documentation":"<p>List of azimuth elevation segments.</p> <p>Must contain between 1 and 100 segments. Segments must be in chronological order with no overlaps.</p>"
        }
      },
      "documentation":"<p>Azimuth elevation segment collection.</p> <p>Contains five or more time-ordered segments that define antenna pointing angles over the ephemeris validity period.</p>"
    },
    "AzElSegmentsData":{
      "type":"structure",
      "members":{
        "s3Object":{
          "shape":"S3Object",
          "documentation":"<p>The Amazon S3 object containing azimuth elevation segment data.</p> <p>The Amazon S3 object must contain JSON-formatted azimuth elevation data matching the <a>AzElSegments</a> structure.</p>"
        },
        "azElData":{
          "shape":"AzElSegments",
          "documentation":"<p>Azimuth elevation segment data provided directly in the request.</p> <p>Use this option for smaller datasets or when Amazon S3 access is not available.</p>"
        }
      },
      "documentation":"<p>Container for azimuth elevation segment data.</p> <p>Specify either <a>AzElSegmentsData$s3Object</a> to reference data in Amazon S3, or <a>AzElSegmentsData$azElData</a> to provide data inline.</p>",
      "union":true
    },
    "BandwidthUnits":{
      "type":"string",
      "enum":[
        "GHz",
        "MHz",
        "kHz"
      ]
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "BucketArn":{"type":"string"},
    "CancelContactRequest":{
      "type":"structure",
      "required":["contactId"],
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>",
          "location":"uri",
          "locationName":"contactId"
        }
      },
      "documentation":"<p>Input for the <code>CancelContact</code> operation. </p>"
    },
    "CapabilityArn":{"type":"string"},
    "CapabilityArnList":{
      "type":"list",
      "member":{"shape":"CapabilityArn"},
      "max":20,
      "min":1
    },
    "CapabilityHealth":{
      "type":"string",
      "enum":[
        "HEALTHY",
        "UNHEALTHY"
      ]
    },
    "CapabilityHealthReason":{
      "type":"string",
      "enum":[
        "NO_REGISTERED_AGENT",
        "INVALID_IP_OWNERSHIP",
        "NOT_AUTHORIZED_TO_CREATE_SLR",
        "UNVERIFIED_IP_OWNERSHIP",
        "INITIALIZING_DATAPLANE",
        "DATAPLANE_FAILURE",
        "HEALTHY"
      ]
    },
    "CapabilityHealthReasonList":{
      "type":"list",
      "member":{"shape":"CapabilityHealthReason"},
      "max":500,
      "min":0
    },
    "ClientToken":{
      "type":"string",
      "documentation":"<p>A client token is a unique, case-sensitive string of up to 64 ASCII characters. It is generated by the client to ensure idempotent operations, allowing safe retries without unintended side effects.</p>",
      "max":64,
      "min":1,
      "pattern":"[!-~]{1,64}"
    },
    "ComponentStatusData":{
      "type":"structure",
      "required":[
        "componentType",
        "capabilityArn",
        "status",
        "dataflowId"
      ],
      "members":{
        "componentType":{
          "shape":"ComponentTypeString",
          "documentation":"<p>The Component type.</p>"
        },
        "capabilityArn":{
          "shape":"CapabilityArn",
          "documentation":"<p>Capability ARN of the component.</p>"
        },
        "status":{
          "shape":"AgentStatus",
          "documentation":"<p>Component status.</p>"
        },
        "bytesSent":{
          "shape":"Long",
          "documentation":"<p>Bytes sent by the component.</p>"
        },
        "bytesReceived":{
          "shape":"Long",
          "documentation":"<p>Bytes received by the component.</p>"
        },
        "packetsDropped":{
          "shape":"Long",
          "documentation":"<p>Packets dropped by component.</p>"
        },
        "dataflowId":{
          "shape":"Uuid",
          "documentation":"<p>Dataflow UUID associated with the component.</p>"
        }
      },
      "documentation":"<p>Data on the status of agent components.</p>"
    },
    "ComponentStatusList":{
      "type":"list",
      "member":{"shape":"ComponentStatusData"},
      "max":20,
      "min":0
    },
    "ComponentTypeString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_]{1,64}"
    },
    "ComponentVersion":{
      "type":"structure",
      "required":[
        "componentType",
        "versions"
      ],
      "members":{
        "componentType":{
          "shape":"ComponentTypeString",
          "documentation":"<p>Component type.</p>"
        },
        "versions":{
          "shape":"VersionStringList",
          "documentation":"<p>List of versions.</p>"
        }
      },
      "documentation":"<p>Version information for agent components.</p>"
    },
    "ComponentVersionList":{
      "type":"list",
      "member":{"shape":"ComponentVersion"},
      "max":20,
      "min":1
    },
    "ConfigArn":{
      "type":"string",
      "max":424,
      "min":82,
      "pattern":"arn:aws:groundstation:[-a-z0-9]{1,50}:[0-9]{12}:config/[a-z0-9]+(-[a-z0-9]+){0,4}/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(/.{1,256})?"
    },
    "ConfigCapabilityType":{
      "type":"string",
      "enum":[
        "antenna-downlink",
        "antenna-downlink-demod-decode",
        "tracking",
        "dataflow-endpoint",
        "antenna-uplink",
        "uplink-echo",
        "s3-recording",
        "telemetry-sink"
      ]
    },
    "ConfigDetails":{
      "type":"structure",
      "members":{
        "endpointDetails":{"shape":"EndpointDetails"},
        "antennaDemodDecodeDetails":{
          "shape":"AntennaDemodDecodeDetails",
          "documentation":"<p>Details for antenna demod decode <code>Config</code> in a contact.</p>"
        },
        "s3RecordingDetails":{
          "shape":"S3RecordingDetails",
          "documentation":"<p>Details for an S3 recording <code>Config</code> in a contact.</p>"
        }
      },
      "documentation":"<p>Details for certain <code>Config</code> object types in a contact.</p>",
      "union":true
    },
    "ConfigIdResponse":{
      "type":"structure",
      "members":{
        "configId":{
          "shape":"String",
          "documentation":"<p>UUID of a <code>Config</code>.</p>"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>"
        },
        "configArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Response containing the ARN, ID, and type of a <code>Config</code>. </p>"
    },
    "ConfigList":{
      "type":"list",
      "member":{"shape":"ConfigListItem"}
    },
    "ConfigListItem":{
      "type":"structure",
      "members":{
        "configId":{
          "shape":"String",
          "documentation":"<p>UUID of a <code>Config</code>.</p>"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>"
        },
        "configArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a <code>Config</code>.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>Name of a <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>An item in a list of <code>Config</code> objects.</p>"
    },
    "ConfigTypeData":{
      "type":"structure",
      "members":{
        "antennaDownlinkConfig":{
          "shape":"AntennaDownlinkConfig",
          "documentation":"<p>Information about how AWS Ground Station should configure an antenna for downlink during a contact.</p>"
        },
        "trackingConfig":{
          "shape":"TrackingConfig",
          "documentation":"<p>Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile. </p>"
        },
        "dataflowEndpointConfig":{
          "shape":"DataflowEndpointConfig",
          "documentation":"<p>Information about the dataflow endpoint <code>Config</code>.</p>"
        },
        "antennaDownlinkDemodDecodeConfig":{
          "shape":"AntennaDownlinkDemodDecodeConfig",
          "documentation":"<p>Information about how AWS Ground Station should conﬁgure an antenna for downlink demod decode during a contact.</p>"
        },
        "antennaUplinkConfig":{
          "shape":"AntennaUplinkConfig",
          "documentation":"<p>Information about how AWS Ground Station should conﬁgure an antenna for uplink during a contact.</p>"
        },
        "uplinkEchoConfig":{
          "shape":"UplinkEchoConfig",
          "documentation":"<p>Information about an uplink echo <code>Config</code>.</p> <p>Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code> AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.</p>"
        },
        "s3RecordingConfig":{
          "shape":"S3RecordingConfig",
          "documentation":"<p>Information about an S3 recording <code>Config</code>.</p>"
        },
        "telemetrySinkConfig":{
          "shape":"TelemetrySinkConfig",
          "documentation":"<p>Information about a telemetry sink <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Object containing the parameters of a <code>Config</code>.</p> <p>See the subtype definitions for what each type of <code>Config</code> contains.</p>",
      "union":true
    },
    "ConnectionDetails":{
      "type":"structure",
      "required":["socketAddress"],
      "members":{
        "socketAddress":{
          "shape":"SocketAddress",
          "documentation":"<p>A socket address.</p>"
        },
        "mtu":{
          "shape":"Integer",
          "documentation":"<p>Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.</p>"
        }
      },
      "documentation":"<p>Egress address of AgentEndpoint with an optional mtu.</p>"
    },
    "ContactData":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a contact in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a contact in UTC.</p>"
        },
        "prePassStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time in UTC of the pre-pass period, at which you receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "postPassEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time in UTC of the post-pass period, at which you receive a CloudWatch event indicating the pass has finished.</p>"
        },
        "groundStation":{
          "shape":"String",
          "documentation":"<p>Name of a ground station.</p>"
        },
        "contactStatus":{
          "shape":"ContactStatus",
          "documentation":"<p>Status of a contact.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message of a contact.</p>"
        },
        "maximumElevation":{
          "shape":"Elevation",
          "documentation":"<p>Maximum elevation angle of a contact.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>Region of a contact.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a contact.</p>"
        },
        "visibilityStartTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will rise above the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts. <i>This field is not present for contacts with a <code>SCHEDULING</code> or <code>SCHEDULED</code> status.</i> </p>"
        },
        "visibilityEndTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will set below the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts. <i>This field is not present for contacts with a <code>SCHEDULING</code> or <code>SCHEDULED</code> status.</i> </p>"
        },
        "ephemeris":{
          "shape":"EphemerisResponseData",
          "documentation":"<p>The ephemeris that determines antenna pointing for the contact.</p>"
        },
        "version":{
          "shape":"ContactVersion",
          "documentation":"<p>Version information for a contact.</p>"
        }
      },
      "documentation":"<p>Data describing a contact.</p>"
    },
    "ContactIdResponse":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        },
        "versionId":{
          "shape":"VersionId",
          "documentation":"<p>Version ID of a contact.</p>"
        }
      },
      "documentation":"<p>Response containing the ID of a contact. </p>"
    },
    "ContactList":{
      "type":"list",
      "member":{"shape":"ContactData"}
    },
    "ContactReservationDetails":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        }
      },
      "documentation":"<p>Details of a contact reservation.</p>"
    },
    "ContactStatus":{
      "type":"string",
      "enum":[
        "SCHEDULING",
        "FAILED_TO_SCHEDULE",
        "SCHEDULED",
        "CANCELLED",
        "AWS_CANCELLED",
        "PREPASS",
        "PASS",
        "POSTPASS",
        "COMPLETED",
        "FAILED",
        "AVAILABLE",
        "CANCELLING",
        "AWS_FAILED"
      ]
    },
    "ContactVersion":{
      "type":"structure",
      "members":{
        "versionId":{
          "shape":"VersionId",
          "documentation":"<p>Version ID of a contact.</p>"
        },
        "created":{
          "shape":"Timestamp",
          "documentation":"<p>Time the contact version was created in UTC.</p>"
        },
        "activated":{
          "shape":"Timestamp",
          "documentation":"<p>Time the contact version was activated in UTC. A version is activated when it becomes the current active version of the contact.</p>"
        },
        "superseded":{
          "shape":"Timestamp",
          "documentation":"<p>Time the contact version was superseded in UTC. A version is superseded when a newer version becomes active.</p>"
        },
        "lastUpdated":{
          "shape":"Timestamp",
          "documentation":"<p>Time the contact version was last updated in UTC.</p>"
        },
        "status":{
          "shape":"VersionStatus",
          "documentation":"<p>Status of the contact version.</p>"
        },
        "failureCodes":{
          "shape":"VersionFailureReasonCodes",
          "documentation":"<p>List of failure codes for the contact version.</p>"
        },
        "failureMessage":{
          "shape":"String",
          "documentation":"<p>Failure message for the contact version.</p>"
        }
      },
      "documentation":"<p>Version information for a contact.</p>"
    },
    "ContactVersionsList":{
      "type":"list",
      "member":{"shape":"ContactVersion"}
    },
    "CreateConfigRequest":{
      "type":"structure",
      "required":[
        "name",
        "configData"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a <code>Config</code>.</p>"
        },
        "configData":{
          "shape":"ConfigTypeData",
          "documentation":"<p>Parameters of a <code>Config</code>.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Input for the <code>CreateConfig</code> operation. </p>"
    },
    "CreateDataflowEndpointGroupRequest":{
      "type":"structure",
      "required":["endpointDetails"],
      "members":{
        "endpointDetails":{
          "shape":"EndpointDetailsList",
          "documentation":"<p>Endpoint details of each endpoint in the dataflow endpoint group. All dataflow endpoints within a single dataflow endpoint group must be of the same type. You cannot mix <a href=\"https://docs.aws.amazon.com/ground-station/latest/APIReference/API_AwsGroundStationAgentEndpoint.html\"> AWS Ground Station Agent endpoints</a> with <a href=\"https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DataflowEndpoint.html\">Dataflow endpoints</a> in the same group. If your use case requires both types of endpoints, you must create separate dataflow endpoint groups for each type. </p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags of a dataflow endpoint group.</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p> Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a <code>PREPASS</code> state. A <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/monitoring.automating-events.html\">Ground Station Dataflow Endpoint Group State Change event</a> will be emitted when the Dataflow Endpoint Group enters and exits the <code>PREPASS</code> state. </p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p> Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a <code>POSTPASS</code> state. A <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/monitoring.automating-events.html\">Ground Station Dataflow Endpoint Group State Change event</a> will be emitted when the Dataflow Endpoint Group enters and exits the <code>POSTPASS</code> state. </p>"
        }
      },
      "documentation":"<p>Input for the <code>CreateDataflowEndpointGroup</code> operation. </p>"
    },
    "CreateDataflowEndpointGroupV2Request":{
      "type":"structure",
      "required":["endpoints"],
      "members":{
        "endpoints":{
          "shape":"CreateEndpointDetailsList",
          "documentation":"<p>Dataflow endpoint group's endpoint definitions</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p> Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a <code>PREPASS</code> state. A <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/monitoring.automating-events.html\">Ground Station Dataflow Endpoint Group State Change event</a> will be emitted when the Dataflow Endpoint Group enters and exits the <code>PREPASS</code> state. </p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p> Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a <code>POSTPASS</code> state. A <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/monitoring.automating-events.html\">Ground Station Dataflow Endpoint Group State Change event</a> will be emitted when the Dataflow Endpoint Group enters and exits the <code>POSTPASS</code> state. </p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags of a V2 dataflow endpoint group.</p>"
        }
      }
    },
    "CreateDataflowEndpointGroupV2Response":{
      "type":"structure",
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>Dataflow endpoint group ID</p>"
        }
      }
    },
    "CreateEndpointDetails":{
      "type":"structure",
      "members":{
        "uplinkAwsGroundStationAgentEndpoint":{
          "shape":"UplinkAwsGroundStationAgentEndpoint",
          "documentation":"<p>Definition for an uplink agent endpoint</p>"
        },
        "downlinkAwsGroundStationAgentEndpoint":{
          "shape":"DownlinkAwsGroundStationAgentEndpoint",
          "documentation":"<p>Definition for a downlink agent endpoint</p>"
        }
      },
      "documentation":"<p>Endpoint definition used for creating a dataflow endpoint</p>",
      "union":true
    },
    "CreateEndpointDetailsList":{
      "type":"list",
      "member":{"shape":"CreateEndpointDetails"},
      "max":12,
      "min":1
    },
    "CreateEphemerisRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>The satellite ID that associates this ephemeris with a satellite in AWS Ground Station.</p>"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Set to <code>true</code> to enable the ephemeris after validation. Set to <code>false</code> to keep it disabled.</p>"
        },
        "priority":{
          "shape":"CustomerEphemerisPriority",
          "documentation":"<p>A priority score that determines which ephemeris to use when multiple ephemerides overlap.</p> <p>Higher numbers take precedence. The default is 1. Must be 1 or greater.</p>"
        },
        "expirationTime":{
          "shape":"Timestamp",
          "documentation":"<p>An overall expiration time for the ephemeris in UTC, after which it will become <code>EXPIRED</code>.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>A name that you can use to identify the ephemeris.</p>"
        },
        "kmsKeyArn":{
          "shape":"KeyArn",
          "documentation":"<p>The ARN of the KMS key to use for encrypting the ephemeris.</p>"
        },
        "ephemeris":{
          "shape":"EphemerisData",
          "documentation":"<p>Ephemeris data.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to an ephemeris.</p>"
        }
      }
    },
    "CreateMissionProfileRequest":{
      "type":"structure",
      "required":[
        "name",
        "minimumViableContactDurationSeconds",
        "dataflowEdges",
        "trackingConfigArn"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a mission profile.</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>Amount of time prior to contact start you'd like to receive a Ground Station Contact State Change event indicating an upcoming pass.</p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "minimumViableContactDurationSeconds":{
          "shape":"PositiveDurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "dataflowEdges":{
          "shape":"DataflowEdgeList",
          "documentation":"<p>A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code> Config</code> and a <i>to</i> <code>Config</code>.</p>"
        },
        "trackingConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a tracking <code>Config</code>.</p>"
        },
        "telemetrySinkConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a telemetry sink <code>Config</code>.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a mission profile.</p>"
        },
        "streamsKmsKey":{
          "shape":"KmsKey",
          "documentation":"<p>KMS key to use for encrypting streams.</p>"
        },
        "streamsKmsRole":{
          "shape":"RoleArn",
          "documentation":"<p>Role to use for encrypting streams with KMS key.</p>"
        }
      },
      "documentation":"<p>Input for the <code>CreateMissionProfile</code> operation. </p>"
    },
    "Criticality":{
      "type":"string",
      "enum":[
        "REQUIRED",
        "PREFERRED",
        "REMOVED"
      ]
    },
    "CustomerEphemerisPriority":{
      "type":"integer",
      "box":true,
      "max":99999,
      "min":1
    },
    "DataflowDetail":{
      "type":"structure",
      "members":{
        "source":{"shape":"Source"},
        "destination":{"shape":"Destination"},
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message for a dataflow.</p>"
        }
      },
      "documentation":"<p>Information about a dataflow edge used in a contact.</p>"
    },
    "DataflowEdge":{
      "type":"list",
      "member":{"shape":"ConfigArn"},
      "max":2,
      "min":2
    },
    "DataflowEdgeList":{
      "type":"list",
      "member":{"shape":"DataflowEdge"},
      "max":500,
      "min":0
    },
    "DataflowEndpoint":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a dataflow endpoint.</p>"
        },
        "address":{
          "shape":"SocketAddress",
          "documentation":"<p>Socket address of a dataflow endpoint.</p>"
        },
        "status":{
          "shape":"EndpointStatus",
          "documentation":"<p>Status of a dataflow endpoint.</p>"
        },
        "mtu":{
          "shape":"DataflowEndpointMtuInteger",
          "documentation":"<p>Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.</p>"
        }
      },
      "documentation":"<p>Information about a dataflow endpoint.</p>"
    },
    "DataflowEndpointConfig":{
      "type":"structure",
      "required":["dataflowEndpointName"],
      "members":{
        "dataflowEndpointName":{
          "shape":"String",
          "documentation":"<p>Name of a dataflow endpoint.</p>"
        },
        "dataflowEndpointRegion":{
          "shape":"String",
          "documentation":"<p>Region of a dataflow endpoint.</p>"
        }
      },
      "documentation":"<p>Information about the dataflow endpoint <code>Config</code>.</p>"
    },
    "DataflowEndpointGroupArn":{
      "type":"string",
      "max":146,
      "min":97,
      "pattern":"arn:aws:groundstation:[-a-z0-9]{1,50}:[0-9]{12}:dataflow-endpoint-group/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "DataflowEndpointGroupDurationInSeconds":{
      "type":"integer",
      "box":true,
      "max":480,
      "min":30
    },
    "DataflowEndpointGroupIdResponse":{
      "type":"structure",
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a dataflow endpoint group.</p>"
        }
      },
      "documentation":"<p>Response containing the ID of a dataflow endpoint group. </p>"
    },
    "DataflowEndpointGroupList":{
      "type":"list",
      "member":{"shape":"DataflowEndpointListItem"}
    },
    "DataflowEndpointListItem":{
      "type":"structure",
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a dataflow endpoint group.</p>"
        },
        "dataflowEndpointGroupArn":{
          "shape":"DataflowEndpointGroupArn",
          "documentation":"<p>ARN of a dataflow endpoint group.</p>"
        }
      },
      "documentation":"<p>Item in a list of <code>DataflowEndpoint</code> groups.</p>"
    },
    "DataflowEndpointMtuInteger":{
      "type":"integer",
      "box":true,
      "max":1500,
      "min":1400
    },
    "DataflowList":{
      "type":"list",
      "member":{"shape":"DataflowDetail"}
    },
    "DecodeConfig":{
      "type":"structure",
      "required":["unvalidatedJSON"],
      "members":{
        "unvalidatedJSON":{
          "shape":"JsonString",
          "documentation":"<p>Unvalidated JSON of a decode <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Information about the decode <code>Config</code>.</p>"
    },
    "DeleteConfigRequest":{
      "type":"structure",
      "required":[
        "configId",
        "configType"
      ],
      "members":{
        "configId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configId"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configType"
        }
      },
      "documentation":"<p>Input for the <code>DeleteConfig</code> operation. </p>"
    },
    "DeleteDataflowEndpointGroupRequest":{
      "type":"structure",
      "required":["dataflowEndpointGroupId"],
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a dataflow endpoint group.</p>",
          "location":"uri",
          "locationName":"dataflowEndpointGroupId"
        }
      },
      "documentation":"<p>Input for the <code>DeleteDataflowEndpointGroup</code> operation. </p>"
    },
    "DeleteEphemerisRequest":{
      "type":"structure",
      "required":["ephemerisId"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>",
          "location":"uri",
          "locationName":"ephemerisId"
        }
      }
    },
    "DeleteMissionProfileRequest":{
      "type":"structure",
      "required":["missionProfileId"],
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>",
          "location":"uri",
          "locationName":"missionProfileId"
        }
      },
      "documentation":"<p>Input for the <code>DeleteMissionProfile</code> operation. </p>"
    },
    "DemodulationConfig":{
      "type":"structure",
      "required":["unvalidatedJSON"],
      "members":{
        "unvalidatedJSON":{
          "shape":"JsonString",
          "documentation":"<p>Unvalidated JSON of a demodulation <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Information about the demodulation <code>Config</code>.</p>"
    },
    "DependencyException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "parameterName":{
          "shape":"String",
          "documentation":"<p>Name of the parameter that caused the exception.</p>"
        }
      },
      "documentation":"<p>Dependency encountered an error.</p>",
      "error":{"httpStatusCode":531},
      "exception":true,
      "fault":true
    },
    "DescribeContactRequest":{
      "type":"structure",
      "required":["contactId"],
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>",
          "location":"uri",
          "locationName":"contactId"
        }
      },
      "documentation":"<p>Input for the <code>DescribeContact</code> operation. </p>"
    },
    "DescribeContactResponse":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a contact in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a contact in UTC.</p>"
        },
        "prePassStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time in UTC of the pre-pass period, at which you receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "postPassEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time in UTC of the post-pass period, at which you receive a CloudWatch event indicating the pass has finished.</p>"
        },
        "groundStation":{
          "shape":"String",
          "documentation":"<p>Ground station for a contact.</p>"
        },
        "contactStatus":{
          "shape":"ContactStatus",
          "documentation":"<p>Status of a contact.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message for a contact.</p>"
        },
        "maximumElevation":{
          "shape":"Elevation",
          "documentation":"<p>Maximum elevation angle of a contact.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a contact.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>Region where the <code>ReserveContact</code> API was called to schedule this contact.</p>"
        },
        "dataflowList":{
          "shape":"DataflowList",
          "documentation":"<p>List describing source and destination details for each dataflow edge.</p>"
        },
        "visibilityStartTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will rise above the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts.</p>"
        },
        "visibilityEndTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will set below the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts.</p>"
        },
        "trackingOverrides":{
          "shape":"TrackingOverrides",
          "documentation":"<p>Tracking configuration overrides specified when the contact was reserved.</p>"
        },
        "ephemeris":{
          "shape":"EphemerisResponseData",
          "documentation":"<p>The ephemeris that determines antenna pointing directions for the contact.</p>"
        },
        "version":{
          "shape":"ContactVersion",
          "documentation":"<p>Version information for a contact.</p>"
        }
      },
      "documentation":"<p>Output for the <code>DescribeContact</code> operation. </p>"
    },
    "DescribeContactVersionRequest":{
      "type":"structure",
      "required":[
        "contactId",
        "versionId"
      ],
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>",
          "location":"uri",
          "locationName":"contactId"
        },
        "versionId":{
          "shape":"VersionId",
          "documentation":"<p>Version ID of a contact.</p>",
          "location":"uri",
          "locationName":"versionId"
        }
      }
    },
    "DescribeContactVersionResponse":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of the contact's mission profile.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a contact in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a contact in UTC.</p>"
        },
        "prePassStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time in UTC of the pre-pass period, at which you receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "postPassEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time in UTC of the post-pass period, at which you receive a CloudWatch event indicating the pass has finished.</p>"
        },
        "groundStation":{
          "shape":"String",
          "documentation":"<p>Ground station for a contact.</p>"
        },
        "contactStatus":{
          "shape":"ContactStatus",
          "documentation":"<p>Status of a contact.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message for a contact.</p>"
        },
        "maximumElevation":{
          "shape":"Elevation",
          "documentation":"<p>Maximum elevation angle of a contact.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a contact.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>Region where the <code>ReserveContact</code> API was called to schedule this contact.</p>"
        },
        "dataflowList":{
          "shape":"DataflowList",
          "documentation":"<p>List describing source and destination details for each dataflow edge.</p>"
        },
        "visibilityStartTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will rise above the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts.</p>"
        },
        "visibilityEndTime":{
          "shape":"Timestamp",
          "documentation":"<p> Projected time in UTC your satellite will set below the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/site-masks.html\">receive mask</a>. This time is based on the satellite's current active ephemeris for future contacts and the ephemeris that was active during contact execution for completed contacts.</p>"
        },
        "trackingOverrides":{
          "shape":"TrackingOverrides",
          "documentation":"<p>Tracking configuration overrides applied to this contact version. For the initial version, these are the overrides specified when the contact was reserved. For subsequent versions, these are the overrides associated with that specific version update.</p>"
        },
        "ephemeris":{
          "shape":"EphemerisResponseData",
          "documentation":"<p>The ephemeris that determines antenna pointing directions for the contact.</p>"
        },
        "version":{
          "shape":"ContactVersion",
          "documentation":"<p>Version information for a contact.</p>"
        }
      }
    },
    "DescribeEphemerisRequest":{
      "type":"structure",
      "required":["ephemerisId"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>",
          "location":"uri",
          "locationName":"ephemerisId"
        }
      }
    },
    "DescribeEphemerisResponse":{
      "type":"structure",
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>"
        },
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station satellite ID associated with ephemeris.</p>"
        },
        "status":{
          "shape":"EphemerisStatus",
          "documentation":"<p>The status of the ephemeris.</p>"
        },
        "priority":{
          "shape":"EphemerisPriority",
          "documentation":"<p>A priority score that determines which ephemeris to use when multiple ephemerides overlap.</p> <p>Higher numbers take precedence. The default is 1. Must be 1 or greater.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the ephemeris was uploaded in UTC.</p>"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether or not the ephemeris is enabled.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>A name that you can use to identify the ephemeris.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to an ephemeris.</p>"
        },
        "suppliedData":{
          "shape":"EphemerisTypeDescription",
          "documentation":"<p>Supplied ephemeris data.</p>"
        },
        "invalidReason":{
          "shape":"EphemerisInvalidReason",
          "documentation":"<p>Reason that an ephemeris failed validation. Appears only when the status is <code>INVALID</code>.</p>"
        },
        "errorReasons":{
          "shape":"EphemerisErrorReasonList",
          "documentation":"<p>Detailed error information for ephemerides with <code>INVALID</code> status.</p> <p>Provides specific error codes and messages to help diagnose validation failures.</p>"
        }
      }
    },
    "Destination":{
      "type":"structure",
      "members":{
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>"
        },
        "configId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a <code>Config</code>.</p>"
        },
        "configDetails":{
          "shape":"ConfigDetails",
          "documentation":"<p>Additional details for a <code>Config</code>, if type is dataflow endpoint or antenna demod decode.</p>"
        },
        "dataflowDestinationRegion":{
          "shape":"String",
          "documentation":"<p>Region of a dataflow destination.</p>"
        }
      },
      "documentation":"<p>Dataflow details for the destination side.</p>"
    },
    "DiscoveryData":{
      "type":"structure",
      "required":[
        "publicIpAddresses",
        "privateIpAddresses",
        "capabilityArns"
      ],
      "members":{
        "publicIpAddresses":{
          "shape":"IpAddressList",
          "documentation":"<p>List of public IP addresses to associate with agent.</p>"
        },
        "privateIpAddresses":{
          "shape":"IpAddressList",
          "documentation":"<p>List of private IP addresses to associate with agent.</p>"
        },
        "capabilityArns":{
          "shape":"CapabilityArnList",
          "documentation":"<p>List of capabilities to associate with agent.</p>"
        }
      },
      "documentation":"<p>Data for agent discovery.</p>"
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "DownlinkAwsGroundStationAgentEndpoint":{
      "type":"structure",
      "required":[
        "name",
        "dataflowDetails"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Downlink dataflow endpoint name</p>"
        },
        "dataflowDetails":{
          "shape":"DownlinkDataflowDetails",
          "documentation":"<p>Dataflow details for the downlink endpoint</p>"
        }
      },
      "documentation":"<p>Definition for a downlink agent endpoint</p>"
    },
    "DownlinkAwsGroundStationAgentEndpointDetails":{
      "type":"structure",
      "required":[
        "name",
        "dataflowDetails"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Downlink dataflow endpoint name</p>"
        },
        "dataflowDetails":{
          "shape":"DownlinkDataflowDetails",
          "documentation":"<p>Dataflow details for the downlink endpoint</p>"
        },
        "agentStatus":{
          "shape":"AgentStatus",
          "documentation":"<p>Status of the agent associated with the downlink dataflow endpoint</p>"
        },
        "auditResults":{
          "shape":"AuditResults",
          "documentation":"<p>Health audit results for the downlink dataflow endpoint</p>"
        }
      },
      "documentation":"<p>Details for a downlink agent endpoint</p>"
    },
    "DownlinkConnectionDetails":{
      "type":"structure",
      "required":[
        "agentIpAndPortAddress",
        "egressAddressAndPort"
      ],
      "members":{
        "agentIpAndPortAddress":{"shape":"RangedConnectionDetails"},
        "egressAddressAndPort":{"shape":"ConnectionDetails"}
      },
      "documentation":"<p>Connection details for Ground Station to Agent and Agent to customer</p>"
    },
    "DownlinkDataflowDetails":{
      "type":"structure",
      "members":{
        "agentConnectionDetails":{
          "shape":"DownlinkConnectionDetails",
          "documentation":"<p>Downlink connection details for customer to Agent and Agent to Ground Station</p>"
        }
      },
      "documentation":"<p>Dataflow details for a downlink endpoint</p>",
      "union":true
    },
    "DurationInSeconds":{
      "type":"integer",
      "box":true,
      "max":21600,
      "min":0
    },
    "Eirp":{
      "type":"structure",
      "required":[
        "value",
        "units"
      ],
      "members":{
        "value":{
          "shape":"Double",
          "documentation":"<p>Value of an EIRP. Valid values are between 20.0 to 50.0 dBW.</p>"
        },
        "units":{
          "shape":"EirpUnits",
          "documentation":"<p>Units of an EIRP.</p>"
        }
      },
      "documentation":"<p>Object that represents EIRP.</p>"
    },
    "EirpUnits":{
      "type":"string",
      "enum":["dBW"]
    },
    "Elevation":{
      "type":"structure",
      "required":[
        "value",
        "unit"
      ],
      "members":{
        "value":{
          "shape":"Double",
          "documentation":"<p>Elevation angle value.</p>"
        },
        "unit":{
          "shape":"AngleUnits",
          "documentation":"<p>Elevation angle units.</p>"
        }
      },
      "documentation":"<p>Elevation angle of the satellite in the sky during a contact.</p>"
    },
    "EndpointDetails":{
      "type":"structure",
      "members":{
        "securityDetails":{
          "shape":"SecurityDetails",
          "documentation":"<p>Endpoint security details including a list of subnets, a list of security groups and a role to connect streams to instances.</p>"
        },
        "endpoint":{
          "shape":"DataflowEndpoint",
          "documentation":"<p>A dataflow endpoint.</p>"
        },
        "awsGroundStationAgentEndpoint":{
          "shape":"AwsGroundStationAgentEndpoint",
          "documentation":"<p>An agent endpoint.</p>"
        },
        "uplinkAwsGroundStationAgentEndpoint":{
          "shape":"UplinkAwsGroundStationAgentEndpointDetails",
          "documentation":"<p>Definition for an uplink agent endpoint</p>"
        },
        "downlinkAwsGroundStationAgentEndpoint":{
          "shape":"DownlinkAwsGroundStationAgentEndpointDetails",
          "documentation":"<p>Definition for a downlink agent endpoint</p>"
        },
        "healthStatus":{
          "shape":"CapabilityHealth",
          "documentation":"<p>A dataflow endpoint health status. This field is ignored when calling <code>CreateDataflowEndpointGroup</code>.</p>"
        },
        "healthReasons":{
          "shape":"CapabilityHealthReasonList",
          "documentation":"<p>Health reasons for a dataflow endpoint. This field is ignored when calling <code>CreateDataflowEndpointGroup</code>.</p>"
        }
      },
      "documentation":"<p>Information about the endpoint details.</p>"
    },
    "EndpointDetailsList":{
      "type":"list",
      "member":{"shape":"EndpointDetails"},
      "max":500,
      "min":0
    },
    "EndpointStatus":{
      "type":"string",
      "enum":[
        "created",
        "creating",
        "deleted",
        "deleting",
        "failed"
      ]
    },
    "EphemeridesList":{
      "type":"list",
      "member":{"shape":"EphemerisItem"},
      "max":500,
      "min":1
    },
    "EphemerisData":{
      "type":"structure",
      "members":{
        "tle":{"shape":"TLEEphemeris"},
        "oem":{"shape":"OEMEphemeris"},
        "azEl":{"shape":"AzElEphemeris"}
      },
      "documentation":"<p>Ephemeris data.</p>",
      "union":true
    },
    "EphemerisDescription":{
      "type":"structure",
      "members":{
        "sourceS3Object":{
          "shape":"S3Object",
          "documentation":"<p>Source Amazon S3 object used for the ephemeris.</p>"
        },
        "ephemerisData":{
          "shape":"UnboundedString",
          "documentation":"<p>Supplied ephemeris data.</p>"
        }
      },
      "documentation":"<p>Description of ephemeris.</p>"
    },
    "EphemerisErrorCode":{
      "type":"string",
      "enum":[
        "INTERNAL_ERROR",
        "MISMATCHED_SATCAT_ID",
        "OEM_VERSION_UNSUPPORTED",
        "ORIGINATOR_MISSING",
        "CREATION_DATE_MISSING",
        "OBJECT_NAME_MISSING",
        "OBJECT_ID_MISSING",
        "REF_FRAME_UNSUPPORTED",
        "REF_FRAME_EPOCH_UNSUPPORTED",
        "TIME_SYSTEM_UNSUPPORTED",
        "CENTER_BODY_UNSUPPORTED",
        "INTERPOLATION_MISSING",
        "INTERPOLATION_DEGREE_INVALID",
        "AZ_EL_SEGMENT_LIST_MISSING",
        "INSUFFICIENT_TIME_AZ_EL",
        "START_TIME_IN_FUTURE",
        "END_TIME_IN_PAST",
        "EXPIRATION_TIME_TOO_EARLY",
        "START_TIME_METADATA_TOO_EARLY",
        "STOP_TIME_METADATA_TOO_LATE",
        "AZ_EL_SEGMENT_END_TIME_BEFORE_START_TIME",
        "AZ_EL_SEGMENT_TIMES_OVERLAP",
        "AZ_EL_SEGMENTS_OUT_OF_ORDER",
        "TIME_AZ_EL_ITEMS_OUT_OF_ORDER",
        "MEAN_MOTION_INVALID",
        "TIME_AZ_EL_AZ_RADIAN_RANGE_INVALID",
        "TIME_AZ_EL_EL_RADIAN_RANGE_INVALID",
        "TIME_AZ_EL_AZ_DEGREE_RANGE_INVALID",
        "TIME_AZ_EL_EL_DEGREE_RANGE_INVALID",
        "TIME_AZ_EL_ANGLE_UNITS_INVALID",
        "INSUFFICIENT_KMS_PERMISSIONS",
        "FILE_FORMAT_INVALID",
        "AZ_EL_SEGMENT_REFERENCE_EPOCH_INVALID",
        "AZ_EL_SEGMENT_START_TIME_INVALID",
        "AZ_EL_SEGMENT_END_TIME_INVALID",
        "AZ_EL_SEGMENT_VALID_TIME_RANGE_INVALID",
        "AZ_EL_SEGMENT_END_TIME_TOO_LATE",
        "AZ_EL_TOTAL_DURATION_EXCEEDED"
      ]
    },
    "EphemerisErrorReason":{
      "type":"structure",
      "required":[
        "errorCode",
        "errorMessage"
      ],
      "members":{
        "errorCode":{
          "shape":"EphemerisErrorCode",
          "documentation":"<p>The error code identifying the type of validation failure.</p> <p>See the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/troubleshooting-invalid-ephemerides.html\">Troubleshooting Invalid Ephemerides guide</a> for error code details.</p>"
        },
        "errorMessage":{
          "shape":"ErrorString",
          "documentation":"<p>A human-readable message describing the validation failure.</p> <p>Provides specific details about what failed and may include suggestions for remediation.</p>"
        }
      },
      "documentation":"<p>Detailed error information for ephemeris validation failures.</p> <p>Provides an error code and descriptive message to help diagnose and resolve validation issues.</p>"
    },
    "EphemerisErrorReasonList":{
      "type":"list",
      "member":{"shape":"EphemerisErrorReason"},
      "max":50,
      "min":1
    },
    "EphemerisFilter":{
      "type":"structure",
      "members":{
        "azEl":{
          "shape":"AzElEphemerisFilter",
          "documentation":"<p>Filter for <a>AzElEphemeris</a>.</p>"
        }
      },
      "documentation":"<p>Filter for selecting contacts that use a specific ephemeris\".</p>",
      "union":true
    },
    "EphemerisIdResponse":{
      "type":"structure",
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>"
        }
      }
    },
    "EphemerisInvalidReason":{
      "type":"string",
      "enum":[
        "METADATA_INVALID",
        "TIME_RANGE_INVALID",
        "TRAJECTORY_INVALID",
        "KMS_KEY_INVALID",
        "VALIDATION_ERROR"
      ]
    },
    "EphemerisItem":{
      "type":"structure",
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>"
        },
        "ephemerisType":{
          "shape":"EphemerisType",
          "documentation":"<p>The type of ephemeris.</p>"
        },
        "status":{
          "shape":"EphemerisStatus",
          "documentation":"<p>The status of the ephemeris.</p>"
        },
        "priority":{
          "shape":"EphemerisPriority",
          "documentation":"<p>A priority score that determines which ephemeris to use when multiple ephemerides overlap.</p> <p>Higher numbers take precedence. The default is 1. Must be 1 or greater.</p>"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether or not the ephemeris is enabled.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time the ephemeris was uploaded in UTC.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>A name that you can use to identify the ephemeris.</p>"
        },
        "sourceS3Object":{
          "shape":"S3Object",
          "documentation":"<p>Source Amazon S3 object used for the ephemeris.</p>"
        }
      },
      "documentation":"<p>Ephemeris item.</p>"
    },
    "EphemerisMetaData":{
      "type":"structure",
      "required":["source"],
      "members":{
        "source":{
          "shape":"EphemerisSource",
          "documentation":"<p>The <code>EphemerisSource</code> that generated a given ephemeris.</p>"
        },
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a customer-provided ephemeris.</p> <p>This field is not populated for default ephemerides from Space Track.</p>"
        },
        "epoch":{
          "shape":"Timestamp",
          "documentation":"<p>The epoch of a default, ephemeris from Space Track in UTC.</p> <p>This field is not populated for customer-provided ephemerides.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>A name string associated with the ephemeris. Used as a human-readable identifier for the ephemeris.</p> <p>A name is only returned for customer-provider ephemerides that have a name associated.</p>"
        }
      },
      "documentation":"<p>Metadata describing a particular ephemeris.</p>"
    },
    "EphemerisPriority":{
      "type":"integer",
      "box":true,
      "max":99999,
      "min":0
    },
    "EphemerisResponseData":{
      "type":"structure",
      "required":["ephemerisType"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>Unique identifier of the ephemeris. Appears only for custom ephemerides.</p>"
        },
        "ephemerisType":{
          "shape":"EphemerisType",
          "documentation":"<p>Type of ephemeris.</p>"
        }
      },
      "documentation":"<p>Ephemeris data for a contact.</p>"
    },
    "EphemerisSource":{
      "type":"string",
      "enum":[
        "CUSTOMER_PROVIDED",
        "SPACE_TRACK"
      ]
    },
    "EphemerisStatus":{
      "type":"string",
      "enum":[
        "VALIDATING",
        "INVALID",
        "ERROR",
        "ENABLED",
        "DISABLED",
        "EXPIRED"
      ]
    },
    "EphemerisStatusList":{
      "type":"list",
      "member":{"shape":"EphemerisStatus"},
      "max":500,
      "min":0
    },
    "EphemerisType":{
      "type":"string",
      "enum":[
        "TLE",
        "OEM",
        "AZ_EL",
        "SERVICE_MANAGED"
      ]
    },
    "EphemerisTypeDescription":{
      "type":"structure",
      "members":{
        "tle":{"shape":"EphemerisDescription"},
        "oem":{"shape":"EphemerisDescription"},
        "azEl":{"shape":"EphemerisDescription"}
      },
      "documentation":"<p/>",
      "union":true
    },
    "ErrorString":{
      "type":"string",
      "max":1000,
      "min":0
    },
    "Frequency":{
      "type":"structure",
      "required":[
        "value",
        "units"
      ],
      "members":{
        "value":{
          "shape":"Double",
          "documentation":"<p>Frequency value. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink.</p>"
        },
        "units":{
          "shape":"FrequencyUnits",
          "documentation":"<p>Frequency units.</p>"
        }
      },
      "documentation":"<p>Object that describes the frequency.</p>"
    },
    "FrequencyBandwidth":{
      "type":"structure",
      "required":[
        "value",
        "units"
      ],
      "members":{
        "value":{
          "shape":"Double",
          "documentation":"<p>Frequency bandwidth value. AWS Ground Station currently has the following bandwidth limitations:</p> <ul> <li> <p>For <code>AntennaDownlinkDemodDecodeconfig</code>, valid values are between 125 kHz to 650 MHz.</p> </li> <li> <p>For <code>AntennaDownlinkconfig</code>, valid values are between 10 kHz to 54 MHz.</p> </li> <li> <p>For <code>AntennaUplinkConfig</code>, valid values are between 10 kHz to 54 MHz.</p> </li> </ul>"
        },
        "units":{
          "shape":"BandwidthUnits",
          "documentation":"<p>Frequency bandwidth units.</p>"
        }
      },
      "documentation":"<p>Object that describes the frequency bandwidth. </p>"
    },
    "FrequencyUnits":{
      "type":"string",
      "enum":[
        "GHz",
        "MHz",
        "kHz"
      ]
    },
    "GetAgentConfigurationRequest":{
      "type":"structure",
      "required":["agentId"],
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of agent to get configuration information for.</p>",
          "location":"uri",
          "locationName":"agentId"
        }
      }
    },
    "GetAgentConfigurationResponse":{
      "type":"structure",
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of agent.</p>"
        },
        "taskingDocument":{
          "shape":"String",
          "documentation":"<p>Tasking document for agent.</p>"
        }
      }
    },
    "GetAgentTaskResponseUrlRequest":{
      "type":"structure",
      "required":[
        "agentId",
        "taskId"
      ],
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of agent requesting the response URL.</p>",
          "location":"uri",
          "locationName":"agentId"
        },
        "taskId":{
          "shape":"Uuid",
          "documentation":"<p>GUID of the agent task for which the response URL is being requested.</p>",
          "location":"uri",
          "locationName":"taskId"
        }
      }
    },
    "GetAgentTaskResponseUrlResponse":{
      "type":"structure",
      "required":[
        "agentId",
        "taskId",
        "presignedLogUrl"
      ],
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of the agent.</p>"
        },
        "taskId":{
          "shape":"Uuid",
          "documentation":"<p>GUID of the agent task.</p>"
        },
        "presignedLogUrl":{
          "shape":"String",
          "documentation":"<p>Presigned URL for uploading agent task response logs.</p>"
        }
      }
    },
    "GetConfigRequest":{
      "type":"structure",
      "required":[
        "configId",
        "configType"
      ],
      "members":{
        "configId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configId"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configType"
        }
      },
      "documentation":"<p>Input for the <code>GetConfig</code> operation. </p>"
    },
    "GetConfigResponse":{
      "type":"structure",
      "required":[
        "configId",
        "configArn",
        "name",
        "configData"
      ],
      "members":{
        "configId":{
          "shape":"String",
          "documentation":"<p>UUID of a <code>Config</code>.</p>"
        },
        "configArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a <code>Config</code> </p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>Name of a <code>Config</code>.</p>"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>"
        },
        "configData":{
          "shape":"ConfigTypeData",
          "documentation":"<p>Data elements in a <code>Config</code>.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Output for the <code>GetConfig</code> operation. </p>"
    },
    "GetDataflowEndpointGroupRequest":{
      "type":"structure",
      "required":["dataflowEndpointGroupId"],
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a dataflow endpoint group.</p>",
          "location":"uri",
          "locationName":"dataflowEndpointGroupId"
        }
      },
      "documentation":"<p>Input for the <code>GetDataflowEndpointGroup</code> operation. </p>"
    },
    "GetDataflowEndpointGroupResponse":{
      "type":"structure",
      "members":{
        "dataflowEndpointGroupId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a dataflow endpoint group.</p>"
        },
        "dataflowEndpointGroupArn":{
          "shape":"DataflowEndpointGroupArn",
          "documentation":"<p>ARN of a dataflow endpoint group.</p>"
        },
        "endpointsDetails":{
          "shape":"EndpointDetailsList",
          "documentation":"<p>Details of a dataflow endpoint.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a dataflow endpoint group.</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p>Amount of time, in seconds, before a contact starts that the Ground Station Dataflow Endpoint Group will be in a <code>PREPASS</code> state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the <code>PREPASS</code> state.</p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DataflowEndpointGroupDurationInSeconds",
          "documentation":"<p>Amount of time, in seconds, after a contact ends that the Ground Station Dataflow Endpoint Group will be in a <code>POSTPASS</code> state. A Ground Station Dataflow Endpoint Group State Change event will be emitted when the Dataflow Endpoint Group enters and exits the <code>POSTPASS</code> state.</p>"
        }
      },
      "documentation":"<p>Output for the <code>GetDataflowEndpointGroup</code> operation. </p>"
    },
    "GetMinuteUsageRequest":{
      "type":"structure",
      "required":[
        "month",
        "year"
      ],
      "members":{
        "month":{
          "shape":"Month",
          "documentation":"<p>The month being requested, with a value of 1-12.</p>"
        },
        "year":{
          "shape":"Year",
          "documentation":"<p>The year being requested, in the format of YYYY.</p>"
        }
      },
      "documentation":"<p>Input for the <code>GetMinuteUsage</code> operation.</p>"
    },
    "GetMinuteUsageResponse":{
      "type":"structure",
      "members":{
        "isReservedMinutesCustomer":{
          "shape":"Boolean",
          "documentation":"<p>Returns whether or not an account has signed up for the reserved minutes pricing plan, specific to the month being requested.</p>"
        },
        "totalReservedMinuteAllocation":{
          "shape":"Integer",
          "documentation":"<p>Total number of reserved minutes allocated, specific to the month being requested.</p>"
        },
        "upcomingMinutesScheduled":{
          "shape":"Integer",
          "documentation":"<p>Upcoming minutes scheduled for an account, specific to the month being requested.</p>"
        },
        "totalScheduledMinutes":{
          "shape":"Integer",
          "documentation":"<p>Total scheduled minutes for an account, specific to the month being requested.</p>"
        },
        "estimatedMinutesRemaining":{
          "shape":"Integer",
          "documentation":"<p>Estimated number of minutes remaining for an account, specific to the month being requested.</p>"
        }
      },
      "documentation":"<p>Output for the <code>GetMinuteUsage</code> operation.</p>"
    },
    "GetMissionProfileRequest":{
      "type":"structure",
      "required":["missionProfileId"],
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>",
          "location":"uri",
          "locationName":"missionProfileId"
        }
      },
      "documentation":"<p>Input for the <code>GetMissionProfile</code> operation. </p>"
    },
    "GetMissionProfileResponse":{
      "type":"structure",
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a mission profile.</p>"
        },
        "region":{
          "shape":"AWSRegion",
          "documentation":"<p>Region of a mission profile.</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>Amount of time prior to contact start you'd like to receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>Amount of time after a contact ends that you'd like to receive a CloudWatch event indicating the pass has finished.</p>"
        },
        "minimumViableContactDurationSeconds":{
          "shape":"PositiveDurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "dataflowEdges":{
          "shape":"DataflowEdgeList",
          "documentation":"<p>A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code> Config</code> and a <i>to</i> <code>Config</code>.</p>"
        },
        "trackingConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a tracking <code>Config</code>.</p>"
        },
        "telemetrySinkConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a telemetry sink <code>Config</code>.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a mission profile.</p>"
        },
        "streamsKmsKey":{
          "shape":"KmsKey",
          "documentation":"<p>KMS key to use for encrypting streams.</p>"
        },
        "streamsKmsRole":{
          "shape":"RoleArn",
          "documentation":"<p>Role to use for encrypting streams with KMS key.</p>"
        }
      },
      "documentation":"<p>Output for the <code>GetMissionProfile</code> operation. </p>"
    },
    "GetSatelliteRequest":{
      "type":"structure",
      "required":["satelliteId"],
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a satellite.</p>",
          "location":"uri",
          "locationName":"satelliteId"
        }
      },
      "documentation":"<p>Input for the <code>GetSatellite</code> operation.</p>"
    },
    "GetSatelliteResponse":{
      "type":"structure",
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a satellite.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "noradSatelliteID":{
          "shape":"noradSatelliteID",
          "documentation":"<p>NORAD satellite ID number.</p>"
        },
        "groundStations":{
          "shape":"GroundStationIdList",
          "documentation":"<p>A list of ground stations to which the satellite is on-boarded.</p>"
        },
        "currentEphemeris":{
          "shape":"EphemerisMetaData",
          "documentation":"<p>The current ephemeris being used to compute the trajectory of the satellite.</p>"
        }
      },
      "documentation":"<p>Output for the <code>GetSatellite</code> operation.</p>"
    },
    "GroundStationData":{
      "type":"structure",
      "members":{
        "groundStationId":{
          "shape":"GroundStationName",
          "documentation":"<p>ID of a ground station.</p>"
        },
        "groundStationName":{
          "shape":"GroundStationName",
          "documentation":"<p>Name of a ground station.</p>"
        },
        "region":{
          "shape":"AWSRegion",
          "documentation":"<p>Ground station Region.</p>"
        }
      },
      "documentation":"<p>Information about the ground station data.</p>"
    },
    "GroundStationIdList":{
      "type":"list",
      "member":{"shape":"GroundStationName"},
      "max":500,
      "min":0
    },
    "GroundStationList":{
      "type":"list",
      "member":{"shape":"GroundStationData"}
    },
    "GroundStationName":{
      "type":"string",
      "max":97,
      "min":4,
      "pattern":"[ a-zA-Z0-9-._:=]{4,97}"
    },
    "GroundStationReservationList":{
      "type":"list",
      "member":{"shape":"GroundStationReservationListItem"},
      "max":100,
      "min":0
    },
    "GroundStationReservationListItem":{
      "type":"structure",
      "required":[
        "reservationType",
        "groundStationId",
        "antennaName",
        "startTime",
        "endTime",
        "reservationDetails"
      ],
      "members":{
        "reservationType":{
          "shape":"ReservationType",
          "documentation":"<p>Type of a ground station reservation.</p>"
        },
        "groundStationId":{
          "shape":"GroundStationName",
          "documentation":"<p>ID of a ground station.</p>"
        },
        "antennaName":{
          "shape":"AntennaName",
          "documentation":"<p>Name of an antenna.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a ground station reservation in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a ground station reservation in UTC.</p>"
        },
        "reservationDetails":{
          "shape":"ReservationDetails",
          "documentation":"<p>Details of a ground station reservation.</p>"
        }
      },
      "documentation":"<p>Item in a list of ground station reservations.</p>"
    },
    "ISO8601TimeRange":{
      "type":"structure",
      "required":[
        "startTime",
        "endTime"
      ],
      "members":{
        "startTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>Start time in ISO 8601 format in Coordinated Universal Time (UTC).</p> <p>Example: <code>2026-11-15T10:28:48.000Z</code> </p>"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>End time in ISO 8601 format in Coordinated Universal Time (UTC).</p> <p>Example: <code>2024-01-15T12:00:00.000Z</code> </p>"
        }
      },
      "documentation":"<p>Time range specified using ISO 8601 format timestamps.</p>"
    },
    "InstanceId":{
      "type":"string",
      "max":64,
      "min":10,
      "pattern":"[a-z0-9-]{10,64}"
    },
    "InstanceType":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-z0-9.-]{1,64}"
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "IntegerRange":{
      "type":"structure",
      "required":[
        "minimum",
        "maximum"
      ],
      "members":{
        "minimum":{
          "shape":"Integer",
          "documentation":"<p>A minimum value.</p>"
        },
        "maximum":{
          "shape":"Integer",
          "documentation":"<p>A maximum value.</p>"
        }
      },
      "documentation":"<p>An integer range that has a minimum and maximum value.</p>"
    },
    "InvalidParameterException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "parameterName":{
          "shape":"String",
          "documentation":"<p>Name of the invalid parameter.</p>"
        }
      },
      "documentation":"<p>One or more parameters are not valid.</p>",
      "error":{
        "httpStatusCode":431,
        "senderFault":true
      },
      "exception":true
    },
    "IpAddressList":{
      "type":"list",
      "member":{"shape":"IpV4Address"},
      "max":20,
      "min":1
    },
    "IpV4Address":{
      "type":"string",
      "max":16,
      "min":7,
      "pattern":"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"
    },
    "JsonString":{
      "type":"string",
      "max":8192,
      "min":2,
      "pattern":"[{}\\[\\]:.,\"0-9A-Za-z\\-_\\s]{2,8192}"
    },
    "KeyAliasArn":{
      "type":"string",
      "max":512,
      "min":1,
      "pattern":"arn:aws[a-zA-Z-]{0,16}:kms:[-a-z0-9]{1,50}:[0-9]{12}:((alias/[a-zA-Z0-9:/_-]{1,256}))"
    },
    "KeyAliasName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"alias/[a-zA-Z0-9:/_-]+"
    },
    "KeyArn":{"type":"string"},
    "KinesisDataStreamArn":{
      "type":"string",
      "max":275,
      "min":37,
      "pattern":"arn:[a-z0-9-.]{1,63}:kinesis:[-a-z0-9]{1,50}:[0-9]{12}:stream/[a-zA-Z0-9_.-]{1,128}"
    },
    "KinesisDataStreamData":{
      "type":"structure",
      "required":[
        "kinesisRoleArn",
        "kinesisDataStreamArn"
      ],
      "members":{
        "kinesisRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>ARN of the IAM Role used by AWS Ground Station to deliver telemetry.</p>"
        },
        "kinesisDataStreamArn":{
          "shape":"KinesisDataStreamArn",
          "documentation":"<p>ARN of the Kinesis Data Stream to deliver telemetry to.</p>"
        }
      },
      "documentation":"<p>Information for telemetry delivery to Kinesis Data Streams.</p>"
    },
    "KmsKey":{
      "type":"structure",
      "members":{
        "kmsKeyArn":{
          "shape":"KeyArn",
          "documentation":"<p>KMS Key Arn.</p>"
        },
        "kmsAliasArn":{
          "shape":"KeyAliasArn",
          "documentation":"<p>KMS Alias Arn.</p>"
        },
        "kmsAliasName":{
          "shape":"KeyAliasName",
          "documentation":"<p>KMS Alias Name.</p>"
        }
      },
      "documentation":"<p>KMS key info.</p>",
      "union":true
    },
    "ListAntennasRequest":{
      "type":"structure",
      "required":["groundStationId"],
      "members":{
        "groundStationId":{
          "shape":"GroundStationName",
          "documentation":"<p>ID of a ground station.</p>",
          "location":"uri",
          "locationName":"groundStationId"
        },
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of antennas returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListAntennas</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAntennasResponse":{
      "type":"structure",
      "required":["antennaList"],
      "members":{
        "antennaList":{
          "shape":"AntennaList",
          "documentation":"<p>List of antennas.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token to be used in a subsequent <code>ListAntennas</code> call to retrieve the next page of results.</p>"
        }
      }
    },
    "ListConfigsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of <code>Configs</code> returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListConfigs</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for the <code>ListConfigs</code> operation. </p>"
    },
    "ListConfigsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the response of a previous <code>ListConfigs</code> call. Used to get the next page of results.</p>"
        },
        "configList":{
          "shape":"ConfigList",
          "documentation":"<p>List of <code>Config</code> items.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListConfigs</code> operation. </p>"
    },
    "ListContactVersionsRequest":{
      "type":"structure",
      "required":["contactId"],
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>",
          "location":"uri",
          "locationName":"contactId"
        },
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of contact versions returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListContactVersions</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListContactVersionsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token to be used in a subsequent <code>ListContactVersions</code> call to retrieve the next page of results.</p>"
        },
        "contactVersionsList":{
          "shape":"ContactVersionsList",
          "documentation":"<p>List of contact versions.</p>"
        }
      }
    },
    "ListContactsRequest":{
      "type":"structure",
      "required":[
        "statusList",
        "startTime",
        "endTime"
      ],
      "members":{
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of contacts returned.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListContacts</code> call. Used to get the next page of results.</p>"
        },
        "statusList":{
          "shape":"StatusList",
          "documentation":"<p>Status of a contact reservation.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a contact in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a contact in UTC.</p>"
        },
        "groundStation":{
          "shape":"GroundStationName",
          "documentation":"<p>Name of a ground station.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "ephemeris":{
          "shape":"EphemerisFilter",
          "documentation":"<p>Filter for selecting contacts that use a specific ephemeris\".</p>"
        }
      },
      "documentation":"<p>Input for the <code>ListContacts</code> operation. </p>"
    },
    "ListContactsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the response of a previous <code>ListContacts</code> call. Used to get the next page of results.</p>"
        },
        "contactList":{
          "shape":"ContactList",
          "documentation":"<p>List of contacts.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListContacts</code> operation. </p>"
    },
    "ListDataflowEndpointGroupsRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of dataflow endpoint groups returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListDataflowEndpointGroups</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for the <code>ListDataflowEndpointGroups</code> operation. </p>"
    },
    "ListDataflowEndpointGroupsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the response of a previous <code>ListDataflowEndpointGroups</code> call. Used to get the next page of results.</p>"
        },
        "dataflowEndpointGroupList":{
          "shape":"DataflowEndpointGroupList",
          "documentation":"<p>A list of dataflow endpoint groups.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListDataflowEndpointGroups</code> operation. </p>"
    },
    "ListEphemeridesRequest":{
      "type":"structure",
      "required":[
        "startTime",
        "endTime"
      ],
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station satellite ID to list ephemeris for.</p>"
        },
        "ephemerisType":{
          "shape":"EphemerisType",
          "documentation":"<p>Filter ephemerides by type. If not specified, all ephemeris types will be returned.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for the list operation in UTC. Returns ephemerides with expiration times within your specified time range.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for the list operation in UTC. Returns ephemerides with expiration times within your specified time range.</p>"
        },
        "statusList":{
          "shape":"EphemerisStatusList",
          "documentation":"<p>The list of ephemeris status to return.</p>"
        },
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of ephemerides to return.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Pagination token.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListEphemeridesResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Pagination token.</p>"
        },
        "ephemerides":{
          "shape":"EphemeridesList",
          "documentation":"<p>List of ephemerides.</p>"
        }
      }
    },
    "ListGroundStationReservationsRequest":{
      "type":"structure",
      "required":[
        "groundStationId",
        "startTime",
        "endTime"
      ],
      "members":{
        "groundStationId":{
          "shape":"GroundStationName",
          "documentation":"<p>ID of a ground station.</p>",
          "location":"uri",
          "locationName":"groundStationId"
        },
        "startTime":{
          "shape":"SyntheticTimestamp_epoch_seconds",
          "documentation":"<p>Start time of the reservation window in UTC.</p>",
          "location":"querystring",
          "locationName":"startTime"
        },
        "endTime":{
          "shape":"SyntheticTimestamp_epoch_seconds",
          "documentation":"<p>End time of the reservation window in UTC.</p>",
          "location":"querystring",
          "locationName":"endTime"
        },
        "reservationTypes":{
          "shape":"ReservationTypeFilterList",
          "documentation":"<p>Types of reservations to filter by.</p>",
          "location":"querystring",
          "locationName":"reservationTypes"
        },
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of ground station reservations returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListGroundStationReservations</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListGroundStationReservationsResponse":{
      "type":"structure",
      "required":["reservationList"],
      "members":{
        "reservationList":{
          "shape":"GroundStationReservationList",
          "documentation":"<p>List of ground station reservations.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token to be used in a subsequent <code>ListGroundStationReservations</code> call to retrieve the next page of results.</p>"
        }
      }
    },
    "ListGroundStationsRequest":{
      "type":"structure",
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>Satellite ID to retrieve on-boarded ground stations.</p>",
          "location":"querystring",
          "locationName":"satelliteId"
        },
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of ground stations returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token that can be supplied in the next call to get the next page of ground stations.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for the <code>ListGroundStations</code> operation.</p>"
    },
    "ListGroundStationsResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token that can be supplied in the next call to get the next page of ground stations.</p>"
        },
        "groundStationList":{
          "shape":"GroundStationList",
          "documentation":"<p>List of ground stations.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListGroundStations</code> operation.</p>"
    },
    "ListMissionProfilesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of mission profiles returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the request of a previous <code>ListMissionProfiles</code> call. Used to get the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for the <code>ListMissionProfiles</code> operation. </p>"
    },
    "ListMissionProfilesResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token returned in the response of a previous <code>ListMissionProfiles</code> call. Used to get the next page of results.</p>"
        },
        "missionProfileList":{
          "shape":"MissionProfileList",
          "documentation":"<p>List of mission profiles.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListMissionProfiles</code> operation. </p>"
    },
    "ListSatellitesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"PaginationMaxResults",
          "documentation":"<p>Maximum number of satellites returned.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token that can be supplied in the next call to get the next page of satellites.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for the <code>ListSatellites</code> operation.</p>"
    },
    "ListSatellitesResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>Next token that can be supplied in the next call to get the next page of satellites.</p>"
        },
        "satellites":{
          "shape":"SatelliteList",
          "documentation":"<p>List of satellites.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListSatellites</code> operation.</p>"
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"AnyArn",
          "documentation":"<p>ARN of a resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      },
      "documentation":"<p>Input for the <code>ListTagsForResource</code> operation.</p>"
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a resource.</p>"
        }
      },
      "documentation":"<p>Output for the <code>ListTagsForResource</code> operation.</p>"
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "MaintenanceReservationDetails":{
      "type":"structure",
      "required":["maintenanceType"],
      "members":{
        "maintenanceType":{
          "shape":"MaintenanceType",
          "documentation":"<p>Type of maintenance.</p>"
        }
      },
      "documentation":"<p>Details of a maintenance reservation.</p>"
    },
    "MaintenanceType":{
      "type":"string",
      "enum":[
        "PLANNED",
        "UNPLANNED"
      ]
    },
    "MissionProfileArn":{
      "type":"string",
      "max":138,
      "min":89,
      "pattern":"arn:aws:groundstation:[-a-z0-9]{1,50}:[0-9]{12}:mission-profile/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "MissionProfileIdResponse":{
      "type":"structure",
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>"
        }
      },
      "documentation":"<p>Response containing the ID of a mission profile. </p>"
    },
    "MissionProfileList":{
      "type":"list",
      "member":{"shape":"MissionProfileListItem"}
    },
    "MissionProfileListItem":{
      "type":"structure",
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>"
        },
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "region":{
          "shape":"AWSRegion",
          "documentation":"<p>Region of a mission profile.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a mission profile.</p>"
        }
      },
      "documentation":"<p>Item in a list of mission profiles.</p>"
    },
    "Month":{
      "type":"integer",
      "box":true,
      "max":12,
      "min":1
    },
    "OEMEphemeris":{
      "type":"structure",
      "members":{
        "s3Object":{
          "shape":"S3Object",
          "documentation":"<p>The Amazon S3 object that contains the ephemeris data.</p>"
        },
        "oemData":{
          "shape":"UnboundedString",
          "documentation":"<p>OEM data that you provide directly instead of using an Amazon S3 object.</p>"
        }
      },
      "documentation":"<p>Ephemeris data in Orbit Ephemeris Message (OEM) format.</p> <p> AWS Ground Station processes OEM ephemerides according to the <a href=\"https://ccsds.org/Pubs/502x0b3e1.pdf\">CCSDS standard</a> with some extra restrictions. OEM files should be in KVN format. For more detail about the OEM format that AWS Ground Station supports, see <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/providing-oem-ephemeris-data.html#oem-ephemeris-format\">OEM ephemeris format</a> in the AWS Ground Station user guide. </p>"
    },
    "OemProgramTrackSettings":{
      "type":"structure",
      "required":["ephemerisId"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>Unique identifier of the OEM ephemeris.</p>"
        }
      },
      "documentation":"<p>Program track settings for <a>OEMEphemeris</a>.</p>"
    },
    "PaginationMaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "PaginationToken":{
      "type":"string",
      "max":1000,
      "min":3,
      "pattern":"[A-Za-z0-9-/+_.=]+"
    },
    "Polarization":{
      "type":"string",
      "enum":[
        "RIGHT_HAND",
        "LEFT_HAND",
        "NONE"
      ]
    },
    "PositiveDurationInSeconds":{
      "type":"integer",
      "box":true,
      "max":21600,
      "min":1
    },
    "ProgramTrackSettings":{
      "type":"structure",
      "members":{
        "azEl":{
          "shape":"AzElProgramTrackSettings",
          "documentation":"<p>Program track settings for <a>AzElEphemeris</a>.</p>"
        },
        "oem":{
          "shape":"OemProgramTrackSettings",
          "documentation":"<p>Program track settings for <a>OEMEphemeris</a>.</p>"
        },
        "tle":{
          "shape":"TleProgramTrackSettings",
          "documentation":"<p>Program track settings for <a>TLEEphemeris</a>.</p>"
        }
      },
      "documentation":"<p>Program track settings for an antenna during a contact.</p>",
      "union":true
    },
    "RangedConnectionDetails":{
      "type":"structure",
      "required":["socketAddress"],
      "members":{
        "socketAddress":{
          "shape":"RangedSocketAddress",
          "documentation":"<p>A ranged socket address.</p>"
        },
        "mtu":{
          "shape":"RangedConnectionDetailsMtuInteger",
          "documentation":"<p>Maximum transmission unit (MTU) size in bytes of a dataflow endpoint.</p>"
        }
      },
      "documentation":"<p>Ingress address of AgentEndpoint with a port range and an optional mtu.</p>"
    },
    "RangedConnectionDetailsMtuInteger":{
      "type":"integer",
      "box":true,
      "max":1500,
      "min":1400
    },
    "RangedSocketAddress":{
      "type":"structure",
      "required":[
        "name",
        "portRange"
      ],
      "members":{
        "name":{
          "shape":"IpV4Address",
          "documentation":"<p>IPv4 socket address.</p>"
        },
        "portRange":{
          "shape":"IntegerRange",
          "documentation":"<p>Port range of a socket address.</p>"
        }
      },
      "documentation":"<p>A socket address with a port range.</p>"
    },
    "RegisterAgentRequest":{
      "type":"structure",
      "required":[
        "discoveryData",
        "agentDetails"
      ],
      "members":{
        "discoveryData":{
          "shape":"DiscoveryData",
          "documentation":"<p>Data for associating an agent with the capabilities it is managing.</p>"
        },
        "agentDetails":{
          "shape":"AgentDetails",
          "documentation":"<p>Detailed information about the agent being registered.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to an <code>Agent</code>.</p>"
        }
      }
    },
    "RegisterAgentResponse":{
      "type":"structure",
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of registered agent.</p>"
        }
      }
    },
    "ReservationDetails":{
      "type":"structure",
      "members":{
        "maintenance":{
          "shape":"MaintenanceReservationDetails",
          "documentation":"<p>Details of a maintenance reservation.</p>"
        },
        "contact":{
          "shape":"ContactReservationDetails",
          "documentation":"<p>Details of a contact reservation.</p>"
        }
      },
      "documentation":"<p>Details of a ground station reservation.</p>",
      "union":true
    },
    "ReservationType":{
      "type":"string",
      "enum":[
        "MAINTENANCE",
        "CONTACT"
      ]
    },
    "ReservationTypeFilterList":{
      "type":"list",
      "member":{"shape":"ReservationType"}
    },
    "ReserveContactRequest":{
      "type":"structure",
      "required":[
        "missionProfileArn",
        "startTime",
        "endTime",
        "groundStation"
      ],
      "members":{
        "missionProfileArn":{
          "shape":"MissionProfileArn",
          "documentation":"<p>ARN of a mission profile.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Start time of a contact in UTC.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>End time of a contact in UTC.</p>"
        },
        "groundStation":{
          "shape":"GroundStationName",
          "documentation":"<p>Name of a ground station.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a contact.</p>"
        },
        "trackingOverrides":{
          "shape":"TrackingOverrides",
          "documentation":"<p>Tracking configuration overrides for the contact.</p>"
        }
      },
      "documentation":"<p>Input for the <code>ReserveContact</code> operation. </p>"
    },
    "ResourceInUseException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified resource is in use by non-terminal state contacts and cannot be modified or deleted.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceLimitExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "parameterName":{
          "shape":"String",
          "documentation":"<p>Name of the parameter that exceeded the resource limit.</p>"
        }
      },
      "documentation":"<p>Account limits for this resource have been exceeded.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Resource was not found.</p>",
      "error":{
        "httpStatusCode":434,
        "senderFault":true
      },
      "exception":true
    },
    "RoleArn":{
      "type":"string",
      "max":165,
      "min":30,
      "pattern":"arn:[a-z0-9-.]{1,63}:iam::[0-9]{12}:role/[\\w+=,.@-]{1,64}"
    },
    "S3BucketName":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":"[a-z0-9.-]{3,63}"
    },
    "S3KeyPrefix":{
      "type":"string",
      "max":900,
      "min":1,
      "pattern":"([a-zA-Z0-9_\\-=/]|\\{satellite_id\\}|\\{config\\-name}|\\{s3\\-config-id}|\\{year\\}|\\{month\\}|\\{day\\}){1,900}"
    },
    "S3Object":{
      "type":"structure",
      "members":{
        "bucket":{
          "shape":"S3BucketName",
          "documentation":"<p>An Amazon S3 Bucket name.</p>"
        },
        "key":{
          "shape":"S3ObjectKey",
          "documentation":"<p>An Amazon S3 key for the ephemeris.</p>"
        },
        "version":{
          "shape":"S3VersionId",
          "documentation":"<p>For versioned Amazon S3 objects, the version to use for the ephemeris.</p>"
        }
      },
      "documentation":"<p>Object stored in Amazon S3 containing ephemeris data.</p>"
    },
    "S3ObjectKey":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[a-zA-Z0-9!*'\\)\\(./_-]{1,1024}"
    },
    "S3RecordingConfig":{
      "type":"structure",
      "required":[
        "bucketArn",
        "roleArn"
      ],
      "members":{
        "bucketArn":{
          "shape":"BucketArn",
          "documentation":"<p>ARN of the bucket to record to.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>ARN of the role Ground Station assumes to write data to the bucket.</p>"
        },
        "prefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>S3 Key prefix to prefice data files.</p>"
        }
      },
      "documentation":"<p>Information about an S3 recording <code>Config</code>.</p>"
    },
    "S3RecordingDetails":{
      "type":"structure",
      "members":{
        "bucketArn":{
          "shape":"BucketArn",
          "documentation":"<p>ARN of the bucket used.</p>"
        },
        "keyTemplate":{
          "shape":"String",
          "documentation":"<p>Key template used for the S3 Recording Configuration</p>"
        }
      },
      "documentation":"<p>Details about an S3 recording <code>Config</code> used in a contact.</p>"
    },
    "S3VersionId":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\s\\S]{1,1024}"
    },
    "SafeName":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[ a-zA-Z0-9_:-]{1,256}"
    },
    "SatelliteList":{
      "type":"list",
      "member":{"shape":"SatelliteListItem"}
    },
    "SatelliteListItem":{
      "type":"structure",
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a satellite.</p>"
        },
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        },
        "noradSatelliteID":{
          "shape":"noradSatelliteID",
          "documentation":"<p>NORAD satellite ID number.</p>"
        },
        "groundStations":{
          "shape":"GroundStationIdList",
          "documentation":"<p>A list of ground stations to which the satellite is on-boarded.</p>"
        },
        "currentEphemeris":{
          "shape":"EphemerisMetaData",
          "documentation":"<p>The current ephemeris being used to compute the trajectory of the satellite.</p>"
        }
      },
      "documentation":"<p>Item in a list of satellites.</p>"
    },
    "SecurityDetails":{
      "type":"structure",
      "required":[
        "subnetIds",
        "securityGroupIds",
        "roleArn"
      ],
      "members":{
        "subnetIds":{
          "shape":"SubnetList",
          "documentation":"<p>A list of subnets where AWS Ground Station places elastic network interfaces to send streams to your instances.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIdList",
          "documentation":"<p>The security groups to attach to the elastic network interfaces.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>ARN to a role needed for connecting streams to your instances. </p>"
        }
      },
      "documentation":"<p>Information about endpoints.</p>"
    },
    "SecurityGroupIdList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "parameterName":{
          "shape":"String",
          "documentation":"<p>Parameter name that caused the exception</p>"
        }
      },
      "documentation":"<p>Request would cause a service quota to be exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SignatureMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"Boolean"}
    },
    "SocketAddress":{
      "type":"structure",
      "required":[
        "name",
        "port"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>Name of a socket address.</p>"
        },
        "port":{
          "shape":"Integer",
          "documentation":"<p>Port of a socket address.</p>"
        }
      },
      "documentation":"<p>Information about the socket address.</p>"
    },
    "Source":{
      "type":"structure",
      "members":{
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>"
        },
        "configId":{
          "shape":"String",
          "documentation":"<p>UUID of a <code>Config</code>.</p>"
        },
        "configDetails":{
          "shape":"ConfigDetails",
          "documentation":"<p>Additional details for a <code>Config</code>, if type is <code>dataflow-endpoint</code> or <code>antenna-downlink-demod-decode</code> </p>"
        },
        "dataflowSourceRegion":{
          "shape":"String",
          "documentation":"<p>Region of a dataflow source.</p>"
        }
      },
      "documentation":"<p>Dataflow details for the source side.</p>"
    },
    "SpectrumConfig":{
      "type":"structure",
      "required":[
        "centerFrequency",
        "bandwidth"
      ],
      "members":{
        "centerFrequency":{
          "shape":"Frequency",
          "documentation":"<p>Center frequency of a spectral <code>Config</code>. Valid values are between 2200 to 2300 MHz and 7750 to 8400 MHz for downlink and 2025 to 2120 MHz for uplink.</p>"
        },
        "bandwidth":{
          "shape":"FrequencyBandwidth",
          "documentation":"<p>Bandwidth of a spectral <code>Config</code>. AWS Ground Station currently has the following bandwidth limitations:</p> <ul> <li> <p>For <code>AntennaDownlinkDemodDecodeconfig</code>, valid values are between 125 kHz to 650 MHz.</p> </li> <li> <p>For <code>AntennaDownlinkconfig</code> valid values are between 10 kHz to 54 MHz.</p> </li> <li> <p>For <code>AntennaUplinkConfig</code>, valid values are between 10 kHz to 54 MHz.</p> </li> </ul>"
        },
        "polarization":{
          "shape":"Polarization",
          "documentation":"<p>Polarization of a spectral <code>Config</code>. Capturing both <code>\"RIGHT_HAND\"</code> and <code>\"LEFT_HAND\"</code> polarization requires two separate configs.</p>"
        }
      },
      "documentation":"<p>Object that describes a spectral <code>Config</code>.</p>"
    },
    "StatusList":{
      "type":"list",
      "member":{"shape":"ContactStatus"},
      "max":500,
      "min":0
    },
    "String":{"type":"string"},
    "SubnetList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "SyntheticTimestamp_epoch_seconds":{
      "type":"timestamp",
      "timestampFormat":"unixTimestamp"
    },
    "TLEData":{
      "type":"structure",
      "required":[
        "tleLine1",
        "tleLine2",
        "validTimeRange"
      ],
      "members":{
        "tleLine1":{
          "shape":"TleLineOne",
          "documentation":"<p>First line of two-line element set (TLE) data.</p>"
        },
        "tleLine2":{
          "shape":"TleLineTwo",
          "documentation":"<p>Second line of two-line element set (TLE) data.</p>"
        },
        "validTimeRange":{
          "shape":"TimeRange",
          "documentation":"<p>The valid time range for the TLE. Time ranges must be continuous without gaps or overlaps.</p>"
        }
      },
      "documentation":"<p>Two-line element set (TLE) data.</p>"
    },
    "TLEDataList":{
      "type":"list",
      "member":{"shape":"TLEData"},
      "max":500,
      "min":1
    },
    "TLEEphemeris":{
      "type":"structure",
      "members":{
        "s3Object":{
          "shape":"S3Object",
          "documentation":"<p>The Amazon S3 object that contains the ephemeris data.</p>"
        },
        "tleData":{
          "shape":"TLEDataList",
          "documentation":"<p>TLE data that you provide directly instead of using an Amazon S3 object.</p>"
        }
      },
      "documentation":"<p>Two-line element set (TLE) ephemeris.</p> <p> For more detail about providing Two-line element sets to AWS Ground Station, see the <a href=\"https://docs.aws.amazon.com/ground-station/latest/ug/providing-tle-ephemeris-data.html\">TLE section</a> of the AWS Ground Station user guide. </p>"
    },
    "TagKeys":{
      "type":"list",
      "member":{"shape":"UnboundedString"},
      "max":500,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"AnyArn",
          "documentation":"<p>ARN of a resource tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a resource.</p>"
        }
      },
      "documentation":"<p>Input for the <code>TagResource</code> operation.</p>"
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Output for the <code>TagResource</code> operation.</p>"
    },
    "TagsMap":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"String"}
    },
    "TelemetrySinkConfig":{
      "type":"structure",
      "required":[
        "telemetrySinkType",
        "telemetrySinkData"
      ],
      "members":{
        "telemetrySinkType":{
          "shape":"TelemetrySinkType",
          "documentation":"<p>The type of telemetry sink.</p>"
        },
        "telemetrySinkData":{
          "shape":"TelemetrySinkData",
          "documentation":"<p>Information about the telemetry sink specified by the <code>telemetrySinkType</code>.</p>"
        }
      },
      "documentation":"<p>Information about a telemetry sink <code>Config</code>.</p>"
    },
    "TelemetrySinkData":{
      "type":"structure",
      "members":{
        "kinesisDataStreamData":{
          "shape":"KinesisDataStreamData",
          "documentation":"<p>Information about a telemetry sink of type <code>KINESIS_DATA_STREAM</code>.</p>"
        }
      },
      "documentation":"<p>Information about a telemetry sink.</p>",
      "union":true
    },
    "TelemetrySinkType":{
      "type":"string",
      "enum":["KINESIS_DATA_STREAM"]
    },
    "TimeAzEl":{
      "type":"structure",
      "required":[
        "dt",
        "az",
        "el"
      ],
      "members":{
        "dt":{
          "shape":"Double",
          "documentation":"<p>Time offset in atomic seconds from the segment's reference epoch.</p> <p>All <code>dt</code> values within a segment must be in ascending order with no duplicates.</p> <p> <code>dt</code> values may be:</p> <ul> <li> <p>negative</p> </li> <li> <p>expressed as fractions of a second</p> </li> <li> <p>expressed in scientific notation</p> </li> </ul>"
        },
        "az":{
          "shape":"Double",
          "documentation":"<p>Azimuth angle at the specified time.</p> <p>Valid ranges by unit:</p> <ul> <li> <p> <code>DEGREE_ANGLE</code>: -180 to 360 degrees, measured clockwise from true north</p> </li> <li> <p> <code>RADIAN</code>: -π to 2π radians, measured clockwise from true north</p> </li> </ul>"
        },
        "el":{
          "shape":"Double",
          "documentation":"<p>Elevation angle at the specified time.</p> <p>Valid ranges by unit:</p> <ul> <li> <p> <code>DEGREE_ANGLE</code>: -90 to 90 degrees, where 0 is the horizon, 90 is zenith, and negative values are below the horizon </p> </li> <li> <p> <code>RADIAN</code>: -π/2 to π/2 radians, where 0 is the horizon, π/2 is zenith, and negative values are below the horizon </p> </li> </ul>"
        }
      },
      "documentation":"<p>Time-tagged azimuth elevation pointing data.</p> <p>Specifies the antenna pointing direction at a specific time offset from the segment's reference epoch.</p>"
    },
    "TimeAzElList":{
      "type":"list",
      "member":{"shape":"TimeAzEl"},
      "min":5
    },
    "TimeRange":{
      "type":"structure",
      "required":[
        "startTime",
        "endTime"
      ],
      "members":{
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>Unix epoch timestamp in UTC at which the time range starts.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>Unix epoch timestamp in UTC at which the time range ends.</p>"
        }
      },
      "documentation":"<p>A time range with a start and end time.</p>"
    },
    "Timestamp":{"type":"timestamp"},
    "TleLineOne":{
      "type":"string",
      "max":69,
      "min":69,
      "pattern":"1 [ 0-9A-HJ-NP-Z][ 0-9]{4}[A-Z] [ 0-9]{5}[ A-Z]{3} [ 0-9]{5}[.][ 0-9]{8} (?:(?:[ 0+-][.][ 0-9]{8})|(?: [ +-][.][ 0-9]{7})) [ +-][ 0-9]{5}[+-][ 0-9] [ +-][ 0-9]{5}[+-][ 0-9] [ 0-9] [ 0-9]{4}[ 0-9]"
    },
    "TleLineTwo":{
      "type":"string",
      "max":69,
      "min":69,
      "pattern":"2 [ 0-9A-HJ-NP-Z][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{7} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{3}[.][ 0-9]{4} [ 0-9]{2}[.][ 0-9]{13}[ 0-9]"
    },
    "TleProgramTrackSettings":{
      "type":"structure",
      "required":["ephemerisId"],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>Unique identifier of the TLE ephemeris.</p>"
        }
      },
      "documentation":"<p>Program track settings for <a>TLEEphemeris</a>.</p>"
    },
    "TrackingConfig":{
      "type":"structure",
      "required":["autotrack"],
      "members":{
        "autotrack":{
          "shape":"Criticality",
          "documentation":"<p>Current setting for autotrack.</p>"
        }
      },
      "documentation":"<p>Object that determines whether tracking should be used during a contact executed with this <code>Config</code> in the mission profile.</p>"
    },
    "TrackingOverrides":{
      "type":"structure",
      "members":{
        "programTrackSettings":{
          "shape":"ProgramTrackSettings",
          "documentation":"<p>Program track settings to override for antenna tracking during the contact.</p>"
        }
      },
      "documentation":"<p>Overrides the default tracking configuration on an antenna during a contact.</p>"
    },
    "UnboundedString":{
      "type":"string",
      "min":1,
      "pattern":"[\\s\\S]+"
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"AnyArn",
          "documentation":"<p>ARN of a resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeys",
          "documentation":"<p>Keys of a resource tag.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      },
      "documentation":"<p>Input for the <code>UntagResource</code> operation.</p>"
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Output for the <code>UntagResource</code> operation.</p>"
    },
    "UpdateAgentStatusRequest":{
      "type":"structure",
      "required":[
        "agentId",
        "taskId",
        "aggregateStatus",
        "componentStatuses"
      ],
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of agent to update.</p>",
          "location":"uri",
          "locationName":"agentId"
        },
        "taskId":{
          "shape":"Uuid",
          "documentation":"<p>GUID of agent task.</p>"
        },
        "aggregateStatus":{
          "shape":"AggregateStatus",
          "documentation":"<p>Aggregate status for agent.</p>"
        },
        "componentStatuses":{
          "shape":"ComponentStatusList",
          "documentation":"<p>List of component statuses for agent.</p>"
        }
      }
    },
    "UpdateAgentStatusResponse":{
      "type":"structure",
      "required":["agentId"],
      "members":{
        "agentId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of updated agent.</p>"
        }
      }
    },
    "UpdateConfigRequest":{
      "type":"structure",
      "required":[
        "configId",
        "name",
        "configType",
        "configData"
      ],
      "members":{
        "configId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configId"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a <code>Config</code>.</p>"
        },
        "configType":{
          "shape":"ConfigCapabilityType",
          "documentation":"<p>Type of a <code>Config</code>.</p>",
          "location":"uri",
          "locationName":"configType"
        },
        "configData":{
          "shape":"ConfigTypeData",
          "documentation":"<p>Parameters of a <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Input for the <code>UpdateConfig</code> operation. </p>"
    },
    "UpdateContactRequest":{
      "type":"structure",
      "required":["contactId"],
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>",
          "location":"uri",
          "locationName":"contactId"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A client token is a unique, case-sensitive string of up to 64 ASCII characters. It is generated by the client to ensure idempotent operations, allowing safe retries without unintended side effects.</p>",
          "idempotencyToken":true
        },
        "trackingOverrides":{"shape":"TrackingOverrides"},
        "satelliteArn":{
          "shape":"satelliteArn",
          "documentation":"<p>ARN of a satellite.</p>"
        }
      }
    },
    "UpdateContactResponse":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        },
        "versionId":{
          "shape":"VersionId",
          "documentation":"<p>Version ID of a contact.</p>"
        }
      }
    },
    "UpdateEphemerisRequest":{
      "type":"structure",
      "required":[
        "ephemerisId",
        "enabled"
      ],
      "members":{
        "ephemerisId":{
          "shape":"Uuid",
          "documentation":"<p>The AWS Ground Station ephemeris ID.</p>",
          "location":"uri",
          "locationName":"ephemerisId"
        },
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Enable or disable the ephemeris. Changing this value doesn't require re-validation.</p>"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>A name that you can use to identify the ephemeris.</p>"
        },
        "priority":{
          "shape":"EphemerisPriority",
          "documentation":"<p>A priority score that determines which ephemeris to use when multiple ephemerides overlap.</p> <p>Higher numbers take precedence. The default is 1. Must be 1 or greater.</p>"
        }
      }
    },
    "UpdateMissionProfileRequest":{
      "type":"structure",
      "required":["missionProfileId"],
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>",
          "location":"uri",
          "locationName":"missionProfileId"
        },
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Name of a mission profile.</p>"
        },
        "contactPrePassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "contactPostPassDurationSeconds":{
          "shape":"DurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "minimumViableContactDurationSeconds":{
          "shape":"PositiveDurationInSeconds",
          "documentation":"<p>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.</p>"
        },
        "dataflowEdges":{
          "shape":"DataflowEdgeList",
          "documentation":"<p>A list of lists of ARNs. Each list of ARNs is an edge, with a <i>from</i> <code> Config</code> and a <i>to</i> <code>Config</code>.</p>"
        },
        "trackingConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a tracking <code>Config</code>.</p>"
        },
        "telemetrySinkConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of a telemetry sink <code>Config</code>.</p>"
        },
        "streamsKmsKey":{
          "shape":"KmsKey",
          "documentation":"<p>KMS key to use for encrypting streams.</p>"
        },
        "streamsKmsRole":{
          "shape":"RoleArn",
          "documentation":"<p>Role to use for encrypting streams with KMS key.</p>"
        }
      },
      "documentation":"<p>Input for the <code>UpdateMissionProfile</code> operation. </p>"
    },
    "UplinkAwsGroundStationAgentEndpoint":{
      "type":"structure",
      "required":[
        "name",
        "dataflowDetails"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Uplink dataflow endpoint name</p>"
        },
        "dataflowDetails":{
          "shape":"UplinkDataflowDetails",
          "documentation":"<p>Dataflow details for the uplink endpoint</p>"
        }
      },
      "documentation":"<p>Definition for an uplink agent endpoint</p>"
    },
    "UplinkAwsGroundStationAgentEndpointDetails":{
      "type":"structure",
      "required":[
        "name",
        "dataflowDetails"
      ],
      "members":{
        "name":{
          "shape":"SafeName",
          "documentation":"<p>Uplink dataflow endpoint name</p>"
        },
        "dataflowDetails":{
          "shape":"UplinkDataflowDetails",
          "documentation":"<p>Dataflow details for the uplink endpoint</p>"
        },
        "agentStatus":{
          "shape":"AgentStatus",
          "documentation":"<p>Status of the agent associated with the uplink dataflow endpoint</p>"
        },
        "auditResults":{
          "shape":"AuditResults",
          "documentation":"<p>Health audit results for the uplink dataflow endpoint</p>"
        }
      },
      "documentation":"<p>Details for an uplink agent endpoint</p>"
    },
    "UplinkConnectionDetails":{
      "type":"structure",
      "required":[
        "ingressAddressAndPort",
        "agentIpAndPortAddress"
      ],
      "members":{
        "ingressAddressAndPort":{"shape":"ConnectionDetails"},
        "agentIpAndPortAddress":{"shape":"RangedConnectionDetails"}
      },
      "documentation":"<p>Connection details for customer to Agent and Agent to Ground Station</p>"
    },
    "UplinkDataflowDetails":{
      "type":"structure",
      "members":{
        "agentConnectionDetails":{
          "shape":"UplinkConnectionDetails",
          "documentation":"<p>Uplink connection details for customer to Agent and Agent to Ground Station</p>"
        }
      },
      "documentation":"<p>Dataflow details for an uplink endpoint</p>",
      "union":true
    },
    "UplinkEchoConfig":{
      "type":"structure",
      "required":[
        "enabled",
        "antennaUplinkConfigArn"
      ],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether or not an uplink <code>Config</code> is enabled.</p>"
        },
        "antennaUplinkConfigArn":{
          "shape":"ConfigArn",
          "documentation":"<p>ARN of an uplink <code>Config</code>.</p>"
        }
      },
      "documentation":"<p>Information about an uplink echo <code>Config</code>.</p> <p>Parameters from the <code>AntennaUplinkConfig</code>, corresponding to the specified <code> AntennaUplinkConfigArn</code>, are used when this <code>UplinkEchoConfig</code> is used in a contact.</p>"
    },
    "UplinkSpectrumConfig":{
      "type":"structure",
      "required":["centerFrequency"],
      "members":{
        "centerFrequency":{
          "shape":"Frequency",
          "documentation":"<p>Center frequency of an uplink spectral <code>Config</code>. Valid values are between 2025 to 2120 MHz.</p>"
        },
        "polarization":{
          "shape":"Polarization",
          "documentation":"<p>Polarization of an uplink spectral <code>Config</code>. Capturing both <code>\"RIGHT_HAND\"</code> and <code>\"LEFT_HAND\"</code> polarization requires two separate configs.</p>"
        }
      },
      "documentation":"<p>Information about the uplink spectral <code>Config</code>.</p>"
    },
    "Uuid":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "VersionFailureReasonCode":{
      "type":"string",
      "enum":[
        "INTERNAL_ERROR",
        "INVALID_SATELLITE_ARN",
        "INVALID_UPDATE_CONTACT_REQUEST",
        "EPHEMERIS_NOT_FOUND",
        "EPHEMERIS_TIME_RANGE_INVALID",
        "EPHEMERIS_NOT_ENABLED",
        "SATELLITE_DOES_NOT_MATCH_EPHEMERIS",
        "NOT_ONBOARDED_TO_AZEL_EPHEMERIS",
        "AZEL_EPHEMERIS_NOT_FOUND",
        "AZEL_EPHEMERIS_WRONG_GROUND_STATION",
        "AZEL_EPHEMERIS_INVALID_STATUS",
        "AZEL_EPHEMERIS_TIME_RANGE_INVALID"
      ]
    },
    "VersionFailureReasonCodes":{
      "type":"list",
      "member":{"shape":"VersionFailureReasonCode"}
    },
    "VersionId":{
      "type":"integer",
      "box":true,
      "max":128,
      "min":1
    },
    "VersionStatus":{
      "type":"string",
      "enum":[
        "UPDATING",
        "ACTIVE",
        "SUPERSEDED",
        "FAILED_TO_UPDATE"
      ]
    },
    "VersionString":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"(0|[1-9]\\d*)(\\.(0|[1-9]\\d*))*"
    },
    "VersionStringList":{
      "type":"list",
      "member":{"shape":"VersionString"},
      "max":20,
      "min":1
    },
    "Year":{
      "type":"integer",
      "box":true,
      "max":3000,
      "min":2018
    },
    "noradSatelliteID":{
      "type":"integer",
      "max":339999,
      "min":0
    },
    "satelliteArn":{
      "type":"string",
      "max":132,
      "min":82,
      "pattern":"arn:aws:groundstation:([-a-z0-9]{1,50})?:[0-9]{12}:satellite/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    }
  },
  "documentation":"<p>Welcome to the AWS Ground Station API Reference. AWS Ground Station is a fully managed service that enables you to control satellite communications, downlink and process satellite data, and scale your satellite operations efficiently and cost-effectively without having to build or manage your own ground station infrastructure.</p>"
}
