MICROSOFT.ORBITAL

AvailableGroundStations_Get

enum_apiVersionParameter := [ "2020-09-01-preview", "2021-04-04-preview", "2022-03-01" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.groundStationName == STRING
    input.Qs.api-version == enum_apiVersionParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

AvailableGroundStations_ListByCapability

enum_capabilityParameter := [ "EarthObservation", "Communication" ]

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.capability == enum_capabilityParameter[_]
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ContactProfiles_CreateOrUpdate

enum_ContactProfileLinkDirection := [ "Uplink", "Downlink" ]
enum_ContactProfileLinkPolarization := [ "RHCP", "LHCP", "linearVertical", "linearHorizontal" ]
enum_ContactProfilesPropertiesAutoTrackingConfiguration := [ "disabled", "xBand", "sBand" ]
enum_EndPointProtocol := [ "TCP", "UDP" ]

valid {
    input.Body.properties.provisioningState == STRING
    input.Body.properties.minimumViableContactDuration == STRING
    input.Body.properties.minimumElevationDegrees == NUMBER
    input.Body.properties.autoTrackingConfiguration == enum_ContactProfilesPropertiesAutoTrackingConfiguration[_]
    input.Body.properties.eventHubUri == STRING
    input.Body.properties.networkConfiguration.subnetId == STRING
    input.Body.properties.thirdPartyConfigurations[_].providerName == STRING
    input.Body.properties.thirdPartyConfigurations[_].missionConfiguration == STRING
    input.Body.properties.links[_].name == STRING
    input.Body.properties.links[_].polarization == enum_ContactProfileLinkPolarization[_]
    input.Body.properties.links[_].direction == enum_ContactProfileLinkDirection[_]
    input.Body.properties.links[_].gainOverTemperature == NUMBER
    input.Body.properties.links[_].eirpdBW == NUMBER
    input.Body.properties.links[_].channels[_].name == STRING
    input.Body.properties.links[_].channels[_].centerFrequencyMHz == NUMBER
    input.Body.properties.links[_].channels[_].bandwidthMHz == NUMBER
    input.Body.properties.links[_].channels[_].endPoint.ipAddress == STRING
    input.Body.properties.links[_].channels[_].endPoint.endPointName == STRING
    input.Body.properties.links[_].channels[_].endPoint.port == STRING
    input.Body.properties.links[_].channels[_].endPoint.protocol == enum_EndPointProtocol[_]
    input.Body.properties.links[_].channels[_].modulationConfiguration == STRING
    input.Body.properties.links[_].channels[_].demodulationConfiguration == STRING
    input.Body.properties.links[_].channels[_].encodingConfiguration == STRING
    input.Body.properties.links[_].channels[_].decodingConfiguration == STRING
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.contactProfileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContactProfiles_Delete

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.contactProfileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContactProfiles_Get

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.contactProfileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContactProfiles_List

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$skiptoken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

ContactProfiles_ListBySubscription

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$skiptoken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

ContactProfiles_UpdateTags

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.contactProfileName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Contacts_Create

valid {
    input.Body.properties.provisioningState == STRING
    input.Body.properties.reservationStartTime == STRING
    input.Body.properties.reservationEndTime == STRING
    input.Body.properties.groundStationName == STRING
    input.Body.properties.contactProfile.id == STRING
    input.Body.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.ReqMap.contactName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Contacts_Delete

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.ReqMap.contactName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Contacts_Get

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.ReqMap.contactName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Contacts_List

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.Qs.$skiptoken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

OperationsResults_Get

valid {
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.location == STRING
    input.ReqMap.operationId == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Operations_List

valid {
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
}

Spacecrafts_CreateOrUpdate

enum_SpacecraftLinkDirection := [ "Uplink", "Downlink" ]
enum_SpacecraftLinkPolarization := [ "RHCP", "LHCP", "linearVertical", "linearHorizontal" ]

valid {
    input.Body.properties.provisioningState == STRING
    input.Body.properties.noradId == STRING
    input.Body.properties.titleLine == STRING
    input.Body.properties.tleLine1 == STRING
    input.Body.properties.tleLine2 == STRING
    input.Body.properties.links[_].name == STRING
    input.Body.properties.links[_].centerFrequencyMHz == NUMBER
    input.Body.properties.links[_].bandwidthMHz == NUMBER
    input.Body.properties.links[_].direction == enum_SpacecraftLinkDirection[_]
    input.Body.properties.links[_].polarization == enum_SpacecraftLinkPolarization[_]
    input.Body.tags.STRING == STRING
    input.Body.location == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Spacecrafts_Delete

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Spacecrafts_Get

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Spacecrafts_List

valid {
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$skiptoken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Spacecrafts_ListAvailableContacts

valid {
    input.Body.contactProfile.id == STRING
    input.Body.groundStationName == STRING
    input.Body.startTime == STRING
    input.Body.endTime == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}

Spacecrafts_ListBySubscription

valid {
    input.ReqMap.SubscriptionID == STRING
    input.Qs.api-version == STRING
    input.Qs.$skiptoken == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
}

Spacecrafts_UpdateTags

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.ResourceGroup == STRING
    input.ReqMap.SubscriptionID == STRING
    input.ReqMap.spacecraftName == STRING
    input.Qs.api-version == STRING
    input.ProviderMetadata.Region == STRING
    input.ProviderMetadata.SubscriptionID == STRING
    input.ProviderMetadata.ResourceGroup == STRING
}