diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt
index 2ef96dcd10582..195905a200c6a 100644
--- a/eng/versioning/version_client.txt
+++ b/eng/versioning/version_client.txt
@@ -326,6 +326,7 @@ com.azure.resourcemanager:azure-resourcemanager-storagepool;1.0.0-beta.1;1.0.0-b
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-loadtestservice;1.0.0-beta.1;1.0.0-beta.2
+com.azure.resourcemanager:azure-resourcemanager-solutions;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.0.0
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
diff --git a/pom.xml b/pom.xml
index 928014fa07f54..73fb654b6ce14 100644
--- a/pom.xml
+++ b/pom.xml
@@ -824,6 +824,7 @@
sdk/servicebus
sdk/servicefabric
sdk/signalr
+ sdk/solutions
sdk/spring
sdk/sqlvirtualmachine
sdk/storage
diff --git a/sdk/solutions/azure-resourcemanager-solutions/CHANGELOG.md b/sdk/solutions/azure-resourcemanager-solutions/CHANGELOG.md
new file mode 100644
index 0000000000000..60b86cf74d7d9
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Release History
+
+## 1.0.0-beta.1 (2021-12-14)
+
+- Azure Resource Manager ManagedApplication client library for Java. This package contains Microsoft Azure SDK for ManagedApplication Management SDK. Managed Application Client. Package tag package-managedapplications-2021-07. 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/solutions/azure-resourcemanager-solutions/README.md b/sdk/solutions/azure-resourcemanager-solutions/README.md
new file mode 100644
index 0000000000000..dbb8e37cbcf91
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/README.md
@@ -0,0 +1,102 @@
+# Azure Resource Manager ManagedApplication client library for Java
+
+Azure Resource Manager ManagedApplication client library for Java.
+
+This package contains Microsoft Azure SDK for ManagedApplication Management SDK. Managed Application Client. Package tag package-managedapplications-2021-07. 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-solutions;current})
+```xml
+
+ com.azure.resourcemanager
+ azure-resourcemanager-solutions
+ 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();
+ManagedApplicationManager manager = ManagedApplicationManager
+ .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/solutions/azure-resourcemanager-solutions/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/solutions/azure-resourcemanager-solutions/SAMPLE.md b/sdk/solutions/azure-resourcemanager-solutions/SAMPLE.md
new file mode 100644
index 0000000000000..69f37809aa33f
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/SAMPLE.md
@@ -0,0 +1,580 @@
+# Code snippets and samples
+
+
+## ApplicationDefinitions
+
+- [CreateOrUpdate](#applicationdefinitions_createorupdate)
+- [Delete](#applicationdefinitions_delete)
+- [GetByResourceGroup](#applicationdefinitions_getbyresourcegroup)
+- [List](#applicationdefinitions_list)
+- [ListByResourceGroup](#applicationdefinitions_listbyresourcegroup)
+- [Update](#applicationdefinitions_update)
+
+## Applications
+
+- [CreateOrUpdate](#applications_createorupdate)
+- [Delete](#applications_delete)
+- [GetByResourceGroup](#applications_getbyresourcegroup)
+- [List](#applications_list)
+- [ListAllowedUpgradePlans](#applications_listallowedupgradeplans)
+- [ListByResourceGroup](#applications_listbyresourcegroup)
+- [RefreshPermissions](#applications_refreshpermissions)
+- [Update](#applications_update)
+
+## JitRequests
+
+- [CreateOrUpdate](#jitrequests_createorupdate)
+- [Delete](#jitrequests_delete)
+- [GetByResourceGroup](#jitrequests_getbyresourcegroup)
+- [ListByResourceGroup](#jitrequests_listbyresourcegroup)
+- [ListBySubscription](#jitrequests_listbysubscription)
+- [Update](#jitrequests_update)
+
+## ResourceProvider
+
+- [ListOperations](#resourceprovider_listoperations)
+### ApplicationDefinitions_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationLockLevel;
+import java.util.Arrays;
+
+/** Samples for ApplicationDefinitions CreateOrUpdate. */
+public final class ApplicationDefinitionsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/createOrUpdateApplicationDefinition.json
+ */
+ /**
+ * Sample code: Create or update managed application definition.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateManagedApplicationDefinition(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager
+ .applicationDefinitions()
+ .define("myManagedApplicationDef")
+ .withRegion((String) null)
+ .withExistingResourceGroup("rg")
+ .withLockLevel(ApplicationLockLevel.NONE)
+ .withDisplayName("myManagedApplicationDef")
+ .withAuthorizations(
+ Arrays
+ .asList(
+ new ApplicationAuthorization()
+ .withPrincipalId("validprincipalguid")
+ .withRoleDefinitionId("validroleguid")))
+ .withDescription("myManagedApplicationDef description")
+ .withPackageFileUri("https://path/to/packagezipfile")
+ .create();
+ }
+}
+```
+
+### ApplicationDefinitions_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ApplicationDefinitions Delete. */
+public final class ApplicationDefinitionsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/deleteApplicationDefinition.json
+ */
+ /**
+ * Sample code: delete managed application definition.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void deleteManagedApplicationDefinition(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applicationDefinitions().delete("rg", "myManagedApplicationDef", Context.NONE);
+ }
+}
+```
+
+### ApplicationDefinitions_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ApplicationDefinitions GetByResourceGroup. */
+public final class ApplicationDefinitionsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/getApplicationDefinition.json
+ */
+ /**
+ * Sample code: Get managed application definition.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void getManagedApplicationDefinition(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applicationDefinitions().getByResourceGroupWithResponse("rg", "myManagedApplicationDef", Context.NONE);
+ }
+}
+```
+
+### ApplicationDefinitions_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ApplicationDefinitions List. */
+public final class ApplicationDefinitionsListSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listApplicationDefinitionsByResourceGroup.json
+ */
+ /**
+ * Sample code: List managed application definitions.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listManagedApplicationDefinitions(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applicationDefinitions().list(Context.NONE);
+ }
+}
+```
+
+### ApplicationDefinitions_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ApplicationDefinitions ListByResourceGroup. */
+public final class ApplicationDefinitionsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listApplicationDefinitionsByResourceGroup.json
+ */
+ /**
+ * Sample code: List managed application definitions.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listManagedApplicationDefinitions(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applicationDefinitions().listByResourceGroup("rg", Context.NONE);
+ }
+}
+```
+
+### ApplicationDefinitions_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinition;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for ApplicationDefinitions Update. */
+public final class ApplicationDefinitionsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/updateApplicationDefinition.json
+ */
+ /**
+ * Sample code: Update managed application definition.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void updateManagedApplicationDefinition(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ ApplicationDefinition resource =
+ manager
+ .applicationDefinitions()
+ .getByResourceGroupWithResponse("rg", "myManagedApplicationDef", Context.NONE)
+ .getValue();
+ resource.update().withTags(mapOf("department", "Finance")).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;
+ }
+}
+```
+
+### Applications_CreateOrUpdate
+
+```java
+/** Samples for Applications CreateOrUpdate. */
+public final class ApplicationsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/createOrUpdateApplication.json
+ */
+ /**
+ * Sample code: Create or update managed application.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateManagedApplication(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager
+ .applications()
+ .define("myManagedApplication")
+ .withRegion((String) null)
+ .withExistingResourceGroup("rg")
+ .withKind("ServiceCatalog")
+ .withManagedResourceGroupId("/subscriptions/subid/resourceGroups/myManagedRG")
+ .withApplicationDefinitionId(
+ "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef")
+ .create();
+ }
+}
+```
+
+### Applications_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications Delete. */
+public final class ApplicationsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/deleteApplication.json
+ */
+ /**
+ * Sample code: Delete managed application.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void deleteManagedApplication(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().delete("rg", "myManagedApplication", Context.NONE);
+ }
+}
+```
+
+### Applications_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications GetByResourceGroup. */
+public final class ApplicationsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/getApplication.json
+ */
+ /**
+ * Sample code: Get a managed application.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void getAManagedApplication(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().getByResourceGroupWithResponse("rg", "myManagedApplication", Context.NONE);
+ }
+}
+```
+
+### Applications_List
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications List. */
+public final class ApplicationsListSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listApplicationsByResourceGroup.json
+ */
+ /**
+ * Sample code: Lists applications.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listsApplications(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().list(Context.NONE);
+ }
+}
+```
+
+### Applications_ListAllowedUpgradePlans
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications ListAllowedUpgradePlans. */
+public final class ApplicationsListAllowedUpgradePlansSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listAllowedUpgradePlans.json
+ */
+ /**
+ * Sample code: List allowed upgrade plans for application.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listAllowedUpgradePlansForApplication(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().listAllowedUpgradePlansWithResponse("rg", "myManagedApplication", Context.NONE);
+ }
+}
+```
+
+### Applications_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications ListByResourceGroup. */
+public final class ApplicationsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listApplicationsByResourceGroup.json
+ */
+ /**
+ * Sample code: Lists applications.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listsApplications(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().listByResourceGroup("rg", Context.NONE);
+ }
+}
+```
+
+### Applications_RefreshPermissions
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for Applications RefreshPermissions. */
+public final class ApplicationsRefreshPermissionsSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/refreshApplicationPermissions.json
+ */
+ /**
+ * Sample code: Refresh managed application permissions.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void refreshManagedApplicationPermissions(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.applications().refreshPermissions("rg", "myManagedApplication", Context.NONE);
+ }
+}
+```
+
+### Applications_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.solutions.models.Application;
+
+/** Samples for Applications Update. */
+public final class ApplicationsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/updateApplication.json
+ */
+ /**
+ * Sample code: Create or update managed application.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateManagedApplication(
+ com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ Application resource =
+ manager
+ .applications()
+ .getByResourceGroupWithResponse("rg", "myManagedApplication", Context.NONE)
+ .getValue();
+ resource
+ .update()
+ .withKind("ServiceCatalog")
+ .withManagedResourceGroupId("/subscriptions/subid/resourceGroups/myManagedRG")
+ .withApplicationDefinitionId(
+ "/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef")
+ .apply();
+ }
+}
+```
+
+### JitRequests_CreateOrUpdate
+
+```java
+import com.azure.resourcemanager.solutions.models.JitAuthorizationPolicies;
+import com.azure.resourcemanager.solutions.models.JitSchedulingPolicy;
+import com.azure.resourcemanager.solutions.models.JitSchedulingType;
+import java.time.Duration;
+import java.time.OffsetDateTime;
+import java.util.Arrays;
+
+/** Samples for JitRequests CreateOrUpdate. */
+public final class JitRequestsCreateOrUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/createOrUpdateJitRequest.json
+ */
+ /**
+ * Sample code: Create or update jit request.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateJitRequest(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager
+ .jitRequests()
+ .define("myJitRequest")
+ .withRegion((String) null)
+ .withExistingResourceGroup("rg")
+ .withApplicationResourceId(
+ "/subscriptions/00c76877-e316-48a7-af60-4a09fec9d43f/resourceGroups/52F30DB2/providers/Microsoft.Solutions/applications/7E193158")
+ .withJitAuthorizationPolicies(
+ Arrays
+ .asList(
+ new JitAuthorizationPolicies()
+ .withPrincipalId("1db8e132e2934dbcb8e1178a61319491")
+ .withRoleDefinitionId("ecd05a23-931a-4c38-a52b-ac7c4c583334")))
+ .withJitSchedulingPolicy(
+ new JitSchedulingPolicy()
+ .withType(JitSchedulingType.ONCE)
+ .withDuration(Duration.parse("PT8H"))
+ .withStartTime(OffsetDateTime.parse("2021-04-22T05:48:30.6661804Z")))
+ .create();
+ }
+}
+```
+
+### JitRequests_Delete
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for JitRequests Delete. */
+public final class JitRequestsDeleteSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/deleteJitRequest.json
+ */
+ /**
+ * Sample code: Delete jit request.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void deleteJitRequest(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.jitRequests().deleteWithResponse("rg", "myJitRequest", Context.NONE);
+ }
+}
+```
+
+### JitRequests_GetByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for JitRequests GetByResourceGroup. */
+public final class JitRequestsGetByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/getJitRequest.json
+ */
+ /**
+ * Sample code: Create or update jit request.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateJitRequest(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.jitRequests().getByResourceGroupWithResponse("rg", "myJitRequest", Context.NONE);
+ }
+}
+```
+
+### JitRequests_ListByResourceGroup
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for JitRequests ListByResourceGroup. */
+public final class JitRequestsListByResourceGroupSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listJitRequestsByResourceGroup.json
+ */
+ /**
+ * Sample code: List jit requests.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listJitRequests(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.jitRequests().listByResourceGroupWithResponse("rg", Context.NONE);
+ }
+}
+```
+
+### JitRequests_ListBySubscription
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for JitRequests ListBySubscription. */
+public final class JitRequestsListBySubscriptionSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listJitRequestsByResourceGroup.json
+ */
+ /**
+ * Sample code: List jit requests.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listJitRequests(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.jitRequests().listBySubscriptionWithResponse(Context.NONE);
+ }
+}
+```
+
+### JitRequests_Update
+
+```java
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.solutions.models.JitRequestDefinition;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Samples for JitRequests Update. */
+public final class JitRequestsUpdateSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/updateJitRequest.json
+ */
+ /**
+ * Sample code: Create or update jit request.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void createOrUpdateJitRequest(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ JitRequestDefinition resource =
+ manager.jitRequests().getByResourceGroupWithResponse("rg", "myJitRequest", Context.NONE).getValue();
+ resource.update().withTags(mapOf("department", "Finance")).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;
+ }
+}
+```
+
+### ResourceProvider_ListOperations
+
+```java
+import com.azure.core.util.Context;
+
+/** Samples for ResourceProvider ListOperations. */
+public final class ResourceProviderListOperationsSamples {
+ /*
+ * x-ms-original-file: specification/solutions/resource-manager/Microsoft.Solutions/stable/2021-07-01/examples/listSolutionsOperations.json
+ */
+ /**
+ * Sample code: List Solutions operations.
+ *
+ * @param manager Entry point to ManagedApplicationManager.
+ */
+ public static void listSolutionsOperations(com.azure.resourcemanager.solutions.ManagedApplicationManager manager) {
+ manager.resourceProviders().listOperations(Context.NONE);
+ }
+}
+```
+
diff --git a/sdk/solutions/azure-resourcemanager-solutions/pom.xml b/sdk/solutions/azure-resourcemanager-solutions/pom.xml
new file mode 100644
index 0000000000000..6fc700bb9a683
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/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-solutions
+ 1.0.0-beta.1
+ jar
+
+ Microsoft Azure SDK for ManagedApplication Management
+ This package contains Microsoft Azure SDK for ManagedApplication Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Managed Application Client. Package tag package-managedapplications-2021-07.
+ 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.23.1
+
+
+ com.azure
+ azure-core-management
+ 1.4.4
+
+
+
+
+
+ org.revapi
+ revapi-maven-plugin
+ 0.11.2
+
+
+
+ -
+
java.method.addedToInterface
+
+ -
+ true
+
.*
+ com\.azure\.resourcemanager(\.[^.]+)+\.fluent(\.[^.]+)*
+
+
+
+
+
+
+
+
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/ManagedApplicationManager.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/ManagedApplicationManager.java
new file mode 100644
index 0000000000000..416b751994795
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/ManagedApplicationManager.java
@@ -0,0 +1,279 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions;
+
+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.solutions.fluent.ManagedApplicationManagementClient;
+import com.azure.resourcemanager.solutions.implementation.ApplicationDefinitionsImpl;
+import com.azure.resourcemanager.solutions.implementation.ApplicationsImpl;
+import com.azure.resourcemanager.solutions.implementation.JitRequestsImpl;
+import com.azure.resourcemanager.solutions.implementation.ManagedApplicationManagementClientBuilder;
+import com.azure.resourcemanager.solutions.implementation.ResourceProvidersImpl;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitions;
+import com.azure.resourcemanager.solutions.models.Applications;
+import com.azure.resourcemanager.solutions.models.JitRequests;
+import com.azure.resourcemanager.solutions.models.ResourceProviders;
+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 ManagedApplicationManager. Managed Application Client. */
+public final class ManagedApplicationManager {
+ private ResourceProviders resourceProviders;
+
+ private Applications applications;
+
+ private ApplicationDefinitions applicationDefinitions;
+
+ private JitRequests jitRequests;
+
+ private final ManagedApplicationManagementClient clientObject;
+
+ private ManagedApplicationManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
+ Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+ this.clientObject =
+ new ManagedApplicationManagementClientBuilder()
+ .pipeline(httpPipeline)
+ .endpoint(profile.getEnvironment().getResourceManagerEndpoint())
+ .subscriptionId(profile.getSubscriptionId())
+ .defaultPollInterval(defaultPollInterval)
+ .buildClient();
+ }
+
+ /**
+ * Creates an instance of ManagedApplication service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ManagedApplication service API instance.
+ */
+ public static ManagedApplicationManager 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 ManagedApplicationManager with optional configuration.
+ *
+ * @return the Configurable instance allowing configurations.
+ */
+ public static Configurable configure() {
+ return new ManagedApplicationManager.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 ManagedApplication service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the ManagedApplication service API instance.
+ */
+ public ManagedApplicationManager 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.solutions")
+ .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 ManagedApplicationManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /** @return Resource collection API of ResourceProviders. */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /** @return Resource collection API of Applications. */
+ public Applications applications() {
+ if (this.applications == null) {
+ this.applications = new ApplicationsImpl(clientObject.getApplications(), this);
+ }
+ return applications;
+ }
+
+ /** @return Resource collection API of ApplicationDefinitions. */
+ public ApplicationDefinitions applicationDefinitions() {
+ if (this.applicationDefinitions == null) {
+ this.applicationDefinitions =
+ new ApplicationDefinitionsImpl(clientObject.getApplicationDefinitions(), this);
+ }
+ return applicationDefinitions;
+ }
+
+ /** @return Resource collection API of JitRequests. */
+ public JitRequests jitRequests() {
+ if (this.jitRequests == null) {
+ this.jitRequests = new JitRequestsImpl(clientObject.getJitRequests(), this);
+ }
+ return jitRequests;
+ }
+
+ /**
+ * @return Wrapped service client ManagedApplicationManagementClient providing direct access to the underlying
+ * auto-generated API implementation, based on Azure REST API.
+ */
+ public ManagedApplicationManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationDefinitionsClient.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationDefinitionsClient.java
new file mode 100644
index 0000000000000..c9d9d7d1589c6
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationDefinitionsClient.java
@@ -0,0 +1,248 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.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.solutions.fluent.models.ApplicationDefinitionInner;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionPatchable;
+
+/** An instance of this class provides access to all the operations defined in ApplicationDefinitionsClient. */
+public interface ApplicationDefinitionsClient {
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationDefinitionInner getByResourceGroup(String resourceGroupName, String applicationDefinitionName);
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationDefinitionName, Context context);
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 applicationDefinitionName);
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 applicationDefinitionName, Context context);
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 applicationDefinitionName);
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 applicationDefinitionName, Context context);
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ApplicationDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters);
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ApplicationDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context);
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationDefinitionInner createOrUpdate(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters);
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationDefinitionInner createOrUpdate(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context);
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationDefinitionInner update(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionPatchable parameters);
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionPatchable parameters,
+ Context context);
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationsClient.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationsClient.java
new file mode 100644
index 0000000000000..be8189a960eb9
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ApplicationsClient.java
@@ -0,0 +1,315 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.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.solutions.fluent.models.ApplicationInner;
+import com.azure.resourcemanager.solutions.models.ApplicationPatchable;
+
+/** An instance of this class provides access to all the operations defined in ApplicationsClient. */
+public interface ApplicationsClient {
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationInner getByResourceGroup(String resourceGroupName, String applicationName);
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationName, Context context);
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 applicationName);
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 applicationName, Context context);
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 applicationName);
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 applicationName, Context context);
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ApplicationInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters);
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ApplicationInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context);
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationInner createOrUpdate(String resourceGroupName, String applicationName, ApplicationInner parameters);
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationInner createOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context);
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ApplicationInner update(String resourceGroupName, String applicationName);
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to update an existing managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String applicationName, ApplicationPatchable parameters, Context context);
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @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 all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @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 all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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> beginRefreshPermissions(String resourceGroupName, String applicationName);
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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> beginRefreshPermissions(
+ String resourceGroupName, String applicationName, Context context);
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 refreshPermissions(String resourceGroupName, String applicationName);
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 refreshPermissions(String resourceGroupName, String applicationName, Context context);
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 listAllowedUpgradePlans(String resourceGroupName, String applicationName);
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listAllowedUpgradePlansWithResponse(
+ String resourceGroupName, String applicationName, Context context);
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/JitRequestsClient.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/JitRequestsClient.java
new file mode 100644
index 0000000000000..0aa456bcc0dbb
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/JitRequestsClient.java
@@ -0,0 +1,212 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+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.solutions.fluent.models.JitRequestDefinitionInner;
+import com.azure.resourcemanager.solutions.fluent.models.JitRequestDefinitionListResultInner;
+import com.azure.resourcemanager.solutions.models.JitRequestPatchable;
+
+/** An instance of this class provides access to all the operations defined in JitRequestsClient. */
+public interface JitRequestsClient {
+ /**
+ * Gets the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @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 JIT request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionInner getByResourceGroup(String resourceGroupName, String jitRequestName);
+
+ /**
+ * Gets the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @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 JIT request.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(
+ String resourceGroupName, String jitRequestName, Context context);
+
+ /**
+ * Creates or updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, JitRequestDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName, String jitRequestName, JitRequestDefinitionInner parameters);
+
+ /**
+ * Creates or updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, JitRequestDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName, String jitRequestName, JitRequestDefinitionInner parameters, Context context);
+
+ /**
+ * Creates or updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionInner createOrUpdate(
+ String resourceGroupName, String jitRequestName, JitRequestDefinitionInner parameters);
+
+ /**
+ * Creates or updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionInner createOrUpdate(
+ String resourceGroupName, String jitRequestName, JitRequestDefinitionInner parameters, Context context);
+
+ /**
+ * Updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionInner update(String resourceGroupName, String jitRequestName, JitRequestPatchable parameters);
+
+ /**
+ * Updates the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @param parameters Parameters supplied to the update JIT request.
+ * @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 information about JIT request definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response updateWithResponse(
+ String resourceGroupName, String jitRequestName, JitRequestPatchable parameters, Context context);
+
+ /**
+ * Deletes the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @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 jitRequestName);
+
+ /**
+ * Deletes the JIT request.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param jitRequestName The name of the JIT request.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String jitRequestName, Context context);
+
+ /**
+ * Retrieves all JIT requests within the subscription.
+ *
+ * @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 list of JIT requests.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionListResultInner listBySubscription();
+
+ /**
+ * Retrieves all JIT requests within the subscription.
+ *
+ * @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 list of JIT requests.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listBySubscriptionWithResponse(Context context);
+
+ /**
+ * Retrieves all JIT requests within the resource group.
+ *
+ * @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 list of JIT requests.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ JitRequestDefinitionListResultInner listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Retrieves all JIT requests within the resource group.
+ *
+ * @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 list of JIT requests.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response listByResourceGroupWithResponse(
+ String resourceGroupName, Context context);
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ManagedApplicationManagementClient.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ManagedApplicationManagementClient.java
new file mode 100644
index 0000000000000..41ab4b372c43c
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ManagedApplicationManagementClient.java
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/** The interface for ManagedApplicationManagementClient class. */
+public interface ManagedApplicationManagementClient {
+ /**
+ * 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 ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the ApplicationsClient object to access its operations.
+ *
+ * @return the ApplicationsClient object.
+ */
+ ApplicationsClient getApplications();
+
+ /**
+ * Gets the ApplicationDefinitionsClient object to access its operations.
+ *
+ * @return the ApplicationDefinitionsClient object.
+ */
+ ApplicationDefinitionsClient getApplicationDefinitions();
+
+ /**
+ * Gets the JitRequestsClient object to access its operations.
+ *
+ * @return the JitRequestsClient object.
+ */
+ JitRequestsClient getJitRequests();
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ResourceProvidersClient.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ResourceProvidersClient.java
new file mode 100644
index 0000000000000..60c9b8634fffc
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/ResourceProvidersClient.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.solutions.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.solutions.fluent.models.OperationInner;
+
+/** An instance of this class provides access to all the operations defined in ResourceProvidersClient. */
+public interface ResourceProvidersClient {
+ /**
+ * Lists all of the available Microsoft.Solutions 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 listOperations();
+
+ /**
+ * Lists all of the available Microsoft.Solutions 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 listOperations(Context context);
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionInner.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionInner.java
new file mode 100644
index 0000000000000..59cb6d112ed3c
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionInner.java
@@ -0,0 +1,454 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationDeploymentPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationLockLevel;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationNotificationPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageLockingPolicyDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationPolicy;
+import com.azure.resourcemanager.solutions.models.GenericResource;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.azure.resourcemanager.solutions.models.Sku;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Information about managed application definition. */
+@Fluent
+public final class ApplicationDefinitionInner extends GenericResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationDefinitionInner.class);
+
+ /*
+ * The managed application definition properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ApplicationDefinitionProperties innerProperties = new ApplicationDefinitionProperties();
+
+ /**
+ * Get the innerProperties property: The managed application definition properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ApplicationDefinitionProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationDefinitionInner withManagedBy(String managedBy) {
+ super.withManagedBy(managedBy);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationDefinitionInner withSku(Sku sku) {
+ super.withSku(sku);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationDefinitionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationDefinitionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the lockLevel property: The managed application lock level.
+ *
+ * @return the lockLevel value.
+ */
+ public ApplicationLockLevel lockLevel() {
+ return this.innerProperties() == null ? null : this.innerProperties().lockLevel();
+ }
+
+ /**
+ * Set the lockLevel property: The managed application lock level.
+ *
+ * @param lockLevel the lockLevel value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withLockLevel(ApplicationLockLevel lockLevel) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withLockLevel(lockLevel);
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The managed application definition display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.innerProperties() == null ? null : this.innerProperties().displayName();
+ }
+
+ /**
+ * Set the displayName property: The managed application definition display name.
+ *
+ * @param displayName the displayName value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDisplayName(String displayName) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withDisplayName(displayName);
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: A value indicating whether the package is enabled or not.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.innerProperties() == null ? null : this.innerProperties().isEnabled();
+ }
+
+ /**
+ * Set the isEnabled property: A value indicating whether the package is enabled or not.
+ *
+ * @param isEnabled the isEnabled value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withIsEnabled(Boolean isEnabled) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withIsEnabled(isEnabled);
+ return this;
+ }
+
+ /**
+ * Get the authorizations property: The managed application provider authorizations.
+ *
+ * @return the authorizations value.
+ */
+ public List authorizations() {
+ return this.innerProperties() == null ? null : this.innerProperties().authorizations();
+ }
+
+ /**
+ * Set the authorizations property: The managed application provider authorizations.
+ *
+ * @param authorizations the authorizations value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withAuthorizations(List authorizations) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withAuthorizations(authorizations);
+ return this;
+ }
+
+ /**
+ * Get the artifacts property: The collection of managed application artifacts. The portal will use the files
+ * specified as artifacts to construct the user experience of creating a managed application from a managed
+ * application definition.
+ *
+ * @return the artifacts value.
+ */
+ public List artifacts() {
+ return this.innerProperties() == null ? null : this.innerProperties().artifacts();
+ }
+
+ /**
+ * Set the artifacts property: The collection of managed application artifacts. The portal will use the files
+ * specified as artifacts to construct the user experience of creating a managed application from a managed
+ * application definition.
+ *
+ * @param artifacts the artifacts value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withArtifacts(List artifacts) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withArtifacts(artifacts);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the description property: The managed application definition description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.innerProperties() == null ? null : this.innerProperties().description();
+ }
+
+ /**
+ * Set the description property: The managed application definition description.
+ *
+ * @param description the description value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDescription(String description) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withDescription(description);
+ return this;
+ }
+
+ /**
+ * Get the packageFileUri property: The managed application definition package file Uri. Use this element.
+ *
+ * @return the packageFileUri value.
+ */
+ public String packageFileUri() {
+ return this.innerProperties() == null ? null : this.innerProperties().packageFileUri();
+ }
+
+ /**
+ * Set the packageFileUri property: The managed application definition package file Uri. Use this element.
+ *
+ * @param packageFileUri the packageFileUri value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withPackageFileUri(String packageFileUri) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withPackageFileUri(packageFileUri);
+ return this;
+ }
+
+ /**
+ * Get the storageAccountId property: The storage account id for bring your own storage scenario.
+ *
+ * @return the storageAccountId value.
+ */
+ public String storageAccountId() {
+ return this.innerProperties() == null ? null : this.innerProperties().storageAccountId();
+ }
+
+ /**
+ * Set the storageAccountId property: The storage account id for bring your own storage scenario.
+ *
+ * @param storageAccountId the storageAccountId value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withStorageAccountId(String storageAccountId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withStorageAccountId(storageAccountId);
+ return this;
+ }
+
+ /**
+ * Get the mainTemplate property: The inline main template json which has resources to be provisioned. It can be a
+ * JObject or well-formed JSON string.
+ *
+ * @return the mainTemplate value.
+ */
+ public Object mainTemplate() {
+ return this.innerProperties() == null ? null : this.innerProperties().mainTemplate();
+ }
+
+ /**
+ * Set the mainTemplate property: The inline main template json which has resources to be provisioned. It can be a
+ * JObject or well-formed JSON string.
+ *
+ * @param mainTemplate the mainTemplate value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withMainTemplate(Object mainTemplate) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withMainTemplate(mainTemplate);
+ return this;
+ }
+
+ /**
+ * Get the createUiDefinition property: The createUiDefinition json for the backing template with
+ * Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.
+ *
+ * @return the createUiDefinition value.
+ */
+ public Object createUiDefinition() {
+ return this.innerProperties() == null ? null : this.innerProperties().createUiDefinition();
+ }
+
+ /**
+ * Set the createUiDefinition property: The createUiDefinition json for the backing template with
+ * Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.
+ *
+ * @param createUiDefinition the createUiDefinition value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withCreateUiDefinition(Object createUiDefinition) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withCreateUiDefinition(createUiDefinition);
+ return this;
+ }
+
+ /**
+ * Get the notificationPolicy property: The managed application notification policy.
+ *
+ * @return the notificationPolicy value.
+ */
+ public ApplicationNotificationPolicy notificationPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().notificationPolicy();
+ }
+
+ /**
+ * Set the notificationPolicy property: The managed application notification policy.
+ *
+ * @param notificationPolicy the notificationPolicy value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withNotificationPolicy(notificationPolicy);
+ return this;
+ }
+
+ /**
+ * Get the lockingPolicy property: The managed application locking policy.
+ *
+ * @return the lockingPolicy value.
+ */
+ public ApplicationPackageLockingPolicyDefinition lockingPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().lockingPolicy();
+ }
+
+ /**
+ * Set the lockingPolicy property: The managed application locking policy.
+ *
+ * @param lockingPolicy the lockingPolicy value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withLockingPolicy(lockingPolicy);
+ return this;
+ }
+
+ /**
+ * Get the deploymentPolicy property: The managed application deployment policy.
+ *
+ * @return the deploymentPolicy value.
+ */
+ public ApplicationDeploymentPolicy deploymentPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentPolicy();
+ }
+
+ /**
+ * Set the deploymentPolicy property: The managed application deployment policy.
+ *
+ * @param deploymentPolicy the deploymentPolicy value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withDeploymentPolicy(deploymentPolicy);
+ return this;
+ }
+
+ /**
+ * Get the managementPolicy property: The managed application management policy that determines publisher's access
+ * to the managed resource group.
+ *
+ * @return the managementPolicy value.
+ */
+ public ApplicationManagementPolicy managementPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().managementPolicy();
+ }
+
+ /**
+ * Set the managementPolicy property: The managed application management policy that determines publisher's access
+ * to the managed resource group.
+ *
+ * @param managementPolicy the managementPolicy value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withManagementPolicy(ApplicationManagementPolicy managementPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withManagementPolicy(managementPolicy);
+ return this;
+ }
+
+ /**
+ * Get the policies property: The managed application provider policies.
+ *
+ * @return the policies value.
+ */
+ public List policies() {
+ return this.innerProperties() == null ? null : this.innerProperties().policies();
+ }
+
+ /**
+ * Set the policies property: The managed application provider policies.
+ *
+ * @param policies the policies value to set.
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withPolicies(List policies) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationDefinitionProperties();
+ }
+ this.innerProperties().withPolicies(policies);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model ApplicationDefinitionInner"));
+ } else {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionProperties.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionProperties.java
new file mode 100644
index 0000000000000..49537361de830
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationDefinitionProperties.java
@@ -0,0 +1,482 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationDeploymentPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationLockLevel;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationNotificationPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageLockingPolicyDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationPolicy;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The managed application definition properties. */
+@Fluent
+public final class ApplicationDefinitionProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationDefinitionProperties.class);
+
+ /*
+ * The managed application lock level.
+ */
+ @JsonProperty(value = "lockLevel", required = true)
+ private ApplicationLockLevel lockLevel;
+
+ /*
+ * The managed application definition display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /*
+ * A value indicating whether the package is enabled or not.
+ */
+ @JsonProperty(value = "isEnabled")
+ private Boolean isEnabled;
+
+ /*
+ * The managed application provider authorizations.
+ */
+ @JsonProperty(value = "authorizations")
+ private List authorizations;
+
+ /*
+ * The collection of managed application artifacts. The portal will use the
+ * files specified as artifacts to construct the user experience of
+ * creating a managed application from a managed application definition.
+ */
+ @JsonProperty(value = "artifacts")
+ private List artifacts;
+
+ /*
+ * Provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The managed application definition description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /*
+ * The managed application definition package file Uri. Use this element
+ */
+ @JsonProperty(value = "packageFileUri")
+ private String packageFileUri;
+
+ /*
+ * The storage account id for bring your own storage scenario.
+ */
+ @JsonProperty(value = "storageAccountId")
+ private String storageAccountId;
+
+ /*
+ * The inline main template json which has resources to be provisioned. It
+ * can be a JObject or well-formed JSON string.
+ */
+ @JsonProperty(value = "mainTemplate")
+ private Object mainTemplate;
+
+ /*
+ * The createUiDefinition json for the backing template with
+ * Microsoft.Solutions/applications resource. It can be a JObject or
+ * well-formed JSON string.
+ */
+ @JsonProperty(value = "createUiDefinition")
+ private Object createUiDefinition;
+
+ /*
+ * The managed application notification policy.
+ */
+ @JsonProperty(value = "notificationPolicy")
+ private ApplicationNotificationPolicy notificationPolicy;
+
+ /*
+ * The managed application locking policy.
+ */
+ @JsonProperty(value = "lockingPolicy")
+ private ApplicationPackageLockingPolicyDefinition lockingPolicy;
+
+ /*
+ * The managed application deployment policy.
+ */
+ @JsonProperty(value = "deploymentPolicy")
+ private ApplicationDeploymentPolicy deploymentPolicy;
+
+ /*
+ * The managed application management policy that determines publisher's
+ * access to the managed resource group.
+ */
+ @JsonProperty(value = "managementPolicy")
+ private ApplicationManagementPolicy managementPolicy;
+
+ /*
+ * The managed application provider policies.
+ */
+ @JsonProperty(value = "policies")
+ private List policies;
+
+ /**
+ * Get the lockLevel property: The managed application lock level.
+ *
+ * @return the lockLevel value.
+ */
+ public ApplicationLockLevel lockLevel() {
+ return this.lockLevel;
+ }
+
+ /**
+ * Set the lockLevel property: The managed application lock level.
+ *
+ * @param lockLevel the lockLevel value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withLockLevel(ApplicationLockLevel lockLevel) {
+ this.lockLevel = lockLevel;
+ return this;
+ }
+
+ /**
+ * Get the displayName property: The managed application definition display name.
+ *
+ * @return the displayName value.
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the displayName property: The managed application definition display name.
+ *
+ * @param displayName the displayName value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get the isEnabled property: A value indicating whether the package is enabled or not.
+ *
+ * @return the isEnabled value.
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set the isEnabled property: A value indicating whether the package is enabled or not.
+ *
+ * @param isEnabled the isEnabled value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withIsEnabled(Boolean isEnabled) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get the authorizations property: The managed application provider authorizations.
+ *
+ * @return the authorizations value.
+ */
+ public List authorizations() {
+ return this.authorizations;
+ }
+
+ /**
+ * Set the authorizations property: The managed application provider authorizations.
+ *
+ * @param authorizations the authorizations value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withAuthorizations(List authorizations) {
+ this.authorizations = authorizations;
+ return this;
+ }
+
+ /**
+ * Get the artifacts property: The collection of managed application artifacts. The portal will use the files
+ * specified as artifacts to construct the user experience of creating a managed application from a managed
+ * application definition.
+ *
+ * @return the artifacts value.
+ */
+ public List artifacts() {
+ return this.artifacts;
+ }
+
+ /**
+ * Set the artifacts property: The collection of managed application artifacts. The portal will use the files
+ * specified as artifacts to construct the user experience of creating a managed application from a managed
+ * application definition.
+ *
+ * @param artifacts the artifacts value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withArtifacts(List artifacts) {
+ this.artifacts = artifacts;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the description property: The managed application definition description.
+ *
+ * @return the description value.
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description property: The managed application definition description.
+ *
+ * @param description the description value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the packageFileUri property: The managed application definition package file Uri. Use this element.
+ *
+ * @return the packageFileUri value.
+ */
+ public String packageFileUri() {
+ return this.packageFileUri;
+ }
+
+ /**
+ * Set the packageFileUri property: The managed application definition package file Uri. Use this element.
+ *
+ * @param packageFileUri the packageFileUri value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withPackageFileUri(String packageFileUri) {
+ this.packageFileUri = packageFileUri;
+ return this;
+ }
+
+ /**
+ * Get the storageAccountId property: The storage account id for bring your own storage scenario.
+ *
+ * @return the storageAccountId value.
+ */
+ public String storageAccountId() {
+ return this.storageAccountId;
+ }
+
+ /**
+ * Set the storageAccountId property: The storage account id for bring your own storage scenario.
+ *
+ * @param storageAccountId the storageAccountId value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withStorageAccountId(String storageAccountId) {
+ this.storageAccountId = storageAccountId;
+ return this;
+ }
+
+ /**
+ * Get the mainTemplate property: The inline main template json which has resources to be provisioned. It can be a
+ * JObject or well-formed JSON string.
+ *
+ * @return the mainTemplate value.
+ */
+ public Object mainTemplate() {
+ return this.mainTemplate;
+ }
+
+ /**
+ * Set the mainTemplate property: The inline main template json which has resources to be provisioned. It can be a
+ * JObject or well-formed JSON string.
+ *
+ * @param mainTemplate the mainTemplate value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withMainTemplate(Object mainTemplate) {
+ this.mainTemplate = mainTemplate;
+ return this;
+ }
+
+ /**
+ * Get the createUiDefinition property: The createUiDefinition json for the backing template with
+ * Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.
+ *
+ * @return the createUiDefinition value.
+ */
+ public Object createUiDefinition() {
+ return this.createUiDefinition;
+ }
+
+ /**
+ * Set the createUiDefinition property: The createUiDefinition json for the backing template with
+ * Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string.
+ *
+ * @param createUiDefinition the createUiDefinition value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withCreateUiDefinition(Object createUiDefinition) {
+ this.createUiDefinition = createUiDefinition;
+ return this;
+ }
+
+ /**
+ * Get the notificationPolicy property: The managed application notification policy.
+ *
+ * @return the notificationPolicy value.
+ */
+ public ApplicationNotificationPolicy notificationPolicy() {
+ return this.notificationPolicy;
+ }
+
+ /**
+ * Set the notificationPolicy property: The managed application notification policy.
+ *
+ * @param notificationPolicy the notificationPolicy value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy) {
+ this.notificationPolicy = notificationPolicy;
+ return this;
+ }
+
+ /**
+ * Get the lockingPolicy property: The managed application locking policy.
+ *
+ * @return the lockingPolicy value.
+ */
+ public ApplicationPackageLockingPolicyDefinition lockingPolicy() {
+ return this.lockingPolicy;
+ }
+
+ /**
+ * Set the lockingPolicy property: The managed application locking policy.
+ *
+ * @param lockingPolicy the lockingPolicy value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy) {
+ this.lockingPolicy = lockingPolicy;
+ return this;
+ }
+
+ /**
+ * Get the deploymentPolicy property: The managed application deployment policy.
+ *
+ * @return the deploymentPolicy value.
+ */
+ public ApplicationDeploymentPolicy deploymentPolicy() {
+ return this.deploymentPolicy;
+ }
+
+ /**
+ * Set the deploymentPolicy property: The managed application deployment policy.
+ *
+ * @param deploymentPolicy the deploymentPolicy value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy) {
+ this.deploymentPolicy = deploymentPolicy;
+ return this;
+ }
+
+ /**
+ * Get the managementPolicy property: The managed application management policy that determines publisher's access
+ * to the managed resource group.
+ *
+ * @return the managementPolicy value.
+ */
+ public ApplicationManagementPolicy managementPolicy() {
+ return this.managementPolicy;
+ }
+
+ /**
+ * Set the managementPolicy property: The managed application management policy that determines publisher's access
+ * to the managed resource group.
+ *
+ * @param managementPolicy the managementPolicy value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withManagementPolicy(ApplicationManagementPolicy managementPolicy) {
+ this.managementPolicy = managementPolicy;
+ return this;
+ }
+
+ /**
+ * Get the policies property: The managed application provider policies.
+ *
+ * @return the policies value.
+ */
+ public List policies() {
+ return this.policies;
+ }
+
+ /**
+ * Set the policies property: The managed application provider policies.
+ *
+ * @param policies the policies value to set.
+ * @return the ApplicationDefinitionProperties object itself.
+ */
+ public ApplicationDefinitionProperties withPolicies(List policies) {
+ this.policies = policies;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (lockLevel() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property lockLevel in model ApplicationDefinitionProperties"));
+ }
+ if (authorizations() != null) {
+ authorizations().forEach(e -> e.validate());
+ }
+ if (artifacts() != null) {
+ artifacts().forEach(e -> e.validate());
+ }
+ if (notificationPolicy() != null) {
+ notificationPolicy().validate();
+ }
+ if (lockingPolicy() != null) {
+ lockingPolicy().validate();
+ }
+ if (deploymentPolicy() != null) {
+ deploymentPolicy().validate();
+ }
+ if (managementPolicy() != null) {
+ managementPolicy().validate();
+ }
+ if (policies() != null) {
+ policies().forEach(e -> e.validate());
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationInner.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationInner.java
new file mode 100644
index 0000000000000..1fc8e4408f5e7
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationInner.java
@@ -0,0 +1,377 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ApplicationArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationBillingDetailsDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationClientDetails;
+import com.azure.resourcemanager.solutions.models.ApplicationJitAccessPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementMode;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageContact;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageSupportUrls;
+import com.azure.resourcemanager.solutions.models.GenericResource;
+import com.azure.resourcemanager.solutions.models.Identity;
+import com.azure.resourcemanager.solutions.models.Plan;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.azure.resourcemanager.solutions.models.Sku;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Information about managed application. */
+@Fluent
+public final class ApplicationInner extends GenericResource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationInner.class);
+
+ /*
+ * The managed application properties.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ApplicationProperties innerProperties = new ApplicationProperties();
+
+ /*
+ * The plan information.
+ */
+ @JsonProperty(value = "plan")
+ private Plan plan;
+
+ /*
+ * The kind of the managed application. Allowed values are MarketPlace and
+ * ServiceCatalog.
+ */
+ @JsonProperty(value = "kind", required = true)
+ private String kind;
+
+ /*
+ * The identity of the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /**
+ * Get the innerProperties property: The managed application properties.
+ *
+ * @return the innerProperties value.
+ */
+ private ApplicationProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the plan property: The plan information.
+ *
+ * @return the plan value.
+ */
+ public Plan plan() {
+ return this.plan;
+ }
+
+ /**
+ * Set the plan property: The plan information.
+ *
+ * @param plan the plan value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withPlan(Plan plan) {
+ this.plan = plan;
+ return this;
+ }
+
+ /**
+ * Get the kind property: The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog.
+ *
+ * @return the kind value.
+ */
+ public String kind() {
+ return this.kind;
+ }
+
+ /**
+ * Set the kind property: The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog.
+ *
+ * @param kind the kind value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the identity property: The identity of the resource.
+ *
+ * @return the identity value.
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity property: The identity of the resource.
+ *
+ * @param identity the identity value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationInner withManagedBy(String managedBy) {
+ super.withManagedBy(managedBy);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationInner withSku(Sku sku) {
+ super.withSku(sku);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public ApplicationInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the managedResourceGroupId property: The managed resource group Id.
+ *
+ * @return the managedResourceGroupId value.
+ */
+ public String managedResourceGroupId() {
+ return this.innerProperties() == null ? null : this.innerProperties().managedResourceGroupId();
+ }
+
+ /**
+ * Set the managedResourceGroupId property: The managed resource group Id.
+ *
+ * @param managedResourceGroupId the managedResourceGroupId value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withManagedResourceGroupId(String managedResourceGroupId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationProperties();
+ }
+ this.innerProperties().withManagedResourceGroupId(managedResourceGroupId);
+ return this;
+ }
+
+ /**
+ * Get the applicationDefinitionId property: The fully qualified path of managed application definition Id.
+ *
+ * @return the applicationDefinitionId value.
+ */
+ public String applicationDefinitionId() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationDefinitionId();
+ }
+
+ /**
+ * Set the applicationDefinitionId property: The fully qualified path of managed application definition Id.
+ *
+ * @param applicationDefinitionId the applicationDefinitionId value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withApplicationDefinitionId(String applicationDefinitionId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationProperties();
+ }
+ this.innerProperties().withApplicationDefinitionId(applicationDefinitionId);
+ return this;
+ }
+
+ /**
+ * Get the parameters property: Name and value pairs that define the managed application parameters. It can be a
+ * JObject or a well formed JSON string.
+ *
+ * @return the parameters value.
+ */
+ public Object parameters() {
+ return this.innerProperties() == null ? null : this.innerProperties().parameters();
+ }
+
+ /**
+ * Set the parameters property: Name and value pairs that define the managed application parameters. It can be a
+ * JObject or a well formed JSON string.
+ *
+ * @param parameters the parameters value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withParameters(Object parameters) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationProperties();
+ }
+ this.innerProperties().withParameters(parameters);
+ return this;
+ }
+
+ /**
+ * Get the outputs property: Name and value pairs that define the managed application outputs.
+ *
+ * @return the outputs value.
+ */
+ public Object outputs() {
+ return this.innerProperties() == null ? null : this.innerProperties().outputs();
+ }
+
+ /**
+ * Get the provisioningState property: The managed application provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the billingDetails property: The managed application billing details.
+ *
+ * @return the billingDetails value.
+ */
+ public ApplicationBillingDetailsDefinition billingDetails() {
+ return this.innerProperties() == null ? null : this.innerProperties().billingDetails();
+ }
+
+ /**
+ * Get the jitAccessPolicy property: The managed application Jit access policy.
+ *
+ * @return the jitAccessPolicy value.
+ */
+ public ApplicationJitAccessPolicy jitAccessPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().jitAccessPolicy();
+ }
+
+ /**
+ * Set the jitAccessPolicy property: The managed application Jit access policy.
+ *
+ * @param jitAccessPolicy the jitAccessPolicy value to set.
+ * @return the ApplicationInner object itself.
+ */
+ public ApplicationInner withJitAccessPolicy(ApplicationJitAccessPolicy jitAccessPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new ApplicationProperties();
+ }
+ this.innerProperties().withJitAccessPolicy(jitAccessPolicy);
+ return this;
+ }
+
+ /**
+ * Get the publisherTenantId property: The publisher tenant Id.
+ *
+ * @return the publisherTenantId value.
+ */
+ public String publisherTenantId() {
+ return this.innerProperties() == null ? null : this.innerProperties().publisherTenantId();
+ }
+
+ /**
+ * Get the authorizations property: The read-only authorizations property that is retrieved from the application
+ * package.
+ *
+ * @return the authorizations value.
+ */
+ public List authorizations() {
+ return this.innerProperties() == null ? null : this.innerProperties().authorizations();
+ }
+
+ /**
+ * Get the managementMode property: The managed application management mode.
+ *
+ * @return the managementMode value.
+ */
+ public ApplicationManagementMode managementMode() {
+ return this.innerProperties() == null ? null : this.innerProperties().managementMode();
+ }
+
+ /**
+ * Get the customerSupport property: The read-only customer support property that is retrieved from the application
+ * package.
+ *
+ * @return the customerSupport value.
+ */
+ public ApplicationPackageContact customerSupport() {
+ return this.innerProperties() == null ? null : this.innerProperties().customerSupport();
+ }
+
+ /**
+ * Get the supportUrls property: The read-only support URLs property that is retrieved from the application package.
+ *
+ * @return the supportUrls value.
+ */
+ public ApplicationPackageSupportUrls supportUrls() {
+ return this.innerProperties() == null ? null : this.innerProperties().supportUrls();
+ }
+
+ /**
+ * Get the artifacts property: The collection of managed application artifacts.
+ *
+ * @return the artifacts value.
+ */
+ public List artifacts() {
+ return this.innerProperties() == null ? null : this.innerProperties().artifacts();
+ }
+
+ /**
+ * Get the createdBy property: The client entity that created the JIT request.
+ *
+ * @return the createdBy value.
+ */
+ public ApplicationClientDetails createdBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdBy();
+ }
+
+ /**
+ * Get the updatedBy property: The client entity that last updated the JIT request.
+ *
+ * @return the updatedBy value.
+ */
+ public ApplicationClientDetails updatedBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedBy();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ super.validate();
+ if (innerProperties() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property innerProperties in model ApplicationInner"));
+ } else {
+ innerProperties().validate();
+ }
+ if (plan() != null) {
+ plan().validate();
+ }
+ if (kind() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException("Missing required property kind in model ApplicationInner"));
+ }
+ if (identity() != null) {
+ identity().validate();
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationProperties.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationProperties.java
new file mode 100644
index 0000000000000..f2c1f66bdd11f
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/ApplicationProperties.java
@@ -0,0 +1,335 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ApplicationArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationBillingDetailsDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationClientDetails;
+import com.azure.resourcemanager.solutions.models.ApplicationJitAccessPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementMode;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageContact;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageSupportUrls;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The managed application properties. */
+@Fluent
+public final class ApplicationProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationProperties.class);
+
+ /*
+ * The managed resource group Id.
+ */
+ @JsonProperty(value = "managedResourceGroupId")
+ private String managedResourceGroupId;
+
+ /*
+ * The fully qualified path of managed application definition Id.
+ */
+ @JsonProperty(value = "applicationDefinitionId")
+ private String applicationDefinitionId;
+
+ /*
+ * Name and value pairs that define the managed application parameters. It
+ * can be a JObject or a well formed JSON string.
+ */
+ @JsonProperty(value = "parameters")
+ private Object parameters;
+
+ /*
+ * Name and value pairs that define the managed application outputs.
+ */
+ @JsonProperty(value = "outputs", access = JsonProperty.Access.WRITE_ONLY)
+ private Object outputs;
+
+ /*
+ * The managed application provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The managed application billing details.
+ */
+ @JsonProperty(value = "billingDetails", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationBillingDetailsDefinition billingDetails;
+
+ /*
+ * The managed application Jit access policy.
+ */
+ @JsonProperty(value = "jitAccessPolicy")
+ private ApplicationJitAccessPolicy jitAccessPolicy;
+
+ /*
+ * The publisher tenant Id.
+ */
+ @JsonProperty(value = "publisherTenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String publisherTenantId;
+
+ /*
+ * The read-only authorizations property that is retrieved from the
+ * application package.
+ */
+ @JsonProperty(value = "authorizations", access = JsonProperty.Access.WRITE_ONLY)
+ private List authorizations;
+
+ /*
+ * The managed application management mode.
+ */
+ @JsonProperty(value = "managementMode", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationManagementMode managementMode;
+
+ /*
+ * The read-only customer support property that is retrieved from the
+ * application package.
+ */
+ @JsonProperty(value = "customerSupport", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationPackageContact customerSupport;
+
+ /*
+ * The read-only support URLs property that is retrieved from the
+ * application package.
+ */
+ @JsonProperty(value = "supportUrls", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationPackageSupportUrls supportUrls;
+
+ /*
+ * The collection of managed application artifacts.
+ */
+ @JsonProperty(value = "artifacts", access = JsonProperty.Access.WRITE_ONLY)
+ private List artifacts;
+
+ /*
+ * The client entity that created the JIT request.
+ */
+ @JsonProperty(value = "createdBy", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationClientDetails createdBy;
+
+ /*
+ * The client entity that last updated the JIT request.
+ */
+ @JsonProperty(value = "updatedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationClientDetails updatedBy;
+
+ /**
+ * Get the managedResourceGroupId property: The managed resource group Id.
+ *
+ * @return the managedResourceGroupId value.
+ */
+ public String managedResourceGroupId() {
+ return this.managedResourceGroupId;
+ }
+
+ /**
+ * Set the managedResourceGroupId property: The managed resource group Id.
+ *
+ * @param managedResourceGroupId the managedResourceGroupId value to set.
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withManagedResourceGroupId(String managedResourceGroupId) {
+ this.managedResourceGroupId = managedResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the applicationDefinitionId property: The fully qualified path of managed application definition Id.
+ *
+ * @return the applicationDefinitionId value.
+ */
+ public String applicationDefinitionId() {
+ return this.applicationDefinitionId;
+ }
+
+ /**
+ * Set the applicationDefinitionId property: The fully qualified path of managed application definition Id.
+ *
+ * @param applicationDefinitionId the applicationDefinitionId value to set.
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withApplicationDefinitionId(String applicationDefinitionId) {
+ this.applicationDefinitionId = applicationDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the parameters property: Name and value pairs that define the managed application parameters. It can be a
+ * JObject or a well formed JSON string.
+ *
+ * @return the parameters value.
+ */
+ public Object parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set the parameters property: Name and value pairs that define the managed application parameters. It can be a
+ * JObject or a well formed JSON string.
+ *
+ * @param parameters the parameters value to set.
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withParameters(Object parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get the outputs property: Name and value pairs that define the managed application outputs.
+ *
+ * @return the outputs value.
+ */
+ public Object outputs() {
+ return this.outputs;
+ }
+
+ /**
+ * Get the provisioningState property: The managed application provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the billingDetails property: The managed application billing details.
+ *
+ * @return the billingDetails value.
+ */
+ public ApplicationBillingDetailsDefinition billingDetails() {
+ return this.billingDetails;
+ }
+
+ /**
+ * Get the jitAccessPolicy property: The managed application Jit access policy.
+ *
+ * @return the jitAccessPolicy value.
+ */
+ public ApplicationJitAccessPolicy jitAccessPolicy() {
+ return this.jitAccessPolicy;
+ }
+
+ /**
+ * Set the jitAccessPolicy property: The managed application Jit access policy.
+ *
+ * @param jitAccessPolicy the jitAccessPolicy value to set.
+ * @return the ApplicationProperties object itself.
+ */
+ public ApplicationProperties withJitAccessPolicy(ApplicationJitAccessPolicy jitAccessPolicy) {
+ this.jitAccessPolicy = jitAccessPolicy;
+ return this;
+ }
+
+ /**
+ * Get the publisherTenantId property: The publisher tenant Id.
+ *
+ * @return the publisherTenantId value.
+ */
+ public String publisherTenantId() {
+ return this.publisherTenantId;
+ }
+
+ /**
+ * Get the authorizations property: The read-only authorizations property that is retrieved from the application
+ * package.
+ *
+ * @return the authorizations value.
+ */
+ public List authorizations() {
+ return this.authorizations;
+ }
+
+ /**
+ * Get the managementMode property: The managed application management mode.
+ *
+ * @return the managementMode value.
+ */
+ public ApplicationManagementMode managementMode() {
+ return this.managementMode;
+ }
+
+ /**
+ * Get the customerSupport property: The read-only customer support property that is retrieved from the application
+ * package.
+ *
+ * @return the customerSupport value.
+ */
+ public ApplicationPackageContact customerSupport() {
+ return this.customerSupport;
+ }
+
+ /**
+ * Get the supportUrls property: The read-only support URLs property that is retrieved from the application package.
+ *
+ * @return the supportUrls value.
+ */
+ public ApplicationPackageSupportUrls supportUrls() {
+ return this.supportUrls;
+ }
+
+ /**
+ * Get the artifacts property: The collection of managed application artifacts.
+ *
+ * @return the artifacts value.
+ */
+ public List artifacts() {
+ return this.artifacts;
+ }
+
+ /**
+ * Get the createdBy property: The client entity that created the JIT request.
+ *
+ * @return the createdBy value.
+ */
+ public ApplicationClientDetails createdBy() {
+ return this.createdBy;
+ }
+
+ /**
+ * Get the updatedBy property: The client entity that last updated the JIT request.
+ *
+ * @return the updatedBy value.
+ */
+ public ApplicationClientDetails updatedBy() {
+ return this.updatedBy;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (billingDetails() != null) {
+ billingDetails().validate();
+ }
+ if (jitAccessPolicy() != null) {
+ jitAccessPolicy().validate();
+ }
+ if (authorizations() != null) {
+ authorizations().forEach(e -> e.validate());
+ }
+ if (customerSupport() != null) {
+ customerSupport().validate();
+ }
+ if (supportUrls() != null) {
+ supportUrls().validate();
+ }
+ if (artifacts() != null) {
+ artifacts().forEach(e -> e.validate());
+ }
+ if (createdBy() != null) {
+ createdBy().validate();
+ }
+ if (updatedBy() != null) {
+ updatedBy().validate();
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionInner.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionInner.java
new file mode 100644
index 0000000000000..a1e9cea91e0ce
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionInner.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.solutions.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.solutions.models.ApplicationClientDetails;
+import com.azure.resourcemanager.solutions.models.JitAuthorizationPolicies;
+import com.azure.resourcemanager.solutions.models.JitRequestState;
+import com.azure.resourcemanager.solutions.models.JitSchedulingPolicy;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+import java.util.Map;
+
+/** Information about JIT request definition. */
+@Fluent
+public final class JitRequestDefinitionInner extends Resource {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(JitRequestDefinitionInner.class);
+
+ /*
+ * The JIT request properties.
+ */
+ @JsonProperty(value = "properties")
+ private JitRequestProperties innerProperties;
+
+ /*
+ * Metadata pertaining to creation and last modification of the resource.
+ */
+ @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+ private SystemData systemData;
+
+ /**
+ * Get the innerProperties property: The JIT request properties.
+ *
+ * @return the innerProperties value.
+ */
+ private JitRequestProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Metadata pertaining to creation and last modification of the resource.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public JitRequestDefinitionInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public JitRequestDefinitionInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the applicationResourceId property: The parent application id.
+ *
+ * @return the applicationResourceId value.
+ */
+ public String applicationResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().applicationResourceId();
+ }
+
+ /**
+ * Set the applicationResourceId property: The parent application id.
+ *
+ * @param applicationResourceId the applicationResourceId value to set.
+ * @return the JitRequestDefinitionInner object itself.
+ */
+ public JitRequestDefinitionInner withApplicationResourceId(String applicationResourceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new JitRequestProperties();
+ }
+ this.innerProperties().withApplicationResourceId(applicationResourceId);
+ return this;
+ }
+
+ /**
+ * Get the publisherTenantId property: The publisher tenant id.
+ *
+ * @return the publisherTenantId value.
+ */
+ public String publisherTenantId() {
+ return this.innerProperties() == null ? null : this.innerProperties().publisherTenantId();
+ }
+
+ /**
+ * Get the jitAuthorizationPolicies property: The JIT authorization policies.
+ *
+ * @return the jitAuthorizationPolicies value.
+ */
+ public List jitAuthorizationPolicies() {
+ return this.innerProperties() == null ? null : this.innerProperties().jitAuthorizationPolicies();
+ }
+
+ /**
+ * Set the jitAuthorizationPolicies property: The JIT authorization policies.
+ *
+ * @param jitAuthorizationPolicies the jitAuthorizationPolicies value to set.
+ * @return the JitRequestDefinitionInner object itself.
+ */
+ public JitRequestDefinitionInner withJitAuthorizationPolicies(
+ List jitAuthorizationPolicies) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new JitRequestProperties();
+ }
+ this.innerProperties().withJitAuthorizationPolicies(jitAuthorizationPolicies);
+ return this;
+ }
+
+ /**
+ * Get the jitSchedulingPolicy property: The JIT request properties.
+ *
+ * @return the jitSchedulingPolicy value.
+ */
+ public JitSchedulingPolicy jitSchedulingPolicy() {
+ return this.innerProperties() == null ? null : this.innerProperties().jitSchedulingPolicy();
+ }
+
+ /**
+ * Set the jitSchedulingPolicy property: The JIT request properties.
+ *
+ * @param jitSchedulingPolicy the jitSchedulingPolicy value to set.
+ * @return the JitRequestDefinitionInner object itself.
+ */
+ public JitRequestDefinitionInner withJitSchedulingPolicy(JitSchedulingPolicy jitSchedulingPolicy) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new JitRequestProperties();
+ }
+ this.innerProperties().withJitSchedulingPolicy(jitSchedulingPolicy);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The JIT request provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the jitRequestState property: The JIT request state.
+ *
+ * @return the jitRequestState value.
+ */
+ public JitRequestState jitRequestState() {
+ return this.innerProperties() == null ? null : this.innerProperties().jitRequestState();
+ }
+
+ /**
+ * Get the createdBy property: The client entity that created the JIT request.
+ *
+ * @return the createdBy value.
+ */
+ public ApplicationClientDetails createdBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().createdBy();
+ }
+
+ /**
+ * Get the updatedBy property: The client entity that last updated the JIT request.
+ *
+ * @return the updatedBy value.
+ */
+ public ApplicationClientDetails updatedBy() {
+ return this.innerProperties() == null ? null : this.innerProperties().updatedBy();
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionListResultInner.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionListResultInner.java
new file mode 100644
index 0000000000000..4e232d1487823
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestDefinitionListResultInner.java
@@ -0,0 +1,80 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.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;
+import java.util.List;
+
+/** List of JIT requests. */
+@Fluent
+public final class JitRequestDefinitionListResultInner {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(JitRequestDefinitionListResultInner.class);
+
+ /*
+ * The array of Jit request definition.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /*
+ * The URL to use for getting the next set of results.
+ */
+ @JsonProperty(value = "nextLink")
+ private String nextLink;
+
+ /**
+ * Get the value property: The array of Jit request definition.
+ *
+ * @return the value value.
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value property: The array of Jit request definition.
+ *
+ * @param value the value value to set.
+ * @return the JitRequestDefinitionListResultInner object itself.
+ */
+ public JitRequestDefinitionListResultInner withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get the nextLink property: The URL to use for getting the next set of results.
+ *
+ * @return the nextLink value.
+ */
+ public String nextLink() {
+ return this.nextLink;
+ }
+
+ /**
+ * Set the nextLink property: The URL to use for getting the next set of results.
+ *
+ * @param nextLink the nextLink value to set.
+ * @return the JitRequestDefinitionListResultInner object itself.
+ */
+ public JitRequestDefinitionListResultInner withNextLink(String nextLink) {
+ this.nextLink = nextLink;
+ return this;
+ }
+
+ /**
+ * 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/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestProperties.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestProperties.java
new file mode 100644
index 0000000000000..47c2f5e4b14c8
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/JitRequestProperties.java
@@ -0,0 +1,211 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ApplicationClientDetails;
+import com.azure.resourcemanager.solutions.models.JitAuthorizationPolicies;
+import com.azure.resourcemanager.solutions.models.JitRequestState;
+import com.azure.resourcemanager.solutions.models.JitSchedulingPolicy;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Information about JIT request properties. */
+@Fluent
+public final class JitRequestProperties {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(JitRequestProperties.class);
+
+ /*
+ * The parent application id.
+ */
+ @JsonProperty(value = "applicationResourceId", required = true)
+ private String applicationResourceId;
+
+ /*
+ * The publisher tenant id.
+ */
+ @JsonProperty(value = "publisherTenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String publisherTenantId;
+
+ /*
+ * The JIT authorization policies.
+ */
+ @JsonProperty(value = "jitAuthorizationPolicies", required = true)
+ private List jitAuthorizationPolicies;
+
+ /*
+ * The JIT request properties.
+ */
+ @JsonProperty(value = "jitSchedulingPolicy", required = true)
+ private JitSchedulingPolicy jitSchedulingPolicy;
+
+ /*
+ * The JIT request provisioning state.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /*
+ * The JIT request state.
+ */
+ @JsonProperty(value = "jitRequestState", access = JsonProperty.Access.WRITE_ONLY)
+ private JitRequestState jitRequestState;
+
+ /*
+ * The client entity that created the JIT request.
+ */
+ @JsonProperty(value = "createdBy", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationClientDetails createdBy;
+
+ /*
+ * The client entity that last updated the JIT request.
+ */
+ @JsonProperty(value = "updatedBy", access = JsonProperty.Access.WRITE_ONLY)
+ private ApplicationClientDetails updatedBy;
+
+ /**
+ * Get the applicationResourceId property: The parent application id.
+ *
+ * @return the applicationResourceId value.
+ */
+ public String applicationResourceId() {
+ return this.applicationResourceId;
+ }
+
+ /**
+ * Set the applicationResourceId property: The parent application id.
+ *
+ * @param applicationResourceId the applicationResourceId value to set.
+ * @return the JitRequestProperties object itself.
+ */
+ public JitRequestProperties withApplicationResourceId(String applicationResourceId) {
+ this.applicationResourceId = applicationResourceId;
+ return this;
+ }
+
+ /**
+ * Get the publisherTenantId property: The publisher tenant id.
+ *
+ * @return the publisherTenantId value.
+ */
+ public String publisherTenantId() {
+ return this.publisherTenantId;
+ }
+
+ /**
+ * Get the jitAuthorizationPolicies property: The JIT authorization policies.
+ *
+ * @return the jitAuthorizationPolicies value.
+ */
+ public List jitAuthorizationPolicies() {
+ return this.jitAuthorizationPolicies;
+ }
+
+ /**
+ * Set the jitAuthorizationPolicies property: The JIT authorization policies.
+ *
+ * @param jitAuthorizationPolicies the jitAuthorizationPolicies value to set.
+ * @return the JitRequestProperties object itself.
+ */
+ public JitRequestProperties withJitAuthorizationPolicies(List jitAuthorizationPolicies) {
+ this.jitAuthorizationPolicies = jitAuthorizationPolicies;
+ return this;
+ }
+
+ /**
+ * Get the jitSchedulingPolicy property: The JIT request properties.
+ *
+ * @return the jitSchedulingPolicy value.
+ */
+ public JitSchedulingPolicy jitSchedulingPolicy() {
+ return this.jitSchedulingPolicy;
+ }
+
+ /**
+ * Set the jitSchedulingPolicy property: The JIT request properties.
+ *
+ * @param jitSchedulingPolicy the jitSchedulingPolicy value to set.
+ * @return the JitRequestProperties object itself.
+ */
+ public JitRequestProperties withJitSchedulingPolicy(JitSchedulingPolicy jitSchedulingPolicy) {
+ this.jitSchedulingPolicy = jitSchedulingPolicy;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: The JIT request provisioning state.
+ *
+ * @return the provisioningState value.
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the jitRequestState property: The JIT request state.
+ *
+ * @return the jitRequestState value.
+ */
+ public JitRequestState jitRequestState() {
+ return this.jitRequestState;
+ }
+
+ /**
+ * Get the createdBy property: The client entity that created the JIT request.
+ *
+ * @return the createdBy value.
+ */
+ public ApplicationClientDetails createdBy() {
+ return this.createdBy;
+ }
+
+ /**
+ * Get the updatedBy property: The client entity that last updated the JIT request.
+ *
+ * @return the updatedBy value.
+ */
+ public ApplicationClientDetails updatedBy() {
+ return this.updatedBy;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (applicationResourceId() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property applicationResourceId in model JitRequestProperties"));
+ }
+ if (jitAuthorizationPolicies() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property jitAuthorizationPolicies in model JitRequestProperties"));
+ } else {
+ jitAuthorizationPolicies().forEach(e -> e.validate());
+ }
+ if (jitSchedulingPolicy() == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ "Missing required property jitSchedulingPolicy in model JitRequestProperties"));
+ } else {
+ jitSchedulingPolicy().validate();
+ }
+ if (createdBy() != null) {
+ createdBy().validate();
+ }
+ if (updatedBy() != null) {
+ updatedBy().validate();
+ }
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/OperationInner.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/OperationInner.java
new file mode 100644
index 0000000000000..2f0bb9b0c7aeb
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/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.solutions.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.solutions.models.ActionType;
+import com.azure.resourcemanager.solutions.models.OperationDisplay;
+import com.azure.resourcemanager.solutions.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/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/package-info.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/models/package-info.java
new file mode 100644
index 0000000000000..98a3578c7b6da
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/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 ManagedApplicationManagementClient. Managed Application Client. */
+package com.azure.resourcemanager.solutions.fluent.models;
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/package-info.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/fluent/package-info.java
new file mode 100644
index 0000000000000..6c149e5fd63f9
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/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 ManagedApplicationManagementClient. Managed Application Client. */
+package com.azure.resourcemanager.solutions.fluent;
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionImpl.java
new file mode 100644
index 0000000000000..d50e32fafc2ea
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionImpl.java
@@ -0,0 +1,363 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.implementation;
+
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationDefinitionInner;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionPatchable;
+import com.azure.resourcemanager.solutions.models.ApplicationDeploymentPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationLockLevel;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationNotificationPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageLockingPolicyDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationPolicy;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.azure.resourcemanager.solutions.models.Sku;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class ApplicationDefinitionImpl
+ implements ApplicationDefinition, ApplicationDefinition.Definition, ApplicationDefinition.Update {
+ private ApplicationDefinitionInner innerObject;
+
+ private final com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public String managedBy() {
+ return this.innerModel().managedBy();
+ }
+
+ public Sku sku() {
+ return this.innerModel().sku();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public ApplicationLockLevel lockLevel() {
+ return this.innerModel().lockLevel();
+ }
+
+ public String displayName() {
+ return this.innerModel().displayName();
+ }
+
+ public Boolean isEnabled() {
+ return this.innerModel().isEnabled();
+ }
+
+ public List authorizations() {
+ List inner = this.innerModel().authorizations();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public List artifacts() {
+ List inner = this.innerModel().artifacts();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public ProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public String description() {
+ return this.innerModel().description();
+ }
+
+ public String packageFileUri() {
+ return this.innerModel().packageFileUri();
+ }
+
+ public String storageAccountId() {
+ return this.innerModel().storageAccountId();
+ }
+
+ public Object mainTemplate() {
+ return this.innerModel().mainTemplate();
+ }
+
+ public Object createUiDefinition() {
+ return this.innerModel().createUiDefinition();
+ }
+
+ public ApplicationNotificationPolicy notificationPolicy() {
+ return this.innerModel().notificationPolicy();
+ }
+
+ public ApplicationPackageLockingPolicyDefinition lockingPolicy() {
+ return this.innerModel().lockingPolicy();
+ }
+
+ public ApplicationDeploymentPolicy deploymentPolicy() {
+ return this.innerModel().deploymentPolicy();
+ }
+
+ public ApplicationManagementPolicy managementPolicy() {
+ return this.innerModel().managementPolicy();
+ }
+
+ public List policies() {
+ List inner = this.innerModel().policies();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public ApplicationDefinitionInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.solutions.ManagedApplicationManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String applicationDefinitionName;
+
+ private ApplicationDefinitionPatchable updateParameters;
+
+ public ApplicationDefinitionImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public ApplicationDefinition create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .createOrUpdate(resourceGroupName, applicationDefinitionName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public ApplicationDefinition create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .createOrUpdate(resourceGroupName, applicationDefinitionName, this.innerModel(), context);
+ return this;
+ }
+
+ ApplicationDefinitionImpl(
+ String name, com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerObject = new ApplicationDefinitionInner();
+ this.serviceManager = serviceManager;
+ this.applicationDefinitionName = name;
+ }
+
+ public ApplicationDefinitionImpl update() {
+ this.updateParameters = new ApplicationDefinitionPatchable();
+ return this;
+ }
+
+ public ApplicationDefinition apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .updateWithResponse(resourceGroupName, applicationDefinitionName, updateParameters, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public ApplicationDefinition apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .updateWithResponse(resourceGroupName, applicationDefinitionName, updateParameters, context)
+ .getValue();
+ return this;
+ }
+
+ ApplicationDefinitionImpl(
+ ApplicationDefinitionInner innerObject,
+ com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.applicationDefinitionName = Utils.getValueFromIdByName(innerObject.id(), "applicationDefinitions");
+ }
+
+ public ApplicationDefinition refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .getByResourceGroupWithResponse(resourceGroupName, applicationDefinitionName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public ApplicationDefinition refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplicationDefinitions()
+ .getByResourceGroupWithResponse(resourceGroupName, applicationDefinitionName, context)
+ .getValue();
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withLockLevel(ApplicationLockLevel lockLevel) {
+ this.innerModel().withLockLevel(lockLevel);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateParameters.withTags(tags);
+ return this;
+ }
+ }
+
+ public ApplicationDefinitionImpl withManagedBy(String managedBy) {
+ this.innerModel().withManagedBy(managedBy);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withSku(Sku sku) {
+ this.innerModel().withSku(sku);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withDisplayName(String displayName) {
+ this.innerModel().withDisplayName(displayName);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withIsEnabled(Boolean isEnabled) {
+ this.innerModel().withIsEnabled(isEnabled);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withAuthorizations(List authorizations) {
+ this.innerModel().withAuthorizations(authorizations);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withArtifacts(List artifacts) {
+ this.innerModel().withArtifacts(artifacts);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withDescription(String description) {
+ this.innerModel().withDescription(description);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withPackageFileUri(String packageFileUri) {
+ this.innerModel().withPackageFileUri(packageFileUri);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withStorageAccountId(String storageAccountId) {
+ this.innerModel().withStorageAccountId(storageAccountId);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withMainTemplate(Object mainTemplate) {
+ this.innerModel().withMainTemplate(mainTemplate);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withCreateUiDefinition(Object createUiDefinition) {
+ this.innerModel().withCreateUiDefinition(createUiDefinition);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy) {
+ this.innerModel().withNotificationPolicy(notificationPolicy);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy) {
+ this.innerModel().withLockingPolicy(lockingPolicy);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy) {
+ this.innerModel().withDeploymentPolicy(deploymentPolicy);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withManagementPolicy(ApplicationManagementPolicy managementPolicy) {
+ this.innerModel().withManagementPolicy(managementPolicy);
+ return this;
+ }
+
+ public ApplicationDefinitionImpl withPolicies(List policies) {
+ this.innerModel().withPolicies(policies);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsClientImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsClientImpl.java
new file mode 100644
index 0000000000000..70ab64f6b9c02
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsClientImpl.java
@@ -0,0 +1,1498 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+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.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Put;
+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.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.solutions.fluent.ApplicationDefinitionsClient;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationDefinitionInner;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionListResult;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitionPatchable;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ApplicationDefinitionsClient. */
+public final class ApplicationDefinitionsClientImpl implements ApplicationDefinitionsClient {
+ private final ClientLogger logger = new ClientLogger(ApplicationDefinitionsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final ApplicationDefinitionsService service;
+
+ /** The service client containing this operation class. */
+ private final ManagedApplicationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ApplicationDefinitionsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ApplicationDefinitionsClientImpl(ManagedApplicationManagementClientImpl client) {
+ this.service =
+ RestProxy
+ .create(ApplicationDefinitionsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ManagedApplicationManagementClientApplicationDefinitions to be used
+ * by the proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ManagedApplicationMa")
+ private interface ApplicationDefinitionsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applicationDefinitions/{applicationDefinitionName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationDefinitionName") String applicationDefinitionName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applicationDefinitions/{applicationDefinitionName}")
+ @ExpectedResponses({200, 202, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationDefinitionName") String applicationDefinitionName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applicationDefinitions/{applicationDefinitionName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationDefinitionName") String applicationDefinitionName,
+ @BodyParam("application/json") ApplicationDefinitionInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applicationDefinitions/{applicationDefinitionName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationDefinitionName") String applicationDefinitionName,
+ @BodyParam("application/json") ApplicationDefinitionPatchable parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applicationDefinitions")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Solutions/applicationDefinitions")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listBySubscriptionNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(
+ String resourceGroupName, String applicationDefinitionName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, applicationDefinitionName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationDefinitionInner getByResourceGroup(String resourceGroupName, String applicationDefinitionName) {
+ return getByResourceGroupAsync(resourceGroupName, applicationDefinitionName).block();
+ }
+
+ /**
+ * Gets the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationDefinitionName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, applicationDefinitionName, context).block();
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String applicationDefinitionName) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, applicationDefinitionName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String applicationDefinitionName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ deleteWithResponseAsync(resourceGroupName, applicationDefinitionName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(String resourceGroupName, String applicationDefinitionName) {
+ return beginDeleteAsync(resourceGroupName, applicationDefinitionName).getSyncPoller();
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String applicationDefinitionName, Context context) {
+ return beginDeleteAsync(resourceGroupName, applicationDefinitionName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String applicationDefinitionName) {
+ return beginDeleteAsync(resourceGroupName, applicationDefinitionName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String applicationDefinitionName, Context context) {
+ return beginDeleteAsync(resourceGroupName, applicationDefinitionName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String applicationDefinitionName) {
+ deleteAsync(resourceGroupName, applicationDefinitionName).block();
+ }
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String applicationDefinitionName, Context context) {
+ deleteAsync(resourceGroupName, applicationDefinitionName, context).block();
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ApplicationDefinitionInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, applicationDefinitionName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ ApplicationDefinitionInner.class,
+ ApplicationDefinitionInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ApplicationDefinitionInner> beginCreateOrUpdateAsync(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, applicationDefinitionName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ ApplicationDefinitionInner.class,
+ ApplicationDefinitionInner.class,
+ context);
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ApplicationDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ApplicationDefinitionInner> beginCreateOrUpdate(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters, context)
+ .getSyncPoller();
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationDefinitionInner createOrUpdate(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ return createOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters).block();
+ }
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the create or update an managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationDefinitionInner createOrUpdate(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionInner parameters,
+ Context context) {
+ return createOrUpdateAsync(resourceGroupName, applicationDefinitionName, parameters, context).block();
+ }
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionPatchable parameters) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionPatchable parameters,
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationDefinitionName == null) {
+ return Mono
+ .error(
+ new IllegalArgumentException(
+ "Parameter applicationDefinitionName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationDefinitionName,
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionPatchable parameters) {
+ return updateWithResponseAsync(resourceGroupName, applicationDefinitionName, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationDefinitionInner update(
+ String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionPatchable parameters) {
+ return updateAsync(resourceGroupName, applicationDefinitionName, parameters).block();
+ }
+
+ /**
+ * Updates the managed application definition.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationDefinitionName The name of the managed application definition.
+ * @param parameters Parameters supplied to the update a managed application definition.
+ * @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 information about managed application definition.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateWithResponse(
+ String resourceGroupName,
+ String applicationDefinitionName,
+ ApplicationDefinitionPatchable parameters,
+ Context context) {
+ return updateWithResponseAsync(resourceGroupName, applicationDefinitionName, parameters, context).block();
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(
+ String resourceGroupName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ 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()));
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(
+ String resourceGroupName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName, context),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName));
+ }
+
+ /**
+ * Lists the managed application definitions in a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName, context));
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ 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()));
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Gets all the application definitions within a subscription.
+ *
+ * @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 all the application definitions within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * 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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(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.listByResourceGroupNext(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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(
+ 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
+ .listByResourceGroupNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(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.listBySubscriptionNext(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 list of managed application definitions.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(
+ 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
+ .listBySubscriptionNext(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/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsImpl.java
new file mode 100644
index 0000000000000..1d3cba67e5ef3
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationDefinitionsImpl.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.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.solutions.fluent.ApplicationDefinitionsClient;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationDefinitionInner;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationDefinitions;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class ApplicationDefinitionsImpl implements ApplicationDefinitions {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationDefinitionsImpl.class);
+
+ private final ApplicationDefinitionsClient innerClient;
+
+ private final com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager;
+
+ public ApplicationDefinitionsImpl(
+ ApplicationDefinitionsClient innerClient,
+ com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public ApplicationDefinition getByResourceGroup(String resourceGroupName, String applicationDefinitionName) {
+ ApplicationDefinitionInner inner =
+ this.serviceClient().getByResourceGroup(resourceGroupName, applicationDefinitionName);
+ if (inner != null) {
+ return new ApplicationDefinitionImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationDefinitionName, Context context) {
+ Response inner =
+ this.serviceClient().getByResourceGroupWithResponse(resourceGroupName, applicationDefinitionName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new ApplicationDefinitionImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void deleteByResourceGroup(String resourceGroupName, String applicationDefinitionName) {
+ this.serviceClient().delete(resourceGroupName, applicationDefinitionName);
+ }
+
+ public void delete(String resourceGroupName, String applicationDefinitionName, Context context) {
+ this.serviceClient().delete(resourceGroupName, applicationDefinitionName, context);
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName);
+ return Utils.mapPage(inner, inner1 -> new ApplicationDefinitionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ PagedIterable inner =
+ this.serviceClient().listByResourceGroup(resourceGroupName, context);
+ return Utils.mapPage(inner, inner1 -> new ApplicationDefinitionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list() {
+ PagedIterable inner = this.serviceClient().list();
+ return Utils.mapPage(inner, inner1 -> new ApplicationDefinitionImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable list(Context context) {
+ PagedIterable inner = this.serviceClient().list(context);
+ return Utils.mapPage(inner, inner1 -> new ApplicationDefinitionImpl(inner1, this.manager()));
+ }
+
+ public ApplicationDefinition getById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String applicationDefinitionName = Utils.getValueFromIdByName(id, "applicationDefinitions");
+ if (applicationDefinitionName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'applicationDefinitions'.",
+ id)));
+ }
+ return this
+ .getByResourceGroupWithResponse(resourceGroupName, applicationDefinitionName, Context.NONE)
+ .getValue();
+ }
+
+ public Response getByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String applicationDefinitionName = Utils.getValueFromIdByName(id, "applicationDefinitions");
+ if (applicationDefinitionName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'applicationDefinitions'.",
+ id)));
+ }
+ return this.getByResourceGroupWithResponse(resourceGroupName, applicationDefinitionName, context);
+ }
+
+ public void deleteById(String id) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String applicationDefinitionName = Utils.getValueFromIdByName(id, "applicationDefinitions");
+ if (applicationDefinitionName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'applicationDefinitions'.",
+ id)));
+ }
+ this.delete(resourceGroupName, applicationDefinitionName, Context.NONE);
+ }
+
+ public void deleteByIdWithResponse(String id, Context context) {
+ String resourceGroupName = Utils.getValueFromIdByName(id, "resourceGroups");
+ if (resourceGroupName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format("The resource ID '%s' is not valid. Missing path segment 'resourceGroups'.", id)));
+ }
+ String applicationDefinitionName = Utils.getValueFromIdByName(id, "applicationDefinitions");
+ if (applicationDefinitionName == null) {
+ throw logger
+ .logExceptionAsError(
+ new IllegalArgumentException(
+ String
+ .format(
+ "The resource ID '%s' is not valid. Missing path segment 'applicationDefinitions'.",
+ id)));
+ }
+ this.delete(resourceGroupName, applicationDefinitionName, context);
+ }
+
+ private ApplicationDefinitionsClient serviceClient() {
+ return this.innerClient;
+ }
+
+ private com.azure.resourcemanager.solutions.ManagedApplicationManager manager() {
+ return this.serviceManager;
+ }
+
+ public ApplicationDefinitionImpl define(String name) {
+ return new ApplicationDefinitionImpl(name, this.manager());
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationImpl.java
new file mode 100644
index 0000000000000..0142f1a4d051e
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationImpl.java
@@ -0,0 +1,390 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.implementation;
+
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.Region;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationInner;
+import com.azure.resourcemanager.solutions.models.Application;
+import com.azure.resourcemanager.solutions.models.ApplicationArtifact;
+import com.azure.resourcemanager.solutions.models.ApplicationAuthorization;
+import com.azure.resourcemanager.solutions.models.ApplicationBillingDetailsDefinition;
+import com.azure.resourcemanager.solutions.models.ApplicationClientDetails;
+import com.azure.resourcemanager.solutions.models.ApplicationJitAccessPolicy;
+import com.azure.resourcemanager.solutions.models.ApplicationManagementMode;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageContact;
+import com.azure.resourcemanager.solutions.models.ApplicationPackageSupportUrls;
+import com.azure.resourcemanager.solutions.models.ApplicationPatchable;
+import com.azure.resourcemanager.solutions.models.Identity;
+import com.azure.resourcemanager.solutions.models.Plan;
+import com.azure.resourcemanager.solutions.models.PlanPatchable;
+import com.azure.resourcemanager.solutions.models.ProvisioningState;
+import com.azure.resourcemanager.solutions.models.Sku;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+public final class ApplicationImpl implements Application, Application.Definition, Application.Update {
+ private ApplicationInner innerObject;
+
+ private final com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager;
+
+ public String id() {
+ return this.innerModel().id();
+ }
+
+ public String name() {
+ return this.innerModel().name();
+ }
+
+ public String type() {
+ return this.innerModel().type();
+ }
+
+ public String location() {
+ return this.innerModel().location();
+ }
+
+ public Map tags() {
+ Map inner = this.innerModel().tags();
+ if (inner != null) {
+ return Collections.unmodifiableMap(inner);
+ } else {
+ return Collections.emptyMap();
+ }
+ }
+
+ public String managedBy() {
+ return this.innerModel().managedBy();
+ }
+
+ public Sku sku() {
+ return this.innerModel().sku();
+ }
+
+ public SystemData systemData() {
+ return this.innerModel().systemData();
+ }
+
+ public Plan plan() {
+ return this.innerModel().plan();
+ }
+
+ public String kind() {
+ return this.innerModel().kind();
+ }
+
+ public Identity identity() {
+ return this.innerModel().identity();
+ }
+
+ public String managedResourceGroupId() {
+ return this.innerModel().managedResourceGroupId();
+ }
+
+ public String applicationDefinitionId() {
+ return this.innerModel().applicationDefinitionId();
+ }
+
+ public Object parameters() {
+ return this.innerModel().parameters();
+ }
+
+ public Object outputs() {
+ return this.innerModel().outputs();
+ }
+
+ public ProvisioningState provisioningState() {
+ return this.innerModel().provisioningState();
+ }
+
+ public ApplicationBillingDetailsDefinition billingDetails() {
+ return this.innerModel().billingDetails();
+ }
+
+ public ApplicationJitAccessPolicy jitAccessPolicy() {
+ return this.innerModel().jitAccessPolicy();
+ }
+
+ public String publisherTenantId() {
+ return this.innerModel().publisherTenantId();
+ }
+
+ public List authorizations() {
+ List inner = this.innerModel().authorizations();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public ApplicationManagementMode managementMode() {
+ return this.innerModel().managementMode();
+ }
+
+ public ApplicationPackageContact customerSupport() {
+ return this.innerModel().customerSupport();
+ }
+
+ public ApplicationPackageSupportUrls supportUrls() {
+ return this.innerModel().supportUrls();
+ }
+
+ public List artifacts() {
+ List inner = this.innerModel().artifacts();
+ if (inner != null) {
+ return Collections.unmodifiableList(inner);
+ } else {
+ return Collections.emptyList();
+ }
+ }
+
+ public ApplicationClientDetails createdBy() {
+ return this.innerModel().createdBy();
+ }
+
+ public ApplicationClientDetails updatedBy() {
+ return this.innerModel().updatedBy();
+ }
+
+ public Region region() {
+ return Region.fromName(this.regionName());
+ }
+
+ public String regionName() {
+ return this.location();
+ }
+
+ public ApplicationInner innerModel() {
+ return this.innerObject;
+ }
+
+ private com.azure.resourcemanager.solutions.ManagedApplicationManager manager() {
+ return this.serviceManager;
+ }
+
+ private String resourceGroupName;
+
+ private String applicationName;
+
+ private ApplicationPatchable updateParameters;
+
+ public ApplicationImpl withExistingResourceGroup(String resourceGroupName) {
+ this.resourceGroupName = resourceGroupName;
+ return this;
+ }
+
+ public Application create() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .createOrUpdate(resourceGroupName, applicationName, this.innerModel(), Context.NONE);
+ return this;
+ }
+
+ public Application create(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .createOrUpdate(resourceGroupName, applicationName, this.innerModel(), context);
+ return this;
+ }
+
+ ApplicationImpl(String name, com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerObject = new ApplicationInner();
+ this.serviceManager = serviceManager;
+ this.applicationName = name;
+ }
+
+ public ApplicationImpl update() {
+ this.updateParameters = new ApplicationPatchable();
+ return this;
+ }
+
+ public Application apply() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .updateWithResponse(resourceGroupName, applicationName, updateParameters, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Application apply(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .updateWithResponse(resourceGroupName, applicationName, updateParameters, context)
+ .getValue();
+ return this;
+ }
+
+ ApplicationImpl(
+ ApplicationInner innerObject, com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerObject = innerObject;
+ this.serviceManager = serviceManager;
+ this.resourceGroupName = Utils.getValueFromIdByName(innerObject.id(), "resourceGroups");
+ this.applicationName = Utils.getValueFromIdByName(innerObject.id(), "applications");
+ }
+
+ public Application refresh() {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .getByResourceGroupWithResponse(resourceGroupName, applicationName, Context.NONE)
+ .getValue();
+ return this;
+ }
+
+ public Application refresh(Context context) {
+ this.innerObject =
+ serviceManager
+ .serviceClient()
+ .getApplications()
+ .getByResourceGroupWithResponse(resourceGroupName, applicationName, context)
+ .getValue();
+ return this;
+ }
+
+ public void refreshPermissions() {
+ serviceManager.applications().refreshPermissions(resourceGroupName, applicationName);
+ }
+
+ public void refreshPermissions(Context context) {
+ serviceManager.applications().refreshPermissions(resourceGroupName, applicationName, context);
+ }
+
+ public void listAllowedUpgradePlans() {
+ serviceManager.applications().listAllowedUpgradePlans(resourceGroupName, applicationName);
+ }
+
+ public Response listAllowedUpgradePlansWithResponse(Context context) {
+ return serviceManager
+ .applications()
+ .listAllowedUpgradePlansWithResponse(resourceGroupName, applicationName, context);
+ }
+
+ public ApplicationImpl withRegion(Region location) {
+ this.innerModel().withLocation(location.toString());
+ return this;
+ }
+
+ public ApplicationImpl withRegion(String location) {
+ this.innerModel().withLocation(location);
+ return this;
+ }
+
+ public ApplicationImpl withKind(String kind) {
+ if (isInCreateMode()) {
+ this.innerModel().withKind(kind);
+ return this;
+ } else {
+ this.updateParameters.withKind(kind);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withTags(Map tags) {
+ if (isInCreateMode()) {
+ this.innerModel().withTags(tags);
+ return this;
+ } else {
+ this.updateParameters.withTags(tags);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withManagedBy(String managedBy) {
+ if (isInCreateMode()) {
+ this.innerModel().withManagedBy(managedBy);
+ return this;
+ } else {
+ this.updateParameters.withManagedBy(managedBy);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withSku(Sku sku) {
+ if (isInCreateMode()) {
+ this.innerModel().withSku(sku);
+ return this;
+ } else {
+ this.updateParameters.withSku(sku);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withPlan(Plan plan) {
+ this.innerModel().withPlan(plan);
+ return this;
+ }
+
+ public ApplicationImpl withIdentity(Identity identity) {
+ if (isInCreateMode()) {
+ this.innerModel().withIdentity(identity);
+ return this;
+ } else {
+ this.updateParameters.withIdentity(identity);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withManagedResourceGroupId(String managedResourceGroupId) {
+ if (isInCreateMode()) {
+ this.innerModel().withManagedResourceGroupId(managedResourceGroupId);
+ return this;
+ } else {
+ this.updateParameters.withManagedResourceGroupId(managedResourceGroupId);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withApplicationDefinitionId(String applicationDefinitionId) {
+ if (isInCreateMode()) {
+ this.innerModel().withApplicationDefinitionId(applicationDefinitionId);
+ return this;
+ } else {
+ this.updateParameters.withApplicationDefinitionId(applicationDefinitionId);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withParameters(Object parameters) {
+ if (isInCreateMode()) {
+ this.innerModel().withParameters(parameters);
+ return this;
+ } else {
+ this.updateParameters.withParameters(parameters);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withJitAccessPolicy(ApplicationJitAccessPolicy jitAccessPolicy) {
+ if (isInCreateMode()) {
+ this.innerModel().withJitAccessPolicy(jitAccessPolicy);
+ return this;
+ } else {
+ this.updateParameters.withJitAccessPolicy(jitAccessPolicy);
+ return this;
+ }
+ }
+
+ public ApplicationImpl withPlan(PlanPatchable plan) {
+ this.updateParameters.withPlan(plan);
+ return this;
+ }
+
+ private boolean isInCreateMode() {
+ return this.innerModel().id() == null;
+ }
+}
diff --git a/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsClientImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsClientImpl.java
new file mode 100644
index 0000000000000..d6fe8c7b4984f
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsClientImpl.java
@@ -0,0 +1,1878 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.implementation;
+
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+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.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.Put;
+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.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.solutions.fluent.ApplicationsClient;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationInner;
+import com.azure.resourcemanager.solutions.models.ApplicationListResult;
+import com.azure.resourcemanager.solutions.models.ApplicationPatchable;
+import java.nio.ByteBuffer;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+/** An instance of this class provides access to all the operations defined in ApplicationsClient. */
+public final class ApplicationsClientImpl implements ApplicationsClient {
+ private final ClientLogger logger = new ClientLogger(ApplicationsClientImpl.class);
+
+ /** The proxy service used to perform REST calls. */
+ private final ApplicationsService service;
+
+ /** The service client containing this operation class. */
+ private final ManagedApplicationManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ApplicationsClientImpl.
+ *
+ * @param client the instance of the service client containing this operation class.
+ */
+ ApplicationsClientImpl(ManagedApplicationManagementClientImpl client) {
+ this.service =
+ RestProxy.create(ApplicationsService.class, client.getHttpPipeline(), client.getSerializerAdapter());
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ManagedApplicationManagementClientApplications to be used by the
+ * proxy service to perform REST calls.
+ */
+ @Host("{$host}")
+ @ServiceInterface(name = "ManagedApplicationMa")
+ private interface ApplicationsService {
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> getByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Delete(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}")
+ @ExpectedResponses({200, 204})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> delete(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Put(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}")
+ @ExpectedResponses({200, 201})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> createOrUpdate(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @BodyParam("application/json") ApplicationInner parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Patch(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> update(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @BodyParam("application/json") ApplicationPatchable parameters,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroup(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("/subscriptions/{subscriptionId}/providers/Microsoft.Solutions/applications")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> list(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @QueryParam("api-version") String apiVersion,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}/refreshPermissions")
+ @ExpectedResponses({200, 202})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono>> refreshPermissions(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Post(
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions"
+ + "/applications/{applicationName}/listAllowedUpgradePlans")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listAllowedUpgradePlans(
+ @HostParam("$host") String endpoint,
+ @PathParam("subscriptionId") String subscriptionId,
+ @PathParam("resourceGroupName") String resourceGroupName,
+ @QueryParam("api-version") String apiVersion,
+ @PathParam("applicationName") String applicationName,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listByResourceGroupNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+
+ @Headers({"Content-Type: application/json"})
+ @Get("{nextLink}")
+ @ExpectedResponses({200})
+ @UnexpectedResponseExceptionType(ManagementException.class)
+ Mono> listBySubscriptionNext(
+ @PathParam(value = "nextLink", encoded = true) String nextLink,
+ @HostParam("$host") String endpoint,
+ @HeaderParam("Accept") String accept,
+ Context context);
+ }
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String applicationName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> getByResourceGroupWithResponseAsync(
+ String resourceGroupName, String applicationName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .getByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context);
+ }
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono getByResourceGroupAsync(String resourceGroupName, String applicationName) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, applicationName)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationInner getByResourceGroup(String resourceGroupName, String applicationName) {
+ return getByResourceGroupAsync(resourceGroupName, applicationName).block();
+ }
+
+ /**
+ * Gets the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationName, Context context) {
+ return getByResourceGroupWithResponseAsync(resourceGroupName, applicationName, context).block();
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(String resourceGroupName, String applicationName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> deleteWithResponseAsync(
+ String resourceGroupName, String applicationName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .delete(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context);
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(String resourceGroupName, String applicationName) {
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, applicationName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginDeleteAsync(
+ String resourceGroupName, String applicationName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono = deleteWithResponseAsync(resourceGroupName, applicationName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(String resourceGroupName, String applicationName) {
+ return beginDeleteAsync(resourceGroupName, applicationName).getSyncPoller();
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginDelete(
+ String resourceGroupName, String applicationName, Context context) {
+ return beginDeleteAsync(resourceGroupName, applicationName, context).getSyncPoller();
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String applicationName) {
+ return beginDeleteAsync(resourceGroupName, applicationName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono deleteAsync(String resourceGroupName, String applicationName, Context context) {
+ return beginDeleteAsync(resourceGroupName, applicationName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String applicationName) {
+ deleteAsync(resourceGroupName, applicationName).block();
+ }
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void delete(String resourceGroupName, String applicationName, Context context) {
+ deleteAsync(resourceGroupName, applicationName, context).block();
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> createOrUpdateWithResponseAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ if (parameters == null) {
+ return Mono.error(new IllegalArgumentException("Parameter parameters is required and cannot be null."));
+ } else {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .createOrUpdate(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ApplicationInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters) {
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, applicationName, parameters);
+ return this
+ .client
+ .getLroResult(
+ mono,
+ this.client.getHttpPipeline(),
+ ApplicationInner.class,
+ ApplicationInner.class,
+ this.client.getContext());
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, ApplicationInner> beginCreateOrUpdateAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ createOrUpdateWithResponseAsync(resourceGroupName, applicationName, parameters, context);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), ApplicationInner.class, ApplicationInner.class, context);
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ApplicationInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationName, parameters).getSyncPoller();
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, ApplicationInner> beginCreateOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationName, parameters, context).getSyncPoller();
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationName, parameters)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono createOrUpdateAsync(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context) {
+ return beginCreateOrUpdateAsync(resourceGroupName, applicationName, parameters, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationInner createOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters) {
+ return createOrUpdateAsync(resourceGroupName, applicationName, parameters).block();
+ }
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationInner createOrUpdate(
+ String resourceGroupName, String applicationName, ApplicationInner parameters, Context context) {
+ return createOrUpdateAsync(resourceGroupName, applicationName, parameters, context).block();
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to update an existing managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String applicationName, ApplicationPatchable parameters) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ if (parameters != null) {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ parameters,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to update an existing managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> updateWithResponseAsync(
+ String resourceGroupName, String applicationName, ApplicationPatchable parameters, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ if (parameters != null) {
+ parameters.validate();
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .update(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ parameters,
+ accept,
+ context);
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to update an existing managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(
+ String resourceGroupName, String applicationName, ApplicationPatchable parameters) {
+ return updateWithResponseAsync(resourceGroupName, applicationName, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono updateAsync(String resourceGroupName, String applicationName) {
+ final ApplicationPatchable parameters = null;
+ return updateWithResponseAsync(resourceGroupName, applicationName, parameters)
+ .flatMap(
+ (Response res) -> {
+ if (res.getValue() != null) {
+ return Mono.just(res.getValue());
+ } else {
+ return Mono.empty();
+ }
+ });
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public ApplicationInner update(String resourceGroupName, String applicationName) {
+ final ApplicationPatchable parameters = null;
+ return updateAsync(resourceGroupName, applicationName, parameters).block();
+ }
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @param parameters Parameters supplied to update an existing managed application.
+ * @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 information about managed application.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response updateWithResponse(
+ String resourceGroupName, String applicationName, ApplicationPatchable parameters, Context context) {
+ return updateWithResponseAsync(resourceGroupName, applicationName, parameters, context).block();
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(String resourceGroupName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ 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()));
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupSinglePageAsync(
+ String resourceGroupName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listByResourceGroup(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listByResourceGroupAsync(String resourceGroupName, Context context) {
+ return new PagedFlux<>(
+ () -> listByResourceGroupSinglePageAsync(resourceGroupName, context),
+ nextLink -> listByResourceGroupNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @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 all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName));
+ }
+
+ /**
+ * Gets all the applications within a resource group.
+ *
+ * @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 ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all the applications within a resource group.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ return new PagedIterable<>(listByResourceGroupAsync(resourceGroupName, context));
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync() {
+ 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."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ 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()));
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listSinglePageAsync(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."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .list(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ this.client.getApiVersion(),
+ accept,
+ context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync() {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink));
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ private PagedFlux listAsync(Context context) {
+ return new PagedFlux<>(
+ () -> listSinglePageAsync(context), nextLink -> listBySubscriptionNextSinglePageAsync(nextLink, context));
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list() {
+ return new PagedIterable<>(listAsync());
+ }
+
+ /**
+ * Gets all the applications within a subscription.
+ *
+ * @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 all the applications within a subscription.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ public PagedIterable list(Context context) {
+ return new PagedIterable<>(listAsync(context));
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> refreshPermissionsWithResponseAsync(
+ String resourceGroupName, String applicationName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .refreshPermissions(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono>> refreshPermissionsWithResponseAsync(
+ String resourceGroupName, String applicationName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .refreshPermissions(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context);
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginRefreshPermissionsAsync(
+ String resourceGroupName, String applicationName) {
+ Mono>> mono = refreshPermissionsWithResponseAsync(resourceGroupName, applicationName);
+ return this
+ .client
+ .getLroResult(
+ mono, this.client.getHttpPipeline(), Void.class, Void.class, this.client.getContext());
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ private PollerFlux, Void> beginRefreshPermissionsAsync(
+ String resourceGroupName, String applicationName, Context context) {
+ context = this.client.mergeContext(context);
+ Mono>> mono =
+ refreshPermissionsWithResponseAsync(resourceGroupName, applicationName, context);
+ return this
+ .client
+ .getLroResult(mono, this.client.getHttpPipeline(), Void.class, Void.class, context);
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginRefreshPermissions(
+ String resourceGroupName, String applicationName) {
+ return beginRefreshPermissionsAsync(resourceGroupName, applicationName).getSyncPoller();
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ public SyncPoller, Void> beginRefreshPermissions(
+ String resourceGroupName, String applicationName, Context context) {
+ return beginRefreshPermissionsAsync(resourceGroupName, applicationName, context).getSyncPoller();
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono refreshPermissionsAsync(String resourceGroupName, String applicationName) {
+ return beginRefreshPermissionsAsync(resourceGroupName, applicationName)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono refreshPermissionsAsync(String resourceGroupName, String applicationName, Context context) {
+ return beginRefreshPermissionsAsync(resourceGroupName, applicationName, context)
+ .last()
+ .flatMap(this.client::getLroFinalResultOrError);
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void refreshPermissions(String resourceGroupName, String applicationName) {
+ refreshPermissionsAsync(resourceGroupName, applicationName).block();
+ }
+
+ /**
+ * Refresh Permissions for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void refreshPermissions(String resourceGroupName, String applicationName, Context context) {
+ refreshPermissionsAsync(resourceGroupName, applicationName, context).block();
+ }
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listAllowedUpgradePlansWithResponseAsync(
+ String resourceGroupName, String applicationName) {
+ 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ return FluxUtil
+ .withContext(
+ context ->
+ service
+ .listAllowedUpgradePlans(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context))
+ .contextWrite(context -> context.putAll(FluxUtil.toReactorContext(this.client.getContext()).readOnly()));
+ }
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listAllowedUpgradePlansWithResponseAsync(
+ String resourceGroupName, String applicationName, 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 (resourceGroupName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null."));
+ }
+ if (applicationName == null) {
+ return Mono
+ .error(new IllegalArgumentException("Parameter applicationName is required and cannot be null."));
+ }
+ final String accept = "application/json";
+ context = this.client.mergeContext(context);
+ return service
+ .listAllowedUpgradePlans(
+ this.client.getEndpoint(),
+ this.client.getSubscriptionId(),
+ resourceGroupName,
+ this.client.getApiVersion(),
+ applicationName,
+ accept,
+ context);
+ }
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 completion.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono listAllowedUpgradePlansAsync(String resourceGroupName, String applicationName) {
+ return listAllowedUpgradePlansWithResponseAsync(resourceGroupName, applicationName)
+ .flatMap((Response res) -> Mono.empty());
+ }
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public void listAllowedUpgradePlans(String resourceGroupName, String applicationName) {
+ listAllowedUpgradePlansAsync(resourceGroupName, applicationName).block();
+ }
+
+ /**
+ * List allowed upgrade plans for application.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param applicationName The name of the managed application.
+ * @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 response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ public Response listAllowedUpgradePlansWithResponse(
+ String resourceGroupName, String applicationName, Context context) {
+ return listAllowedUpgradePlansWithResponseAsync(resourceGroupName, applicationName, 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 list of managed applications.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(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.listByResourceGroupNext(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 list of managed applications.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listByResourceGroupNextSinglePageAsync(
+ 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
+ .listByResourceGroupNext(nextLink, this.client.getEndpoint(), accept, context)
+ .map(
+ res ->
+ new PagedResponseBase<>(
+ res.getRequest(),
+ res.getStatusCode(),
+ res.getHeaders(),
+ res.getValue().value(),
+ res.getValue().nextLink(),
+ null));
+ }
+
+ /**
+ * 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 list of managed applications.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(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.listBySubscriptionNext(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 list of managed applications.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ private Mono> listBySubscriptionNextSinglePageAsync(
+ 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
+ .listBySubscriptionNext(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/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsImpl.java b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsImpl.java
new file mode 100644
index 0000000000000..16900609747ee
--- /dev/null
+++ b/sdk/solutions/azure-resourcemanager-solutions/src/main/java/com/azure/resourcemanager/solutions/implementation/ApplicationsImpl.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.solutions.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.solutions.fluent.ApplicationsClient;
+import com.azure.resourcemanager.solutions.fluent.models.ApplicationInner;
+import com.azure.resourcemanager.solutions.models.Application;
+import com.azure.resourcemanager.solutions.models.Applications;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public final class ApplicationsImpl implements Applications {
+ @JsonIgnore private final ClientLogger logger = new ClientLogger(ApplicationsImpl.class);
+
+ private final ApplicationsClient innerClient;
+
+ private final com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager;
+
+ public ApplicationsImpl(
+ ApplicationsClient innerClient, com.azure.resourcemanager.solutions.ManagedApplicationManager serviceManager) {
+ this.innerClient = innerClient;
+ this.serviceManager = serviceManager;
+ }
+
+ public Application getByResourceGroup(String resourceGroupName, String applicationName) {
+ ApplicationInner inner = this.serviceClient().getByResourceGroup(resourceGroupName, applicationName);
+ if (inner != null) {
+ return new ApplicationImpl(inner, this.manager());
+ } else {
+ return null;
+ }
+ }
+
+ public Response getByResourceGroupWithResponse(
+ String resourceGroupName, String applicationName, Context context) {
+ Response inner =
+ this.serviceClient().getByResourceGroupWithResponse(resourceGroupName, applicationName, context);
+ if (inner != null) {
+ return new SimpleResponse<>(
+ inner.getRequest(),
+ inner.getStatusCode(),
+ inner.getHeaders(),
+ new ApplicationImpl(inner.getValue(), this.manager()));
+ } else {
+ return null;
+ }
+ }
+
+ public void deleteByResourceGroup(String resourceGroupName, String applicationName) {
+ this.serviceClient().delete(resourceGroupName, applicationName);
+ }
+
+ public void delete(String resourceGroupName, String applicationName, Context context) {
+ this.serviceClient().delete(resourceGroupName, applicationName, context);
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName) {
+ PagedIterable inner = this.serviceClient().listByResourceGroup(resourceGroupName);
+ return Utils.mapPage(inner, inner1 -> new ApplicationImpl(inner1, this.manager()));
+ }
+
+ public PagedIterable listByResourceGroup(String resourceGroupName, Context context) {
+ PagedIterable