{
  "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
    },
    "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
    },
    "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
    },
    "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
    },
    "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
    },
    "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>"
    },
    "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> </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
    },
    "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> </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>Amount of time prior to contact start you’d like to receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "postPassEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>Amount of time after a contact ends that you’d like to 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>"
        }
      },
      "documentation":"<p>Data describing a contact.</p>"
    },
    "ContactIdResponse":{
      "type":"structure",
      "members":{
        "contactId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a contact.</p>"
        }
      },
      "documentation":"<p> </p>"
    },
    "ContactList":{
      "type":"list",
      "member":{"shape":"ContactData"}
    },
    "ContactStatus":{
      "type":"string",
      "enum":[
        "SCHEDULING",
        "FAILED_TO_SCHEDULE",
        "SCHEDULED",
        "CANCELLED",
        "AWS_CANCELLED",
        "PREPASS",
        "PASS",
        "POSTPASS",
        "COMPLETED",
        "FAILED",
        "AVAILABLE",
        "CANCELLING",
        "AWS_FAILED"
      ]
    },
    "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> </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> </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> </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> </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> </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> </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> </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/>"
        }
      },
      "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> </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>Amount of time prior to contact start you’d like to receive a CloudWatch event indicating an upcoming pass.</p>"
        },
        "postPassEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>Amount of time after a contact ends that you’d like to 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 of a 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>"
        }
      },
      "documentation":"<p> </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> </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> </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> </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> </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/>"
    },
    "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/>"
    },
    "GetMissionProfileRequest":{
      "type":"structure",
      "required":["missionProfileId"],
      "members":{
        "missionProfileId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a mission profile.</p>",
          "location":"uri",
          "locationName":"missionProfileId"
        }
      },
      "documentation":"<p> </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> </p>"
    },
    "GetSatelliteRequest":{
      "type":"structure",
      "required":["satelliteId"],
      "members":{
        "satelliteId":{
          "shape":"Uuid",
          "documentation":"<p>UUID of a satellite.</p>",
          "location":"uri",
          "locationName":"satelliteId"
        }
      },
      "documentation":"<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/>"
    },
    "GroundStationData":{
      "type":"structure",
      "members":{
        "groundStationId":{
          "shape":"GroundStationName",
          "documentation":"<p>UUID 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":500,
      "min":4,
      "pattern":"[ a-zA-Z0-9-._:=]{4,256}"
    },
    "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/>"
        }
      },
      "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
    },
    "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> </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> </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> </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> </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> </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> </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>"
        }
      }
    },
    "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/>"
    },
    "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/>"
    },
    "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> </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> </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/>"
    },
    "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/>"
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"AnyArn",
          "documentation":"<p>ARN of a resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      },
      "documentation":"<p/>"
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>Tags assigned to a resource.</p>"
        }
      },
      "documentation":"<p/>"
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "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> </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>"
    },
    "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>"
        }
      },
      "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>"
        }
      }
    },
    "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> </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/>"
        }
      },
      "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"
    },
    "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/>"
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<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-9]{5}[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-9]{5} [ 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]"
    },
    "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",
      "required":["programTrackSettings"],
      "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/>"
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<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> </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> </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}"
    },
    "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":99999,
      "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>"
}
