diff --git a/sdk/managedapplications/mgmt-v2019_07_01/pom.xml b/sdk/managedapplications/mgmt-v2019_07_01/pom.xml
new file mode 100644
index 000000000000..715d003c8228
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.managedapplications.v2019_07_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-managedapplications
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Solutions Management
+ This package contains Microsoft Solutions Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+
* Copyright (c) Microsoft Corporation. All rights reserved.
+
* Licensed under the MIT License. See License.txt in the project root for
+
* license information.
+
*/
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Application.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Application.java
new file mode 100644
index 000000000000..b458dd52a5c8
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Application.java
@@ -0,0 +1,373 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ManagedApplicationsManager;
+import java.util.List;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationInner;
+
+/**
+ * Type representing Application.
+ */
+public interface Application extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationDefinitionId value.
+ */
+ String applicationDefinitionId();
+
+ /**
+ * @return the artifacts value.
+ */
+ List artifacts();
+
+ /**
+ * @return the authorizations value.
+ */
+ List authorizations();
+
+ /**
+ * @return the billingDetails value.
+ */
+ ApplicationBillingDetailsDefinition billingDetails();
+
+ /**
+ * @return the createdBy value.
+ */
+ ApplicationClientDetails createdBy();
+
+ /**
+ * @return the customerSupport value.
+ */
+ ApplicationPackageContact customerSupport();
+
+ /**
+ * @return the identity value.
+ */
+ Identity identity();
+
+ /**
+ * @return the jitAccessPolicy value.
+ */
+ ApplicationJitAccessPolicy jitAccessPolicy();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the managedBy value.
+ */
+ String managedBy();
+
+ /**
+ * @return the managedResourceGroupId value.
+ */
+ String managedResourceGroupId();
+
+ /**
+ * @return the managementMode value.
+ */
+ ApplicationManagementMode managementMode();
+
+ /**
+ * @return the outputs value.
+ */
+ Object outputs();
+
+ /**
+ * @return the parameters value.
+ */
+ Object parameters();
+
+ /**
+ * @return the plan value.
+ */
+ Plan plan();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the publisherTenantId value.
+ */
+ String publisherTenantId();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the supportUrls value.
+ */
+ ApplicationPackageSupportUrls supportUrls();
+
+ /**
+ * @return the updatedBy value.
+ */
+ ApplicationClientDetails updatedBy();
+
+ /**
+ * The entirety of the Application definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithKind, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Application definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Application definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Application definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog
+ * @return the next definition stage
+*/
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify ApplicationDefinitionId.
+ */
+ interface WithApplicationDefinitionId {
+ /**
+ * Specifies applicationDefinitionId.
+ * @param applicationDefinitionId The fully qualified path of managed application definition Id
+ * @return the next definition stage
+ */
+ WithCreate withApplicationDefinitionId(String applicationDefinitionId);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the resource
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(Identity identity);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify JitAccessPolicy.
+ */
+ interface WithJitAccessPolicy {
+ /**
+ * Specifies jitAccessPolicy.
+ * @param jitAccessPolicy The managed application Jit access policy
+ * @return the next definition stage
+ */
+ WithCreate withJitAccessPolicy(ApplicationJitAccessPolicy jitAccessPolicy);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify ManagedBy.
+ */
+ interface WithManagedBy {
+ /**
+ * Specifies managedBy.
+ * @param managedBy ID of the resource that manages this resource
+ * @return the next definition stage
+ */
+ WithCreate withManagedBy(String managedBy);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify ManagedResourceGroupId.
+ */
+ interface WithManagedResourceGroupId {
+ /**
+ * Specifies managedResourceGroupId.
+ * @param managedResourceGroupId The managed resource group Id
+ * @return the next definition stage
+ */
+ WithCreate withManagedResourceGroupId(String managedResourceGroupId);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Parameters.
+ */
+ interface WithParameters {
+ /**
+ * Specifies parameters.
+ * @param parameters Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string
+ * @return the next definition stage
+ */
+ WithCreate withParameters(Object parameters);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Plan.
+ */
+ interface WithPlan {
+ /**
+ * Specifies plan.
+ * @param plan The plan information
+ * @return the next definition stage
+ */
+ WithCreate withPlan(Plan plan);
+ }
+
+ /**
+ * The stage of the application definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the resource
+ * @return the next definition stage
+ */
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithApplicationDefinitionId, DefinitionStages.WithIdentity, DefinitionStages.WithJitAccessPolicy, DefinitionStages.WithManagedBy, DefinitionStages.WithManagedResourceGroupId, DefinitionStages.WithParameters, DefinitionStages.WithPlan, DefinitionStages.WithSku {
+ }
+ }
+ /**
+ * The template for a Application update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithApplicationDefinitionId, UpdateStages.WithIdentity, UpdateStages.WithJitAccessPolicy, UpdateStages.WithManagedBy, UpdateStages.WithManagedResourceGroupId, UpdateStages.WithParameters, UpdateStages.WithPlan, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of Application update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the application update allowing to specify ApplicationDefinitionId.
+ */
+ interface WithApplicationDefinitionId {
+ /**
+ * Specifies applicationDefinitionId.
+ * @param applicationDefinitionId The fully qualified path of managed application definition Id
+ * @return the next update stage
+ */
+ Update withApplicationDefinitionId(String applicationDefinitionId);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the resource
+ * @return the next update stage
+ */
+ Update withIdentity(Identity identity);
+ }
+
+ /**
+ * The stage of the application update allowing to specify JitAccessPolicy.
+ */
+ interface WithJitAccessPolicy {
+ /**
+ * Specifies jitAccessPolicy.
+ * @param jitAccessPolicy The managed application Jit access policy
+ * @return the next update stage
+ */
+ Update withJitAccessPolicy(ApplicationJitAccessPolicy jitAccessPolicy);
+ }
+
+ /**
+ * The stage of the application update allowing to specify ManagedBy.
+ */
+ interface WithManagedBy {
+ /**
+ * Specifies managedBy.
+ * @param managedBy ID of the resource that manages this resource
+ * @return the next update stage
+ */
+ Update withManagedBy(String managedBy);
+ }
+
+ /**
+ * The stage of the application update allowing to specify ManagedResourceGroupId.
+ */
+ interface WithManagedResourceGroupId {
+ /**
+ * Specifies managedResourceGroupId.
+ * @param managedResourceGroupId The managed resource group Id
+ * @return the next update stage
+ */
+ Update withManagedResourceGroupId(String managedResourceGroupId);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Parameters.
+ */
+ interface WithParameters {
+ /**
+ * Specifies parameters.
+ * @param parameters Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string
+ * @return the next update stage
+ */
+ Update withParameters(Object parameters);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Plan.
+ */
+ interface WithPlan {
+ /**
+ * Specifies plan.
+ * @param plan The plan information
+ * @return the next update stage
+ */
+ Update withPlan(Plan plan);
+ }
+
+ /**
+ * The stage of the application update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the resource
+ * @return the next update stage
+ */
+ Update withSku(Sku sku);
+ }
+
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifact.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifact.java
new file mode 100644
index 000000000000..8b535b3c719e
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifact.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application artifact.
+ */
+public class ApplicationArtifact {
+ /**
+ * The managed application artifact name. Possible values include:
+ * 'NotSpecified', 'ViewDefinition', 'Authorizations',
+ * 'CustomRoleDefinition'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private ApplicationArtifactName name;
+
+ /**
+ * The managed application artifact blob uri.
+ */
+ @JsonProperty(value = "uri", required = true)
+ private String uri;
+
+ /**
+ * The managed application artifact type. Possible values include:
+ * 'NotSpecified', 'Template', 'Custom'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private ApplicationArtifactType type;
+
+ /**
+ * Get the managed application artifact name. Possible values include: 'NotSpecified', 'ViewDefinition', 'Authorizations', 'CustomRoleDefinition'.
+ *
+ * @return the name value
+ */
+ public ApplicationArtifactName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the managed application artifact name. Possible values include: 'NotSpecified', 'ViewDefinition', 'Authorizations', 'CustomRoleDefinition'.
+ *
+ * @param name the name value to set
+ * @return the ApplicationArtifact object itself.
+ */
+ public ApplicationArtifact withName(ApplicationArtifactName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the managed application artifact blob uri.
+ *
+ * @return the uri value
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Set the managed application artifact blob uri.
+ *
+ * @param uri the uri value to set
+ * @return the ApplicationArtifact object itself.
+ */
+ public ApplicationArtifact withUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Get the managed application artifact type. Possible values include: 'NotSpecified', 'Template', 'Custom'.
+ *
+ * @return the type value
+ */
+ public ApplicationArtifactType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the managed application artifact type. Possible values include: 'NotSpecified', 'Template', 'Custom'.
+ *
+ * @param type the type value to set
+ * @return the ApplicationArtifact object itself.
+ */
+ public ApplicationArtifact withType(ApplicationArtifactType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactName.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactName.java
new file mode 100644
index 000000000000..acc44908861c
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactName.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationArtifactName.
+ */
+public final class ApplicationArtifactName extends ExpandableStringEnum {
+ /** Static value NotSpecified for ApplicationArtifactName. */
+ public static final ApplicationArtifactName NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value ViewDefinition for ApplicationArtifactName. */
+ public static final ApplicationArtifactName VIEW_DEFINITION = fromString("ViewDefinition");
+
+ /** Static value Authorizations for ApplicationArtifactName. */
+ public static final ApplicationArtifactName AUTHORIZATIONS = fromString("Authorizations");
+
+ /** Static value CustomRoleDefinition for ApplicationArtifactName. */
+ public static final ApplicationArtifactName CUSTOM_ROLE_DEFINITION = fromString("CustomRoleDefinition");
+
+ /**
+ * Creates or finds a ApplicationArtifactName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationArtifactName
+ */
+ @JsonCreator
+ public static ApplicationArtifactName fromString(String name) {
+ return fromString(name, ApplicationArtifactName.class);
+ }
+
+ /**
+ * @return known ApplicationArtifactName values
+ */
+ public static Collection values() {
+ return values(ApplicationArtifactName.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactType.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactType.java
new file mode 100644
index 000000000000..1fda54509b04
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationArtifactType.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ApplicationArtifactType.
+ */
+public enum ApplicationArtifactType {
+ /** Enum value NotSpecified. */
+ NOT_SPECIFIED("NotSpecified"),
+
+ /** Enum value Template. */
+ TEMPLATE("Template"),
+
+ /** Enum value Custom. */
+ CUSTOM("Custom");
+
+ /** The actual serialized value for a ApplicationArtifactType instance. */
+ private String value;
+
+ ApplicationArtifactType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ApplicationArtifactType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ApplicationArtifactType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ApplicationArtifactType fromString(String value) {
+ ApplicationArtifactType[] items = ApplicationArtifactType.values();
+ for (ApplicationArtifactType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationAuthorization.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationAuthorization.java
new file mode 100644
index 000000000000..2776b2a29fe4
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationAuthorization.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The managed application provider authorization.
+ */
+public class ApplicationAuthorization {
+ /**
+ * The provider's principal identifier. This is the identity that the
+ * provider will use to call ARM to manage the managed application
+ * resources.
+ */
+ @JsonProperty(value = "principalId", required = true)
+ private String principalId;
+
+ /**
+ * The provider's role definition identifier. This role will define all the
+ * permissions that the provider must have on the managed application's
+ * container resource group. This role definition cannot have permission to
+ * delete the resource group.
+ */
+ @JsonProperty(value = "roleDefinitionId", required = true)
+ private String roleDefinitionId;
+
+ /**
+ * Get the provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the provider's principal identifier. This is the identity that the provider will use to call ARM to manage the managed application resources.
+ *
+ * @param principalId the principalId value to set
+ * @return the ApplicationAuthorization object itself.
+ */
+ public ApplicationAuthorization withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group.
+ *
+ * @return the roleDefinitionId value
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the provider's role definition identifier. This role will define all the permissions that the provider must have on the managed application's container resource group. This role definition cannot have permission to delete the resource group.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set
+ * @return the ApplicationAuthorization object itself.
+ */
+ public ApplicationAuthorization withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationBillingDetailsDefinition.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationBillingDetailsDefinition.java
new file mode 100644
index 000000000000..a396d992adf9
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationBillingDetailsDefinition.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application billing details definition.
+ */
+public class ApplicationBillingDetailsDefinition {
+ /**
+ * The managed application resource usage Id.
+ */
+ @JsonProperty(value = "resourceUsageId")
+ private String resourceUsageId;
+
+ /**
+ * Get the managed application resource usage Id.
+ *
+ * @return the resourceUsageId value
+ */
+ public String resourceUsageId() {
+ return this.resourceUsageId;
+ }
+
+ /**
+ * Set the managed application resource usage Id.
+ *
+ * @param resourceUsageId the resourceUsageId value to set
+ * @return the ApplicationBillingDetailsDefinition object itself.
+ */
+ public ApplicationBillingDetailsDefinition withResourceUsageId(String resourceUsageId) {
+ this.resourceUsageId = resourceUsageId;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationClientDetails.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationClientDetails.java
new file mode 100644
index 000000000000..50ecce8bdf09
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationClientDetails.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The application client details to track the entity creating/updating the
+ * managed app resource.
+ */
+public class ApplicationClientDetails {
+ /**
+ * The client Oid.
+ */
+ @JsonProperty(value = "oid")
+ private String oid;
+
+ /**
+ * The client Puid.
+ */
+ @JsonProperty(value = "puid")
+ private String puid;
+
+ /**
+ * The client application Id.
+ */
+ @JsonProperty(value = "applicationId")
+ private String applicationId;
+
+ /**
+ * Get the client Oid.
+ *
+ * @return the oid value
+ */
+ public String oid() {
+ return this.oid;
+ }
+
+ /**
+ * Set the client Oid.
+ *
+ * @param oid the oid value to set
+ * @return the ApplicationClientDetails object itself.
+ */
+ public ApplicationClientDetails withOid(String oid) {
+ this.oid = oid;
+ return this;
+ }
+
+ /**
+ * Get the client Puid.
+ *
+ * @return the puid value
+ */
+ public String puid() {
+ return this.puid;
+ }
+
+ /**
+ * Set the client Puid.
+ *
+ * @param puid the puid value to set
+ * @return the ApplicationClientDetails object itself.
+ */
+ public ApplicationClientDetails withPuid(String puid) {
+ this.puid = puid;
+ return this;
+ }
+
+ /**
+ * Get the client application Id.
+ *
+ * @return the applicationId value
+ */
+ public String applicationId() {
+ return this.applicationId;
+ }
+
+ /**
+ * Set the client application Id.
+ *
+ * @param applicationId the applicationId value to set
+ * @return the ApplicationClientDetails object itself.
+ */
+ public ApplicationClientDetails withApplicationId(String applicationId) {
+ this.applicationId = applicationId;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinition.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinition.java
new file mode 100644
index 000000000000..bfb1a931bfd8
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinition.java
@@ -0,0 +1,521 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ManagedApplicationsManager;
+import java.util.List;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationDefinitionInner;
+
+/**
+ * Type representing ApplicationDefinition.
+ */
+public interface ApplicationDefinition extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the artifacts value.
+ */
+ List artifacts();
+
+ /**
+ * @return the authorizations value.
+ */
+ List authorizations();
+
+ /**
+ * @return the createUiDefinition value.
+ */
+ Object createUiDefinition();
+
+ /**
+ * @return the deploymentPolicy value.
+ */
+ ApplicationDeploymentPolicy deploymentPolicy();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the isEnabled value.
+ */
+ Boolean isEnabled();
+
+ /**
+ * @return the lockingPolicy value.
+ */
+ ApplicationPackageLockingPolicyDefinition lockingPolicy();
+
+ /**
+ * @return the lockLevel value.
+ */
+ ApplicationLockLevel lockLevel();
+
+ /**
+ * @return the mainTemplate value.
+ */
+ Object mainTemplate();
+
+ /**
+ * @return the managedBy value.
+ */
+ String managedBy();
+
+ /**
+ * @return the managementPolicy value.
+ */
+ ApplicationManagementPolicy managementPolicy();
+
+ /**
+ * @return the notificationPolicy value.
+ */
+ ApplicationNotificationPolicy notificationPolicy();
+
+ /**
+ * @return the packageFileUri value.
+ */
+ String packageFileUri();
+
+ /**
+ * @return the policies value.
+ */
+ List policies();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * The entirety of the ApplicationDefinition definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithLockLevel, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApplicationDefinition definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApplicationDefinition definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ApplicationDefinition definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify LockLevel.
+ */
+ interface WithLockLevel {
+ /**
+ * Specifies lockLevel.
+ * @param lockLevel The managed application lock level. Possible values include: 'CanNotDelete', 'ReadOnly', 'None'
+ * @return the next definition stage
+*/
+ WithCreate withLockLevel(ApplicationLockLevel lockLevel);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify Artifacts.
+ */
+ interface WithArtifacts {
+ /**
+ * Specifies artifacts.
+ * @param artifacts 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 next definition stage
+ */
+ WithCreate withArtifacts(List artifacts);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify Authorizations.
+ */
+ interface WithAuthorizations {
+ /**
+ * Specifies authorizations.
+ * @param authorizations The managed application provider authorizations
+ * @return the next definition stage
+ */
+ WithCreate withAuthorizations(List authorizations);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify CreateUiDefinition.
+ */
+ interface WithCreateUiDefinition {
+ /**
+ * Specifies createUiDefinition.
+ * @param createUiDefinition The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string
+ * @return the next definition stage
+ */
+ WithCreate withCreateUiDefinition(Object createUiDefinition);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify DeploymentPolicy.
+ */
+ interface WithDeploymentPolicy {
+ /**
+ * Specifies deploymentPolicy.
+ * @param deploymentPolicy The managed application deployment policy
+ * @return the next definition stage
+ */
+ WithCreate withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The managed application definition description
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName The managed application definition display name
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify IsEnabled.
+ */
+ interface WithIsEnabled {
+ /**
+ * Specifies isEnabled.
+ * @param isEnabled A value indicating whether the package is enabled or not
+ * @return the next definition stage
+ */
+ WithCreate withIsEnabled(Boolean isEnabled);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify LockingPolicy.
+ */
+ interface WithLockingPolicy {
+ /**
+ * Specifies lockingPolicy.
+ * @param lockingPolicy The managed application locking policy
+ * @return the next definition stage
+ */
+ WithCreate withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify MainTemplate.
+ */
+ interface WithMainTemplate {
+ /**
+ * Specifies mainTemplate.
+ * @param mainTemplate The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string
+ * @return the next definition stage
+ */
+ WithCreate withMainTemplate(Object mainTemplate);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify ManagedBy.
+ */
+ interface WithManagedBy {
+ /**
+ * Specifies managedBy.
+ * @param managedBy ID of the resource that manages this resource
+ * @return the next definition stage
+ */
+ WithCreate withManagedBy(String managedBy);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify ManagementPolicy.
+ */
+ interface WithManagementPolicy {
+ /**
+ * Specifies managementPolicy.
+ * @param managementPolicy The managed application management policy that determines publisher's access to the managed resource group
+ * @return the next definition stage
+ */
+ WithCreate withManagementPolicy(ApplicationManagementPolicy managementPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify NotificationPolicy.
+ */
+ interface WithNotificationPolicy {
+ /**
+ * Specifies notificationPolicy.
+ * @param notificationPolicy The managed application notification policy
+ * @return the next definition stage
+ */
+ WithCreate withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify PackageFileUri.
+ */
+ interface WithPackageFileUri {
+ /**
+ * Specifies packageFileUri.
+ * @param packageFileUri The managed application definition package file Uri. Use this element
+ * @return the next definition stage
+ */
+ WithCreate withPackageFileUri(String packageFileUri);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify Policies.
+ */
+ interface WithPolicies {
+ /**
+ * Specifies policies.
+ * @param policies The managed application provider policies
+ * @return the next definition stage
+ */
+ WithCreate withPolicies(List policies);
+ }
+
+ /**
+ * The stage of the applicationdefinition definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the resource
+ * @return the next definition stage
+ */
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithArtifacts, DefinitionStages.WithAuthorizations, DefinitionStages.WithCreateUiDefinition, DefinitionStages.WithDeploymentPolicy, DefinitionStages.WithDescription, DefinitionStages.WithDisplayName, DefinitionStages.WithIsEnabled, DefinitionStages.WithLockingPolicy, DefinitionStages.WithMainTemplate, DefinitionStages.WithManagedBy, DefinitionStages.WithManagementPolicy, DefinitionStages.WithNotificationPolicy, DefinitionStages.WithPackageFileUri, DefinitionStages.WithPolicies, DefinitionStages.WithSku {
+ }
+ }
+ /**
+ * The template for a ApplicationDefinition update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithArtifacts, UpdateStages.WithAuthorizations, UpdateStages.WithCreateUiDefinition, UpdateStages.WithDeploymentPolicy, UpdateStages.WithDescription, UpdateStages.WithDisplayName, UpdateStages.WithIsEnabled, UpdateStages.WithLockingPolicy, UpdateStages.WithMainTemplate, UpdateStages.WithManagedBy, UpdateStages.WithManagementPolicy, UpdateStages.WithNotificationPolicy, UpdateStages.WithPackageFileUri, UpdateStages.WithPolicies, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of ApplicationDefinition update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the applicationdefinition update allowing to specify Artifacts.
+ */
+ interface WithArtifacts {
+ /**
+ * Specifies artifacts.
+ * @param artifacts 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 next update stage
+ */
+ Update withArtifacts(List artifacts);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify Authorizations.
+ */
+ interface WithAuthorizations {
+ /**
+ * Specifies authorizations.
+ * @param authorizations The managed application provider authorizations
+ * @return the next update stage
+ */
+ Update withAuthorizations(List authorizations);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify CreateUiDefinition.
+ */
+ interface WithCreateUiDefinition {
+ /**
+ * Specifies createUiDefinition.
+ * @param createUiDefinition The createUiDefinition json for the backing template with Microsoft.Solutions/applications resource. It can be a JObject or well-formed JSON string
+ * @return the next update stage
+ */
+ Update withCreateUiDefinition(Object createUiDefinition);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify DeploymentPolicy.
+ */
+ interface WithDeploymentPolicy {
+ /**
+ * Specifies deploymentPolicy.
+ * @param deploymentPolicy The managed application deployment policy
+ * @return the next update stage
+ */
+ Update withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The managed application definition description
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName The managed application definition display name
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify IsEnabled.
+ */
+ interface WithIsEnabled {
+ /**
+ * Specifies isEnabled.
+ * @param isEnabled A value indicating whether the package is enabled or not
+ * @return the next update stage
+ */
+ Update withIsEnabled(Boolean isEnabled);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify LockingPolicy.
+ */
+ interface WithLockingPolicy {
+ /**
+ * Specifies lockingPolicy.
+ * @param lockingPolicy The managed application locking policy
+ * @return the next update stage
+ */
+ Update withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify MainTemplate.
+ */
+ interface WithMainTemplate {
+ /**
+ * Specifies mainTemplate.
+ * @param mainTemplate The inline main template json which has resources to be provisioned. It can be a JObject or well-formed JSON string
+ * @return the next update stage
+ */
+ Update withMainTemplate(Object mainTemplate);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify ManagedBy.
+ */
+ interface WithManagedBy {
+ /**
+ * Specifies managedBy.
+ * @param managedBy ID of the resource that manages this resource
+ * @return the next update stage
+ */
+ Update withManagedBy(String managedBy);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify ManagementPolicy.
+ */
+ interface WithManagementPolicy {
+ /**
+ * Specifies managementPolicy.
+ * @param managementPolicy The managed application management policy that determines publisher's access to the managed resource group
+ * @return the next update stage
+ */
+ Update withManagementPolicy(ApplicationManagementPolicy managementPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify NotificationPolicy.
+ */
+ interface WithNotificationPolicy {
+ /**
+ * Specifies notificationPolicy.
+ * @param notificationPolicy The managed application notification policy
+ * @return the next update stage
+ */
+ Update withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify PackageFileUri.
+ */
+ interface WithPackageFileUri {
+ /**
+ * Specifies packageFileUri.
+ * @param packageFileUri The managed application definition package file Uri. Use this element
+ * @return the next update stage
+ */
+ Update withPackageFileUri(String packageFileUri);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify Policies.
+ */
+ interface WithPolicies {
+ /**
+ * Specifies policies.
+ * @param policies The managed application provider policies
+ * @return the next update stage
+ */
+ Update withPolicies(List policies);
+ }
+
+ /**
+ * The stage of the applicationdefinition update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the resource
+ * @return the next update stage
+ */
+ Update withSku(Sku sku);
+ }
+
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifact.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifact.java
new file mode 100644
index 000000000000..24c6b25529c6
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifact.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application definition artifact.
+ */
+public class ApplicationDefinitionArtifact {
+ /**
+ * The managed application definition artifact name. Possible values
+ * include: 'NotSpecified', 'ApplicationResourceTemplate',
+ * 'CreateUiDefinition', 'MainTemplateParameters'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private ApplicationDefinitionArtifactName name;
+
+ /**
+ * The managed application definition artifact blob uri.
+ */
+ @JsonProperty(value = "uri", required = true)
+ private String uri;
+
+ /**
+ * The managed application definition artifact type. Possible values
+ * include: 'NotSpecified', 'Template', 'Custom'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private ApplicationArtifactType type;
+
+ /**
+ * Get the managed application definition artifact name. Possible values include: 'NotSpecified', 'ApplicationResourceTemplate', 'CreateUiDefinition', 'MainTemplateParameters'.
+ *
+ * @return the name value
+ */
+ public ApplicationDefinitionArtifactName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the managed application definition artifact name. Possible values include: 'NotSpecified', 'ApplicationResourceTemplate', 'CreateUiDefinition', 'MainTemplateParameters'.
+ *
+ * @param name the name value to set
+ * @return the ApplicationDefinitionArtifact object itself.
+ */
+ public ApplicationDefinitionArtifact withName(ApplicationDefinitionArtifactName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the managed application definition artifact blob uri.
+ *
+ * @return the uri value
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Set the managed application definition artifact blob uri.
+ *
+ * @param uri the uri value to set
+ * @return the ApplicationDefinitionArtifact object itself.
+ */
+ public ApplicationDefinitionArtifact withUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Get the managed application definition artifact type. Possible values include: 'NotSpecified', 'Template', 'Custom'.
+ *
+ * @return the type value
+ */
+ public ApplicationArtifactType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the managed application definition artifact type. Possible values include: 'NotSpecified', 'Template', 'Custom'.
+ *
+ * @param type the type value to set
+ * @return the ApplicationDefinitionArtifact object itself.
+ */
+ public ApplicationDefinitionArtifact withType(ApplicationArtifactType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifactName.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifactName.java
new file mode 100644
index 000000000000..f623e85af1d7
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitionArtifactName.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationDefinitionArtifactName.
+ */
+public final class ApplicationDefinitionArtifactName extends ExpandableStringEnum {
+ /** Static value NotSpecified for ApplicationDefinitionArtifactName. */
+ public static final ApplicationDefinitionArtifactName NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value ApplicationResourceTemplate for ApplicationDefinitionArtifactName. */
+ public static final ApplicationDefinitionArtifactName APPLICATION_RESOURCE_TEMPLATE = fromString("ApplicationResourceTemplate");
+
+ /** Static value CreateUiDefinition for ApplicationDefinitionArtifactName. */
+ public static final ApplicationDefinitionArtifactName CREATE_UI_DEFINITION = fromString("CreateUiDefinition");
+
+ /** Static value MainTemplateParameters for ApplicationDefinitionArtifactName. */
+ public static final ApplicationDefinitionArtifactName MAIN_TEMPLATE_PARAMETERS = fromString("MainTemplateParameters");
+
+ /**
+ * Creates or finds a ApplicationDefinitionArtifactName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationDefinitionArtifactName
+ */
+ @JsonCreator
+ public static ApplicationDefinitionArtifactName fromString(String name) {
+ return fromString(name, ApplicationDefinitionArtifactName.class);
+ }
+
+ /**
+ * @return known ApplicationDefinitionArtifactName values
+ */
+ public static Collection values() {
+ return values(ApplicationDefinitionArtifactName.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitions.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitions.java
new file mode 100644
index 000000000000..f7ff5d5fd761
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDefinitions.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import rx.Completable;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationDefinitionInner;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationDefinitionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApplicationDefinitions.
+ */
+public interface ApplicationDefinitions extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, HasInner {
+ /**
+ * Gets the managed application definition.
+ *
+ * @param applicationDefinitionId The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByIdAsync(String applicationDefinitionId);
+
+ /**
+ * Deletes the managed application definition.
+ *
+ * @param applicationDefinitionId The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteByIdAsync(String applicationDefinitionId);
+
+ /**
+ * Creates a new managed application definition.
+ *
+ * @param applicationDefinitionId The fully qualified ID of the managed application definition, including the managed application name and the managed application definition resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applicationDefinitions/{applicationDefinition-name}
+ * @param parameters Parameters supplied to the create or update a managed application definition.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateByIdAsync(String applicationDefinitionId, ApplicationDefinitionInner parameters);
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDeploymentPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDeploymentPolicy.java
new file mode 100644
index 000000000000..f6f43de55ea8
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationDeploymentPolicy.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application deployment policy.
+ */
+public class ApplicationDeploymentPolicy {
+ /**
+ * The managed application deployment mode. Possible values include:
+ * 'NotSpecified', 'Incremental', 'Complete'.
+ */
+ @JsonProperty(value = "deploymentMode", required = true)
+ private DeploymentMode deploymentMode;
+
+ /**
+ * Get the managed application deployment mode. Possible values include: 'NotSpecified', 'Incremental', 'Complete'.
+ *
+ * @return the deploymentMode value
+ */
+ public DeploymentMode deploymentMode() {
+ return this.deploymentMode;
+ }
+
+ /**
+ * Set the managed application deployment mode. Possible values include: 'NotSpecified', 'Incremental', 'Complete'.
+ *
+ * @param deploymentMode the deploymentMode value to set
+ * @return the ApplicationDeploymentPolicy object itself.
+ */
+ public ApplicationDeploymentPolicy withDeploymentMode(DeploymentMode deploymentMode) {
+ this.deploymentMode = deploymentMode;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationJitAccessPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationJitAccessPolicy.java
new file mode 100644
index 000000000000..50445508cd25
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationJitAccessPolicy.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application Jit access policy.
+ */
+public class ApplicationJitAccessPolicy {
+ /**
+ * Whether the JIT access is enabled.
+ */
+ @JsonProperty(value = "jitAccessEnabled", required = true)
+ private boolean jitAccessEnabled;
+
+ /**
+ * JIT approval mode. Possible values include: 'NotSpecified',
+ * 'AutoApprove', 'ManualApprove'.
+ */
+ @JsonProperty(value = "jitApprovalMode")
+ private JitApprovalMode jitApprovalMode;
+
+ /**
+ * The JIT approvers.
+ */
+ @JsonProperty(value = "jitApprovers")
+ private List jitApprovers;
+
+ /**
+ * The maximum duration JIT access is granted. This is an ISO8601 time
+ * period value.
+ */
+ @JsonProperty(value = "maximumJitAccessDuration")
+ private String maximumJitAccessDuration;
+
+ /**
+ * Get whether the JIT access is enabled.
+ *
+ * @return the jitAccessEnabled value
+ */
+ public boolean jitAccessEnabled() {
+ return this.jitAccessEnabled;
+ }
+
+ /**
+ * Set whether the JIT access is enabled.
+ *
+ * @param jitAccessEnabled the jitAccessEnabled value to set
+ * @return the ApplicationJitAccessPolicy object itself.
+ */
+ public ApplicationJitAccessPolicy withJitAccessEnabled(boolean jitAccessEnabled) {
+ this.jitAccessEnabled = jitAccessEnabled;
+ return this;
+ }
+
+ /**
+ * Get jIT approval mode. Possible values include: 'NotSpecified', 'AutoApprove', 'ManualApprove'.
+ *
+ * @return the jitApprovalMode value
+ */
+ public JitApprovalMode jitApprovalMode() {
+ return this.jitApprovalMode;
+ }
+
+ /**
+ * Set jIT approval mode. Possible values include: 'NotSpecified', 'AutoApprove', 'ManualApprove'.
+ *
+ * @param jitApprovalMode the jitApprovalMode value to set
+ * @return the ApplicationJitAccessPolicy object itself.
+ */
+ public ApplicationJitAccessPolicy withJitApprovalMode(JitApprovalMode jitApprovalMode) {
+ this.jitApprovalMode = jitApprovalMode;
+ return this;
+ }
+
+ /**
+ * Get the JIT approvers.
+ *
+ * @return the jitApprovers value
+ */
+ public List jitApprovers() {
+ return this.jitApprovers;
+ }
+
+ /**
+ * Set the JIT approvers.
+ *
+ * @param jitApprovers the jitApprovers value to set
+ * @return the ApplicationJitAccessPolicy object itself.
+ */
+ public ApplicationJitAccessPolicy withJitApprovers(List jitApprovers) {
+ this.jitApprovers = jitApprovers;
+ return this;
+ }
+
+ /**
+ * Get the maximum duration JIT access is granted. This is an ISO8601 time period value.
+ *
+ * @return the maximumJitAccessDuration value
+ */
+ public String maximumJitAccessDuration() {
+ return this.maximumJitAccessDuration;
+ }
+
+ /**
+ * Set the maximum duration JIT access is granted. This is an ISO8601 time period value.
+ *
+ * @param maximumJitAccessDuration the maximumJitAccessDuration value to set
+ * @return the ApplicationJitAccessPolicy object itself.
+ */
+ public ApplicationJitAccessPolicy withMaximumJitAccessDuration(String maximumJitAccessDuration) {
+ this.maximumJitAccessDuration = maximumJitAccessDuration;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationLockLevel.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationLockLevel.java
new file mode 100644
index 000000000000..3cb6063a7803
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationLockLevel.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ApplicationLockLevel.
+ */
+public enum ApplicationLockLevel {
+ /** Enum value CanNotDelete. */
+ CAN_NOT_DELETE("CanNotDelete"),
+
+ /** Enum value ReadOnly. */
+ READ_ONLY("ReadOnly"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** The actual serialized value for a ApplicationLockLevel instance. */
+ private String value;
+
+ ApplicationLockLevel(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ApplicationLockLevel instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ApplicationLockLevel object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ApplicationLockLevel fromString(String value) {
+ ApplicationLockLevel[] items = ApplicationLockLevel.values();
+ for (ApplicationLockLevel item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementMode.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementMode.java
new file mode 100644
index 000000000000..11caaf291a72
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementMode.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationManagementMode.
+ */
+public final class ApplicationManagementMode extends ExpandableStringEnum {
+ /** Static value NotSpecified for ApplicationManagementMode. */
+ public static final ApplicationManagementMode NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Unmanaged for ApplicationManagementMode. */
+ public static final ApplicationManagementMode UNMANAGED = fromString("Unmanaged");
+
+ /** Static value Managed for ApplicationManagementMode. */
+ public static final ApplicationManagementMode MANAGED = fromString("Managed");
+
+ /**
+ * Creates or finds a ApplicationManagementMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationManagementMode
+ */
+ @JsonCreator
+ public static ApplicationManagementMode fromString(String name) {
+ return fromString(name, ApplicationManagementMode.class);
+ }
+
+ /**
+ * @return known ApplicationManagementMode values
+ */
+ public static Collection values() {
+ return values(ApplicationManagementMode.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementPolicy.java
new file mode 100644
index 000000000000..2000e659306d
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationManagementPolicy.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application management policy.
+ */
+public class ApplicationManagementPolicy {
+ /**
+ * The managed application management mode. Possible values include:
+ * 'NotSpecified', 'Unmanaged', 'Managed'.
+ */
+ @JsonProperty(value = "mode")
+ private ApplicationManagementMode mode;
+
+ /**
+ * Get the managed application management mode. Possible values include: 'NotSpecified', 'Unmanaged', 'Managed'.
+ *
+ * @return the mode value
+ */
+ public ApplicationManagementMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set the managed application management mode. Possible values include: 'NotSpecified', 'Unmanaged', 'Managed'.
+ *
+ * @param mode the mode value to set
+ * @return the ApplicationManagementPolicy object itself.
+ */
+ public ApplicationManagementPolicy withMode(ApplicationManagementMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationEndpoint.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationEndpoint.java
new file mode 100644
index 000000000000..6565fb94f781
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationEndpoint.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application notification endpoint.
+ */
+public class ApplicationNotificationEndpoint {
+ /**
+ * The managed application notification endpoint uri.
+ */
+ @JsonProperty(value = "uri", required = true)
+ private String uri;
+
+ /**
+ * Get the managed application notification endpoint uri.
+ *
+ * @return the uri value
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Set the managed application notification endpoint uri.
+ *
+ * @param uri the uri value to set
+ * @return the ApplicationNotificationEndpoint object itself.
+ */
+ public ApplicationNotificationEndpoint withUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationPolicy.java
new file mode 100644
index 000000000000..397eaeeb83c1
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationNotificationPolicy.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application notification policy.
+ */
+public class ApplicationNotificationPolicy {
+ /**
+ * The managed application notification endpoint.
+ */
+ @JsonProperty(value = "notificationEndpoints", required = true)
+ private List notificationEndpoints;
+
+ /**
+ * Get the managed application notification endpoint.
+ *
+ * @return the notificationEndpoints value
+ */
+ public List notificationEndpoints() {
+ return this.notificationEndpoints;
+ }
+
+ /**
+ * Set the managed application notification endpoint.
+ *
+ * @param notificationEndpoints the notificationEndpoints value to set
+ * @return the ApplicationNotificationPolicy object itself.
+ */
+ public ApplicationNotificationPolicy withNotificationEndpoints(List notificationEndpoints) {
+ this.notificationEndpoints = notificationEndpoints;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageContact.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageContact.java
new file mode 100644
index 000000000000..9bee68d5e61f
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageContact.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The application package contact information.
+ */
+public class ApplicationPackageContact {
+ /**
+ * The contact name.
+ */
+ @JsonProperty(value = "contactName")
+ private String contactName;
+
+ /**
+ * The contact email.
+ */
+ @JsonProperty(value = "email", required = true)
+ private String email;
+
+ /**
+ * The contact phone number.
+ */
+ @JsonProperty(value = "phone", required = true)
+ private String phone;
+
+ /**
+ * Get the contact name.
+ *
+ * @return the contactName value
+ */
+ public String contactName() {
+ return this.contactName;
+ }
+
+ /**
+ * Set the contact name.
+ *
+ * @param contactName the contactName value to set
+ * @return the ApplicationPackageContact object itself.
+ */
+ public ApplicationPackageContact withContactName(String contactName) {
+ this.contactName = contactName;
+ return this;
+ }
+
+ /**
+ * Get the contact email.
+ *
+ * @return the email value
+ */
+ public String email() {
+ return this.email;
+ }
+
+ /**
+ * Set the contact email.
+ *
+ * @param email the email value to set
+ * @return the ApplicationPackageContact object itself.
+ */
+ public ApplicationPackageContact withEmail(String email) {
+ this.email = email;
+ return this;
+ }
+
+ /**
+ * Get the contact phone number.
+ *
+ * @return the phone value
+ */
+ public String phone() {
+ return this.phone;
+ }
+
+ /**
+ * Set the contact phone number.
+ *
+ * @param phone the phone value to set
+ * @return the ApplicationPackageContact object itself.
+ */
+ public ApplicationPackageContact withPhone(String phone) {
+ this.phone = phone;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageLockingPolicyDefinition.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageLockingPolicyDefinition.java
new file mode 100644
index 000000000000..a8e04bb48165
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageLockingPolicyDefinition.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application locking policy.
+ */
+public class ApplicationPackageLockingPolicyDefinition {
+ /**
+ * The deny assignment excluded actions.
+ */
+ @JsonProperty(value = "allowedActions")
+ private List allowedActions;
+
+ /**
+ * Get the deny assignment excluded actions.
+ *
+ * @return the allowedActions value
+ */
+ public List allowedActions() {
+ return this.allowedActions;
+ }
+
+ /**
+ * Set the deny assignment excluded actions.
+ *
+ * @param allowedActions the allowedActions value to set
+ * @return the ApplicationPackageLockingPolicyDefinition object itself.
+ */
+ public ApplicationPackageLockingPolicyDefinition withAllowedActions(List allowedActions) {
+ this.allowedActions = allowedActions;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageSupportUrls.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageSupportUrls.java
new file mode 100644
index 000000000000..68ea2ec99145
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPackageSupportUrls.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The appliance package support URLs.
+ */
+public class ApplicationPackageSupportUrls {
+ /**
+ * The public azure support URL.
+ */
+ @JsonProperty(value = "publicAzure")
+ private String publicAzure;
+
+ /**
+ * The government cloud support URL.
+ */
+ @JsonProperty(value = "governmentCloud")
+ private String governmentCloud;
+
+ /**
+ * Get the public azure support URL.
+ *
+ * @return the publicAzure value
+ */
+ public String publicAzure() {
+ return this.publicAzure;
+ }
+
+ /**
+ * Set the public azure support URL.
+ *
+ * @param publicAzure the publicAzure value to set
+ * @return the ApplicationPackageSupportUrls object itself.
+ */
+ public ApplicationPackageSupportUrls withPublicAzure(String publicAzure) {
+ this.publicAzure = publicAzure;
+ return this;
+ }
+
+ /**
+ * Get the government cloud support URL.
+ *
+ * @return the governmentCloud value
+ */
+ public String governmentCloud() {
+ return this.governmentCloud;
+ }
+
+ /**
+ * Set the government cloud support URL.
+ *
+ * @param governmentCloud the governmentCloud value to set
+ * @return the ApplicationPackageSupportUrls object itself.
+ */
+ public ApplicationPackageSupportUrls withGovernmentCloud(String governmentCloud) {
+ this.governmentCloud = governmentCloud;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPatchable.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPatchable.java
new file mode 100644
index 000000000000..bf7ac055caff
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPatchable.java
@@ -0,0 +1,209 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about managed application.
+ */
+@JsonFlatten
+public class ApplicationPatchable extends GenericResource {
+ /**
+ * The managed resource group Id.
+ */
+ @JsonProperty(value = "properties.managedResourceGroupId")
+ private String managedResourceGroupId;
+
+ /**
+ * The fully qualified path of managed application definition Id.
+ */
+ @JsonProperty(value = "properties.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 = "properties.parameters")
+ private Object parameters;
+
+ /**
+ * Name and value pairs that define the managed application outputs.
+ */
+ @JsonProperty(value = "properties.outputs", access = JsonProperty.Access.WRITE_ONLY)
+ private Object outputs;
+
+ /**
+ * The managed application provisioning state. Possible values include:
+ * 'NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created',
+ * 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Updating'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * The plan information.
+ */
+ @JsonProperty(value = "plan")
+ private PlanPatchable plan;
+
+ /**
+ * The kind of the managed application. Allowed values are MarketPlace and
+ * ServiceCatalog.
+ */
+ @JsonProperty(value = "kind")
+ private String kind;
+
+ /**
+ * The identity of the resource.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /**
+ * Get the managed resource group Id.
+ *
+ * @return the managedResourceGroupId value
+ */
+ public String managedResourceGroupId() {
+ return this.managedResourceGroupId;
+ }
+
+ /**
+ * Set the managed resource group Id.
+ *
+ * @param managedResourceGroupId the managedResourceGroupId value to set
+ * @return the ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withManagedResourceGroupId(String managedResourceGroupId) {
+ this.managedResourceGroupId = managedResourceGroupId;
+ return this;
+ }
+
+ /**
+ * Get the fully qualified path of managed application definition Id.
+ *
+ * @return the applicationDefinitionId value
+ */
+ public String applicationDefinitionId() {
+ return this.applicationDefinitionId;
+ }
+
+ /**
+ * Set the fully qualified path of managed application definition Id.
+ *
+ * @param applicationDefinitionId the applicationDefinitionId value to set
+ * @return the ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withApplicationDefinitionId(String applicationDefinitionId) {
+ this.applicationDefinitionId = applicationDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get 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 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 ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withParameters(Object parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get name and value pairs that define the managed application outputs.
+ *
+ * @return the outputs value
+ */
+ public Object outputs() {
+ return this.outputs;
+ }
+
+ /**
+ * Get the managed application provisioning state. Possible values include: 'NotSpecified', 'Accepted', 'Running', 'Ready', 'Creating', 'Created', 'Deleting', 'Deleted', 'Canceled', 'Failed', 'Succeeded', 'Updating'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the plan information.
+ *
+ * @return the plan value
+ */
+ public PlanPatchable plan() {
+ return this.plan;
+ }
+
+ /**
+ * Set the plan information.
+ *
+ * @param plan the plan value to set
+ * @return the ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withPlan(PlanPatchable plan) {
+ this.plan = plan;
+ return this;
+ }
+
+ /**
+ * Get 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 of the managed application. Allowed values are MarketPlace and ServiceCatalog.
+ *
+ * @param kind the kind value to set
+ * @return the ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withKind(String kind) {
+ this.kind = kind;
+ return this;
+ }
+
+ /**
+ * Get the identity of the resource.
+ *
+ * @return the identity value
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity of the resource.
+ *
+ * @param identity the identity value to set
+ * @return the ApplicationPatchable object itself.
+ */
+ public ApplicationPatchable withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPolicy.java
new file mode 100644
index 000000000000..027ce9bfa341
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ApplicationPolicy.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed application policy.
+ */
+public class ApplicationPolicy {
+ /**
+ * The policy name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The policy definition Id.
+ */
+ @JsonProperty(value = "policyDefinitionId")
+ private String policyDefinitionId;
+
+ /**
+ * The policy parameters.
+ */
+ @JsonProperty(value = "parameters")
+ private String parameters;
+
+ /**
+ * Get the policy name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the policy name.
+ *
+ * @param name the name value to set
+ * @return the ApplicationPolicy object itself.
+ */
+ public ApplicationPolicy withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the policy definition Id.
+ *
+ * @return the policyDefinitionId value
+ */
+ public String policyDefinitionId() {
+ return this.policyDefinitionId;
+ }
+
+ /**
+ * Set the policy definition Id.
+ *
+ * @param policyDefinitionId the policyDefinitionId value to set
+ * @return the ApplicationPolicy object itself.
+ */
+ public ApplicationPolicy withPolicyDefinitionId(String policyDefinitionId) {
+ this.policyDefinitionId = policyDefinitionId;
+ return this;
+ }
+
+ /**
+ * Get the policy parameters.
+ *
+ * @return the parameters value
+ */
+ public String parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set the policy parameters.
+ *
+ * @param parameters the parameters value to set
+ * @return the ApplicationPolicy object itself.
+ */
+ public ApplicationPolicy withParameters(String parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Applications.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Applications.java
new file mode 100644
index 000000000000..04b86e564b10
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Applications.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationInner;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ApplicationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Applications.
+ */
+public interface Applications extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Gets the managed application.
+ *
+ * @param applicationId The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByIdAsync(String applicationId);
+
+ /**
+ * Deletes the managed application.
+ *
+ * @param applicationId The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteByIdAsync(String applicationId);
+
+ /**
+ * Creates a new managed application.
+ *
+ * @param applicationId The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}
+ * @param parameters Parameters supplied to the create or update a managed application.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateByIdAsync(String applicationId, ApplicationInner parameters);
+
+ /**
+ * Updates an existing managed application. The only value that can be updated via PATCH currently is the tags.
+ *
+ * @param applicationId The fully qualified ID of the managed application, including the managed application name and the managed application resource type. Use the format, /subscriptions/{guid}/resourceGroups/{resource-group-name}/Microsoft.Solutions/applications/{application-name}
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateByIdAsync(String applicationId);
+
+ /**
+ * 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
+ * @return the observable for the request
+ */
+ Completable refreshPermissionsAsync(String resourceGroupName, String applicationName);
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/DeploymentMode.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/DeploymentMode.java
new file mode 100644
index 000000000000..4dda9c5cf905
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/DeploymentMode.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DeploymentMode.
+ */
+public final class DeploymentMode extends ExpandableStringEnum {
+ /** Static value NotSpecified for DeploymentMode. */
+ public static final DeploymentMode NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Incremental for DeploymentMode. */
+ public static final DeploymentMode INCREMENTAL = fromString("Incremental");
+
+ /** Static value Complete for DeploymentMode. */
+ public static final DeploymentMode COMPLETE = fromString("Complete");
+
+ /**
+ * Creates or finds a DeploymentMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DeploymentMode
+ */
+ @JsonCreator
+ public static DeploymentMode fromString(String name) {
+ return fromString(name, DeploymentMode.class);
+ }
+
+ /**
+ * @return known DeploymentMode values
+ */
+ public static Collection values() {
+ return values(DeploymentMode.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponse.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponse.java
new file mode 100644
index 000000000000..960f100db0d8
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponse.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Error response indicates managed application is not able to process the
+ * incoming request. The reason is provided in the error message.
+ */
+public class ErrorResponse {
+ /**
+ * Http status code.
+ */
+ @JsonProperty(value = "httpStatus")
+ private String httpStatus;
+
+ /**
+ * Error code.
+ */
+ @JsonProperty(value = "errorCode")
+ private String errorCode;
+
+ /**
+ * Error message indicating why the operation failed.
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /**
+ * Get http status code.
+ *
+ * @return the httpStatus value
+ */
+ public String httpStatus() {
+ return this.httpStatus;
+ }
+
+ /**
+ * Set http status code.
+ *
+ * @param httpStatus the httpStatus value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withHttpStatus(String httpStatus) {
+ this.httpStatus = httpStatus;
+ return this;
+ }
+
+ /**
+ * Get error code.
+ *
+ * @return the errorCode value
+ */
+ public String errorCode() {
+ return this.errorCode;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param errorCode the errorCode value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withErrorCode(String errorCode) {
+ this.errorCode = errorCode;
+ return this;
+ }
+
+ /**
+ * Get error message indicating why the operation failed.
+ *
+ * @return the errorMessage value
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set error message indicating why the operation failed.
+ *
+ * @param errorMessage the errorMessage value to set
+ * @return the ErrorResponse object itself.
+ */
+ public ErrorResponse withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponseException.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponseException.java
new file mode 100644
index 000000000000..967a3625f82a
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ErrorResponseException.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/GenericResource.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/GenericResource.java
new file mode 100644
index 000000000000..6a2e9bd31e63
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/GenericResource.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * Resource information.
+ */
+@SkipParentValidation
+public class GenericResource extends Resource {
+ /**
+ * ID of the resource that manages this resource.
+ */
+ @JsonProperty(value = "managedBy")
+ private String managedBy;
+
+ /**
+ * The SKU of the resource.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Get iD of the resource that manages this resource.
+ *
+ * @return the managedBy value
+ */
+ public String managedBy() {
+ return this.managedBy;
+ }
+
+ /**
+ * Set iD of the resource that manages this resource.
+ *
+ * @param managedBy the managedBy value to set
+ * @return the GenericResource object itself.
+ */
+ public GenericResource withManagedBy(String managedBy) {
+ this.managedBy = managedBy;
+ return this;
+ }
+
+ /**
+ * Get the SKU of the resource.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU of the resource.
+ *
+ * @param sku the sku value to set
+ * @return the GenericResource object itself.
+ */
+ public GenericResource withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Identity.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Identity.java
new file mode 100644
index 000000000000..1a529de7b4a1
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Identity.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the resource.
+ */
+public class Identity {
+ /**
+ * The principal ID of resource identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant ID of resource.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The identity type. Possible values include: 'SystemAssigned'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * Get the principal ID of resource identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant ID of resource.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the identity type. Possible values include: 'SystemAssigned'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type. Possible values include: 'SystemAssigned'.
+ *
+ * @param type the type value to set
+ * @return the Identity object itself.
+ */
+ public Identity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApprovalMode.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApprovalMode.java
new file mode 100644
index 000000000000..f52d61925e2b
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApprovalMode.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JitApprovalMode.
+ */
+public final class JitApprovalMode extends ExpandableStringEnum {
+ /** Static value NotSpecified for JitApprovalMode. */
+ public static final JitApprovalMode NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value AutoApprove for JitApprovalMode. */
+ public static final JitApprovalMode AUTO_APPROVE = fromString("AutoApprove");
+
+ /** Static value ManualApprove for JitApprovalMode. */
+ public static final JitApprovalMode MANUAL_APPROVE = fromString("ManualApprove");
+
+ /**
+ * Creates or finds a JitApprovalMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JitApprovalMode
+ */
+ @JsonCreator
+ public static JitApprovalMode fromString(String name) {
+ return fromString(name, JitApprovalMode.class);
+ }
+
+ /**
+ * @return known JitApprovalMode values
+ */
+ public static Collection values() {
+ return values(JitApprovalMode.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverDefinition.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverDefinition.java
new file mode 100644
index 000000000000..ea377a32861c
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverDefinition.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * JIT approver definition.
+ */
+public class JitApproverDefinition {
+ /**
+ * The approver service principal Id.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * The approver type. Possible values include: 'user', 'group'.
+ */
+ @JsonProperty(value = "type")
+ private JitApproverType type;
+
+ /**
+ * The approver display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Get the approver service principal Id.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the approver service principal Id.
+ *
+ * @param id the id value to set
+ * @return the JitApproverDefinition object itself.
+ */
+ public JitApproverDefinition withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the approver type. Possible values include: 'user', 'group'.
+ *
+ * @return the type value
+ */
+ public JitApproverType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the approver type. Possible values include: 'user', 'group'.
+ *
+ * @param type the type value to set
+ * @return the JitApproverDefinition object itself.
+ */
+ public JitApproverDefinition withType(JitApproverType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the approver display name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the approver display name.
+ *
+ * @param displayName the displayName value to set
+ * @return the JitApproverDefinition object itself.
+ */
+ public JitApproverDefinition withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverType.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverType.java
new file mode 100644
index 000000000000..5ded3ff1cbdd
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitApproverType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JitApproverType.
+ */
+public final class JitApproverType extends ExpandableStringEnum {
+ /** Static value user for JitApproverType. */
+ public static final JitApproverType USER = fromString("user");
+
+ /** Static value group for JitApproverType. */
+ public static final JitApproverType GROUP = fromString("group");
+
+ /**
+ * Creates or finds a JitApproverType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JitApproverType
+ */
+ @JsonCreator
+ public static JitApproverType fromString(String name) {
+ return fromString(name, JitApproverType.class);
+ }
+
+ /**
+ * @return known JitApproverType values
+ */
+ public static Collection values() {
+ return values(JitApproverType.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitAuthorizationPolicies.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitAuthorizationPolicies.java
new file mode 100644
index 000000000000..4c154eef6ae7
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitAuthorizationPolicies.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The JIT authorization policies.
+ */
+public class JitAuthorizationPolicies {
+ /**
+ * The the principal id that will be granted JIT access.
+ */
+ @JsonProperty(value = "principalId", required = true)
+ private String principalId;
+
+ /**
+ * The role definition id that will be granted to the Principal.
+ */
+ @JsonProperty(value = "roleDefinitionId", required = true)
+ private String roleDefinitionId;
+
+ /**
+ * Get the the principal id that will be granted JIT access.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the the principal id that will be granted JIT access.
+ *
+ * @param principalId the principalId value to set
+ * @return the JitAuthorizationPolicies object itself.
+ */
+ public JitAuthorizationPolicies withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the role definition id that will be granted to the Principal.
+ *
+ * @return the roleDefinitionId value
+ */
+ public String roleDefinitionId() {
+ return this.roleDefinitionId;
+ }
+
+ /**
+ * Set the role definition id that will be granted to the Principal.
+ *
+ * @param roleDefinitionId the roleDefinitionId value to set
+ * @return the JitAuthorizationPolicies object itself.
+ */
+ public JitAuthorizationPolicies withRoleDefinitionId(String roleDefinitionId) {
+ this.roleDefinitionId = roleDefinitionId;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestDefinition.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestDefinition.java
new file mode 100644
index 000000000000..ba59cf72ebbc
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestDefinition.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.ManagedApplicationsManager;
+import java.util.List;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.JitRequestDefinitionInner;
+
+/**
+ * Type representing JitRequestDefinition.
+ */
+public interface JitRequestDefinition extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationResourceId value.
+ */
+ String applicationResourceId();
+
+ /**
+ * @return the createdBy value.
+ */
+ ApplicationClientDetails createdBy();
+
+ /**
+ * @return the jitAuthorizationPolicies value.
+ */
+ List jitAuthorizationPolicies();
+
+ /**
+ * @return the jitRequestState value.
+ */
+ JitRequestState jitRequestState();
+
+ /**
+ * @return the jitSchedulingPolicy value.
+ */
+ JitSchedulingPolicy jitSchedulingPolicy();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the publisherTenantId value.
+ */
+ String publisherTenantId();
+
+ /**
+ * @return the updatedBy value.
+ */
+ ApplicationClientDetails updatedBy();
+
+ /**
+ * The entirety of the JitRequestDefinition definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithApplicationResourceId, DefinitionStages.WithJitAuthorizationPolicies, DefinitionStages.WithJitSchedulingPolicy, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of JitRequestDefinition definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a JitRequestDefinition definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the JitRequestDefinition definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the jitrequestdefinition definition allowing to specify ApplicationResourceId.
+ */
+ interface WithApplicationResourceId {
+ /**
+ * Specifies applicationResourceId.
+ * @param applicationResourceId The parent application id
+ * @return the next definition stage
+*/
+ WithJitAuthorizationPolicies withApplicationResourceId(String applicationResourceId);
+ }
+
+ /**
+ * The stage of the jitrequestdefinition definition allowing to specify JitAuthorizationPolicies.
+ */
+ interface WithJitAuthorizationPolicies {
+ /**
+ * Specifies jitAuthorizationPolicies.
+ * @param jitAuthorizationPolicies The JIT authorization policies
+ * @return the next definition stage
+*/
+ WithJitSchedulingPolicy withJitAuthorizationPolicies(List jitAuthorizationPolicies);
+ }
+
+ /**
+ * The stage of the jitrequestdefinition definition allowing to specify JitSchedulingPolicy.
+ */
+ interface WithJitSchedulingPolicy {
+ /**
+ * Specifies jitSchedulingPolicy.
+ * @param jitSchedulingPolicy The JIT request properties
+ * @return the next definition stage
+*/
+ WithCreate withJitSchedulingPolicy(JitSchedulingPolicy jitSchedulingPolicy);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags {
+ }
+ }
+ /**
+ * The template for a JitRequestDefinition update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags {
+ }
+
+ /**
+ * Grouping of JitRequestDefinition update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestPatchable.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestPatchable.java
new file mode 100644
index 000000000000..413556b5e39f
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestPatchable.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about JIT request.
+ */
+public class JitRequestPatchable {
+ /**
+ * Jit request tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get jit request tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set jit request tags.
+ *
+ * @param tags the tags value to set
+ * @return the JitRequestPatchable object itself.
+ */
+ public JitRequestPatchable withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestState.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestState.java
new file mode 100644
index 000000000000..47e71c8d0416
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequestState.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JitRequestState.
+ */
+public final class JitRequestState extends ExpandableStringEnum {
+ /** Static value NotSpecified for JitRequestState. */
+ public static final JitRequestState NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Pending for JitRequestState. */
+ public static final JitRequestState PENDING = fromString("Pending");
+
+ /** Static value Approved for JitRequestState. */
+ public static final JitRequestState APPROVED = fromString("Approved");
+
+ /** Static value Denied for JitRequestState. */
+ public static final JitRequestState DENIED = fromString("Denied");
+
+ /** Static value Failed for JitRequestState. */
+ public static final JitRequestState FAILED = fromString("Failed");
+
+ /** Static value Canceled for JitRequestState. */
+ public static final JitRequestState CANCELED = fromString("Canceled");
+
+ /** Static value Expired for JitRequestState. */
+ public static final JitRequestState EXPIRED = fromString("Expired");
+
+ /** Static value Timeout for JitRequestState. */
+ public static final JitRequestState TIMEOUT = fromString("Timeout");
+
+ /**
+ * Creates or finds a JitRequestState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JitRequestState
+ */
+ @JsonCreator
+ public static JitRequestState fromString(String name) {
+ return fromString(name, JitRequestState.class);
+ }
+
+ /**
+ * @return known JitRequestState values
+ */
+ public static Collection values() {
+ return values(JitRequestState.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequests.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequests.java
new file mode 100644
index 000000000000..c06acc58f20c
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitRequests.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.implementation.JitRequestsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing JitRequests.
+ */
+public interface JitRequests extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingPolicy.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingPolicy.java
new file mode 100644
index 000000000000..05cad72b6a86
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingPolicy.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import org.joda.time.Period;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The JIT scheduling policies.
+ */
+public class JitSchedulingPolicy {
+ /**
+ * The type of JIT schedule. Possible values include: 'NotSpecified',
+ * 'Once', 'Recurring'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private JitSchedulingType type;
+
+ /**
+ * The required duration of the JIT request.
+ */
+ @JsonProperty(value = "duration", required = true)
+ private Period duration;
+
+ /**
+ * The start time of the request.
+ */
+ @JsonProperty(value = "startTime", required = true)
+ private DateTime startTime;
+
+ /**
+ * Get the type of JIT schedule. Possible values include: 'NotSpecified', 'Once', 'Recurring'.
+ *
+ * @return the type value
+ */
+ public JitSchedulingType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of JIT schedule. Possible values include: 'NotSpecified', 'Once', 'Recurring'.
+ *
+ * @param type the type value to set
+ * @return the JitSchedulingPolicy object itself.
+ */
+ public JitSchedulingPolicy withType(JitSchedulingType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the duration value.
+ *
+ * @return the duration value
+ */
+ public Period duration() {
+ return this.duration;
+ }
+
+ /**
+ * Set the duration value.
+ *
+ * @param duration the duration value to set
+ * @return the JitSchedulingPolicy object itself.
+ */
+ public JitSchedulingPolicy withDuration(Period duration) {
+ this.duration = duration;
+ return this;
+ }
+
+ /**
+ * Get the start time of the request.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set the start time of the request.
+ *
+ * @param startTime the startTime value to set
+ * @return the JitSchedulingPolicy object itself.
+ */
+ public JitSchedulingPolicy withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingType.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingType.java
new file mode 100644
index 000000000000..d4d4ea8219dc
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/JitSchedulingType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for JitSchedulingType.
+ */
+public final class JitSchedulingType extends ExpandableStringEnum {
+ /** Static value NotSpecified for JitSchedulingType. */
+ public static final JitSchedulingType NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Once for JitSchedulingType. */
+ public static final JitSchedulingType ONCE = fromString("Once");
+
+ /** Static value Recurring for JitSchedulingType. */
+ public static final JitSchedulingType RECURRING = fromString("Recurring");
+
+ /**
+ * Creates or finds a JitSchedulingType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding JitSchedulingType
+ */
+ @JsonCreator
+ public static JitSchedulingType fromString(String name) {
+ return fromString(name, JitSchedulingType.class);
+ }
+
+ /**
+ * @return known JitSchedulingType values
+ */
+ public static Collection values() {
+ return values(JitSchedulingType.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/OperationDisplay.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/OperationDisplay.java
new file mode 100644
index 000000000000..6dd34a985ff9
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/OperationDisplay.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.Solutions.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Application, JitRequest,
+ * etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft.Solutions.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.Solutions.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Application, JitRequest, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Application, JitRequest, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Plan.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Plan.java
new file mode 100644
index 000000000000..193b277f3be2
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Plan.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Plan for the managed application.
+ */
+public class Plan {
+ /**
+ * The plan name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The publisher ID.
+ */
+ @JsonProperty(value = "publisher", required = true)
+ private String publisher;
+
+ /**
+ * The product code.
+ */
+ @JsonProperty(value = "product", required = true)
+ private String product;
+
+ /**
+ * The promotion code.
+ */
+ @JsonProperty(value = "promotionCode")
+ private String promotionCode;
+
+ /**
+ * The plan's version.
+ */
+ @JsonProperty(value = "version", required = true)
+ private String version;
+
+ /**
+ * Get the plan name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the plan name.
+ *
+ * @param name the name value to set
+ * @return the Plan object itself.
+ */
+ public Plan withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the publisher ID.
+ *
+ * @return the publisher value
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the publisher ID.
+ *
+ * @param publisher the publisher value to set
+ * @return the Plan object itself.
+ */
+ public Plan withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+ /**
+ * Get the product code.
+ *
+ * @return the product value
+ */
+ public String product() {
+ return this.product;
+ }
+
+ /**
+ * Set the product code.
+ *
+ * @param product the product value to set
+ * @return the Plan object itself.
+ */
+ public Plan withProduct(String product) {
+ this.product = product;
+ return this;
+ }
+
+ /**
+ * Get the promotion code.
+ *
+ * @return the promotionCode value
+ */
+ public String promotionCode() {
+ return this.promotionCode;
+ }
+
+ /**
+ * Set the promotion code.
+ *
+ * @param promotionCode the promotionCode value to set
+ * @return the Plan object itself.
+ */
+ public Plan withPromotionCode(String promotionCode) {
+ this.promotionCode = promotionCode;
+ return this;
+ }
+
+ /**
+ * Get the plan's version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the plan's version.
+ *
+ * @param version the version value to set
+ * @return the Plan object itself.
+ */
+ public Plan withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/PlanPatchable.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/PlanPatchable.java
new file mode 100644
index 000000000000..defa127cedc3
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/PlanPatchable.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Plan for the managed application.
+ */
+public class PlanPatchable {
+ /**
+ * The plan name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The publisher ID.
+ */
+ @JsonProperty(value = "publisher")
+ private String publisher;
+
+ /**
+ * The product code.
+ */
+ @JsonProperty(value = "product")
+ private String product;
+
+ /**
+ * The promotion code.
+ */
+ @JsonProperty(value = "promotionCode")
+ private String promotionCode;
+
+ /**
+ * The plan's version.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get the plan name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the plan name.
+ *
+ * @param name the name value to set
+ * @return the PlanPatchable object itself.
+ */
+ public PlanPatchable withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the publisher ID.
+ *
+ * @return the publisher value
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the publisher ID.
+ *
+ * @param publisher the publisher value to set
+ * @return the PlanPatchable object itself.
+ */
+ public PlanPatchable withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+ /**
+ * Get the product code.
+ *
+ * @return the product value
+ */
+ public String product() {
+ return this.product;
+ }
+
+ /**
+ * Set the product code.
+ *
+ * @param product the product value to set
+ * @return the PlanPatchable object itself.
+ */
+ public PlanPatchable withProduct(String product) {
+ this.product = product;
+ return this;
+ }
+
+ /**
+ * Get the promotion code.
+ *
+ * @return the promotionCode value
+ */
+ public String promotionCode() {
+ return this.promotionCode;
+ }
+
+ /**
+ * Set the promotion code.
+ *
+ * @param promotionCode the promotionCode value to set
+ * @return the PlanPatchable object itself.
+ */
+ public PlanPatchable withPromotionCode(String promotionCode) {
+ this.promotionCode = promotionCode;
+ return this;
+ }
+
+ /**
+ * Get the plan's version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the plan's version.
+ *
+ * @param version the version value to set
+ * @return the PlanPatchable object itself.
+ */
+ public PlanPatchable withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ProvisioningState.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ProvisioningState.java
new file mode 100644
index 000000000000..6d24b0778e47
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ProvisioningState.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ProvisioningState.
+ */
+public final class ProvisioningState extends ExpandableStringEnum {
+ /** Static value NotSpecified for ProvisioningState. */
+ public static final ProvisioningState NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value Accepted for ProvisioningState. */
+ public static final ProvisioningState ACCEPTED = fromString("Accepted");
+
+ /** Static value Running for ProvisioningState. */
+ public static final ProvisioningState RUNNING = fromString("Running");
+
+ /** Static value Ready for ProvisioningState. */
+ public static final ProvisioningState READY = fromString("Ready");
+
+ /** Static value Creating for ProvisioningState. */
+ public static final ProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Created for ProvisioningState. */
+ public static final ProvisioningState CREATED = fromString("Created");
+
+ /** Static value Deleting for ProvisioningState. */
+ public static final ProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Deleted for ProvisioningState. */
+ public static final ProvisioningState DELETED = fromString("Deleted");
+
+ /** Static value Canceled for ProvisioningState. */
+ public static final ProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for ProvisioningState. */
+ public static final ProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Succeeded for ProvisioningState. */
+ public static final ProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Updating for ProvisioningState. */
+ public static final ProvisioningState UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a ProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ProvisioningState
+ */
+ @JsonCreator
+ public static ProvisioningState fromString(String name) {
+ return fromString(name, ProvisioningState.class);
+ }
+
+ /**
+ * @return known ProvisioningState values
+ */
+ public static Collection values() {
+ return values(ProvisioningState.class);
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ResourceIdentityType.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ResourceIdentityType.java
new file mode 100644
index 000000000000..b83d6b1e2e55
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/ResourceIdentityType.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ResourceIdentityType.
+ */
+public enum ResourceIdentityType {
+ /** Enum value SystemAssigned. */
+ SYSTEM_ASSIGNED("SystemAssigned");
+
+ /** The actual serialized value for a ResourceIdentityType instance. */
+ private String value;
+
+ ResourceIdentityType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ResourceIdentityType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ResourceIdentityType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ResourceIdentityType fromString(String value) {
+ ResourceIdentityType[] items = ResourceIdentityType.values();
+ for (ResourceIdentityType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Sku.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Sku.java
new file mode 100644
index 000000000000..273249360ee5
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/Sku.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SKU for the resource.
+ */
+public class Sku {
+ /**
+ * The SKU name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The SKU tier.
+ */
+ @JsonProperty(value = "tier")
+ private String tier;
+
+ /**
+ * The SKU size.
+ */
+ @JsonProperty(value = "size")
+ private String size;
+
+ /**
+ * The SKU family.
+ */
+ @JsonProperty(value = "family")
+ private String family;
+
+ /**
+ * The SKU model.
+ */
+ @JsonProperty(value = "model")
+ private String model;
+
+ /**
+ * The SKU capacity.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * Get the SKU name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the SKU name.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the SKU tier.
+ *
+ * @return the tier value
+ */
+ public String tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the SKU tier.
+ *
+ * @param tier the tier value to set
+ * @return the Sku object itself.
+ */
+ public Sku withTier(String tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the SKU size.
+ *
+ * @return the size value
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Set the SKU size.
+ *
+ * @param size the size value to set
+ * @return the Sku object itself.
+ */
+ public Sku withSize(String size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the SKU family.
+ *
+ * @return the family value
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Set the SKU family.
+ *
+ * @param family the family value to set
+ * @return the Sku object itself.
+ */
+ public Sku withFamily(String family) {
+ this.family = family;
+ return this;
+ }
+
+ /**
+ * Get the SKU model.
+ *
+ * @return the model value
+ */
+ public String model() {
+ return this.model;
+ }
+
+ /**
+ * Set the SKU model.
+ *
+ * @param model the model value to set
+ * @return the Sku object itself.
+ */
+ public Sku withModel(String model) {
+ this.model = model;
+ return this;
+ }
+
+ /**
+ * Get the SKU capacity.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the SKU capacity.
+ *
+ * @param capacity the capacity value to set
+ * @return the Sku object itself.
+ */
+ public Sku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationClientImpl.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationClientImpl.java
new file mode 100644
index 000000000000..c1affc799ce3
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationClientImpl.java
@@ -0,0 +1,481 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01.implementation;
+
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * Initializes a new instance of the ApplicationClientImpl class.
+ */
+public class ApplicationClientImpl extends AzureServiceClient {
+ /** The Retrofit service to perform REST calls. */
+ private ApplicationClientService service;
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** The ID of the target subscription. */
+ private String subscriptionId;
+
+ /**
+ * Gets The ID of the target subscription.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets The ID of the target subscription.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public ApplicationClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** The API version to use for this operation. */
+ private String apiVersion;
+
+ /**
+ * Gets The API version to use for this operation.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public ApplicationClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public ApplicationClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public ApplicationClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The ApplicationsInner object to access its operations.
+ */
+ private ApplicationsInner applications;
+
+ /**
+ * Gets the ApplicationsInner object to access its operations.
+ * @return the ApplicationsInner object.
+ */
+ public ApplicationsInner applications() {
+ return this.applications;
+ }
+
+ /**
+ * The ApplicationDefinitionsInner object to access its operations.
+ */
+ private ApplicationDefinitionsInner applicationDefinitions;
+
+ /**
+ * Gets the ApplicationDefinitionsInner object to access its operations.
+ * @return the ApplicationDefinitionsInner object.
+ */
+ public ApplicationDefinitionsInner applicationDefinitions() {
+ return this.applicationDefinitions;
+ }
+
+ /**
+ * The JitRequestsInner object to access its operations.
+ */
+ private JitRequestsInner jitRequests;
+
+ /**
+ * Gets the JitRequestsInner object to access its operations.
+ * @return the JitRequestsInner object.
+ */
+ public JitRequestsInner jitRequests() {
+ return this.jitRequests;
+ }
+
+ /**
+ * Initializes an instance of ApplicationClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public ApplicationClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of ApplicationClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public ApplicationClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of ApplicationClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public ApplicationClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2019-07-01";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.applications = new ApplicationsInner(restClient().retrofit(), this);
+ this.applicationDefinitions = new ApplicationDefinitionsInner(restClient().retrofit(), this);
+ this.jitRequests = new JitRequestsInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ initializeService();
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "ApplicationClient", "2019-07-01");
+ }
+
+ private void initializeService() {
+ service = restClient().retrofit().create(ApplicationClientService.class);
+ }
+
+ /**
+ * The interface defining all the services for ApplicationClient to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ApplicationClientService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationClient listOperations" })
+ @GET("providers/Microsoft.Solutions/operations")
+ Observable> listOperations(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationClient listOperationsNext" })
+ @GET
+ Observable> listOperationsNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList listOperations() {
+ ServiceResponse> response = listOperationsSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listOperationsNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listOperationsAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listOperationsSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listOperationsNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listOperationsAsync() {
+ return listOperationsWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listOperationsWithServiceResponseAsync() {
+ return listOperationsSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listOperationsNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listOperationsSinglePageAsync() {
+ if (this.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.apiVersion() is required and cannot be null.");
+ }
+ return service.listOperations(this.apiVersion(), this.acceptLanguage(), this.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listOperationsDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listOperationsDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.restClient().responseBuilderFactory()., CloudException>newInstance(this.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList listOperationsNext(final String nextPageLink) {
+ ServiceResponse> response = listOperationsNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listOperationsNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listOperationsNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listOperationsNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listOperationsNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listOperationsNextAsync(final String nextPageLink) {
+ return listOperationsNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listOperationsNextWithServiceResponseAsync(final String nextPageLink) {
+ return listOperationsNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listOperationsNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Solutions REST API operations.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listOperationsNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listOperationsNext(nextUrl, this.acceptLanguage(), this.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listOperationsNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listOperationsNextDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.restClient().responseBuilderFactory()., CloudException>newInstance(this.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionImpl.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionImpl.java
new file mode 100644
index 000000000000..c9c02b208af4
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionImpl.java
@@ -0,0 +1,232 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinition;
+import rx.Observable;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.Sku;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationLockLevel;
+import java.util.List;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationAuthorization;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitionArtifact;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationNotificationPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationPackageLockingPolicyDefinition;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDeploymentPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationManagementPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationPolicy;
+
+class ApplicationDefinitionImpl extends GroupableResourceCoreImpl implements ApplicationDefinition, ApplicationDefinition.Definition, ApplicationDefinition.Update {
+ ApplicationDefinitionImpl(String name, ApplicationDefinitionInner inner, ManagedApplicationsManager manager) {
+ super(name, inner, manager);
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ApplicationDefinitionsInner client = this.manager().inner().applicationDefinitions();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ApplicationDefinitionsInner client = this.manager().inner().applicationDefinitions();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ApplicationDefinitionsInner client = this.manager().inner().applicationDefinitions();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public List artifacts() {
+ return this.inner().artifacts();
+ }
+
+ @Override
+ public List authorizations() {
+ return this.inner().authorizations();
+ }
+
+ @Override
+ public Object createUiDefinition() {
+ return this.inner().createUiDefinition();
+ }
+
+ @Override
+ public ApplicationDeploymentPolicy deploymentPolicy() {
+ return this.inner().deploymentPolicy();
+ }
+
+ @Override
+ public String description() {
+ return this.inner().description();
+ }
+
+ @Override
+ public String displayName() {
+ return this.inner().displayName();
+ }
+
+ @Override
+ public Boolean isEnabled() {
+ return this.inner().isEnabled();
+ }
+
+ @Override
+ public ApplicationPackageLockingPolicyDefinition lockingPolicy() {
+ return this.inner().lockingPolicy();
+ }
+
+ @Override
+ public ApplicationLockLevel lockLevel() {
+ return this.inner().lockLevel();
+ }
+
+ @Override
+ public Object mainTemplate() {
+ return this.inner().mainTemplate();
+ }
+
+ @Override
+ public String managedBy() {
+ return this.inner().managedBy();
+ }
+
+ @Override
+ public ApplicationManagementPolicy managementPolicy() {
+ return this.inner().managementPolicy();
+ }
+
+ @Override
+ public ApplicationNotificationPolicy notificationPolicy() {
+ return this.inner().notificationPolicy();
+ }
+
+ @Override
+ public String packageFileUri() {
+ return this.inner().packageFileUri();
+ }
+
+ @Override
+ public List policies() {
+ return this.inner().policies();
+ }
+
+ @Override
+ public Sku sku() {
+ return this.inner().sku();
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withLockLevel(ApplicationLockLevel lockLevel) {
+ this.inner().withLockLevel(lockLevel);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withArtifacts(List artifacts) {
+ this.inner().withArtifacts(artifacts);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withAuthorizations(List authorizations) {
+ this.inner().withAuthorizations(authorizations);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withCreateUiDefinition(Object createUiDefinition) {
+ this.inner().withCreateUiDefinition(createUiDefinition);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy) {
+ this.inner().withDeploymentPolicy(deploymentPolicy);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withDescription(String description) {
+ this.inner().withDescription(description);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withDisplayName(String displayName) {
+ this.inner().withDisplayName(displayName);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withIsEnabled(Boolean isEnabled) {
+ this.inner().withIsEnabled(isEnabled);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy) {
+ this.inner().withLockingPolicy(lockingPolicy);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withMainTemplate(Object mainTemplate) {
+ this.inner().withMainTemplate(mainTemplate);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withManagedBy(String managedBy) {
+ this.inner().withManagedBy(managedBy);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withManagementPolicy(ApplicationManagementPolicy managementPolicy) {
+ this.inner().withManagementPolicy(managementPolicy);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy) {
+ this.inner().withNotificationPolicy(notificationPolicy);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withPackageFileUri(String packageFileUri) {
+ this.inner().withPackageFileUri(packageFileUri);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withPolicies(List policies) {
+ this.inner().withPolicies(policies);
+ return this;
+ }
+
+ @Override
+ public ApplicationDefinitionImpl withSku(Sku sku) {
+ this.inner().withSku(sku);
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionInner.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionInner.java
new file mode 100644
index 000000000000..b5215d402eac
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionInner.java
@@ -0,0 +1,400 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01.implementation;
+
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationLockLevel;
+import java.util.List;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationAuthorization;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitionArtifact;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationNotificationPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationPackageLockingPolicyDefinition;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDeploymentPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationManagementPolicy;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationPolicy;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.GenericResource;
+
+/**
+ * Information about managed application definition.
+ */
+@JsonFlatten
+public class ApplicationDefinitionInner extends GenericResource {
+ /**
+ * The managed application lock level. Possible values include:
+ * 'CanNotDelete', 'ReadOnly', 'None'.
+ */
+ @JsonProperty(value = "properties.lockLevel", required = true)
+ private ApplicationLockLevel lockLevel;
+
+ /**
+ * The managed application definition display name.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /**
+ * A value indicating whether the package is enabled or not.
+ */
+ @JsonProperty(value = "properties.isEnabled")
+ private Boolean isEnabled;
+
+ /**
+ * The managed application provider authorizations.
+ */
+ @JsonProperty(value = "properties.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 = "properties.artifacts")
+ private List artifacts;
+
+ /**
+ * The managed application definition description.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * The managed application definition package file Uri. Use this element.
+ */
+ @JsonProperty(value = "properties.packageFileUri")
+ private String packageFileUri;
+
+ /**
+ * The inline main template json which has resources to be provisioned. It
+ * can be a JObject or well-formed JSON string.
+ */
+ @JsonProperty(value = "properties.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 = "properties.createUiDefinition")
+ private Object createUiDefinition;
+
+ /**
+ * The managed application notification policy.
+ */
+ @JsonProperty(value = "properties.notificationPolicy")
+ private ApplicationNotificationPolicy notificationPolicy;
+
+ /**
+ * The managed application locking policy.
+ */
+ @JsonProperty(value = "properties.lockingPolicy")
+ private ApplicationPackageLockingPolicyDefinition lockingPolicy;
+
+ /**
+ * The managed application deployment policy.
+ */
+ @JsonProperty(value = "properties.deploymentPolicy")
+ private ApplicationDeploymentPolicy deploymentPolicy;
+
+ /**
+ * The managed application management policy that determines publisher's
+ * access to the managed resource group.
+ */
+ @JsonProperty(value = "properties.managementPolicy")
+ private ApplicationManagementPolicy managementPolicy;
+
+ /**
+ * The managed application provider policies.
+ */
+ @JsonProperty(value = "properties.policies")
+ private List policies;
+
+ /**
+ * Get the managed application lock level. Possible values include: 'CanNotDelete', 'ReadOnly', 'None'.
+ *
+ * @return the lockLevel value
+ */
+ public ApplicationLockLevel lockLevel() {
+ return this.lockLevel;
+ }
+
+ /**
+ * Set the managed application lock level. Possible values include: 'CanNotDelete', 'ReadOnly', 'None'.
+ *
+ * @param lockLevel the lockLevel value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withLockLevel(ApplicationLockLevel lockLevel) {
+ this.lockLevel = lockLevel;
+ return this;
+ }
+
+ /**
+ * Get the managed application definition display name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set the managed application definition display name.
+ *
+ * @param displayName the displayName value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get a value indicating whether the package is enabled or not.
+ *
+ * @return the isEnabled value
+ */
+ public Boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set 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) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get the managed application provider authorizations.
+ *
+ * @return the authorizations value
+ */
+ public List authorizations() {
+ return this.authorizations;
+ }
+
+ /**
+ * Set the managed application provider authorizations.
+ *
+ * @param authorizations the authorizations value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withAuthorizations(List authorizations) {
+ this.authorizations = authorizations;
+ return this;
+ }
+
+ /**
+ * Get 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 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) {
+ this.artifacts = artifacts;
+ return this;
+ }
+
+ /**
+ * Get the managed application definition description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the managed application definition description.
+ *
+ * @param description the description value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the managed application definition package file Uri. Use this element.
+ *
+ * @return the packageFileUri value
+ */
+ public String packageFileUri() {
+ return this.packageFileUri;
+ }
+
+ /**
+ * Set 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) {
+ this.packageFileUri = packageFileUri;
+ return this;
+ }
+
+ /**
+ * Get 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 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) {
+ this.mainTemplate = mainTemplate;
+ return this;
+ }
+
+ /**
+ * Get 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 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) {
+ this.createUiDefinition = createUiDefinition;
+ return this;
+ }
+
+ /**
+ * Get the managed application notification policy.
+ *
+ * @return the notificationPolicy value
+ */
+ public ApplicationNotificationPolicy notificationPolicy() {
+ return this.notificationPolicy;
+ }
+
+ /**
+ * Set the managed application notification policy.
+ *
+ * @param notificationPolicy the notificationPolicy value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withNotificationPolicy(ApplicationNotificationPolicy notificationPolicy) {
+ this.notificationPolicy = notificationPolicy;
+ return this;
+ }
+
+ /**
+ * Get the managed application locking policy.
+ *
+ * @return the lockingPolicy value
+ */
+ public ApplicationPackageLockingPolicyDefinition lockingPolicy() {
+ return this.lockingPolicy;
+ }
+
+ /**
+ * Set the managed application locking policy.
+ *
+ * @param lockingPolicy the lockingPolicy value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withLockingPolicy(ApplicationPackageLockingPolicyDefinition lockingPolicy) {
+ this.lockingPolicy = lockingPolicy;
+ return this;
+ }
+
+ /**
+ * Get the managed application deployment policy.
+ *
+ * @return the deploymentPolicy value
+ */
+ public ApplicationDeploymentPolicy deploymentPolicy() {
+ return this.deploymentPolicy;
+ }
+
+ /**
+ * Set the managed application deployment policy.
+ *
+ * @param deploymentPolicy the deploymentPolicy value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withDeploymentPolicy(ApplicationDeploymentPolicy deploymentPolicy) {
+ this.deploymentPolicy = deploymentPolicy;
+ return this;
+ }
+
+ /**
+ * Get 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 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) {
+ this.managementPolicy = managementPolicy;
+ return this;
+ }
+
+ /**
+ * Get the managed application provider policies.
+ *
+ * @return the policies value
+ */
+ public List policies() {
+ return this.policies;
+ }
+
+ /**
+ * Set the managed application provider policies.
+ *
+ * @param policies the policies value to set
+ * @return the ApplicationDefinitionInner object itself.
+ */
+ public ApplicationDefinitionInner withPolicies(List policies) {
+ this.policies = policies;
+ return this;
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsImpl.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsImpl.java
new file mode 100644
index 000000000000..82a3461370e0
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsImpl.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * def
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinition;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+
+class ApplicationDefinitionsImpl extends GroupableResourcesCoreImpl implements ApplicationDefinitions {
+ protected ApplicationDefinitionsImpl(ManagedApplicationsManager manager) {
+ super(manager.inner().applicationDefinitions(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ ApplicationDefinitionsInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ApplicationDefinition call(ApplicationDefinitionInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public ApplicationDefinitionImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ public Observable getByIdAsync(String applicationDefinitionId) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.getByIdAsync(applicationDefinitionId)
+ .map(new Func1() {
+ @Override
+ public ApplicationDefinition call(ApplicationDefinitionInner inner) {
+ return new ApplicationDefinitionImpl(inner.name(), inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteByIdAsync(String applicationDefinitionId) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.deleteByIdAsync(applicationDefinitionId).toCompletable();
+ }
+
+ @Override
+ public Observable createOrUpdateByIdAsync(String applicationDefinitionId, ApplicationDefinitionInner parameters) {
+ ApplicationDefinitionsInner client = this.inner();
+ return client.createOrUpdateByIdAsync(applicationDefinitionId, parameters)
+ .map(new Func1() {
+ @Override
+ public ApplicationDefinition call(ApplicationDefinitionInner inner) {
+ return new ApplicationDefinitionImpl(inner.name(), inner, manager());
+ }
+ });
+ }
+
+ @Override
+ protected ApplicationDefinitionImpl wrapModel(ApplicationDefinitionInner inner) {
+ return new ApplicationDefinitionImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected ApplicationDefinitionImpl wrapModel(String name) {
+ return new ApplicationDefinitionImpl(name, new ApplicationDefinitionInner(), this.manager());
+ }
+
+}
diff --git a/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsInner.java b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsInner.java
new file mode 100644
index 000000000000..b6c03efe5546
--- /dev/null
+++ b/sdk/managedapplications/mgmt-v2019_07_01/src/main/java/com/microsoft/azure/management/managedapplications/v2019_07_01/implementation/ApplicationDefinitionsInner.java
@@ -0,0 +1,1118 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.managedapplications.v2019_07_01.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.managedapplications.v2019_07_01.ErrorResponseException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in ApplicationDefinitions.
+ */
+public class ApplicationDefinitionsInner implements InnerSupportsGet, InnerSupportsDelete {
+ /** The Retrofit service to perform REST calls. */
+ private ApplicationDefinitionsService service;
+ /** The service client containing this operation class. */
+ private ApplicationClientImpl client;
+
+ /**
+ * Initializes an instance of ApplicationDefinitionsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ApplicationDefinitionsInner(Retrofit retrofit, ApplicationClientImpl client) {
+ this.service = retrofit.create(ApplicationDefinitionsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for ApplicationDefinitions to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ApplicationDefinitionsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}")
+ Observable> getByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("applicationDefinitionName") String applicationDefinitionName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("resourceGroupName") String resourceGroupName, @Path("applicationDefinitionName") String applicationDefinitionName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("resourceGroupName") String resourceGroupName, @Path("applicationDefinitionName") String applicationDefinitionName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}")
+ Observable> createOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("applicationDefinitionName") String applicationDefinitionName, @Path("subscriptionId") String subscriptionId, @Body ApplicationDefinitionInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions/{applicationDefinitionName}")
+ Observable> beginCreateOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("applicationDefinitionName") String applicationDefinitionName, @Path("subscriptionId") String subscriptionId, @Body ApplicationDefinitionInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applicationDefinitions")
+ Observable> listByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions getById" })
+ @GET("{applicationDefinitionId}")
+ Observable> getById(@Path(value = "applicationDefinitionId", encoded = true) String applicationDefinitionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions deleteById" })
+ @HTTP(path = "{applicationDefinitionId}", method = "DELETE", hasBody = true)
+ Observable> deleteById(@Path(value = "applicationDefinitionId", encoded = true) String applicationDefinitionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions beginDeleteById" })
+ @HTTP(path = "{applicationDefinitionId}", method = "DELETE", hasBody = true)
+ Observable> beginDeleteById(@Path(value = "applicationDefinitionId", encoded = true) String applicationDefinitionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions createOrUpdateById" })
+ @PUT("{applicationDefinitionId}")
+ Observable> createOrUpdateById(@Path(value = "applicationDefinitionId", encoded = true) String applicationDefinitionId, @Body ApplicationDefinitionInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions beginCreateOrUpdateById" })
+ @PUT("{applicationDefinitionId}")
+ Observable> beginCreateOrUpdateById(@Path(value = "applicationDefinitionId", encoded = true) String applicationDefinitionId, @Body ApplicationDefinitionInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.managedapplications.v2019_07_01.ApplicationDefinitions listByResourceGroupNext" })
+ @GET
+ Observable> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * 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 ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ApplicationDefinitionInner object if successful.
+ */
+ public ApplicationDefinitionInner getByResourceGroup(String resourceGroupName, String applicationDefinitionName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).toBlocking().single().body();
+ }
+
+ /**
+ * 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getByResourceGroupAsync(String resourceGroupName, String applicationDefinitionName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByResourceGroupWithServiceResponseAsync(resourceGroupName, applicationDefinitionName), serviceCallback);
+ }
+
+ /**
+ * 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
+ * @return the observable to the ApplicationDefinitionInner object
+ */
+ public Observable getByResourceGroupAsync(String resourceGroupName, String applicationDefinitionName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).map(new Func1, ApplicationDefinitionInner>() {
+ @Override
+ public ApplicationDefinitionInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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
+ * @return the observable to the ApplicationDefinitionInner object
+ */
+ public Observable> getByResourceGroupWithServiceResponseAsync(String resourceGroupName, String applicationDefinitionName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (applicationDefinitionName == null) {
+ throw new IllegalArgumentException("Parameter applicationDefinitionName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getByResourceGroup(resourceGroupName, applicationDefinitionName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByResourceGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByResourceGroupDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void delete(String resourceGroupName, String applicationDefinitionName) {
+ deleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).toBlocking().last().body();
+ }
+
+ /**
+ * 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 to delete.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture deleteAsync(String resourceGroupName, String applicationDefinitionName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName), serviceCallback);
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable deleteAsync(String resourceGroupName, String applicationDefinitionName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> deleteWithServiceResponseAsync(String resourceGroupName, String applicationDefinitionName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (applicationDefinitionName == null) {
+ throw new IllegalArgumentException("Parameter applicationDefinitionName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Observable> observable = service.delete(resourceGroupName, applicationDefinitionName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void beginDelete(String resourceGroupName, String applicationDefinitionName) {
+ beginDeleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).toBlocking().single().body();
+ }
+
+ /**
+ * 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 to delete.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginDeleteAsync(String resourceGroupName, String applicationDefinitionName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginDeleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName), serviceCallback);
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable beginDeleteAsync(String resourceGroupName, String applicationDefinitionName) {
+ return beginDeleteWithServiceResponseAsync(resourceGroupName, applicationDefinitionName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * 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 to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String applicationDefinitionName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (applicationDefinitionName == null) {
+ throw new IllegalArgumentException("Parameter applicationDefinitionName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.beginDelete(resourceGroupName, applicationDefinitionName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginDeleteDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginDeleteDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .register(204, new TypeToken() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * 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 ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ApplicationDefinitionInner object if successful.
+ */
+ public ApplicationDefinitionInner createOrUpdate(String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, applicationDefinitionName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture createOrUpdateAsync(String resourceGroupName, String applicationDefinitionName, ApplicationDefinitionInner parameters, final ServiceCallback