@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS IoT Wireless
@version 2020-11-22
@auth AWS SigV4
@endpoints 112
@hint download_for_search
@toc partner-accounts(5), fuota-tasks(11), multicast-groups(13), wireless-devices(13), wireless-gateways(15), destinations(5), device-profiles(4), network-analyzer-configurations(5), service-profiles(4), wireless-gateway-task-definitions(4), wireless_device_import_task(5), event-configurations-resource-types(2), log-levels(6), metric-configuration(2), metrics(1), positions(2), position-configurations(3), position-estimate(1), event-configurations(3), resource-positions(2), service-endpoint(1), tags(3), wireless_device_import_tasks(1), wireless_single_device_import_task(1)

@group partner-accounts
@endpoint POST /partner-accounts
@desc Associates a partner account with your AWS account.
@required {Sidewalk: SidewalkAccountInfo}
@optional {ClientRequestToken: str, Tags: [Tag]}
@returns(200) {Sidewalk: SidewalkAccountInfo?{AmazonId: str?, AppServerPrivateKey: str?}, Arn: str?}

@endgroup

@group fuota-tasks
@endpoint PUT /fuota-tasks/{Id}/multicast-group
@desc Associate a multicast group with a FUOTA task.
@required {Id: str, MulticastGroupId: str}

@endpoint PUT /fuota-tasks/{Id}/wireless-device
@desc Associate a wireless device with a FUOTA task.
@required {Id: str, WirelessDeviceId: str}

@endgroup

@group multicast-groups
@endpoint PUT /multicast-groups/{Id}/wireless-device
@desc Associates a wireless device with a multicast group.
@required {Id: str, WirelessDeviceId: str}

@endgroup

@group wireless-devices
@endpoint PUT /wireless-devices/{Id}/thing
@desc Associates a wireless device with a thing.
@required {Id: str, ThingArn: str}

@endgroup

@group wireless-gateways
@endpoint PUT /wireless-gateways/{Id}/certificate
@desc Associates a wireless gateway with a certificate.
@required {Id: str, IotCertificateId: str}
@returns(200) {IotCertificateId: str?}

@endpoint PUT /wireless-gateways/{Id}/thing
@desc Associates a wireless gateway with a thing.
@required {Id: str, ThingArn: str}

@endgroup

@group multicast-groups
@endpoint DELETE /multicast-groups/{Id}/session
@desc Cancels an existing multicast group session.
@required {Id: str}

@endgroup

@group destinations
@endpoint POST /destinations
@desc Creates a new destination that maps a device message to an AWS IoT rule.
@required {Name: str, ExpressionType: str, Expression: str, RoleArn: str}
@optional {Description: str, Tags: [Tag], ClientRequestToken: str}
@returns(200) {Arn: str?, Name: str?}

@endgroup

@group device-profiles
@endpoint POST /device-profiles
@desc Creates a new device profile.
@optional {Name: str, LoRaWAN: LoRaWANDeviceProfile, Tags: [Tag], ClientRequestToken: str, Sidewalk: SidewalkCreateDeviceProfile}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group fuota-tasks
@endpoint POST /fuota-tasks
@desc Creates a FUOTA task.
@required {FirmwareUpdateImage: str, FirmwareUpdateRole: str}
@optional {Name: str, Description: str, ClientRequestToken: str, LoRaWAN: LoRaWANFuotaTask, Tags: [Tag], RedundancyPercent: int, FragmentSizeBytes: int, FragmentIntervalMS: int}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group multicast-groups
@endpoint POST /multicast-groups
@desc Creates a multicast group.
@required {LoRaWAN: LoRaWANMulticast}
@optional {Name: str, Description: str, ClientRequestToken: str, Tags: [Tag]}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group network-analyzer-configurations
@endpoint POST /network-analyzer-configurations
@desc Creates a new network analyzer configuration.
@required {Name: str}
@optional {TraceContent: TraceContent, WirelessDevices: [str], WirelessGateways: [str], Description: str, Tags: [Tag], ClientRequestToken: str, MulticastGroups: [str]}
@returns(200) {Arn: str?, Name: str?}

@endgroup

@group service-profiles
@endpoint POST /service-profiles
@desc Creates a new service profile.
@optional {Name: str, LoRaWAN: LoRaWANServiceProfile, Tags: [Tag], ClientRequestToken: str}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group wireless-devices
@endpoint POST /wireless-devices
@desc Provisions a wireless device.
@required {Type: str, DestinationName: str}
@optional {Name: str, Description: str, ClientRequestToken: str, LoRaWAN: LoRaWANDevice, Tags: [Tag], Positioning: str, Sidewalk: SidewalkCreateWirelessDevice}
@returns(200) {Arn: str?, Id: str?}

@endgroup

@group wireless-gateways
@endpoint POST /wireless-gateways
@desc Provisions a wireless gateway.  When provisioning a wireless gateway, you might run into duplication errors for the following reasons.   If you specify a GatewayEui value that already exists.   If you used a ClientRequestToken with the same parameters within the last 10 minutes.   To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period.
@required {LoRaWAN: LoRaWANGateway}
@optional {Name: str, Description: str, Tags: [Tag], ClientRequestToken: str}
@returns(200) {Arn: str?, Id: str?}

@endpoint POST /wireless-gateways/{Id}/tasks
@desc Creates a task for a wireless gateway.
@required {Id: str, WirelessGatewayTaskDefinitionId: str}
@returns(200) {WirelessGatewayTaskDefinitionId: str?, Status: str?}

@endgroup

@group wireless-gateway-task-definitions
@endpoint POST /wireless-gateway-task-definitions
@desc Creates a gateway task definition.
@required {AutoCreateTasks: bool}
@optional {Name: str, Update: UpdateWirelessGatewayTaskCreate, ClientRequestToken: str, Tags: [Tag]}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group destinations
@endpoint DELETE /destinations/{Name}
@desc Deletes a destination.
@required {Name: str}

@endgroup

@group device-profiles
@endpoint DELETE /device-profiles/{Id}
@desc Deletes a device profile.
@required {Id: str}

@endgroup

@group fuota-tasks
@endpoint DELETE /fuota-tasks/{Id}
@desc Deletes a FUOTA task.
@required {Id: str}

@endgroup

@group multicast-groups
@endpoint DELETE /multicast-groups/{Id}
@desc Deletes a multicast group if it is not in use by a fuota task.
@required {Id: str}

@endgroup

@group network-analyzer-configurations
@endpoint DELETE /network-analyzer-configurations/{ConfigurationName}
@desc Deletes a network analyzer configuration.
@required {ConfigurationName: str}

@endgroup

@group wireless-devices
@endpoint DELETE /wireless-devices/{Id}/data
@desc Remove queued messages from the downlink queue.
@required {Id: str, messageId: str}
@optional {WirelessDeviceType: str}

@endgroup

@group service-profiles
@endpoint DELETE /service-profiles/{Id}
@desc Deletes a service profile.
@required {Id: str}

@endgroup

@group wireless-devices
@endpoint DELETE /wireless-devices/{Id}
@desc Deletes a wireless device.
@required {Id: str}

@endgroup

@group wireless_device_import_task
@endpoint DELETE /wireless_device_import_task/{Id}
@desc Delete an import task.
@required {Id: str}

@endgroup

@group wireless-gateways
@endpoint DELETE /wireless-gateways/{Id}
@desc Deletes a wireless gateway.  When deleting a wireless gateway, you might run into duplication errors for the following reasons.   If you specify a GatewayEui value that already exists.   If you used a ClientRequestToken with the same parameters within the last 10 minutes.   To avoid this error, make sure that you use unique identifiers and parameters for each request within the specified time period.
@required {Id: str}

@endpoint DELETE /wireless-gateways/{Id}/tasks
@desc Deletes a wireless gateway task.
@required {Id: str}

@endgroup

@group wireless-gateway-task-definitions
@endpoint DELETE /wireless-gateway-task-definitions/{Id}
@desc Deletes a wireless gateway task definition. Deleting this task definition does not affect tasks that are currently in progress.
@required {Id: str}

@endgroup

@group wireless-devices
@endpoint PATCH /wireless-devices/{Identifier}/deregister
@desc Deregister a wireless device from AWS IoT Wireless.
@required {Identifier: str}
@optional {WirelessDeviceType: str}

@endgroup

@group partner-accounts
@endpoint DELETE /partner-accounts/{PartnerAccountId}
@desc Disassociates your AWS account from a partner account. If PartnerAccountId and PartnerType are null, disassociates your AWS account from all partner accounts.
@required {PartnerAccountId: str, partnerType: str}

@endgroup

@group fuota-tasks
@endpoint DELETE /fuota-tasks/{Id}/multicast-groups/{MulticastGroupId}
@desc Disassociates a multicast group from a fuota task.
@required {Id: str, MulticastGroupId: str}

@endpoint DELETE /fuota-tasks/{Id}/wireless-devices/{WirelessDeviceId}
@desc Disassociates a wireless device from a FUOTA task.
@required {Id: str, WirelessDeviceId: str}

@endgroup

@group multicast-groups
@endpoint DELETE /multicast-groups/{Id}/wireless-devices/{WirelessDeviceId}
@desc Disassociates a wireless device from a multicast group.
@required {Id: str, WirelessDeviceId: str}

@endgroup

@group wireless-devices
@endpoint DELETE /wireless-devices/{Id}/thing
@desc Disassociates a wireless device from its currently associated thing.
@required {Id: str}

@endgroup

@group wireless-gateways
@endpoint DELETE /wireless-gateways/{Id}/certificate
@desc Disassociates a wireless gateway from its currently associated certificate.
@required {Id: str}

@endpoint DELETE /wireless-gateways/{Id}/thing
@desc Disassociates a wireless gateway from its currently associated thing.
@required {Id: str}

@endgroup

@group destinations
@endpoint GET /destinations/{Name}
@desc Gets information about a destination.
@required {Name: str}
@returns(200) {Arn: str?, Name: str?, Expression: str?, ExpressionType: str?, Description: str?, RoleArn: str?}

@endgroup

@group device-profiles
@endpoint GET /device-profiles/{Id}
@desc Gets information about a device profile.
@required {Id: str}
@returns(200) {Arn: str?, Name: str?, Id: str?, LoRaWAN: LoRaWANDeviceProfile?{SupportsClassB: bool?, ClassBTimeout: int?, PingSlotPeriod: int?, PingSlotDr: int?, PingSlotFreq: int?, SupportsClassC: bool?, ClassCTimeout: int?, MacVersion: str?, RegParamsRevision: str?, RxDelay1: int?, RxDrOffset1: int?, RxDataRate2: int?, RxFreq2: int?, FactoryPresetFreqsList: [int]?, MaxEirp: int?, MaxDutyCycle: int?, RfRegion: str?, SupportsJoin: bool?, Supports32BitFCnt: bool?}, Sidewalk: SidewalkGetDeviceProfile?{ApplicationServerPublicKey: str?, QualificationStatus: bool?, DakCertificateMetadata: [DakCertificateMetadata]?}}

@endgroup

@group event-configurations-resource-types
@endpoint GET /event-configurations-resource-types
@desc Get the event configuration based on resource types.
@returns(200) {DeviceRegistrationState: DeviceRegistrationStateResourceTypeEventConfiguration?{Sidewalk: SidewalkResourceTypeEventConfiguration?{WirelessDeviceEventTopic: str?}}, Proximity: ProximityResourceTypeEventConfiguration?{Sidewalk: SidewalkResourceTypeEventConfiguration?{WirelessDeviceEventTopic: str?}}, Join: JoinResourceTypeEventConfiguration?{LoRaWAN: LoRaWANJoinResourceTypeEventConfiguration?{WirelessDeviceEventTopic: str?}}, ConnectionStatus: ConnectionStatusResourceTypeEventConfiguration?{LoRaWAN: LoRaWANConnectionStatusResourceTypeEventConfiguration?{WirelessGatewayEventTopic: str?}}, MessageDeliveryStatus: MessageDeliveryStatusResourceTypeEventConfiguration?{Sidewalk: SidewalkResourceTypeEventConfiguration?{WirelessDeviceEventTopic: str?}}}

@endgroup

@group fuota-tasks
@endpoint GET /fuota-tasks/{Id}
@desc Gets information about a FUOTA task.
@required {Id: str}
@returns(200) {Arn: str?, Id: str?, Status: str?, Name: str?, Description: str?, LoRaWAN: LoRaWANFuotaTaskGetInfo?{RfRegion: str?, StartTime: str(timestamp)?}, FirmwareUpdateImage: str?, FirmwareUpdateRole: str?, CreatedAt: str(timestamp)?, RedundancyPercent: int?, FragmentSizeBytes: int?, FragmentIntervalMS: int?}

@endgroup

@group log-levels
@endpoint GET /log-levels
@desc Returns current default log levels or log levels by resource types. Based on resource types, log levels can be for wireless device log options or wireless gateway log options.
@returns(200) {DefaultLogLevel: str?, WirelessGatewayLogOptions: [WirelessGatewayLogOption]?, WirelessDeviceLogOptions: [WirelessDeviceLogOption]?}

@endgroup

@group metric-configuration
@endpoint GET /metric-configuration
@desc Get the metric configuration status for this AWS account.
@returns(200) {SummaryMetric: SummaryMetricConfiguration?{Status: str?}}

@endgroup

@group metrics
@endpoint POST /metrics
@desc Get the summary metrics for this AWS account.
@optional {SummaryMetricQueries: [SummaryMetricQuery]}
@returns(200) {SummaryMetricQueryResults: [SummaryMetricQueryResult]?}

@endgroup

@group multicast-groups
@endpoint GET /multicast-groups/{Id}
@desc Gets information about a multicast group.
@required {Id: str}
@returns(200) {Arn: str?, Id: str?, Name: str?, Description: str?, Status: str?, LoRaWAN: LoRaWANMulticastGet?{RfRegion: str?, DlClass: str?, NumberOfDevicesRequested: int?, NumberOfDevicesInGroup: int?}, CreatedAt: str(timestamp)?}

@endpoint GET /multicast-groups/{Id}/session
@desc Gets information about a multicast group session.
@required {Id: str}
@returns(200) {LoRaWAN: LoRaWANMulticastSession?{DlDr: int?, DlFreq: int?, SessionStartTime: str(timestamp)?, SessionTimeout: int?, PingSlotPeriod: int?}}

@endgroup

@group network-analyzer-configurations
@endpoint GET /network-analyzer-configurations/{ConfigurationName}
@desc Get network analyzer configuration.
@required {ConfigurationName: str}
@returns(200) {TraceContent: TraceContent?{WirelessDeviceFrameInfo: str?, LogLevel: str?, MulticastFrameInfo: str?}, WirelessDevices: [str]?, WirelessGateways: [str]?, Description: str?, Arn: str?, Name: str?, MulticastGroups: [str]?}

@endgroup

@group partner-accounts
@endpoint GET /partner-accounts/{PartnerAccountId}
@desc Gets information about a partner account. If PartnerAccountId and PartnerType are null, returns all partner accounts.
@required {PartnerAccountId: str, partnerType: str}
@returns(200) {Sidewalk: SidewalkAccountInfoWithFingerprint?{AmazonId: str?, Fingerprint: str?, Arn: str?}, AccountLinked: bool?}

@endgroup

@group positions
@endpoint GET /positions/{ResourceIdentifier}
@desc Get the position information for a given resource.  This action is no longer supported. Calls to retrieve the position information should use the GetResourcePosition API operation instead.
@required {ResourceIdentifier: str, resourceType: str}
@returns(200) {Position: [num(f32)]?, Accuracy: Accuracy?{HorizontalAccuracy: num(f32)?, VerticalAccuracy: num(f32)?}, SolverType: str?, SolverProvider: str?, SolverVersion: str?, Timestamp: str?}

@endgroup

@group position-configurations
@endpoint GET /position-configurations/{ResourceIdentifier}
@desc Get position configuration for a given resource.  This action is no longer supported. Calls to retrieve the position configuration should use the GetResourcePosition API operation instead.
@required {ResourceIdentifier: str, resourceType: str}
@returns(200) {Solvers: PositionSolverDetails?{SemtechGnss: SemtechGnssDetail?{Provider: str?, Type: str?, Status: str?, Fec: str?}}, Destination: str?}

@endgroup

@group position-estimate
@endpoint POST /position-estimate
@desc Get estimated position information as a payload in GeoJSON format. The payload measurement data is resolved using solvers that are provided by third-party vendors.
@optional {WiFiAccessPoints: [WiFiAccessPoint], CellTowers: CellTowers, Ip: Ip, Gnss: Gnss, Timestamp: str(timestamp)}
@returns(200) {GeoJsonPayload: bytes?}

@endgroup

@group event-configurations
@endpoint GET /event-configurations/{Identifier}
@desc Get the event configuration for a particular resource identifier.
@required {Identifier: str, identifierType: str}
@optional {partnerType: str}
@returns(200) {DeviceRegistrationState: DeviceRegistrationStateEventConfiguration?{Sidewalk: SidewalkEventNotificationConfigurations?{AmazonIdEventTopic: str?}, WirelessDeviceIdEventTopic: str?}, Proximity: ProximityEventConfiguration?{Sidewalk: SidewalkEventNotificationConfigurations?{AmazonIdEventTopic: str?}, WirelessDeviceIdEventTopic: str?}, Join: JoinEventConfiguration?{LoRaWAN: LoRaWANJoinEventNotificationConfigurations?{DevEuiEventTopic: str?}, WirelessDeviceIdEventTopic: str?}, ConnectionStatus: ConnectionStatusEventConfiguration?{LoRaWAN: LoRaWANConnectionStatusEventNotificationConfigurations?{GatewayEuiEventTopic: str?}, WirelessGatewayIdEventTopic: str?}, MessageDeliveryStatus: MessageDeliveryStatusEventConfiguration?{Sidewalk: SidewalkEventNotificationConfigurations?{AmazonIdEventTopic: str?}, WirelessDeviceIdEventTopic: str?}}

@endgroup

@group log-levels
@endpoint GET /log-levels/{ResourceIdentifier}
@desc Fetches the log-level override, if any, for a given resource-ID and resource-type. It can be used for a wireless device or a wireless gateway.
@required {ResourceIdentifier: str, resourceType: str}
@returns(200) {LogLevel: str?}

@endgroup

@group resource-positions
@endpoint GET /resource-positions/{ResourceIdentifier}
@desc Get the position information for a given wireless device or a wireless gateway resource. The position information uses the  World Geodetic System (WGS84).
@required {ResourceIdentifier: str, resourceType: str}
@returns(200) {GeoJsonPayload: bytes?}

@endgroup

@group service-endpoint
@endpoint GET /service-endpoint
@desc Gets the account-specific endpoint for Configuration and Update Server (CUPS) protocol or LoRaWAN Network Server (LNS) connections.
@optional {serviceType: str}
@returns(200) {ServiceType: str?, ServiceEndpoint: str?, ServerTrust: str?}

@endgroup

@group service-profiles
@endpoint GET /service-profiles/{Id}
@desc Gets information about a service profile.
@required {Id: str}
@returns(200) {Arn: str?, Name: str?, Id: str?, LoRaWAN: LoRaWANGetServiceProfileInfo?{UlRate: int?, UlBucketSize: int?, UlRatePolicy: str?, DlRate: int?, DlBucketSize: int?, DlRatePolicy: str?, AddGwMetadata: bool?, DevStatusReqFreq: int?, ReportDevStatusBattery: bool?, ReportDevStatusMargin: bool?, DrMin: int?, DrMax: int?, ChannelMask: str?, PrAllowed: bool?, HrAllowed: bool?, RaAllowed: bool?, NwkGeoLoc: bool?, TargetPer: int?, MinGwDiversity: int?}}

@endgroup

@group wireless-devices
@endpoint GET /wireless-devices/{Identifier}
@desc Gets information about a wireless device.
@required {Identifier: str, identifierType: str}
@returns(200) {Type: str?, Name: str?, Description: str?, DestinationName: str?, Id: str?, Arn: str?, ThingName: str?, ThingArn: str?, LoRaWAN: LoRaWANDevice?{DevEui: str?, DeviceProfileId: str?, ServiceProfileId: str?, OtaaV1_1: OtaaV1_1?{AppKey: str?, NwkKey: str?, JoinEui: str?}, OtaaV1_0_x: OtaaV1_0_x?{AppKey: str?, AppEui: str?, JoinEui: str?, GenAppKey: str?}, AbpV1_1: AbpV1_1?{DevAddr: str?, SessionKeys: SessionKeysAbpV1_1?{FNwkSIntKey: str?, SNwkSIntKey: str?, NwkSEncKey: str?, AppSKey: str?}, FCntStart: int?}, AbpV1_0_x: AbpV1_0_x?{DevAddr: str?, SessionKeys: SessionKeysAbpV1_0_x?{NwkSKey: str?, AppSKey: str?}, FCntStart: int?}, FPorts: FPorts?{Fuota: int?, Multicast: int?, ClockSync: int?, Positioning: Positioning?{ClockSync: int?, Stream: int?, Gnss: int?}, Applications: [ApplicationConfig]?}}, Sidewalk: SidewalkDevice?{AmazonId: str?, SidewalkId: str?, SidewalkManufacturingSn: str?, DeviceCertificates: [CertificateList]?, PrivateKeys: [CertificateList]?, DeviceProfileId: str?, CertificateId: str?, Status: str?}, Positioning: str?}

@endgroup

@group wireless_device_import_task
@endpoint GET /wireless_device_import_task/{Id}
@desc Get information about an import task and count of device onboarding summary information for the import task.
@required {Id: str}
@returns(200) {Id: str?, Arn: str?, DestinationName: str?, Sidewalk: SidewalkGetStartImportInfo?{DeviceCreationFileList: [str]?, Role: str?}, CreationTime: str(timestamp)?, Status: str?, StatusReason: str?, InitializedImportedDeviceCount: int(i64)?, PendingImportedDeviceCount: int(i64)?, OnboardedImportedDeviceCount: int(i64)?, FailedImportedDeviceCount: int(i64)?}

@endgroup

@group wireless-devices
@endpoint GET /wireless-devices/{Id}/statistics
@desc Gets operating information about a wireless device.
@required {WirelessDeviceId: str}
@returns(200) {WirelessDeviceId: str?, LastUplinkReceivedAt: str?, LoRaWAN: LoRaWANDeviceMetadata?{DevEui: str?, FPort: int?, DataRate: int?, Frequency: int?, Timestamp: str?, Gateways: [LoRaWANGatewayMetadata]?, PublicGateways: [LoRaWANPublicGatewayMetadata]?}, Sidewalk: SidewalkDeviceMetadata?{Rssi: int?, BatteryLevel: str?, Event: str?, DeviceState: str?}}

@endgroup

@group wireless-gateways
@endpoint GET /wireless-gateways/{Identifier}
@desc Gets information about a wireless gateway.
@required {Identifier: str, identifierType: str}
@returns(200) {Name: str?, Id: str?, Description: str?, LoRaWAN: LoRaWANGateway?{GatewayEui: str?, RfRegion: str?, JoinEuiFilters: [[str]]?, NetIdFilters: [str]?, SubBands: [int]?, Beaconing: Beaconing?{DataRate: int?, Frequencies: [int]?}, MaxEirp: num(f32)?}, Arn: str?, ThingName: str?, ThingArn: str?}

@endpoint GET /wireless-gateways/{Id}/certificate
@desc Gets the ID of the certificate that is currently associated with a wireless gateway.
@required {Id: str}
@returns(200) {IotCertificateId: str?, LoRaWANNetworkServerCertificateId: str?}

@endpoint GET /wireless-gateways/{Id}/firmware-information
@desc Gets the firmware version and other information about a wireless gateway.
@required {Id: str}
@returns(200) {LoRaWAN: LoRaWANGatewayCurrentVersion?{CurrentVersion: LoRaWANGatewayVersion?{PackageVersion: str?, Model: str?, Station: str?}}}

@endpoint GET /wireless-gateways/{Id}/statistics
@desc Gets operating information about a wireless gateway.
@required {WirelessGatewayId: str}
@returns(200) {WirelessGatewayId: str?, LastUplinkReceivedAt: str?, ConnectionStatus: str?}

@endpoint GET /wireless-gateways/{Id}/tasks
@desc Gets information about a wireless gateway task.
@required {Id: str}
@returns(200) {WirelessGatewayId: str?, WirelessGatewayTaskDefinitionId: str?, LastUplinkReceivedAt: str?, TaskCreatedAt: str?, Status: str?}

@endgroup

@group wireless-gateway-task-definitions
@endpoint GET /wireless-gateway-task-definitions/{Id}
@desc Gets information about a wireless gateway task definition.
@required {Id: str}
@returns(200) {AutoCreateTasks: bool?, Name: str?, Update: UpdateWirelessGatewayTaskCreate?{UpdateDataSource: str?, UpdateDataRole: str?, LoRaWAN: LoRaWANUpdateGatewayTaskCreate?{UpdateSignature: str?, SigKeyCrc: int(i64)?, CurrentVersion: LoRaWANGatewayVersion?{PackageVersion: str?, Model: str?, Station: str?}, UpdateVersion: LoRaWANGatewayVersion?{PackageVersion: str?, Model: str?, Station: str?}}}, Arn: str?}

@endgroup

@group destinations
@endpoint GET /destinations
@desc Lists the destinations registered to your AWS account.
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, DestinationList: [Destinations]?}

@endgroup

@group device-profiles
@endpoint GET /device-profiles
@desc Lists the device profiles registered to your AWS account.
@optional {nextToken: str, maxResults: int, deviceProfileType: str}
@returns(200) {NextToken: str?, DeviceProfileList: [DeviceProfile]?}

@endgroup

@group wireless_device_import_task
@endpoint GET /wireless_device_import_task
@desc List the Sidewalk devices in an import task and their onboarding status.
@required {id: str}
@optional {maxResults: int, nextToken: str, status: str}
@returns(200) {NextToken: str?, DestinationName: str?, ImportedWirelessDeviceList: [ImportedWirelessDevice]?}

@endgroup

@group event-configurations
@endpoint GET /event-configurations
@desc List event configurations where at least one event topic has been enabled.
@required {resourceType: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, EventConfigurationsList: [EventConfigurationItem]?}

@endgroup

@group fuota-tasks
@endpoint GET /fuota-tasks
@desc Lists the FUOTA tasks registered to your AWS account.
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, FuotaTaskList: [FuotaTask]?}

@endgroup

@group multicast-groups
@endpoint GET /multicast-groups
@desc Lists the multicast groups registered to your AWS account.
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, MulticastGroupList: [MulticastGroup]?}

@endgroup

@group fuota-tasks
@endpoint GET /fuota-tasks/{Id}/multicast-groups
@desc List all multicast groups associated with a fuota task.
@required {Id: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, MulticastGroupList: [MulticastGroupByFuotaTask]?}

@endgroup

@group network-analyzer-configurations
@endpoint GET /network-analyzer-configurations
@desc Lists the network analyzer configurations.
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, NetworkAnalyzerConfigurationList: [NetworkAnalyzerConfigurations]?}

@endgroup

@group partner-accounts
@endpoint GET /partner-accounts
@desc Lists the partner accounts associated with your AWS account.
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, Sidewalk: [SidewalkAccountInfoWithFingerprint]?}

@endgroup

@group position-configurations
@endpoint GET /position-configurations
@desc List position configurations for a given resource, such as positioning solvers.  This action is no longer supported. Calls to retrieve position information should use the GetResourcePosition API operation instead.
@optional {resourceType: str, maxResults: int, nextToken: str}
@returns(200) {PositionConfigurationList: [PositionConfigurationItem]?, NextToken: str?}

@endgroup

@group wireless-devices
@endpoint GET /wireless-devices/{Id}/data
@desc List queued messages in the downlink queue.
@required {Id: str}
@optional {nextToken: str, maxResults: int, WirelessDeviceType: str}
@returns(200) {NextToken: str?, DownlinkQueueMessagesList: [DownlinkQueueMessage]?}

@endgroup

@group service-profiles
@endpoint GET /service-profiles
@desc Lists the service profiles registered to your AWS account.
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, ServiceProfileList: [ServiceProfile]?}

@endgroup

@group tags
@endpoint GET /tags
@desc Lists the tags (metadata) you have assigned to the resource.
@required {resourceArn: str}
@returns(200) {Tags: [Tag]?}

@endgroup

@group wireless_device_import_tasks
@endpoint GET /wireless_device_import_tasks
@desc List wireless devices that have been added to an import task.
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, WirelessDeviceImportTaskList: [WirelessDeviceImportTask]?}

@endgroup

@group wireless-devices
@endpoint GET /wireless-devices
@desc Lists the wireless devices registered to your AWS account.
@optional {maxResults: int, nextToken: str, destinationName: str, deviceProfileId: str, serviceProfileId: str, wirelessDeviceType: str, fuotaTaskId: str, multicastGroupId: str}
@returns(200) {NextToken: str?, WirelessDeviceList: [WirelessDeviceStatistics]?}

@endgroup

@group wireless-gateway-task-definitions
@endpoint GET /wireless-gateway-task-definitions
@desc List the wireless gateway tasks definitions registered to your AWS account.
@optional {maxResults: int, nextToken: str, taskDefinitionType: str}
@returns(200) {NextToken: str?, TaskDefinitions: [UpdateWirelessGatewayTaskEntry]?}

@endgroup

@group wireless-gateways
@endpoint GET /wireless-gateways
@desc Lists the wireless gateways registered to your AWS account.
@optional {nextToken: str, maxResults: int}
@returns(200) {NextToken: str?, WirelessGatewayList: [WirelessGatewayStatistics]?}

@endgroup

@group position-configurations
@endpoint PUT /position-configurations/{ResourceIdentifier}
@desc Put position configuration for a given resource.  This action is no longer supported. Calls to update the position configuration should use the UpdateResourcePosition API operation instead.
@required {ResourceIdentifier: str, resourceType: str}
@optional {Solvers: PositionSolverConfigurations, Destination: str}

@endgroup

@group log-levels
@endpoint PUT /log-levels/{ResourceIdentifier}
@desc Sets the log-level override for a resource-ID and resource-type. This option can be specified for a wireless gateway or a wireless device. A limit of 200 log level override can be set per account.
@required {ResourceIdentifier: str, resourceType: str, LogLevel: str}

@endpoint DELETE /log-levels
@desc Removes the log-level overrides for all resources; both wireless devices and wireless gateways.

@endpoint DELETE /log-levels/{ResourceIdentifier}
@desc Removes the log-level override, if any, for a specific resource-ID and resource-type. It can be used for a wireless device or a wireless gateway.
@required {ResourceIdentifier: str, resourceType: str}

@endgroup

@group multicast-groups
@endpoint POST /multicast-groups/{Id}/data
@desc Sends the specified data to a multicast group.
@required {Id: str, PayloadData: str, WirelessMetadata: MulticastWirelessMetadata}
@returns(200) {MessageId: str?}

@endgroup

@group wireless-devices
@endpoint POST /wireless-devices/{Id}/data
@desc Sends a decrypted application data frame to a device.
@required {Id: str, TransmitMode: int, PayloadData: str}
@optional {WirelessMetadata: WirelessMetadata}
@returns(200) {MessageId: str?}

@endgroup

@group multicast-groups
@endpoint PATCH /multicast-groups/{Id}/bulk
@desc Starts a bulk association of all qualifying wireless devices with a multicast group.
@required {Id: str}
@optional {QueryString: str, Tags: [Tag]}

@endpoint POST /multicast-groups/{Id}/bulk
@desc Starts a bulk disassociatin of all qualifying wireless devices from a multicast group.
@required {Id: str}
@optional {QueryString: str, Tags: [Tag]}

@endgroup

@group fuota-tasks
@endpoint PUT /fuota-tasks/{Id}
@desc Starts a FUOTA task.
@required {Id: str}
@optional {LoRaWAN: LoRaWANStartFuotaTask}

@endgroup

@group multicast-groups
@endpoint PUT /multicast-groups/{Id}/session
@desc Starts a multicast group session.
@required {Id: str, LoRaWAN: LoRaWANMulticastSession}

@endgroup

@group wireless_single_device_import_task
@endpoint POST /wireless_single_device_import_task
@desc Start import task for a single wireless device.
@required {DestinationName: str, Sidewalk: SidewalkSingleStartImportInfo}
@optional {ClientRequestToken: str, DeviceName: str, Tags: [Tag]}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group wireless_device_import_task
@endpoint POST /wireless_device_import_task
@desc Start import task for provisioning Sidewalk devices in bulk using an S3 CSV file.
@required {DestinationName: str, Sidewalk: SidewalkStartImportInfo}
@optional {ClientRequestToken: str, Tags: [Tag]}
@returns(200) {Id: str?, Arn: str?}

@endgroup

@group tags
@endpoint POST /tags
@desc Adds a tag to a resource.
@required {resourceArn: str, Tags: [Tag]}

@endgroup

@group wireless-devices
@endpoint POST /wireless-devices/{Id}/test
@desc Simulates a provisioned device by sending an uplink data payload of Hello.
@required {Id: str}
@returns(200) {Result: str?}

@endgroup

@group tags
@endpoint DELETE /tags
@desc Removes one or more tags from a resource.
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group destinations
@endpoint PATCH /destinations/{Name}
@desc Updates properties of a destination.
@required {Name: str}
@optional {ExpressionType: str, Expression: str, Description: str, RoleArn: str}

@endgroup

@group event-configurations-resource-types
@endpoint PATCH /event-configurations-resource-types
@desc Update the event configuration based on resource types.
@optional {DeviceRegistrationState: DeviceRegistrationStateResourceTypeEventConfiguration, Proximity: ProximityResourceTypeEventConfiguration, Join: JoinResourceTypeEventConfiguration, ConnectionStatus: ConnectionStatusResourceTypeEventConfiguration, MessageDeliveryStatus: MessageDeliveryStatusResourceTypeEventConfiguration}

@endgroup

@group fuota-tasks
@endpoint PATCH /fuota-tasks/{Id}
@desc Updates properties of a FUOTA task.
@required {Id: str}
@optional {Name: str, Description: str, LoRaWAN: LoRaWANFuotaTask, FirmwareUpdateImage: str, FirmwareUpdateRole: str, RedundancyPercent: int, FragmentSizeBytes: int, FragmentIntervalMS: int}

@endgroup

@group log-levels
@endpoint POST /log-levels
@desc Set default log level, or log levels by resource types. This can be for wireless device log options or wireless gateways log options and is used to control the log messages that'll be displayed in CloudWatch.
@optional {DefaultLogLevel: str, WirelessDeviceLogOptions: [WirelessDeviceLogOption], WirelessGatewayLogOptions: [WirelessGatewayLogOption]}

@endgroup

@group metric-configuration
@endpoint PUT /metric-configuration
@desc Update the summary metric configuration.
@optional {SummaryMetric: SummaryMetricConfiguration}

@endgroup

@group multicast-groups
@endpoint PATCH /multicast-groups/{Id}
@desc Updates properties of a multicast group session.
@required {Id: str}
@optional {Name: str, Description: str, LoRaWAN: LoRaWANMulticast}

@endgroup

@group network-analyzer-configurations
@endpoint PATCH /network-analyzer-configurations/{ConfigurationName}
@desc Update network analyzer configuration.
@required {ConfigurationName: str}
@optional {TraceContent: TraceContent, WirelessDevicesToAdd: [str], WirelessDevicesToRemove: [str], WirelessGatewaysToAdd: [str], WirelessGatewaysToRemove: [str], Description: str, MulticastGroupsToAdd: [str], MulticastGroupsToRemove: [str]}

@endgroup

@group partner-accounts
@endpoint PATCH /partner-accounts/{PartnerAccountId}
@desc Updates properties of a partner account.
@required {PartnerAccountId: str, partnerType: str, Sidewalk: SidewalkUpdateAccount}

@endgroup

@group positions
@endpoint PATCH /positions/{ResourceIdentifier}
@desc Update the position information of a resource.  This action is no longer supported. Calls to update the position information should use the UpdateResourcePosition API operation instead.
@required {ResourceIdentifier: str, resourceType: str, Position: [num(f32)]}

@endgroup

@group event-configurations
@endpoint PATCH /event-configurations/{Identifier}
@desc Update the event configuration for a particular resource identifier.
@required {Identifier: str, identifierType: str}
@optional {partnerType: str, DeviceRegistrationState: DeviceRegistrationStateEventConfiguration, Proximity: ProximityEventConfiguration, Join: JoinEventConfiguration, ConnectionStatus: ConnectionStatusEventConfiguration, MessageDeliveryStatus: MessageDeliveryStatusEventConfiguration}

@endgroup

@group resource-positions
@endpoint PATCH /resource-positions/{ResourceIdentifier}
@desc Update the position information of a given wireless device or a wireless gateway resource. The position coordinates are based on the  World Geodetic System (WGS84).
@required {ResourceIdentifier: str, resourceType: str}
@optional {GeoJsonPayload: bytes}

@endgroup

@group wireless-devices
@endpoint PATCH /wireless-devices/{Id}
@desc Updates properties of a wireless device.
@required {Id: str}
@optional {DestinationName: str, Name: str, Description: str, LoRaWAN: LoRaWANUpdateDevice, Positioning: str}

@endgroup

@group wireless_device_import_task
@endpoint PATCH /wireless_device_import_task/{Id}
@desc Update an import task to add more devices to the task.
@required {Id: str, Sidewalk: SidewalkUpdateImportInfo}

@endgroup

@group wireless-gateways
@endpoint PATCH /wireless-gateways/{Id}
@desc Updates properties of a wireless gateway.
@required {Id: str}
@optional {Name: str, Description: str, JoinEuiFilters: [[str]], NetIdFilters: [str], MaxEirp: num(f32)}

@endgroup

@end
