diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 3932d25f8e89e..35cb107220494 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -323,6 +323,7 @@ com.azure.resourcemanager:azure-resourcemanager-logz;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-storagepool;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-dataprotection;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-desktopvirtualization;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-orbital;1.0.0-beta.1;1.0.0-beta.1
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
# version. Unreleased dependencies are only valid for dependency versions.
diff --git a/pom.xml b/pom.xml
index 7e6a817f6ddad..869424c70790e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -800,6 +800,7 @@
sdk/netapp
sdk/notificationhubs
sdk/operationsmanagement
+ sdk/orbital
sdk/peering
sdk/policyinsights
sdk/postgresql
diff --git a/sdk/orbital/azure-resourcemanager-orbital/CHANGELOG.md b/sdk/orbital/azure-resourcemanager-orbital/CHANGELOG.md
new file mode 100644
index 0000000000000..9db82110b8809
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-11-18)
+
+- Azure Resource Manager orbital client library for Java. This package contains Microsoft Azure SDK for orbital Management SDK. Azure Orbital service. Package tag package-2021-04-04-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
diff --git a/sdk/orbital/azure-resourcemanager-orbital/README.md b/sdk/orbital/azure-resourcemanager-orbital/README.md
new file mode 100644
index 0000000000000..17ef50fee99a2
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager orbital client library for Java
+
+Azure Resource Manager orbital client library for Java.
+
+This package contains Microsoft Azure SDK for orbital Management SDK. Azure Orbital service. Package tag package-2021-04-04-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
+
+## We'd love to hear your feedback
+
+We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
+
+If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
+
+Thank you in advance for your collaboration. We really appreciate your time!
+
+## Documentation
+
+Various documentation is available to help you get started
+
+- [API reference documentation][docs]
+
+## Getting started
+
+### Prerequisites
+
+- [Java Development Kit (JDK)][jdk] with version 8 or above
+- [Azure Subscription][azure_subscription]
+
+### Adding the package to your product
+
+[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-orbital;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-orbital
+ 1.0.0-beta.1
+
+```
+[//]: # ({x-version-update-end})
+
+### Include the recommended packages
+
+Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
+
+[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
+
+### Authentication
+
+By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
+
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
+
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, `azure` client can be authenticated by following code:
+
+```java
+AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
+TokenCredential credential = new DefaultAzureCredentialBuilder()
+ .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
+ .build();
+OrbitalManager manager = OrbitalManager
+ .authenticate(credential, profile);
+```
+
+The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
+
+See [Authentication][authenticate] for more options.
+
+## Key concepts
+
+See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
+
+## Examples
+
+[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/orbital/azure-resourcemanager-orbital/SAMPLE.md)
+
+
+## Troubleshooting
+
+## Next steps
+
+## Contributing
+
+For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md).
+
+1. Fork it
+1. Create your feature branch (`git checkout -b my-new-feature`)
+1. Commit your changes (`git commit -am 'Add some feature'`)
+1. Push to the branch (`git push origin my-new-feature`)
+1. Create new Pull Request
+
+
+[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
+[docs]: https://azure.github.io/azure-sdk-for-java/
+[jdk]: https://docs.microsoft.com/java/azure/jdk/
+[azure_subscription]: https://azure.microsoft.com/free/
+[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
+[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
+[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
+[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
diff --git a/sdk/orbital/azure-resourcemanager-orbital/SAMPLE.md b/sdk/orbital/azure-resourcemanager-orbital/SAMPLE.md
new file mode 100644
index 0000000000000..9a47dce4d15c6
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/SAMPLE.md
@@ -0,0 +1,608 @@
+# Code snippets and samples
+
+
+## AvailableGroundStations
+
+- [Get](#availablegroundstations_get)
+- [List](#availablegroundstations_list)
+
+## ContactProfiles
+
+- [CreateOrUpdate](#contactprofiles_createorupdate)
+- [Delete](#contactprofiles_delete)
+- [GetByResourceGroup](#contactprofiles_getbyresourcegroup)
+- [List](#contactprofiles_list)
+- [ListByResourceGroup](#contactprofiles_listbyresourcegroup)
+- [UpdateTags](#contactprofiles_updatetags)
+
+## Contacts
+
+- [Create](#contacts_create)
+- [Delete](#contacts_delete)
+- [Get](#contacts_get)
+- [List](#contacts_list)
+
+## Operations
+
+- [List](#operations_list)
+
+## Spacecrafts
+
+- [CreateOrUpdate](#spacecrafts_createorupdate)
+- [Delete](#spacecrafts_delete)
+- [GetByResourceGroup](#spacecrafts_getbyresourcegroup)
+- [List](#spacecrafts_list)
+- [ListAvailableContacts](#spacecrafts_listavailablecontacts)
+- [ListByResourceGroup](#spacecrafts_listbyresourcegroup)
+- [UpdateTags](#spacecrafts_updatetags)
+### AvailableGroundStations_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for AvailableGroundStations Get. */
+public final class AvailableGroundStationsGetSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/AvailableGroundStationGet.json
+ */
+ /**
+ * Sample code: Get GroundStation.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void getGroundStation(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.availableGroundStations().getWithResponse("westus_gs1", Context.NONE);
+ }
+}
+```
+
+### AvailableGroundStations_List
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStationsCapability;
+
+/** Samples for AvailableGroundStations List. */
+public final class AvailableGroundStationsListSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/AvailableGroundStationsByCapabilityList.json
+ */
+ /**
+ * Sample code: List of Ground Stations by Capability.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfGroundStationsByCapability(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.availableGroundStations().list(AvailableGroundStationsCapability.EARTH_OBSERVATION, Context.NONE);
+ }
+}
+```
+
+### ContactProfiles_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.orbital.models.AutoTrackingConfiguration;
+import com.azure.resourcemanager.orbital.models.ContactProfileLink;
+import com.azure.resourcemanager.orbital.models.ContactProfileLinkChannel;
+import com.azure.resourcemanager.orbital.models.Direction;
+import com.azure.resourcemanager.orbital.models.EndPoint;
+import com.azure.resourcemanager.orbital.models.Polarization;
+import com.azure.resourcemanager.orbital.models.Protocol;
+import java.util.Arrays;
+
+/** Samples for ContactProfiles CreateOrUpdate. */
+public final class ContactProfilesCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfileCreate.json
+ */
+ /**
+ * Sample code: Create a contact profile.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void createAContactProfile(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager
+ .contactProfiles()
+ .define("AQUA_DIRECTPLAYBACK_WITH_UPLINK")
+ .withRegion("westus")
+ .withExistingResourceGroup("rg1")
+ .withMinimumViableContactDuration("PT1M")
+ .withMinimumElevationDegrees(10.0f)
+ .withAutoTrackingConfiguration(AutoTrackingConfiguration.X_BAND)
+ .withLinks(
+ Arrays
+ .asList(
+ new ContactProfileLink()
+ .withPolarization(Polarization.RHCP)
+ .withDirection(Direction.UPLINK)
+ .withGainOverTemperature(0.0f)
+ .withEirpdBW(45.0f)
+ .withChannels(
+ Arrays
+ .asList(
+ new ContactProfileLinkChannel()
+ .withCenterFrequencyMHz(2106.4063f)
+ .withBandwidthMHz(0.036f)
+ .withEndPoint(
+ new EndPoint()
+ .withIpAddress("10.0.1.0")
+ .withEndPointName("AQUA_command")
+ .withPort("4000")
+ .withProtocol(Protocol.TCP))
+ .withModulationConfiguration("AQUA_UPLINK_BPSK")
+ .withDemodulationConfiguration("na")
+ .withEncodingConfiguration("AQUA_CMD_CCSDS")
+ .withDecodingConfiguration("na"))),
+ new ContactProfileLink()
+ .withPolarization(Polarization.RHCP)
+ .withDirection(Direction.DOWNLINK)
+ .withGainOverTemperature(25.0f)
+ .withEirpdBW(0.0f)
+ .withChannels(
+ Arrays
+ .asList(
+ new ContactProfileLinkChannel()
+ .withCenterFrequencyMHz(8160f)
+ .withBandwidthMHz(150f)
+ .withEndPoint(
+ new EndPoint()
+ .withIpAddress("10.0.2.0")
+ .withEndPointName("AQUA_directplayback")
+ .withPort("4000")
+ .withProtocol(Protocol.TCP))
+ .withModulationConfiguration("na")
+ .withDemodulationConfiguration("AQUA_DOWNLINK_QPSK")
+ .withEncodingConfiguration("na")
+ .withDecodingConfiguration("AQUA_DIRECTPLAYBACK_CCSDS")))))
+ .create();
+ }
+}
+```
+
+### ContactProfiles_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ContactProfiles Delete. */
+public final class ContactProfilesDeleteSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfileDelete.json
+ */
+ /**
+ * Sample code: Delete Contact Profile.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void deleteContactProfile(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contactProfiles().delete("rg1", "AQUA_DIRECTPLAYBACK_WITH_UPLINK", Context.NONE);
+ }
+}
+```
+
+### ContactProfiles_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ContactProfiles GetByResourceGroup. */
+public final class ContactProfilesGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfileGet.json
+ */
+ /**
+ * Sample code: Get a contact profile.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void getAContactProfile(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager
+ .contactProfiles()
+ .getByResourceGroupWithResponse("rg1", "AQUA_DIRECTPLAYBACK_WITH_UPLINK", Context.NONE);
+ }
+}
+```
+
+### ContactProfiles_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ContactProfiles List. */
+public final class ContactProfilesListSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfilesBySubscriptionList.json
+ */
+ /**
+ * Sample code: List of Contact Profiles by Subscription.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfContactProfilesBySubscription(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contactProfiles().list(Context.NONE);
+ }
+}
+```
+
+### ContactProfiles_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ContactProfiles ListByResourceGroup. */
+public final class ContactProfilesListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfilesByResourceGroupList.json
+ */
+ /**
+ * Sample code: List of Contact Profiles by Resource Group.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfContactProfilesByResourceGroup(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contactProfiles().listByResourceGroup("rg1", Context.NONE);
+ }
+}
+```
+
+### ContactProfiles_UpdateTags
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.models.ContactProfile;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for ContactProfiles UpdateTags. */
+public final class ContactProfilesUpdateTagsSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactProfileUpdateTag.json
+ */
+ /**
+ * Sample code: Update Contact Profile tags.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void updateContactProfileTags(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ ContactProfile resource =
+ manager
+ .contactProfiles()
+ .getByResourceGroupWithResponse("rg1", "AQUA_DIRECTPLAYBACK_WITH_UPLINK", Context.NONE)
+ .getValue();
+ resource.update().withTags(mapOf("tag1", "value1", "tag2", "value2")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
+### Contacts_Create
+
+```java
+import com.azure.resourcemanager.orbital.models.ResourceReference;
+import java.time.OffsetDateTime;
+
+/** Samples for Contacts Create. */
+public final class ContactsCreateSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactCreate.json
+ */
+ /**
+ * Sample code: Create a contact.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void createAContact(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager
+ .contacts()
+ .define("contact1")
+ .withExistingSpacecraft("rg1", "AQUA")
+ .withReservationStartTime(OffsetDateTime.parse("2020-07-16T20:35:00.00Z"))
+ .withReservationEndTime(OffsetDateTime.parse("2020-07-16T20:55:00.00Z"))
+ .withGroundStationName("westus_gs1")
+ .withContactProfile(
+ new ResourceReference()
+ .withId(
+ "/subscriptions/subId/resourceGroups/rg/Microsoft.Orbital/contactProfiles/AQUA_DIRECTPLAYBACK_WITH_UPLINK"))
+ .create();
+ }
+}
+```
+
+### Contacts_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Contacts Delete. */
+public final class ContactsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactDelete.json
+ */
+ /**
+ * Sample code: Delete Contact.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void deleteContact(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contacts().delete("rg1", "AQUA", "contact1", Context.NONE);
+ }
+}
+```
+
+### Contacts_Get
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Contacts Get. */
+public final class ContactsGetSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactGet.json
+ */
+ /**
+ * Sample code: Get Contact.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void getContact(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contacts().getWithResponse("rg1", "AQUA", "contact1", Context.NONE);
+ }
+}
+```
+
+### Contacts_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Contacts List. */
+public final class ContactsListSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/ContactsBySpacecraftNameList.json
+ */
+ /**
+ * Sample code: List of Contacts.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfContacts(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.contacts().list("rg1", "AQUA", Context.NONE);
+ }
+}
+```
+
+### Operations_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Operations List. */
+public final class OperationsListSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/OperationsList.json
+ */
+ /**
+ * Sample code: OperationsList.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void operationsList(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.operations().list(Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.orbital.models.Direction;
+import com.azure.resourcemanager.orbital.models.Polarization;
+import com.azure.resourcemanager.orbital.models.SpacecraftLink;
+import java.util.Arrays;
+
+/** Samples for Spacecrafts CreateOrUpdate. */
+public final class SpacecraftsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftCreate.json
+ */
+ /**
+ * Sample code: Create a spacecraft.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void createASpacecraft(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager
+ .spacecrafts()
+ .define("AQUA")
+ .withRegion("westus")
+ .withExistingResourceGroup("rg1")
+ .withNoradId("27424")
+ .withTitleLine("(AQUA)")
+ .withTleLine1("1 27424U 02022A 20195.59202355 .00000039 00000-0 18634-4 0 9991")
+ .withTleLine2("2 27424 98.2098 135.8486 0000176 28.4050 144.5909 14.57108832967671")
+ .withLinks(
+ Arrays
+ .asList(
+ new SpacecraftLink()
+ .withCenterFrequencyMHz(2106.4063f)
+ .withBandwidthMHz(0.036f)
+ .withDirection(Direction.UPLINK)
+ .withPolarization(Polarization.RHCP),
+ new SpacecraftLink()
+ .withCenterFrequencyMHz(8125f)
+ .withBandwidthMHz(150f)
+ .withDirection(Direction.DOWNLINK)
+ .withPolarization(Polarization.RHCP)))
+ .create();
+ }
+}
+```
+
+### Spacecrafts_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Spacecrafts Delete. */
+public final class SpacecraftsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftDelete.json
+ */
+ /**
+ * Sample code: Delete Spacecraft.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void deleteSpacecraft(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.spacecrafts().delete("rg1", "AQUA", Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Spacecrafts GetByResourceGroup. */
+public final class SpacecraftsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftGet.json
+ */
+ /**
+ * Sample code: Get Spacecraft.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void getSpacecraft(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.spacecrafts().getByResourceGroupWithResponse("rg1", "AQUA", Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Spacecrafts List. */
+public final class SpacecraftsListSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftsBySubscriptionList.json
+ */
+ /**
+ * Sample code: List of Spacecraft by Subscription.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfSpacecraftBySubscription(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.spacecrafts().list(Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_ListAvailableContacts
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.models.ContactParameters;
+import com.azure.resourcemanager.orbital.models.ResourceReference;
+import java.time.OffsetDateTime;
+
+/** Samples for Spacecrafts ListAvailableContacts. */
+public final class SpacecraftsListAvailableContactsSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/AvailableContactsList.json
+ */
+ /**
+ * Sample code: List of Contact.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfContact(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager
+ .spacecrafts()
+ .listAvailableContacts(
+ "rgName",
+ "AQUA",
+ new ContactParameters()
+ .withContactProfile(
+ new ResourceReference()
+ .withId(
+ "/subscriptions/subId/resourceGroups/rg/Microsoft.Orbital/contactProfiles/AQUA_DIRECTPLAYBACK_WITH_UPLINK"))
+ .withGroundStationName("westus_gs1")
+ .withStartTime(OffsetDateTime.parse("2020-07-16T05:40:21.00Z"))
+ .withEndTime(OffsetDateTime.parse("2020-07-17T23:49:40.00Z")),
+ Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Spacecrafts ListByResourceGroup. */
+public final class SpacecraftsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftsByResourceGroupList.json
+ */
+ /**
+ * Sample code: List of Spacecraft by Resource Group.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void listOfSpacecraftByResourceGroup(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ manager.spacecrafts().listByResourceGroup("rg1", Context.NONE);
+ }
+}
+```
+
+### Spacecrafts_UpdateTags
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.models.Spacecraft;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for Spacecrafts UpdateTags. */
+public final class SpacecraftsUpdateTagsSamples {
+ /*
+ * x-ms-original-file: specification/orbital/resource-manager/Microsoft.Orbital/preview/2021-04-04-preview/examples/SpacecraftUpdateTags.json
+ */
+ /**
+ * Sample code: Update Spacecraft tags.
+ *
+ * @param manager Entry point to OrbitalManager.
+ */
+ public static void updateSpacecraftTags(com.azure.resourcemanager.orbital.OrbitalManager manager) {
+ Spacecraft resource =
+ manager.spacecrafts().getByResourceGroupWithResponse("rg1", "AQUA", Context.NONE).getValue();
+ resource.update().withTags(mapOf("tag1", "value1", "tag2", "value2")).apply();
+ }
+
+ @SuppressWarnings("unchecked")
+ private static Map mapOf(Object... inputs) {
+ Map map = new HashMap<>();
+ for (int i = 0; i < inputs.length; i += 2) {
+ String key = (String) inputs[i];
+ T value = (T) inputs[i + 1];
+ map.put(key, value);
+ }
+ return map;
+ }
+}
+```
+
diff --git a/sdk/orbital/azure-resourcemanager-orbital/pom.xml b/sdk/orbital/azure-resourcemanager-orbital/pom.xml
new file mode 100644
index 0000000000000..f15c1f56c1f1d
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/pom.xml
@@ -0,0 +1,81 @@
+
+ 4.0.0
+
+ com.azure
+ azure-client-sdk-parent
+ 1.7.0
+ ../../parents/azure-client-sdk-parent
+
+
+ com.azure.resourcemanager
+ azure-resourcemanager-orbital
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for orbital Management
+ This package contains Microsoft Azure SDK for orbital Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Azure Orbital service. Package tag package-2021-04-04-preview.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+
+ https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+
+ microsoft
+ Microsoft
+
+
+
+ UTF-8
+ true
+ false
+
+
+
+
+
+ com.azure
+ azure-core
+ 1.22.0
+
+
+ com.azure
+ azure-core-management
+ 1.4.3
+
+
+
+
+
+ org.revapi
+ revapi-maven-plugin
+ 0.11.2
+
+
+
+ -
+
java.method.addedToInterface
+
+ -
+ true
+
.*
+ com\.azure\.resourcemanager(\.[^.]+)+\.fluent(\.[^.]+)*
+
+
+
+
+
+
+
+
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/OrbitalManager.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/OrbitalManager.java
new file mode 100644
index 0000000000000..588153b26f076
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/OrbitalManager.java
@@ -0,0 +1,291 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital;
+
+import com.azure.core.credential.TokenCredential;
+import com.azure.core.http.HttpClient;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.HttpPipelinePosition;
+import com.azure.core.http.policy.AddDatePolicy;
+import com.azure.core.http.policy.HttpLogOptions;
+import com.azure.core.http.policy.HttpLoggingPolicy;
+import com.azure.core.http.policy.HttpPipelinePolicy;
+import com.azure.core.http.policy.HttpPolicyProviders;
+import com.azure.core.http.policy.RequestIdPolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.http.policy.ArmChallengeAuthenticationPolicy;
+import com.azure.core.management.profile.AzureProfile;
+import com.azure.core.util.Configuration;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.fluent.AzureOrbital;
+import com.azure.resourcemanager.orbital.implementation.AvailableGroundStationsImpl;
+import com.azure.resourcemanager.orbital.implementation.AzureOrbitalBuilder;
+import com.azure.resourcemanager.orbital.implementation.ContactProfilesImpl;
+import com.azure.resourcemanager.orbital.implementation.ContactsImpl;
+import com.azure.resourcemanager.orbital.implementation.OperationsImpl;
+import com.azure.resourcemanager.orbital.implementation.SpacecraftsImpl;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStations;
+import com.azure.resourcemanager.orbital.models.ContactProfiles;
+import com.azure.resourcemanager.orbital.models.Contacts;
+import com.azure.resourcemanager.orbital.models.Operations;
+import com.azure.resourcemanager.orbital.models.Spacecrafts;
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/** Entry point to OrbitalManager. Azure Orbital service. */
+public final class OrbitalManager {
+ private Operations operations;
+
+ private Spacecrafts spacecrafts;
+
+ private Contacts contacts;
+
+ private ContactProfiles contactProfiles;
+
+ private AvailableGroundStations availableGroundStations;
+
+ private final AzureOrbital clientObject;
+
+ private OrbitalManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new AzureOrbitalBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of orbital service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the orbital service API instance.
+ */
+ public static OrbitalManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ return configure().authenticate(credential, profile);
+ }
+
+ /**
+ * Gets a Configurable instance that can be used to create OrbitalManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new OrbitalManager.Configurable();
+ }
+
+ /** The Configurable allowing configurations to be set. */
+ public static final class Configurable {
+ private final ClientLogger logger = new ClientLogger(Configurable.class);
+
+ private HttpClient httpClient;
+ private HttpLogOptions httpLogOptions;
+ private final List policies = new ArrayList<>();
+ private final List scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of orbital service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the orbital service API instance.
+ */
+ public OrbitalManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder
+ .append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.orbital")
+ .append("/")
+ .append("1.0.0-beta.1");
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder
+ .append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new RequestIdPolicy());
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new ArmChallengeAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies
+ .addAll(
+ this
+ .policies
+ .stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline =
+ new HttpPipelineBuilder()
+ .httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new OrbitalManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of Operations. */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /** @return Resource collection API of Spacecrafts. */
+ public Spacecrafts spacecrafts() {
+ if (this.spacecrafts == null) {
+ this.spacecrafts = new SpacecraftsImpl(clientObject.getSpacecrafts(), this);
+ }
+ return spacecrafts;
+ }
+
+ /** @return Resource collection API of Contacts. */
+ public Contacts contacts() {
+ if (this.contacts == null) {
+ this.contacts = new ContactsImpl(clientObject.getContacts(), this);
+ }
+ return contacts;
+ }
+
+ /** @return Resource collection API of ContactProfiles. */
+ public ContactProfiles contactProfiles() {
+ if (this.contactProfiles == null) {
+ this.contactProfiles = new ContactProfilesImpl(clientObject.getContactProfiles(), this);
+ }
+ return contactProfiles;
+ }
+
+ /** @return Resource collection API of AvailableGroundStations. */
+ public AvailableGroundStations availableGroundStations() {
+ if (this.availableGroundStations == null) {
+ this.availableGroundStations =
+ new AvailableGroundStationsImpl(clientObject.getAvailableGroundStations(), this);
+ }
+ return availableGroundStations;
+ }
+
+ /**
+ * @return Wrapped service client AzureOrbital providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ */
+ public AzureOrbital serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AvailableGroundStationsClient.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AvailableGroundStationsClient.java
new file mode 100644
index 0000000000000..c57cc3dd4f656
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AvailableGroundStationsClient.java
@@ -0,0 +1,66 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.fluent.models.AvailableGroundStationInner;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStationsCapability;
+
+/** An instance of this class provides access to all the operations defined in AvailableGroundStationsClient. */
+public interface AvailableGroundStationsClient {
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(AvailableGroundStationsCapability capability);
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(AvailableGroundStationsCapability capability, Context context);
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailableGroundStationInner get(String groundStationName);
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String groundStationName, Context context);
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AzureOrbital.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AzureOrbital.java
new file mode 100644
index 0000000000000..f698f7f472ae2
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/AzureOrbital.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for AzureOrbital class. */
+public interface AzureOrbital {
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the SpacecraftsClient object to access its operations.
+ *
+ * @return the SpacecraftsClient object.
+ */
+ SpacecraftsClient getSpacecrafts();
+
+ /**
+ * Gets the ContactsClient object to access its operations.
+ *
+ * @return the ContactsClient object.
+ */
+ ContactsClient getContacts();
+
+ /**
+ * Gets the ContactProfilesClient object to access its operations.
+ *
+ * @return the ContactProfilesClient object.
+ */
+ ContactProfilesClient getContactProfiles();
+
+ /**
+ * Gets the AvailableGroundStationsClient object to access its operations.
+ *
+ * @return the AvailableGroundStationsClient object.
+ */
+ AvailableGroundStationsClient getAvailableGroundStations();
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactProfilesClient.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactProfilesClient.java
new file mode 100644
index 0000000000000..a03c65662d965
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactProfilesClient.java
@@ -0,0 +1,244 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.orbital.fluent.models.ContactProfileInner;
+import com.azure.resourcemanager.orbital.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in ContactProfilesClient. */
+public interface ContactProfilesClient {
+ /**
+ * Gets the specified contact Profile in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified contact Profile in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactProfileInner getByResourceGroup(String resourceGroupName, String contactProfileName);
+
+ /**
+ * Gets the specified contact Profile in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified contact Profile in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String contactProfileName, Context context);
+
+ /**
+ * Creates or updates a contact profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters The parameters to provide for the created Contact Profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ContactProfileInner> beginCreateOrUpdate(
+ String resourceGroupName, String contactProfileName, ContactProfileInner parameters);
+
+ /**
+ * Creates or updates a contact profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters The parameters to provide for the created Contact Profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ContactProfileInner> beginCreateOrUpdate(
+ String resourceGroupName, String contactProfileName, ContactProfileInner parameters, Context context);
+
+ /**
+ * Creates or updates a contact profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters The parameters to provide for the created Contact Profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactProfileInner createOrUpdate(
+ String resourceGroupName, String contactProfileName, ContactProfileInner parameters);
+
+ /**
+ * Creates or updates a contact profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters The parameters to provide for the created Contact Profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactProfileInner createOrUpdate(
+ String resourceGroupName, String contactProfileName, ContactProfileInner parameters, Context context);
+
+ /**
+ * Deletes a specified contact profile resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String contactProfileName);
+
+ /**
+ * Deletes a specified contact profile resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String contactProfileName, Context context);
+
+ /**
+ * Deletes a specified contact profile resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String contactProfileName);
+
+ /**
+ * Deletes a specified contact profile resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String contactProfileName, Context context);
+
+ /**
+ * Updates the specified contact profile tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters Parameters supplied to update contact profile tags.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactProfileInner updateTags(String resourceGroupName, String contactProfileName, TagsObject parameters);
+
+ /**
+ * Updates the specified contact profile tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param contactProfileName Contact Profile Name.
+ * @param parameters Parameters supplied to update contact profile tags.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a Contact Profile Resource, which will contain all of the configurations required for
+ * scheduling a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String contactProfileName, TagsObject parameters, Context context);
+
+ /**
+ * Returns list of contact profiles.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContactProfiles API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Returns list of contact profiles.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContactProfiles API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Returns list of contact profiles.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContactProfiles API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Returns list of contact profiles.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContactProfiles API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactsClient.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactsClient.java
new file mode 100644
index 0000000000000..b32c28937c4a5
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/ContactsClient.java
@@ -0,0 +1,196 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.orbital.fluent.models.ContactInner;
+
+/** An instance of this class provides access to all the operations defined in ContactsClient. */
+public interface ContactsClient {
+ /**
+ * Returns list of contacts by spacecraftName.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String spacecraftName);
+
+ /**
+ * Returns list of contacts by spacecraftName.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(String resourceGroupName, String spacecraftName, Context context);
+
+ /**
+ * Gets the specified contact in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified contact in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactInner get(String resourceGroupName, String spacecraftName, String contactName);
+
+ /**
+ * Gets the specified contact in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified contact in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(
+ String resourceGroupName, String spacecraftName, String contactName, Context context);
+
+ /**
+ * Creates a contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param parameters The parameters to provide for the created contact.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a contact resource for a spacecraft resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ContactInner> beginCreate(
+ String resourceGroupName, String spacecraftName, String contactName, ContactInner parameters);
+
+ /**
+ * Creates a contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param parameters The parameters to provide for the created contact.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a contact resource for a spacecraft resource.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ContactInner> beginCreate(
+ String resourceGroupName, String spacecraftName, String contactName, ContactInner parameters, Context context);
+
+ /**
+ * Creates a contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param parameters The parameters to provide for the created contact.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a contact resource for a spacecraft resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactInner create(String resourceGroupName, String spacecraftName, String contactName, ContactInner parameters);
+
+ /**
+ * Creates a contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param parameters The parameters to provide for the created contact.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a contact resource for a spacecraft resource.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContactInner create(
+ String resourceGroupName, String spacecraftName, String contactName, ContactInner parameters, Context context);
+
+ /**
+ * Deletes a specified contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String spacecraftName, String contactName);
+
+ /**
+ * Deletes a specified contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(
+ String resourceGroupName, String spacecraftName, String contactName, Context context);
+
+ /**
+ * Deletes a specified contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String spacecraftName, String contactName);
+
+ /**
+ * Deletes a specified contact.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param contactName Contact Name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String spacecraftName, String contactName, Context context);
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/OperationsClient.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/OperationsClient.java
new file mode 100644
index 0000000000000..e127d59ee62ea
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/OperationsClient.java
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.orbital.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in OperationsClient. */
+public interface OperationsClient {
+ /**
+ * Lists all of the available Orbital Rest API operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available Orbital Rest API operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a list of REST API operations supported by an Azure Resource Provider.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/SpacecraftsClient.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/SpacecraftsClient.java
new file mode 100644
index 0000000000000..d94c19ca0e2d0
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/SpacecraftsClient.java
@@ -0,0 +1,301 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.orbital.fluent.models.AvailableContactsListResultInner;
+import com.azure.resourcemanager.orbital.fluent.models.SpacecraftInner;
+import com.azure.resourcemanager.orbital.models.ContactParameters;
+import com.azure.resourcemanager.orbital.models.TagsObject;
+
+/** An instance of this class provides access to all the operations defined in SpacecraftsClient. */
+public interface SpacecraftsClient {
+ /**
+ * Return list of spacecrafts.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListSpacecrafts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Return list of spacecrafts.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListSpacecrafts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Return list of spacecrafts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListSpacecrafts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Return list of spacecrafts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListSpacecrafts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets the specified spacecraft in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified spacecraft in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SpacecraftInner getByResourceGroup(String resourceGroupName, String spacecraftName);
+
+ /**
+ * Gets the specified spacecraft in a specified resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified spacecraft in a specified resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String spacecraftName, Context context);
+
+ /**
+ * Creates or updates a spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the created spacecraft.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SpacecraftInner> beginCreateOrUpdate(
+ String resourceGroupName, String spacecraftName, SpacecraftInner parameters);
+
+ /**
+ * Creates or updates a spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the created spacecraft.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SpacecraftInner> beginCreateOrUpdate(
+ String resourceGroupName, String spacecraftName, SpacecraftInner parameters, Context context);
+
+ /**
+ * Creates or updates a spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the created spacecraft.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SpacecraftInner createOrUpdate(String resourceGroupName, String spacecraftName, SpacecraftInner parameters);
+
+ /**
+ * Creates or updates a spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the created spacecraft.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SpacecraftInner createOrUpdate(
+ String resourceGroupName, String spacecraftName, SpacecraftInner parameters, Context context);
+
+ /**
+ * Deletes a specified spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String spacecraftName);
+
+ /**
+ * Deletes a specified spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String spacecraftName, Context context);
+
+ /**
+ * Deletes a specified spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String spacecraftName);
+
+ /**
+ * Deletes a specified spacecraft resource.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String spacecraftName, Context context);
+
+ /**
+ * Updates the specified spacecraft tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters Parameters supplied to update spacecraft tags.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SpacecraftInner updateTags(String resourceGroupName, String spacecraftName, TagsObject parameters);
+
+ /**
+ * Updates the specified spacecraft tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters Parameters supplied to update spacecraft tags.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return customer creates a spacecraft resource to schedule a contact.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateTagsWithResponse(
+ String resourceGroupName, String spacecraftName, TagsObject parameters, Context context);
+
+ /**
+ * Return list of available contacts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the contacts.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListAvailableContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailableContactsListResultInner>
+ beginListAvailableContacts(String resourceGroupName, String spacecraftName, ContactParameters parameters);
+
+ /**
+ * Return list of available contacts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the contacts.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListAvailableContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AvailableContactsListResultInner>
+ beginListAvailableContacts(
+ String resourceGroupName, String spacecraftName, ContactParameters parameters, Context context);
+
+ /**
+ * Return list of available contacts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the contacts.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListAvailableContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailableContactsListResultInner listAvailableContacts(
+ String resourceGroupName, String spacecraftName, ContactParameters parameters);
+
+ /**
+ * Return list of available contacts.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param spacecraftName Spacecraft ID.
+ * @param parameters The parameters to provide for the contacts.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the ListAvailableContacts API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AvailableContactsListResultInner listAvailableContacts(
+ String resourceGroupName, String spacecraftName, ContactParameters parameters, Context context);
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableContactsListResultInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableContactsListResultInner.java
new file mode 100644
index 0000000000000..8261b9fcedc9d
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableContactsListResultInner.java
@@ -0,0 +1,70 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.AvailableContacts;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Response for the ListAvailableContacts API service call. */
+@Fluent
+public final class AvailableContactsListResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableContactsListResultInner.class);
+
+ /*
+ * A list of available contacts
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /*
+ * The URL to get the next set of results.
+ */
+ @JsonProperty(value = "nextLink", access = JsonProperty.Access.WRITE_ONLY)
+ private String nextLink;
+
+ /**
+ * Get the value property: A list of available contacts.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: A list of available contacts.
+ *
+ * @param value the value value to set.
+ * @return the AvailableContactsListResultInner object itself.
+ */
+ public AvailableContactsListResultInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get the nextLink property: The URL to get the next set of results.
+ *
+ * @return the nextLink value.
+ */
+ public String nextLink() {
+ return this.nextLink;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (value() != null) {
+ value().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationInner.java
new file mode 100644
index 0000000000000..9d0974f605f17
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationInner.java
@@ -0,0 +1,228 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** GroundStations available to schedule Contacts. */
+@Fluent
+public final class AvailableGroundStationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableGroundStationInner.class);
+
+ /*
+ * Id of groundStation
+ */
+ @JsonProperty(value = "id", access = JsonProperty.Access.WRITE_ONLY)
+ private String id;
+
+ /*
+ * Name of the ground station.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Azure region
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /*
+ * Resource type.
+ */
+ @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+ private String type;
+
+ /*
+ * The properties bag for this resource
+ */
+ @JsonProperty(value = "properties")
+ private AvailableGroundStationProperties innerProperties;
+
+ /**
+ * Get the id property: Id of groundStation.
+ *
+ * @return the id value.
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the name property: Name of the ground station.
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the location property: Azure region.
+ *
+ * @return the location value.
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location property: Azure region.
+ *
+ * @param location the location value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the type property: Resource type.
+ *
+ * @return the type value.
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the innerProperties property: The properties bag for this resource.
+ *
+ * @return the innerProperties value.
+ */
+ private AvailableGroundStationProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the city property: City of ground station.
+ *
+ * @return the city value.
+ */
+ public String city() {
+ return this.innerProperties() == null ? null : this.innerProperties().city();
+ }
+
+ /**
+ * Set the city property: City of ground station.
+ *
+ * @param city the city value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withCity(String city) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableGroundStationProperties();
+ }
+ this.innerProperties().withCity(city);
+ return this;
+ }
+
+ /**
+ * Get the providerName property: Ground station provider name.
+ *
+ * @return the providerName value.
+ */
+ public String providerName() {
+ return this.innerProperties() == null ? null : this.innerProperties().providerName();
+ }
+
+ /**
+ * Set the providerName property: Ground station provider name.
+ *
+ * @param providerName the providerName value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withProviderName(String providerName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableGroundStationProperties();
+ }
+ this.innerProperties().withProviderName(providerName);
+ return this;
+ }
+
+ /**
+ * Get the longitudeDegrees property: Longitude of the ground station in decimal degrees.
+ *
+ * @return the longitudeDegrees value.
+ */
+ public Float longitudeDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().longitudeDegrees();
+ }
+
+ /**
+ * Set the longitudeDegrees property: Longitude of the ground station in decimal degrees.
+ *
+ * @param longitudeDegrees the longitudeDegrees value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withLongitudeDegrees(Float longitudeDegrees) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableGroundStationProperties();
+ }
+ this.innerProperties().withLongitudeDegrees(longitudeDegrees);
+ return this;
+ }
+
+ /**
+ * Get the latitudeDegrees property: Latitude of the ground station in decimal degrees.
+ *
+ * @return the latitudeDegrees value.
+ */
+ public Float latitudeDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().latitudeDegrees();
+ }
+
+ /**
+ * Set the latitudeDegrees property: Latitude of the ground station in decimal degrees.
+ *
+ * @param latitudeDegrees the latitudeDegrees value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withLatitudeDegrees(Float latitudeDegrees) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableGroundStationProperties();
+ }
+ this.innerProperties().withLatitudeDegrees(latitudeDegrees);
+ return this;
+ }
+
+ /**
+ * Get the altitudeMeters property: Altitude of the ground station.
+ *
+ * @return the altitudeMeters value.
+ */
+ public Float altitudeMeters() {
+ return this.innerProperties() == null ? null : this.innerProperties().altitudeMeters();
+ }
+
+ /**
+ * Set the altitudeMeters property: Altitude of the ground station.
+ *
+ * @param altitudeMeters the altitudeMeters value to set.
+ * @return the AvailableGroundStationInner object itself.
+ */
+ public AvailableGroundStationInner withAltitudeMeters(Float altitudeMeters) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AvailableGroundStationProperties();
+ }
+ this.innerProperties().withAltitudeMeters(altitudeMeters);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationProperties.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationProperties.java
new file mode 100644
index 0000000000000..ddf27dd2d71db
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/AvailableGroundStationProperties.java
@@ -0,0 +1,154 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties object for Available groundstation. */
+@Fluent
+public final class AvailableGroundStationProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableGroundStationProperties.class);
+
+ /*
+ * City of ground station.
+ */
+ @JsonProperty(value = "city")
+ private String city;
+
+ /*
+ * Ground station provider name.
+ */
+ @JsonProperty(value = "providerName")
+ private String providerName;
+
+ /*
+ * Longitude of the ground station in decimal degrees.
+ */
+ @JsonProperty(value = "longitudeDegrees")
+ private Float longitudeDegrees;
+
+ /*
+ * Latitude of the ground station in decimal degrees.
+ */
+ @JsonProperty(value = "latitudeDegrees")
+ private Float latitudeDegrees;
+
+ /*
+ * Altitude of the ground station
+ */
+ @JsonProperty(value = "altitudeMeters")
+ private Float altitudeMeters;
+
+ /**
+ * Get the city property: City of ground station.
+ *
+ * @return the city value.
+ */
+ public String city() {
+ return this.city;
+ }
+
+ /**
+ * Set the city property: City of ground station.
+ *
+ * @param city the city value to set.
+ * @return the AvailableGroundStationProperties object itself.
+ */
+ public AvailableGroundStationProperties withCity(String city) {
+ this.city = city;
+ return this;
+ }
+
+ /**
+ * Get the providerName property: Ground station provider name.
+ *
+ * @return the providerName value.
+ */
+ public String providerName() {
+ return this.providerName;
+ }
+
+ /**
+ * Set the providerName property: Ground station provider name.
+ *
+ * @param providerName the providerName value to set.
+ * @return the AvailableGroundStationProperties object itself.
+ */
+ public AvailableGroundStationProperties withProviderName(String providerName) {
+ this.providerName = providerName;
+ return this;
+ }
+
+ /**
+ * Get the longitudeDegrees property: Longitude of the ground station in decimal degrees.
+ *
+ * @return the longitudeDegrees value.
+ */
+ public Float longitudeDegrees() {
+ return this.longitudeDegrees;
+ }
+
+ /**
+ * Set the longitudeDegrees property: Longitude of the ground station in decimal degrees.
+ *
+ * @param longitudeDegrees the longitudeDegrees value to set.
+ * @return the AvailableGroundStationProperties object itself.
+ */
+ public AvailableGroundStationProperties withLongitudeDegrees(Float longitudeDegrees) {
+ this.longitudeDegrees = longitudeDegrees;
+ return this;
+ }
+
+ /**
+ * Get the latitudeDegrees property: Latitude of the ground station in decimal degrees.
+ *
+ * @return the latitudeDegrees value.
+ */
+ public Float latitudeDegrees() {
+ return this.latitudeDegrees;
+ }
+
+ /**
+ * Set the latitudeDegrees property: Latitude of the ground station in decimal degrees.
+ *
+ * @param latitudeDegrees the latitudeDegrees value to set.
+ * @return the AvailableGroundStationProperties object itself.
+ */
+ public AvailableGroundStationProperties withLatitudeDegrees(Float latitudeDegrees) {
+ this.latitudeDegrees = latitudeDegrees;
+ return this;
+ }
+
+ /**
+ * Get the altitudeMeters property: Altitude of the ground station.
+ *
+ * @return the altitudeMeters value.
+ */
+ public Float altitudeMeters() {
+ return this.altitudeMeters;
+ }
+
+ /**
+ * Set the altitudeMeters property: Altitude of the ground station.
+ *
+ * @param altitudeMeters the altitudeMeters value to set.
+ * @return the AvailableGroundStationProperties object itself.
+ */
+ public AvailableGroundStationProperties withAltitudeMeters(Float altitudeMeters) {
+ this.altitudeMeters = altitudeMeters;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInner.java
new file mode 100644
index 0000000000000..a5b19fa2c3cb8
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInner.java
@@ -0,0 +1,252 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.ResourceReference;
+import com.azure.resourcemanager.orbital.models.Status;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Customer creates a contact resource for a spacecraft resource. */
+@Fluent
+public final class ContactInner extends ProxyResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContactInner.class);
+
+ /*
+ * Properties of the Contact Resource.
+ */
+ @JsonProperty(value = "properties")
+ private ContactsProperties innerProperties;
+
+ /*
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the innerProperties property: Properties of the Contact Resource.
+ *
+ * @return the innerProperties value.
+ */
+ private ContactsProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: A unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Get the status property: Status of a contact.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.innerProperties() == null ? null : this.innerProperties().status();
+ }
+
+ /**
+ * Get the reservationStartTime property: Reservation start time of a contact.
+ *
+ * @return the reservationStartTime value.
+ */
+ public OffsetDateTime reservationStartTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reservationStartTime();
+ }
+
+ /**
+ * Set the reservationStartTime property: Reservation start time of a contact.
+ *
+ * @param reservationStartTime the reservationStartTime value to set.
+ * @return the ContactInner object itself.
+ */
+ public ContactInner withReservationStartTime(OffsetDateTime reservationStartTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactsProperties();
+ }
+ this.innerProperties().withReservationStartTime(reservationStartTime);
+ return this;
+ }
+
+ /**
+ * Get the reservationEndTime property: Reservation end time of a contact.
+ *
+ * @return the reservationEndTime value.
+ */
+ public OffsetDateTime reservationEndTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().reservationEndTime();
+ }
+
+ /**
+ * Set the reservationEndTime property: Reservation end time of a contact.
+ *
+ * @param reservationEndTime the reservationEndTime value to set.
+ * @return the ContactInner object itself.
+ */
+ public ContactInner withReservationEndTime(OffsetDateTime reservationEndTime) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactsProperties();
+ }
+ this.innerProperties().withReservationEndTime(reservationEndTime);
+ return this;
+ }
+
+ /**
+ * Get the rxStartTime property: Receive start time of a contact.
+ *
+ * @return the rxStartTime value.
+ */
+ public OffsetDateTime rxStartTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().rxStartTime();
+ }
+
+ /**
+ * Get the rxEndTime property: Receive end time of a contact.
+ *
+ * @return the rxEndTime value.
+ */
+ public OffsetDateTime rxEndTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().rxEndTime();
+ }
+
+ /**
+ * Get the txStartTime property: Transmit start time of a contact.
+ *
+ * @return the txStartTime value.
+ */
+ public OffsetDateTime txStartTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().txStartTime();
+ }
+
+ /**
+ * Get the txEndTime property: Transmit end time of a contact.
+ *
+ * @return the txEndTime value.
+ */
+ public OffsetDateTime txEndTime() {
+ return this.innerProperties() == null ? null : this.innerProperties().txEndTime();
+ }
+
+ /**
+ * Get the errorMessage property: Any error message while scheduling a contact.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.innerProperties() == null ? null : this.innerProperties().errorMessage();
+ }
+
+ /**
+ * Get the maximumElevationDegrees property: Maximum elevation of the antenna during the contact in decimal degrees.
+ *
+ * @return the maximumElevationDegrees value.
+ */
+ public Float maximumElevationDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().maximumElevationDegrees();
+ }
+
+ /**
+ * Get the startAzimuthDegrees property: Azimuth of the antenna at the start of the contact in decimal degrees.
+ *
+ * @return the startAzimuthDegrees value.
+ */
+ public Float startAzimuthDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().startAzimuthDegrees();
+ }
+
+ /**
+ * Get the endAzimuthDegrees property: Azimuth of the antenna at the end of the contact in decimal degrees.
+ *
+ * @return the endAzimuthDegrees value.
+ */
+ public Float endAzimuthDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().endAzimuthDegrees();
+ }
+
+ /**
+ * Get the groundStationName property: Azure Ground Station name.
+ *
+ * @return the groundStationName value.
+ */
+ public String groundStationName() {
+ return this.innerProperties() == null ? null : this.innerProperties().groundStationName();
+ }
+
+ /**
+ * Set the groundStationName property: Azure Ground Station name.
+ *
+ * @param groundStationName the groundStationName value to set.
+ * @return the ContactInner object itself.
+ */
+ public ContactInner withGroundStationName(String groundStationName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactsProperties();
+ }
+ this.innerProperties().withGroundStationName(groundStationName);
+ return this;
+ }
+
+ /**
+ * Get the startElevationDegrees property: Spacecraft elevation above the horizon at contact start.
+ *
+ * @return the startElevationDegrees value.
+ */
+ public Float startElevationDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().startElevationDegrees();
+ }
+
+ /**
+ * Get the endElevationDegrees property: Spacecraft elevation above the horizon at contact end.
+ *
+ * @return the endElevationDegrees value.
+ */
+ public Float endElevationDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().endElevationDegrees();
+ }
+
+ /**
+ * Get the contactProfile property: The reference to the contact profile resource.
+ *
+ * @return the contactProfile value.
+ */
+ public ResourceReference contactProfile() {
+ return this.innerProperties() == null ? null : this.innerProperties().contactProfile();
+ }
+
+ /**
+ * Set the contactProfile property: The reference to the contact profile resource.
+ *
+ * @param contactProfile the contactProfile value to set.
+ * @return the ContactInner object itself.
+ */
+ public ContactInner withContactProfile(ResourceReference contactProfile) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactsProperties();
+ }
+ this.innerProperties().withContactProfile(contactProfile);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInstanceProperties.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInstanceProperties.java
new file mode 100644
index 0000000000000..719c3b0bddc45
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactInstanceProperties.java
@@ -0,0 +1,160 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Immutable;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Contact Instance Properties. */
+@Immutable
+public final class ContactInstanceProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContactInstanceProperties.class);
+
+ /*
+ * Maximum elevation of the antenna during the contact in decimal degrees.
+ */
+ @JsonProperty(value = "maximumElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float maximumElevationDegrees;
+
+ /*
+ * Time at which antenna transmit will be enabled.
+ */
+ @JsonProperty(value = "txStartTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime txStartTime;
+
+ /*
+ * Time at which antenna transmit will be disabled.
+ */
+ @JsonProperty(value = "txEndTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime txEndTime;
+
+ /*
+ * Earliest time to receive a signal.
+ */
+ @JsonProperty(value = "rxStartTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime rxStartTime;
+
+ /*
+ * Time to lost receiving a signal.
+ */
+ @JsonProperty(value = "rxEndTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime rxEndTime;
+
+ /*
+ * Azimuth of the antenna at the start of the contact in decimal degrees.
+ */
+ @JsonProperty(value = "startAzimuthDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float startAzimuthDegrees;
+
+ /*
+ * Azimuth of the antenna at the end of the contact in decimal degrees.
+ */
+ @JsonProperty(value = "endAzimuthDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float endAzimuthDegrees;
+
+ /*
+ * Spacecraft elevation above the horizon at contact start.
+ */
+ @JsonProperty(value = "startElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float startElevationDegrees;
+
+ /*
+ * Spacecraft elevation above the horizon at contact end.
+ */
+ @JsonProperty(value = "endElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float endElevationDegrees;
+
+ /**
+ * Get the maximumElevationDegrees property: Maximum elevation of the antenna during the contact in decimal degrees.
+ *
+ * @return the maximumElevationDegrees value.
+ */
+ public Float maximumElevationDegrees() {
+ return this.maximumElevationDegrees;
+ }
+
+ /**
+ * Get the txStartTime property: Time at which antenna transmit will be enabled.
+ *
+ * @return the txStartTime value.
+ */
+ public OffsetDateTime txStartTime() {
+ return this.txStartTime;
+ }
+
+ /**
+ * Get the txEndTime property: Time at which antenna transmit will be disabled.
+ *
+ * @return the txEndTime value.
+ */
+ public OffsetDateTime txEndTime() {
+ return this.txEndTime;
+ }
+
+ /**
+ * Get the rxStartTime property: Earliest time to receive a signal.
+ *
+ * @return the rxStartTime value.
+ */
+ public OffsetDateTime rxStartTime() {
+ return this.rxStartTime;
+ }
+
+ /**
+ * Get the rxEndTime property: Time to lost receiving a signal.
+ *
+ * @return the rxEndTime value.
+ */
+ public OffsetDateTime rxEndTime() {
+ return this.rxEndTime;
+ }
+
+ /**
+ * Get the startAzimuthDegrees property: Azimuth of the antenna at the start of the contact in decimal degrees.
+ *
+ * @return the startAzimuthDegrees value.
+ */
+ public Float startAzimuthDegrees() {
+ return this.startAzimuthDegrees;
+ }
+
+ /**
+ * Get the endAzimuthDegrees property: Azimuth of the antenna at the end of the contact in decimal degrees.
+ *
+ * @return the endAzimuthDegrees value.
+ */
+ public Float endAzimuthDegrees() {
+ return this.endAzimuthDegrees;
+ }
+
+ /**
+ * Get the startElevationDegrees property: Spacecraft elevation above the horizon at contact start.
+ *
+ * @return the startElevationDegrees value.
+ */
+ public Float startElevationDegrees() {
+ return this.startElevationDegrees;
+ }
+
+ /**
+ * Get the endElevationDegrees property: Spacecraft elevation above the horizon at contact end.
+ *
+ * @return the endElevationDegrees value.
+ */
+ public Float endElevationDegrees() {
+ return this.endElevationDegrees;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfileInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfileInner.java
new file mode 100644
index 0000000000000..423b760f335e0
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfileInner.java
@@ -0,0 +1,188 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.AutoTrackingConfiguration;
+import com.azure.resourcemanager.orbital.models.ContactProfileLink;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Customer creates a Contact Profile Resource, which will contain all of the configurations required for scheduling a
+ * contact.
+ */
+@Fluent
+public final class ContactProfileInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContactProfileInner.class);
+
+ /*
+ * Properties of the spacecraft resource.
+ */
+ @JsonProperty(value = "properties")
+ private ContactProfilesProperties innerProperties;
+
+ /*
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /*
+ * Azure Resource Manager metadata containing createdBy and modifiedBy
+ * information.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: Properties of the spacecraft resource.
+ *
+ * @return the innerProperties value.
+ */
+ private ContactProfilesProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: A unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ContactProfileInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ContactProfileInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the minimumViableContactDuration property: Minimum viable contact duration in ISO 8601 format.
+ *
+ * @return the minimumViableContactDuration value.
+ */
+ public String minimumViableContactDuration() {
+ return this.innerProperties() == null ? null : this.innerProperties().minimumViableContactDuration();
+ }
+
+ /**
+ * Set the minimumViableContactDuration property: Minimum viable contact duration in ISO 8601 format.
+ *
+ * @param minimumViableContactDuration the minimumViableContactDuration value to set.
+ * @return the ContactProfileInner object itself.
+ */
+ public ContactProfileInner withMinimumViableContactDuration(String minimumViableContactDuration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactProfilesProperties();
+ }
+ this.innerProperties().withMinimumViableContactDuration(minimumViableContactDuration);
+ return this;
+ }
+
+ /**
+ * Get the minimumElevationDegrees property: Minimum viable elevation for the contact in decimal degrees.
+ *
+ * @return the minimumElevationDegrees value.
+ */
+ public Float minimumElevationDegrees() {
+ return this.innerProperties() == null ? null : this.innerProperties().minimumElevationDegrees();
+ }
+
+ /**
+ * Set the minimumElevationDegrees property: Minimum viable elevation for the contact in decimal degrees.
+ *
+ * @param minimumElevationDegrees the minimumElevationDegrees value to set.
+ * @return the ContactProfileInner object itself.
+ */
+ public ContactProfileInner withMinimumElevationDegrees(Float minimumElevationDegrees) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactProfilesProperties();
+ }
+ this.innerProperties().withMinimumElevationDegrees(minimumElevationDegrees);
+ return this;
+ }
+
+ /**
+ * Get the autoTrackingConfiguration property: Auto track configuration.
+ *
+ * @return the autoTrackingConfiguration value.
+ */
+ public AutoTrackingConfiguration autoTrackingConfiguration() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoTrackingConfiguration();
+ }
+
+ /**
+ * Set the autoTrackingConfiguration property: Auto track configuration.
+ *
+ * @param autoTrackingConfiguration the autoTrackingConfiguration value to set.
+ * @return the ContactProfileInner object itself.
+ */
+ public ContactProfileInner withAutoTrackingConfiguration(AutoTrackingConfiguration autoTrackingConfiguration) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactProfilesProperties();
+ }
+ this.innerProperties().withAutoTrackingConfiguration(autoTrackingConfiguration);
+ return this;
+ }
+
+ /**
+ * Get the links property: Links of the Contact Profile.
+ *
+ * @return the links value.
+ */
+ public List links() {
+ return this.innerProperties() == null ? null : this.innerProperties().links();
+ }
+
+ /**
+ * Set the links property: Links of the Contact Profile.
+ *
+ * @param links the links value to set.
+ * @return the ContactProfileInner object itself.
+ */
+ public ContactProfileInner withLinks(List links) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ContactProfilesProperties();
+ }
+ this.innerProperties().withLinks(links);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfilesProperties.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfilesProperties.java
new file mode 100644
index 0000000000000..b8d6f58ce4832
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactProfilesProperties.java
@@ -0,0 +1,139 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.AutoTrackingConfiguration;
+import com.azure.resourcemanager.orbital.models.ContactProfileLink;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** List of Contact Profile Resource Properties. */
+@Fluent
+public final class ContactProfilesProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContactProfilesProperties.class);
+
+ /*
+ * Minimum viable contact duration in ISO 8601 format.
+ */
+ @JsonProperty(value = "minimumViableContactDuration")
+ private String minimumViableContactDuration;
+
+ /*
+ * Minimum viable elevation for the contact in decimal degrees.
+ */
+ @JsonProperty(value = "minimumElevationDegrees")
+ private Float minimumElevationDegrees;
+
+ /*
+ * Auto track configuration.
+ */
+ @JsonProperty(value = "autoTrackingConfiguration")
+ private AutoTrackingConfiguration autoTrackingConfiguration;
+
+ /*
+ * Links of the Contact Profile
+ */
+ @JsonProperty(value = "links", required = true)
+ private List links;
+
+ /**
+ * Get the minimumViableContactDuration property: Minimum viable contact duration in ISO 8601 format.
+ *
+ * @return the minimumViableContactDuration value.
+ */
+ public String minimumViableContactDuration() {
+ return this.minimumViableContactDuration;
+ }
+
+ /**
+ * Set the minimumViableContactDuration property: Minimum viable contact duration in ISO 8601 format.
+ *
+ * @param minimumViableContactDuration the minimumViableContactDuration value to set.
+ * @return the ContactProfilesProperties object itself.
+ */
+ public ContactProfilesProperties withMinimumViableContactDuration(String minimumViableContactDuration) {
+ this.minimumViableContactDuration = minimumViableContactDuration;
+ return this;
+ }
+
+ /**
+ * Get the minimumElevationDegrees property: Minimum viable elevation for the contact in decimal degrees.
+ *
+ * @return the minimumElevationDegrees value.
+ */
+ public Float minimumElevationDegrees() {
+ return this.minimumElevationDegrees;
+ }
+
+ /**
+ * Set the minimumElevationDegrees property: Minimum viable elevation for the contact in decimal degrees.
+ *
+ * @param minimumElevationDegrees the minimumElevationDegrees value to set.
+ * @return the ContactProfilesProperties object itself.
+ */
+ public ContactProfilesProperties withMinimumElevationDegrees(Float minimumElevationDegrees) {
+ this.minimumElevationDegrees = minimumElevationDegrees;
+ return this;
+ }
+
+ /**
+ * Get the autoTrackingConfiguration property: Auto track configuration.
+ *
+ * @return the autoTrackingConfiguration value.
+ */
+ public AutoTrackingConfiguration autoTrackingConfiguration() {
+ return this.autoTrackingConfiguration;
+ }
+
+ /**
+ * Set the autoTrackingConfiguration property: Auto track configuration.
+ *
+ * @param autoTrackingConfiguration the autoTrackingConfiguration value to set.
+ * @return the ContactProfilesProperties object itself.
+ */
+ public ContactProfilesProperties withAutoTrackingConfiguration(
+ AutoTrackingConfiguration autoTrackingConfiguration) {
+ this.autoTrackingConfiguration = autoTrackingConfiguration;
+ return this;
+ }
+
+ /**
+ * Get the links property: Links of the Contact Profile.
+ *
+ * @return the links value.
+ */
+ public List links() {
+ return this.links;
+ }
+
+ /**
+ * Set the links property: Links of the Contact Profile.
+ *
+ * @param links the links value to set.
+ * @return the ContactProfilesProperties object itself.
+ */
+ public ContactProfilesProperties withLinks(List links) {
+ this.links = links;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (links() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property links in model ContactProfilesProperties"));
+ } else {
+ links().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactsProperties.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactsProperties.java
new file mode 100644
index 0000000000000..05f2b6d92840f
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/ContactsProperties.java
@@ -0,0 +1,322 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.ResourceReference;
+import com.azure.resourcemanager.orbital.models.Status;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.time.OffsetDateTime;
+
+/** Properties of the Contact Resource. */
+@Fluent
+public final class ContactsProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ContactsProperties.class);
+
+ /*
+ * Status of a contact.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private Status status;
+
+ /*
+ * Reservation start time of a contact.
+ */
+ @JsonProperty(value = "reservationStartTime", required = true)
+ private OffsetDateTime reservationStartTime;
+
+ /*
+ * Reservation end time of a contact.
+ */
+ @JsonProperty(value = "reservationEndTime", required = true)
+ private OffsetDateTime reservationEndTime;
+
+ /*
+ * Receive start time of a contact.
+ */
+ @JsonProperty(value = "rxStartTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime rxStartTime;
+
+ /*
+ * Receive end time of a contact.
+ */
+ @JsonProperty(value = "rxEndTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime rxEndTime;
+
+ /*
+ * Transmit start time of a contact.
+ */
+ @JsonProperty(value = "txStartTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime txStartTime;
+
+ /*
+ * Transmit end time of a contact.
+ */
+ @JsonProperty(value = "txEndTime", access = JsonProperty.Access.WRITE_ONLY)
+ private OffsetDateTime txEndTime;
+
+ /*
+ * Any error message while scheduling a contact.
+ */
+ @JsonProperty(value = "errorMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private String errorMessage;
+
+ /*
+ * Maximum elevation of the antenna during the contact in decimal degrees.
+ */
+ @JsonProperty(value = "maximumElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float maximumElevationDegrees;
+
+ /*
+ * Azimuth of the antenna at the start of the contact in decimal degrees.
+ */
+ @JsonProperty(value = "startAzimuthDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float startAzimuthDegrees;
+
+ /*
+ * Azimuth of the antenna at the end of the contact in decimal degrees.
+ */
+ @JsonProperty(value = "endAzimuthDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float endAzimuthDegrees;
+
+ /*
+ * Azure Ground Station name.
+ */
+ @JsonProperty(value = "groundStationName", required = true)
+ private String groundStationName;
+
+ /*
+ * Spacecraft elevation above the horizon at contact start.
+ */
+ @JsonProperty(value = "startElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float startElevationDegrees;
+
+ /*
+ * Spacecraft elevation above the horizon at contact end.
+ */
+ @JsonProperty(value = "endElevationDegrees", access = JsonProperty.Access.WRITE_ONLY)
+ private Float endElevationDegrees;
+
+ /*
+ * The reference to the contact profile resource.
+ */
+ @JsonProperty(value = "contactProfile", required = true)
+ private ResourceReference contactProfile;
+
+ /**
+ * Get the status property: Status of a contact.
+ *
+ * @return the status value.
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Get the reservationStartTime property: Reservation start time of a contact.
+ *
+ * @return the reservationStartTime value.
+ */
+ public OffsetDateTime reservationStartTime() {
+ return this.reservationStartTime;
+ }
+
+ /**
+ * Set the reservationStartTime property: Reservation start time of a contact.
+ *
+ * @param reservationStartTime the reservationStartTime value to set.
+ * @return the ContactsProperties object itself.
+ */
+ public ContactsProperties withReservationStartTime(OffsetDateTime reservationStartTime) {
+ this.reservationStartTime = reservationStartTime;
+ return this;
+ }
+
+ /**
+ * Get the reservationEndTime property: Reservation end time of a contact.
+ *
+ * @return the reservationEndTime value.
+ */
+ public OffsetDateTime reservationEndTime() {
+ return this.reservationEndTime;
+ }
+
+ /**
+ * Set the reservationEndTime property: Reservation end time of a contact.
+ *
+ * @param reservationEndTime the reservationEndTime value to set.
+ * @return the ContactsProperties object itself.
+ */
+ public ContactsProperties withReservationEndTime(OffsetDateTime reservationEndTime) {
+ this.reservationEndTime = reservationEndTime;
+ return this;
+ }
+
+ /**
+ * Get the rxStartTime property: Receive start time of a contact.
+ *
+ * @return the rxStartTime value.
+ */
+ public OffsetDateTime rxStartTime() {
+ return this.rxStartTime;
+ }
+
+ /**
+ * Get the rxEndTime property: Receive end time of a contact.
+ *
+ * @return the rxEndTime value.
+ */
+ public OffsetDateTime rxEndTime() {
+ return this.rxEndTime;
+ }
+
+ /**
+ * Get the txStartTime property: Transmit start time of a contact.
+ *
+ * @return the txStartTime value.
+ */
+ public OffsetDateTime txStartTime() {
+ return this.txStartTime;
+ }
+
+ /**
+ * Get the txEndTime property: Transmit end time of a contact.
+ *
+ * @return the txEndTime value.
+ */
+ public OffsetDateTime txEndTime() {
+ return this.txEndTime;
+ }
+
+ /**
+ * Get the errorMessage property: Any error message while scheduling a contact.
+ *
+ * @return the errorMessage value.
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Get the maximumElevationDegrees property: Maximum elevation of the antenna during the contact in decimal degrees.
+ *
+ * @return the maximumElevationDegrees value.
+ */
+ public Float maximumElevationDegrees() {
+ return this.maximumElevationDegrees;
+ }
+
+ /**
+ * Get the startAzimuthDegrees property: Azimuth of the antenna at the start of the contact in decimal degrees.
+ *
+ * @return the startAzimuthDegrees value.
+ */
+ public Float startAzimuthDegrees() {
+ return this.startAzimuthDegrees;
+ }
+
+ /**
+ * Get the endAzimuthDegrees property: Azimuth of the antenna at the end of the contact in decimal degrees.
+ *
+ * @return the endAzimuthDegrees value.
+ */
+ public Float endAzimuthDegrees() {
+ return this.endAzimuthDegrees;
+ }
+
+ /**
+ * Get the groundStationName property: Azure Ground Station name.
+ *
+ * @return the groundStationName value.
+ */
+ public String groundStationName() {
+ return this.groundStationName;
+ }
+
+ /**
+ * Set the groundStationName property: Azure Ground Station name.
+ *
+ * @param groundStationName the groundStationName value to set.
+ * @return the ContactsProperties object itself.
+ */
+ public ContactsProperties withGroundStationName(String groundStationName) {
+ this.groundStationName = groundStationName;
+ return this;
+ }
+
+ /**
+ * Get the startElevationDegrees property: Spacecraft elevation above the horizon at contact start.
+ *
+ * @return the startElevationDegrees value.
+ */
+ public Float startElevationDegrees() {
+ return this.startElevationDegrees;
+ }
+
+ /**
+ * Get the endElevationDegrees property: Spacecraft elevation above the horizon at contact end.
+ *
+ * @return the endElevationDegrees value.
+ */
+ public Float endElevationDegrees() {
+ return this.endElevationDegrees;
+ }
+
+ /**
+ * Get the contactProfile property: The reference to the contact profile resource.
+ *
+ * @return the contactProfile value.
+ */
+ public ResourceReference contactProfile() {
+ return this.contactProfile;
+ }
+
+ /**
+ * Set the contactProfile property: The reference to the contact profile resource.
+ *
+ * @param contactProfile the contactProfile value to set.
+ * @return the ContactsProperties object itself.
+ */
+ public ContactsProperties withContactProfile(ResourceReference contactProfile) {
+ this.contactProfile = contactProfile;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (reservationStartTime() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property reservationStartTime in model ContactsProperties"));
+ }
+ if (reservationEndTime() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property reservationEndTime in model ContactsProperties"));
+ }
+ if (groundStationName() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property groundStationName in model ContactsProperties"));
+ }
+ if (contactProfile() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property contactProfile in model ContactsProperties"));
+ } else {
+ contactProfile().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/OperationInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..312342392c4d8
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/OperationInner.java
@@ -0,0 +1,125 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.ActionType;
+import com.azure.resourcemanager.orbital.models.OperationDisplay;
+import com.azure.resourcemanager.orbital.models.Origin;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** REST API Operation Details of a REST API operation, returned from the Resource Provider Operations API. */
+@Fluent
+public final class OperationInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(OperationInner.class);
+
+ /*
+ * The name of the operation, as per Resource-Based Access Control (RBAC).
+ * Examples: "Microsoft.Compute/virtualMachines/write",
+ * "Microsoft.Compute/virtualMachines/capture/action"
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /*
+ * Whether the operation applies to data-plane. This is "true" for
+ * data-plane operations and "false" for ARM/control-plane operations.
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /*
+ * Localized display information for this particular operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /*
+ * The intended executor of the operation; as in Resource Based Access
+ * Control (RBAC) and audit logs UX. Default value is "user,system"
+ */
+ @JsonProperty(value = "origin", access = JsonProperty.Access.WRITE_ONLY)
+ private Origin origin;
+
+ /*
+ * Enum. Indicates the action type. "Internal" refers to actions that are
+ * for internal only APIs.
+ */
+ @JsonProperty(value = "actionType", access = JsonProperty.Access.WRITE_ONLY)
+ private ActionType actionType;
+
+ /**
+ * Get the name property: The name of the operation, as per Resource-Based Access Control (RBAC). Examples:
+ * "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action".
+ *
+ * @return the name value.
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the isDataAction property: Whether the operation applies to data-plane. This is "true" for data-plane
+ * operations and "false" for ARM/control-plane operations.
+ *
+ * @return the isDataAction value.
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+ /**
+ * Get the display property: Localized display information for this particular operation.
+ *
+ * @return the display value.
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display property: Localized display information for this particular operation.
+ *
+ * @param display the display value to set.
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the origin property: The intended executor of the operation; as in Resource Based Access Control (RBAC) and
+ * audit logs UX. Default value is "user,system".
+ *
+ * @return the origin value.
+ */
+ public Origin origin() {
+ return this.origin;
+ }
+
+ /**
+ * Get the actionType property: Enum. Indicates the action type. "Internal" refers to actions that are for internal
+ * only APIs.
+ *
+ * @return the actionType value.
+ */
+ public ActionType actionType() {
+ return this.actionType;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (display() != null) {
+ display().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftInner.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftInner.java
new file mode 100644
index 0000000000000..a48c0aafbc541
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftInner.java
@@ -0,0 +1,209 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.AuthorizationStatus;
+import com.azure.resourcemanager.orbital.models.SpacecraftLink;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Customer creates a spacecraft resource to schedule a contact. */
+@Fluent
+public final class SpacecraftInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SpacecraftInner.class);
+
+ /*
+ * Spacecraft Properties
+ */
+ @JsonProperty(value = "properties")
+ private SpacecraftsProperties innerProperties;
+
+ /*
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get the innerProperties property: Spacecraft Properties.
+ *
+ * @return the innerProperties value.
+ */
+ private SpacecraftsProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the etag property: A unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value.
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SpacecraftInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public SpacecraftInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the noradId property: NORAD ID of the spacecraft.
+ *
+ * @return the noradId value.
+ */
+ public String noradId() {
+ return this.innerProperties() == null ? null : this.innerProperties().noradId();
+ }
+
+ /**
+ * Set the noradId property: NORAD ID of the spacecraft.
+ *
+ * @param noradId the noradId value to set.
+ * @return the SpacecraftInner object itself.
+ */
+ public SpacecraftInner withNoradId(String noradId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SpacecraftsProperties();
+ }
+ this.innerProperties().withNoradId(noradId);
+ return this;
+ }
+
+ /**
+ * Get the authorizationStatus property: Authorization status of spacecraft.
+ *
+ * @return the authorizationStatus value.
+ */
+ public AuthorizationStatus authorizationStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().authorizationStatus();
+ }
+
+ /**
+ * Get the authorizationStatusExtended property: Details of the authorization status.
+ *
+ * @return the authorizationStatusExtended value.
+ */
+ public String authorizationStatusExtended() {
+ return this.innerProperties() == null ? null : this.innerProperties().authorizationStatusExtended();
+ }
+
+ /**
+ * Get the titleLine property: Title line of Two Line Element (TLE).
+ *
+ * @return the titleLine value.
+ */
+ public String titleLine() {
+ return this.innerProperties() == null ? null : this.innerProperties().titleLine();
+ }
+
+ /**
+ * Set the titleLine property: Title line of Two Line Element (TLE).
+ *
+ * @param titleLine the titleLine value to set.
+ * @return the SpacecraftInner object itself.
+ */
+ public SpacecraftInner withTitleLine(String titleLine) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SpacecraftsProperties();
+ }
+ this.innerProperties().withTitleLine(titleLine);
+ return this;
+ }
+
+ /**
+ * Get the tleLine1 property: Line 1 of Two Line Element (TLE).
+ *
+ * @return the tleLine1 value.
+ */
+ public String tleLine1() {
+ return this.innerProperties() == null ? null : this.innerProperties().tleLine1();
+ }
+
+ /**
+ * Set the tleLine1 property: Line 1 of Two Line Element (TLE).
+ *
+ * @param tleLine1 the tleLine1 value to set.
+ * @return the SpacecraftInner object itself.
+ */
+ public SpacecraftInner withTleLine1(String tleLine1) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SpacecraftsProperties();
+ }
+ this.innerProperties().withTleLine1(tleLine1);
+ return this;
+ }
+
+ /**
+ * Get the tleLine2 property: Line 2 of Two Line Element (TLE).
+ *
+ * @return the tleLine2 value.
+ */
+ public String tleLine2() {
+ return this.innerProperties() == null ? null : this.innerProperties().tleLine2();
+ }
+
+ /**
+ * Set the tleLine2 property: Line 2 of Two Line Element (TLE).
+ *
+ * @param tleLine2 the tleLine2 value to set.
+ * @return the SpacecraftInner object itself.
+ */
+ public SpacecraftInner withTleLine2(String tleLine2) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SpacecraftsProperties();
+ }
+ this.innerProperties().withTleLine2(tleLine2);
+ return this;
+ }
+
+ /**
+ * Get the links property: Links of the Spacecraft.
+ *
+ * @return the links value.
+ */
+ public List links() {
+ return this.innerProperties() == null ? null : this.innerProperties().links();
+ }
+
+ /**
+ * Set the links property: Links of the Spacecraft.
+ *
+ * @param links the links value to set.
+ * @return the SpacecraftInner object itself.
+ */
+ public SpacecraftInner withLinks(List links) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new SpacecraftsProperties();
+ }
+ this.innerProperties().withLinks(links);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftsProperties.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftsProperties.java
new file mode 100644
index 0000000000000..c7abe5af22b1e
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/SpacecraftsProperties.java
@@ -0,0 +1,195 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.models.AuthorizationStatus;
+import com.azure.resourcemanager.orbital.models.SpacecraftLink;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** List of Spacecraft Resource Properties. */
+@Fluent
+public final class SpacecraftsProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(SpacecraftsProperties.class);
+
+ /*
+ * NORAD ID of the spacecraft.
+ */
+ @JsonProperty(value = "noradId", required = true)
+ private String noradId;
+
+ /*
+ * Authorization status of spacecraft.
+ */
+ @JsonProperty(value = "authorizationStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private AuthorizationStatus authorizationStatus;
+
+ /*
+ * Details of the authorization status.
+ */
+ @JsonProperty(value = "authorizationStatusExtended", access = JsonProperty.Access.WRITE_ONLY)
+ private String authorizationStatusExtended;
+
+ /*
+ * Title line of Two Line Element (TLE).
+ */
+ @JsonProperty(value = "titleLine")
+ private String titleLine;
+
+ /*
+ * Line 1 of Two Line Element (TLE).
+ */
+ @JsonProperty(value = "tleLine1")
+ private String tleLine1;
+
+ /*
+ * Line 2 of Two Line Element (TLE).
+ */
+ @JsonProperty(value = "tleLine2")
+ private String tleLine2;
+
+ /*
+ * Links of the Spacecraft
+ */
+ @JsonProperty(value = "links")
+ private List links;
+
+ /**
+ * Get the noradId property: NORAD ID of the spacecraft.
+ *
+ * @return the noradId value.
+ */
+ public String noradId() {
+ return this.noradId;
+ }
+
+ /**
+ * Set the noradId property: NORAD ID of the spacecraft.
+ *
+ * @param noradId the noradId value to set.
+ * @return the SpacecraftsProperties object itself.
+ */
+ public SpacecraftsProperties withNoradId(String noradId) {
+ this.noradId = noradId;
+ return this;
+ }
+
+ /**
+ * Get the authorizationStatus property: Authorization status of spacecraft.
+ *
+ * @return the authorizationStatus value.
+ */
+ public AuthorizationStatus authorizationStatus() {
+ return this.authorizationStatus;
+ }
+
+ /**
+ * Get the authorizationStatusExtended property: Details of the authorization status.
+ *
+ * @return the authorizationStatusExtended value.
+ */
+ public String authorizationStatusExtended() {
+ return this.authorizationStatusExtended;
+ }
+
+ /**
+ * Get the titleLine property: Title line of Two Line Element (TLE).
+ *
+ * @return the titleLine value.
+ */
+ public String titleLine() {
+ return this.titleLine;
+ }
+
+ /**
+ * Set the titleLine property: Title line of Two Line Element (TLE).
+ *
+ * @param titleLine the titleLine value to set.
+ * @return the SpacecraftsProperties object itself.
+ */
+ public SpacecraftsProperties withTitleLine(String titleLine) {
+ this.titleLine = titleLine;
+ return this;
+ }
+
+ /**
+ * Get the tleLine1 property: Line 1 of Two Line Element (TLE).
+ *
+ * @return the tleLine1 value.
+ */
+ public String tleLine1() {
+ return this.tleLine1;
+ }
+
+ /**
+ * Set the tleLine1 property: Line 1 of Two Line Element (TLE).
+ *
+ * @param tleLine1 the tleLine1 value to set.
+ * @return the SpacecraftsProperties object itself.
+ */
+ public SpacecraftsProperties withTleLine1(String tleLine1) {
+ this.tleLine1 = tleLine1;
+ return this;
+ }
+
+ /**
+ * Get the tleLine2 property: Line 2 of Two Line Element (TLE).
+ *
+ * @return the tleLine2 value.
+ */
+ public String tleLine2() {
+ return this.tleLine2;
+ }
+
+ /**
+ * Set the tleLine2 property: Line 2 of Two Line Element (TLE).
+ *
+ * @param tleLine2 the tleLine2 value to set.
+ * @return the SpacecraftsProperties object itself.
+ */
+ public SpacecraftsProperties withTleLine2(String tleLine2) {
+ this.tleLine2 = tleLine2;
+ return this;
+ }
+
+ /**
+ * Get the links property: Links of the Spacecraft.
+ *
+ * @return the links value.
+ */
+ public List links() {
+ return this.links;
+ }
+
+ /**
+ * Set the links property: Links of the Spacecraft.
+ *
+ * @param links the links value to set.
+ * @return the SpacecraftsProperties object itself.
+ */
+ public SpacecraftsProperties withLinks(List links) {
+ this.links = links;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (noradId() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property noradId in model SpacecraftsProperties"));
+ }
+ if (links() != null) {
+ links().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/package-info.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/package-info.java
new file mode 100644
index 0000000000000..faed02c3a7178
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/models/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the inner data models for AzureOrbital. Azure Orbital service. */
+package com.azure.resourcemanager.orbital.fluent.models;
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/package-info.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/package-info.java
new file mode 100644
index 0000000000000..dfe01db0b1bee
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/fluent/package-info.java
@@ -0,0 +1,6 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+/** Package containing the service clients for AzureOrbital. Azure Orbital service. */
+package com.azure.resourcemanager.orbital.fluent;
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableContactsListResultImpl.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableContactsListResultImpl.java
new file mode 100644
index 0000000000000..b47c665a18892
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableContactsListResultImpl.java
@@ -0,0 +1,44 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.resourcemanager.orbital.fluent.models.AvailableContactsListResultInner;
+import com.azure.resourcemanager.orbital.models.AvailableContacts;
+import com.azure.resourcemanager.orbital.models.AvailableContactsListResult;
+import java.util.Collections;
+import java.util.List;
+
+public final class AvailableContactsListResultImpl implements AvailableContactsListResult {
+ private AvailableContactsListResultInner innerObject;
+
+ private final com.azure.resourcemanager.orbital.OrbitalManager serviceManager;
+
+ AvailableContactsListResultImpl(
+ AvailableContactsListResultInner innerObject, com.azure.resourcemanager.orbital.OrbitalManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public List value() {
+ List inner = this.innerModel().value();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public String nextLink() {
+ return this.innerModel().nextLink();
+ }
+
+ public AvailableContactsListResultInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.orbital.OrbitalManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationImpl.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationImpl.java
new file mode 100644
index 0000000000000..52429a50676bb
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationImpl.java
@@ -0,0 +1,64 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.resourcemanager.orbital.fluent.models.AvailableGroundStationInner;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStation;
+
+public final class AvailableGroundStationImpl implements AvailableGroundStation {
+ private AvailableGroundStationInner innerObject;
+
+ private final com.azure.resourcemanager.orbital.OrbitalManager serviceManager;
+
+ AvailableGroundStationImpl(
+ AvailableGroundStationInner innerObject, com.azure.resourcemanager.orbital.OrbitalManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ }
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String city() {
+ return this.innerModel().city();
+ }
+
+ public String providerName() {
+ return this.innerModel().providerName();
+ }
+
+ public Float longitudeDegrees() {
+ return this.innerModel().longitudeDegrees();
+ }
+
+ public Float latitudeDegrees() {
+ return this.innerModel().latitudeDegrees();
+ }
+
+ public Float altitudeMeters() {
+ return this.innerModel().altitudeMeters();
+ }
+
+ public AvailableGroundStationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.orbital.OrbitalManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsClientImpl.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsClientImpl.java
new file mode 100644
index 0000000000000..0482a23902a29
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsClientImpl.java
@@ -0,0 +1,467 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Headers;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.fluent.AvailableGroundStationsClient;
+import com.azure.resourcemanager.orbital.fluent.models.AvailableGroundStationInner;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStationListResult;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStationsCapability;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in AvailableGroundStationsClient. */
+public final class AvailableGroundStationsClientImpl implements AvailableGroundStationsClient {
+ private final ClientLogger logger = new ClientLogger(AvailableGroundStationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final AvailableGroundStationsService service;
+
+ /** The service client containing this operation class. */
+ private final AzureOrbitalImpl client;
+
+ /**
+ * Initializes an instance of AvailableGroundStationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ AvailableGroundStationsClientImpl(AzureOrbitalImpl client) {
+ this.service =
+ RestProxy
+ .create(AvailableGroundStationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AzureOrbitalAvailableGroundStations to be used by the proxy service
+ * to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "AzureOrbitalAvailabl")
+ private interface AvailableGroundStationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Orbital/availableGroundStations")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @QueryParam("capability") AvailableGroundStationsCapability capability,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Orbital/availableGroundStations/{groundStationName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> get(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("groundStationName") String groundStationName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByCapabilityNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ AvailableGroundStationsCapability capability) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (capability == null) {
+ return Mono.error(new IllegalArgumentException("Parameter capability is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ capability,
+ accept,
+ context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(
+ AvailableGroundStationsCapability capability, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (capability == null) {
+ return Mono.error(new IllegalArgumentException("Parameter capability is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ capability,
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(AvailableGroundStationsCapability capability) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(capability), nextLink -> listByCapabilityNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(
+ AvailableGroundStationsCapability capability, Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(capability, context),
+ nextLink -> listByCapabilityNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(AvailableGroundStationsCapability capability) {
+ return new PagedIterable<>(listAsync(capability));
+ }
+
+ /**
+ * Returns list of available ground stations.
+ *
+ * @param capability Ground Station Capability.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(
+ AvailableGroundStationsCapability capability, Context context) {
+ return new PagedIterable<>(listAsync(capability, context));
+ }
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(String groundStationName) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (groundStationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter groundStationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ groundStationName,
+ this.client.getApiVersion(),
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getWithResponseAsync(
+ String groundStationName, Context context) {
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ if (this.client.getSubscriptionId() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getSubscriptionId() is required and cannot be null."));
+ }
+ if (groundStationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter groundStationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .get(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ groundStationName,
+ this.client.getApiVersion(),
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getAsync(String groundStationName) {
+ return getWithResponseAsync(groundStationName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public AvailableGroundStationInner get(String groundStationName) {
+ return getAsync(groundStationName).block();
+ }
+
+ /**
+ * Gets the specified available ground station.
+ *
+ * @param groundStationName Ground Station name.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the specified available ground station.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getWithResponse(String groundStationName, Context context) {
+ return getWithResponseAsync(groundStationName, context).block();
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByCapabilityNextSinglePageAsync(String nextLink) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(context -> service.listByCapabilityNext(nextLink, this.client.getEndpoint(), accept, context))
+ .>map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Get the next page of items.
+ *
+ * @param nextLink The nextLink parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return response for the AvailableGroundStations API service call.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByCapabilityNextSinglePageAsync(
+ String nextLink, Context context) {
+ if (nextLink == null) {
+ return Mono.error(new IllegalArgumentException("Parameter nextLink is required and cannot be null."));
+ }
+ if (this.client.getEndpoint() == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter this.client.getEndpoint() is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByCapabilityNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsImpl.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsImpl.java
new file mode 100644
index 0000000000000..5540e7d15ea23
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AvailableGroundStationsImpl.java
@@ -0,0 +1,71 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.SimpleResponse;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.orbital.fluent.AvailableGroundStationsClient;
+import com.azure.resourcemanager.orbital.fluent.models.AvailableGroundStationInner;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStation;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStations;
+import com.azure.resourcemanager.orbital.models.AvailableGroundStationsCapability;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class AvailableGroundStationsImpl implements AvailableGroundStations {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(AvailableGroundStationsImpl.class);
+
+ private final AvailableGroundStationsClient innerClient;
+
+ private final com.azure.resourcemanager.orbital.OrbitalManager serviceManager;
+
+ public AvailableGroundStationsImpl(
+ AvailableGroundStationsClient innerClient, com.azure.resourcemanager.orbital.OrbitalManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public PagedIterable list(AvailableGroundStationsCapability capability) {
+ PagedIterable inner = this.serviceClient().list(capability);
+ return Utils.mapPage(inner, inner1 -> new AvailableGroundStationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(AvailableGroundStationsCapability capability, Context context) {
+ PagedIterable inner = this.serviceClient().list(capability, context);
+ return Utils.mapPage(inner, inner1 -> new AvailableGroundStationImpl(inner1, this.manager()));
+ }
+
+ public AvailableGroundStation get(String groundStationName) {
+ AvailableGroundStationInner inner = this.serviceClient().get(groundStationName);
+ if (inner != null) {
+ return new AvailableGroundStationImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getWithResponse(String groundStationName, Context context) {
+ Response inner = this.serviceClient().getWithResponse(groundStationName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new AvailableGroundStationImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ private AvailableGroundStationsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.orbital.OrbitalManager manager() {
+ return this.serviceManager;
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalBuilder.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalBuilder.java
new file mode 100644
index 0000000000000..2aafceb9242dd
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalBuilder.java
@@ -0,0 +1,146 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.core.annotation.ServiceClientBuilder;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpPipelineBuilder;
+import com.azure.core.http.policy.CookiePolicy;
+import com.azure.core.http.policy.RetryPolicy;
+import com.azure.core.http.policy.UserAgentPolicy;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.serializer.SerializerFactory;
+import com.azure.core.util.serializer.SerializerAdapter;
+import java.time.Duration;
+
+/** A builder for creating a new instance of the AzureOrbitalImpl type. */
+@ServiceClientBuilder(serviceClients = {AzureOrbitalImpl.class})
+public final class AzureOrbitalBuilder {
+ /*
+ * The ID of the target subscription.
+ */
+ private String subscriptionId;
+
+ /**
+ * Sets The ID of the target subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder subscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /*
+ * server parameter
+ */
+ private String endpoint;
+
+ /**
+ * Sets server parameter.
+ *
+ * @param endpoint the endpoint value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder endpoint(String endpoint) {
+ this.endpoint = endpoint;
+ return this;
+ }
+
+ /*
+ * The environment to connect to
+ */
+ private AzureEnvironment environment;
+
+ /**
+ * Sets The environment to connect to.
+ *
+ * @param environment the environment value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder environment(AzureEnvironment environment) {
+ this.environment = environment;
+ return this;
+ }
+
+ /*
+ * The default poll interval for long-running operation
+ */
+ private Duration defaultPollInterval;
+
+ /**
+ * Sets The default poll interval for long-running operation.
+ *
+ * @param defaultPollInterval the defaultPollInterval value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder defaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval = defaultPollInterval;
+ return this;
+ }
+
+ /*
+ * The HTTP pipeline to send requests through
+ */
+ private HttpPipeline pipeline;
+
+ /**
+ * Sets The HTTP pipeline to send requests through.
+ *
+ * @param pipeline the pipeline value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder pipeline(HttpPipeline pipeline) {
+ this.pipeline = pipeline;
+ return this;
+ }
+
+ /*
+ * The serializer to serialize an object into a string
+ */
+ private SerializerAdapter serializerAdapter;
+
+ /**
+ * Sets The serializer to serialize an object into a string.
+ *
+ * @param serializerAdapter the serializerAdapter value.
+ * @return the AzureOrbitalBuilder.
+ */
+ public AzureOrbitalBuilder serializerAdapter(SerializerAdapter serializerAdapter) {
+ this.serializerAdapter = serializerAdapter;
+ return this;
+ }
+
+ /**
+ * Builds an instance of AzureOrbitalImpl with the provided parameters.
+ *
+ * @return an instance of AzureOrbitalImpl.
+ */
+ public AzureOrbitalImpl buildClient() {
+ if (endpoint == null) {
+ this.endpoint = "https://management.azure.com";
+ }
+ if (environment == null) {
+ this.environment = AzureEnvironment.AZURE;
+ }
+ if (defaultPollInterval == null) {
+ this.defaultPollInterval = Duration.ofSeconds(30);
+ }
+ if (pipeline == null) {
+ this.pipeline =
+ new HttpPipelineBuilder()
+ .policies(new UserAgentPolicy(), new RetryPolicy(), new CookiePolicy())
+ .build();
+ }
+ if (serializerAdapter == null) {
+ this.serializerAdapter = SerializerFactory.createDefaultManagementSerializerAdapter();
+ }
+ AzureOrbitalImpl client =
+ new AzureOrbitalImpl(
+ pipeline, serializerAdapter, defaultPollInterval, environment, subscriptionId, endpoint);
+ return client;
+ }
+}
diff --git a/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalImpl.java b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalImpl.java
new file mode 100644
index 0000000000000..d865beee51907
--- /dev/null
+++ b/sdk/orbital/azure-resourcemanager-orbital/src/main/java/com/azure/resourcemanager/orbital/implementation/AzureOrbitalImpl.java
@@ -0,0 +1,349 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.orbital.implementation;
+
+import com.azure.core.annotation.ServiceClient;
+import com.azure.core.http.HttpHeaders;
+import com.azure.core.http.HttpPipeline;
+import com.azure.core.http.HttpResponse;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.AzureEnvironment;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.management.exception.ManagementException;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.management.polling.PollerFactory;
+import com.azure.core.util.Context;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.AsyncPollResponse;
+import com.azure.core.util.polling.LongRunningOperationStatus;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.serializer.SerializerAdapter;
+import com.azure.core.util.serializer.SerializerEncoding;
+import com.azure.resourcemanager.orbital.fluent.AvailableGroundStationsClient;
+import com.azure.resourcemanager.orbital.fluent.AzureOrbital;
+import com.azure.resourcemanager.orbital.fluent.ContactProfilesClient;
+import com.azure.resourcemanager.orbital.fluent.ContactsClient;
+import com.azure.resourcemanager.orbital.fluent.OperationsClient;
+import com.azure.resourcemanager.orbital.fluent.SpacecraftsClient;
+import java.io.IOException;
+import java.lang.reflect.Type;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.time.Duration;
+import java.util.Map;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** Initializes a new instance of the AzureOrbitalImpl type. */
+@ServiceClient(builder = AzureOrbitalBuilder.class)
+public final class AzureOrbitalImpl implements AzureOrbital {
+ private final ClientLogger logger = new ClientLogger(AzureOrbitalImpl.class);
+
+ /** The ID of the target subscription. */
+ private final String subscriptionId;
+
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ public String getSubscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /** server parameter. */
+ private final String endpoint;
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ public String getEndpoint() {
+ return this.endpoint;
+ }
+
+ /** Api Version. */
+ private final String apiVersion;
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ public String getApiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The HTTP pipeline to send requests through. */
+ private final HttpPipeline httpPipeline;
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ public HttpPipeline getHttpPipeline() {
+ return this.httpPipeline;
+ }
+
+ /** The serializer to serialize an object into a string. */
+ private final SerializerAdapter serializerAdapter;
+
+ /**
+ * Gets The serializer to serialize an object into a string.
+ *
+ * @return the serializerAdapter value.
+ */
+ SerializerAdapter getSerializerAdapter() {
+ return this.serializerAdapter;
+ }
+
+ /** The default poll interval for long-running operation. */
+ private final Duration defaultPollInterval;
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ public Duration getDefaultPollInterval() {
+ return this.defaultPollInterval;
+ }
+
+ /** The OperationsClient object to access its operations. */
+ private final OperationsClient operations;
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ public OperationsClient getOperations() {
+ return this.operations;
+ }
+
+ /** The SpacecraftsClient object to access its operations. */
+ private final SpacecraftsClient spacecrafts;
+
+ /**
+ * Gets the SpacecraftsClient object to access its operations.
+ *
+ * @return the SpacecraftsClient object.
+ */
+ public SpacecraftsClient getSpacecrafts() {
+ return this.spacecrafts;
+ }
+
+ /** The ContactsClient object to access its operations. */
+ private final ContactsClient contacts;
+
+ /**
+ * Gets the ContactsClient object to access its operations.
+ *
+ * @return the ContactsClient object.
+ */
+ public ContactsClient getContacts() {
+ return this.contacts;
+ }
+
+ /** The ContactProfilesClient object to access its operations. */
+ private final ContactProfilesClient contactProfiles;
+
+ /**
+ * Gets the ContactProfilesClient object to access its operations.
+ *
+ * @return the ContactProfilesClient object.
+ */
+ public ContactProfilesClient getContactProfiles() {
+ return this.contactProfiles;
+ }
+
+ /** The AvailableGroundStationsClient object to access its operations. */
+ private final AvailableGroundStationsClient availableGroundStations;
+
+ /**
+ * Gets the AvailableGroundStationsClient object to access its operations.
+ *
+ * @return the AvailableGroundStationsClient object.
+ */
+ public AvailableGroundStationsClient getAvailableGroundStations() {
+ return this.availableGroundStations;
+ }
+
+ /**
+ * Initializes an instance of AzureOrbital client.
+ *
+ * @param httpPipeline The HTTP pipeline to send requests through.
+ * @param serializerAdapter The serializer to serialize an object into a string.
+ * @param defaultPollInterval The default poll interval for long-running operation.
+ * @param environment The Azure environment.
+ * @param subscriptionId The ID of the target subscription.
+ * @param endpoint server parameter.
+ */
+ AzureOrbitalImpl(
+ HttpPipeline httpPipeline,
+ SerializerAdapter serializerAdapter,
+ Duration defaultPollInterval,
+ AzureEnvironment environment,
+ String subscriptionId,
+ String endpoint) {
+ this.httpPipeline = httpPipeline;
+ this.serializerAdapter = serializerAdapter;
+ this.defaultPollInterval = defaultPollInterval;
+ this.subscriptionId = subscriptionId;
+ this.endpoint = endpoint;
+ this.apiVersion = "2021-04-04-preview";
+ this.operations = new OperationsClientImpl(this);
+ this.spacecrafts = new SpacecraftsClientImpl(this);
+ this.contacts = new ContactsClientImpl(this);
+ this.contactProfiles = new ContactProfilesClientImpl(this);
+ this.availableGroundStations = new AvailableGroundStationsClientImpl(this);
+ }
+
+ /**
+ * Gets default client context.
+ *
+ * @return the default client context.
+ */
+ public Context getContext() {
+ return Context.NONE;
+ }
+
+ /**
+ * Merges default client context with provided context.
+ *
+ * @param context the context to be merged with default client context.
+ * @return the merged context.
+ */
+ public Context mergeContext(Context context) {
+ for (Map.Entry