diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/pom.xml b/sdk/containerregistry/mgmt-v2019_12_01_preview/pom.xml
new file mode 100644
index 000000000000..f7c7222c6944
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.containerregistry.v2019_12_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-containerregistry
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for ContainerRegistry Management
+ This package contains Microsoft ContainerRegistry 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/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Action.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Action.java
new file mode 100644
index 000000000000..7cbbf7bdb9b2
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Action.java
@@ -0,0 +1,38 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Action.
+ */
+public final class Action extends ExpandableStringEnum {
+ /** Static value Allow for Action. */
+ public static final Action ALLOW = fromString("Allow");
+
+ /**
+ * Creates or finds a Action from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Action
+ */
+ @JsonCreator
+ public static Action fromString(String name) {
+ return fromString(name, Action.class);
+ }
+
+ /**
+ * @return known Action values
+ */
+ public static Collection values() {
+ return values(Action.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActionsRequired.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActionsRequired.java
new file mode 100644
index 000000000000..79b57407e4bf
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActionsRequired.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ActionsRequired.
+ */
+public final class ActionsRequired extends ExpandableStringEnum {
+ /** Static value None for ActionsRequired. */
+ public static final ActionsRequired NONE = fromString("None");
+
+ /** Static value Recreate for ActionsRequired. */
+ public static final ActionsRequired RECREATE = fromString("Recreate");
+
+ /**
+ * Creates or finds a ActionsRequired from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ActionsRequired
+ */
+ @JsonCreator
+ public static ActionsRequired fromString(String name) {
+ return fromString(name, ActionsRequired.class);
+ }
+
+ /**
+ * @return known ActionsRequired values
+ */
+ public static Collection values() {
+ return values(ActionsRequired.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActiveDirectoryObject.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActiveDirectoryObject.java
new file mode 100644
index 000000000000..05c7cb6c67df
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ActiveDirectoryObject.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Active Directory Object that will be used for authenticating the token
+ * of a container registry.
+ */
+public class ActiveDirectoryObject {
+ /**
+ * The user/group/application object ID for Active Directory Object that
+ * will be used for authenticating the token of a container registry.
+ */
+ @JsonProperty(value = "objectId")
+ private String objectId;
+
+ /**
+ * The tenant ID of user/group/application object Active Directory Object
+ * that will be used for authenticating the token of a container registry.
+ */
+ @JsonProperty(value = "tenantId")
+ private String tenantId;
+
+ /**
+ * Get the user/group/application object ID for Active Directory Object that will be used for authenticating the token of a container registry.
+ *
+ * @return the objectId value
+ */
+ public String objectId() {
+ return this.objectId;
+ }
+
+ /**
+ * Set the user/group/application object ID for Active Directory Object that will be used for authenticating the token of a container registry.
+ *
+ * @param objectId the objectId value to set
+ * @return the ActiveDirectoryObject object itself.
+ */
+ public ActiveDirectoryObject withObjectId(String objectId) {
+ this.objectId = objectId;
+ return this;
+ }
+
+ /**
+ * Get the tenant ID of user/group/application object Active Directory Object that will be used for authenticating the token of a container registry.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Set the tenant ID of user/group/application object Active Directory Object that will be used for authenticating the token of a container registry.
+ *
+ * @param tenantId the tenantId value to set
+ * @return the ActiveDirectoryObject object itself.
+ */
+ public ActiveDirectoryObject withTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Actor.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Actor.java
new file mode 100644
index 000000000000..fdf862ad5c66
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Actor.java
@@ -0,0 +1,45 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The agent that initiated the event. For most situations, this could be from
+ * the authorization context of the request.
+ */
+public class Actor {
+ /**
+ * The subject or username associated with the request context that
+ * generated the event.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Get the subject or username associated with the request context that generated the event.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the subject or username associated with the request context that generated the event.
+ *
+ * @param name the name value to set
+ * @return the Actor object itself.
+ */
+ public Actor withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPool.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPool.java
new file mode 100644
index 000000000000..db287c5cda28
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPool.java
@@ -0,0 +1,220 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.AgentPoolInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import java.util.Map;
+
+/**
+ * Type representing AgentPool.
+ */
+public interface AgentPool extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the count value.
+ */
+ Integer count();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the os value.
+ */
+ OS os();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the tier value.
+ */
+ String tier();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the virtualNetworkSubnetResourceId value.
+ */
+ String virtualNetworkSubnetResourceId();
+
+ /**
+ * The entirety of the AgentPool definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithRegistry, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AgentPool definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AgentPool definition.
+ */
+ interface Blank extends WithRegistry {
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Registry.
+ */
+ interface WithRegistry {
+ /**
+ * Specifies resourceGroupName, registryName.
+ * @param resourceGroupName The name of the resource group to which the container registry belongs
+ * @param registryName The name of the container registry
+ * @return the next definition stage
+ */
+ WithLocation withExistingRegistry(String resourceGroupName, String registryName);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The location of the resource. This cannot be changed after the resource is created
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Count.
+ */
+ interface WithCount {
+ /**
+ * Specifies count.
+ * @param count The count of agent machine
+ * @return the next definition stage
+ */
+ WithCreate withCount(Integer count);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Os.
+ */
+ interface WithOs {
+ /**
+ * Specifies os.
+ * @param os The OS of agent machine. Possible values include: 'Windows', 'Linux'
+ * @return the next definition stage
+ */
+ WithCreate withOs(OS os);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags of the resource
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify Tier.
+ */
+ interface WithTier {
+ /**
+ * Specifies tier.
+ * @param tier The Tier of agent machine
+ * @return the next definition stage
+ */
+ WithCreate withTier(String tier);
+ }
+
+ /**
+ * The stage of the agentpool definition allowing to specify VirtualNetworkSubnetResourceId.
+ */
+ interface WithVirtualNetworkSubnetResourceId {
+ /**
+ * Specifies virtualNetworkSubnetResourceId.
+ * @param virtualNetworkSubnetResourceId The Virtual Network Subnet Resource Id of the agent machine
+ * @return the next definition stage
+ */
+ WithCreate withVirtualNetworkSubnetResourceId(String virtualNetworkSubnetResourceId);
+ }
+
+ /**
+ * 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, DefinitionStages.WithCount, DefinitionStages.WithOs, DefinitionStages.WithTags, DefinitionStages.WithTier, DefinitionStages.WithVirtualNetworkSubnetResourceId {
+ }
+ }
+ /**
+ * The template for a AgentPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCount, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of AgentPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the agentpool update allowing to specify Count.
+ */
+ interface WithCount {
+ /**
+ * Specifies count.
+ * @param count The count of agent machine
+ * @return the next update stage
+ */
+ Update withCount(Integer count);
+ }
+
+ /**
+ * The stage of the agentpool update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The ARM resource tags
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolQueueStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolQueueStatus.java
new file mode 100644
index 000000000000..c4f8f9ed80cc
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolQueueStatus.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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.AgentPoolQueueStatusInner;
+
+/**
+ * Type representing AgentPoolQueueStatus.
+ */
+public interface AgentPoolQueueStatus extends HasInner, HasManager {
+ /**
+ * @return the count value.
+ */
+ Integer count();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolUpdateParameters.java
new file mode 100644
index 000000000000..7673f4bcaa21
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPoolUpdateParameters.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The parameters for updating an agent pool.
+ */
+@JsonFlatten
+public class AgentPoolUpdateParameters {
+ /**
+ * The count of agent machine.
+ */
+ @JsonProperty(value = "properties.count")
+ private Integer count;
+
+ /**
+ * The ARM resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the count of agent machine.
+ *
+ * @return the count value
+ */
+ public Integer count() {
+ return this.count;
+ }
+
+ /**
+ * Set the count of agent machine.
+ *
+ * @param count the count value to set
+ * @return the AgentPoolUpdateParameters object itself.
+ */
+ public AgentPoolUpdateParameters withCount(Integer count) {
+ this.count = count;
+ return this;
+ }
+
+ /**
+ * Get the ARM resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the ARM resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the AgentPoolUpdateParameters object itself.
+ */
+ public AgentPoolUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPools.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPools.java
new file mode 100644
index 000000000000..1aa6e1851542
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentPools.java
@@ -0,0 +1,64 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.AgentPoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AgentPools.
+ */
+public interface AgentPools extends SupportsCreating, HasInner {
+ /**
+ * Gets the count of queued runs for a given agent pool.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getQueueStatusAsync(String resourceGroupName, String registryName, String agentPoolName);
+
+ /**
+ * Gets the detailed information for a given agent pool.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String agentPoolName);
+
+ /**
+ * Lists all the agent pools for a specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String registryName);
+
+ /**
+ * Deletes a specified agent pool resource.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param agentPoolName The name of the agent pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String registryName, String agentPoolName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentProperties.java
new file mode 100644
index 000000000000..fd11809fe87e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AgentProperties.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that determine the run agent configuration.
+ */
+public class AgentProperties {
+ /**
+ * The CPU configuration in terms of number of cores required for the run.
+ */
+ @JsonProperty(value = "cpu")
+ private Integer cpu;
+
+ /**
+ * Get the CPU configuration in terms of number of cores required for the run.
+ *
+ * @return the cpu value
+ */
+ public Integer cpu() {
+ return this.cpu;
+ }
+
+ /**
+ * Set the CPU configuration in terms of number of cores required for the run.
+ *
+ * @param cpu the cpu value to set
+ * @return the AgentProperties object itself.
+ */
+ public AgentProperties withCpu(Integer cpu) {
+ this.cpu = cpu;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Architecture.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Architecture.java
new file mode 100644
index 000000000000..aca5871940a3
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Architecture.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Architecture.
+ */
+public final class Architecture extends ExpandableStringEnum {
+ /** Static value amd64 for Architecture. */
+ public static final Architecture AMD64 = fromString("amd64");
+
+ /** Static value x86 for Architecture. */
+ public static final Architecture X86 = fromString("x86");
+
+ /** Static value 386 for Architecture. */
+ public static final Architecture THREE_EIGHT_SIX = fromString("386");
+
+ /** Static value arm for Architecture. */
+ public static final Architecture ARM = fromString("arm");
+
+ /** Static value arm64 for Architecture. */
+ public static final Architecture ARM64 = fromString("arm64");
+
+ /**
+ * Creates or finds a Architecture from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Architecture
+ */
+ @JsonCreator
+ public static Architecture fromString(String name) {
+ return fromString(name, Architecture.class);
+ }
+
+ /**
+ * @return known Architecture values
+ */
+ public static Collection values() {
+ return values(Architecture.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Argument.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Argument.java
new file mode 100644
index 000000000000..71e5e45aa705
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Argument.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a run argument.
+ */
+public class Argument {
+ /**
+ * The name of the argument.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The value of the argument.
+ */
+ @JsonProperty(value = "value", required = true)
+ private String value;
+
+ /**
+ * Flag to indicate whether the argument represents a secret and want to be
+ * removed from build logs.
+ */
+ @JsonProperty(value = "isSecret")
+ private Boolean isSecret;
+
+ /**
+ * Get the name of the argument.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the argument.
+ *
+ * @param name the name value to set
+ * @return the Argument object itself.
+ */
+ public Argument withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the value of the argument.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value of the argument.
+ *
+ * @param value the value value to set
+ * @return the Argument object itself.
+ */
+ public Argument withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether the argument represents a secret and want to be removed from build logs.
+ *
+ * @return the isSecret value
+ */
+ public Boolean isSecret() {
+ return this.isSecret;
+ }
+
+ /**
+ * Set flag to indicate whether the argument represents a secret and want to be removed from build logs.
+ *
+ * @param isSecret the isSecret value to set
+ * @return the Argument object itself.
+ */
+ public Argument withIsSecret(Boolean isSecret) {
+ this.isSecret = isSecret;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfo.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfo.java
new file mode 100644
index 000000000000..82ead3447738
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfo.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The authorization properties for accessing the source code repository.
+ */
+public class AuthInfo {
+ /**
+ * The type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ */
+ @JsonProperty(value = "tokenType", required = true)
+ private TokenType tokenType;
+
+ /**
+ * The access token used to access the source control provider.
+ */
+ @JsonProperty(value = "token", required = true)
+ private String token;
+
+ /**
+ * The refresh token used to refresh the access token.
+ */
+ @JsonProperty(value = "refreshToken")
+ private String refreshToken;
+
+ /**
+ * The scope of the access token.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /**
+ * Time in seconds that the token remains valid.
+ */
+ @JsonProperty(value = "expiresIn")
+ private Integer expiresIn;
+
+ /**
+ * Get the type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ *
+ * @return the tokenType value
+ */
+ public TokenType tokenType() {
+ return this.tokenType;
+ }
+
+ /**
+ * Set the type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ *
+ * @param tokenType the tokenType value to set
+ * @return the AuthInfo object itself.
+ */
+ public AuthInfo withTokenType(TokenType tokenType) {
+ this.tokenType = tokenType;
+ return this;
+ }
+
+ /**
+ * Get the access token used to access the source control provider.
+ *
+ * @return the token value
+ */
+ public String token() {
+ return this.token;
+ }
+
+ /**
+ * Set the access token used to access the source control provider.
+ *
+ * @param token the token value to set
+ * @return the AuthInfo object itself.
+ */
+ public AuthInfo withToken(String token) {
+ this.token = token;
+ return this;
+ }
+
+ /**
+ * Get the refresh token used to refresh the access token.
+ *
+ * @return the refreshToken value
+ */
+ public String refreshToken() {
+ return this.refreshToken;
+ }
+
+ /**
+ * Set the refresh token used to refresh the access token.
+ *
+ * @param refreshToken the refreshToken value to set
+ * @return the AuthInfo object itself.
+ */
+ public AuthInfo withRefreshToken(String refreshToken) {
+ this.refreshToken = refreshToken;
+ return this;
+ }
+
+ /**
+ * Get the scope of the access token.
+ *
+ * @return the scope value
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope of the access token.
+ *
+ * @param scope the scope value to set
+ * @return the AuthInfo object itself.
+ */
+ public AuthInfo withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get time in seconds that the token remains valid.
+ *
+ * @return the expiresIn value
+ */
+ public Integer expiresIn() {
+ return this.expiresIn;
+ }
+
+ /**
+ * Set time in seconds that the token remains valid.
+ *
+ * @param expiresIn the expiresIn value to set
+ * @return the AuthInfo object itself.
+ */
+ public AuthInfo withExpiresIn(Integer expiresIn) {
+ this.expiresIn = expiresIn;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfoUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfoUpdateParameters.java
new file mode 100644
index 000000000000..3afd20f71f9a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/AuthInfoUpdateParameters.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The authorization properties for accessing the source code repository.
+ */
+public class AuthInfoUpdateParameters {
+ /**
+ * The type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ */
+ @JsonProperty(value = "tokenType")
+ private TokenType tokenType;
+
+ /**
+ * The access token used to access the source control provider.
+ */
+ @JsonProperty(value = "token")
+ private String token;
+
+ /**
+ * The refresh token used to refresh the access token.
+ */
+ @JsonProperty(value = "refreshToken")
+ private String refreshToken;
+
+ /**
+ * The scope of the access token.
+ */
+ @JsonProperty(value = "scope")
+ private String scope;
+
+ /**
+ * Time in seconds that the token remains valid.
+ */
+ @JsonProperty(value = "expiresIn")
+ private Integer expiresIn;
+
+ /**
+ * Get the type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ *
+ * @return the tokenType value
+ */
+ public TokenType tokenType() {
+ return this.tokenType;
+ }
+
+ /**
+ * Set the type of Auth token. Possible values include: 'PAT', 'OAuth'.
+ *
+ * @param tokenType the tokenType value to set
+ * @return the AuthInfoUpdateParameters object itself.
+ */
+ public AuthInfoUpdateParameters withTokenType(TokenType tokenType) {
+ this.tokenType = tokenType;
+ return this;
+ }
+
+ /**
+ * Get the access token used to access the source control provider.
+ *
+ * @return the token value
+ */
+ public String token() {
+ return this.token;
+ }
+
+ /**
+ * Set the access token used to access the source control provider.
+ *
+ * @param token the token value to set
+ * @return the AuthInfoUpdateParameters object itself.
+ */
+ public AuthInfoUpdateParameters withToken(String token) {
+ this.token = token;
+ return this;
+ }
+
+ /**
+ * Get the refresh token used to refresh the access token.
+ *
+ * @return the refreshToken value
+ */
+ public String refreshToken() {
+ return this.refreshToken;
+ }
+
+ /**
+ * Set the refresh token used to refresh the access token.
+ *
+ * @param refreshToken the refreshToken value to set
+ * @return the AuthInfoUpdateParameters object itself.
+ */
+ public AuthInfoUpdateParameters withRefreshToken(String refreshToken) {
+ this.refreshToken = refreshToken;
+ return this;
+ }
+
+ /**
+ * Get the scope of the access token.
+ *
+ * @return the scope value
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope of the access token.
+ *
+ * @param scope the scope value to set
+ * @return the AuthInfoUpdateParameters object itself.
+ */
+ public AuthInfoUpdateParameters withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get time in seconds that the token remains valid.
+ *
+ * @return the expiresIn value
+ */
+ public Integer expiresIn() {
+ return this.expiresIn;
+ }
+
+ /**
+ * Set time in seconds that the token remains valid.
+ *
+ * @param expiresIn the expiresIn value to set
+ * @return the AuthInfoUpdateParameters object itself.
+ */
+ public AuthInfoUpdateParameters withExpiresIn(Integer expiresIn) {
+ this.expiresIn = expiresIn;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependency.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependency.java
new file mode 100644
index 000000000000..097fbb749f75
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependency.java
@@ -0,0 +1,148 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties that describe a base image dependency.
+ */
+public class BaseImageDependency {
+ /**
+ * The type of the base image dependency. Possible values include:
+ * 'BuildTime', 'RunTime'.
+ */
+ @JsonProperty(value = "type")
+ private BaseImageDependencyType type;
+
+ /**
+ * The registry login server.
+ */
+ @JsonProperty(value = "registry")
+ private String registry;
+
+ /**
+ * The repository name.
+ */
+ @JsonProperty(value = "repository")
+ private String repository;
+
+ /**
+ * The tag name.
+ */
+ @JsonProperty(value = "tag")
+ private String tag;
+
+ /**
+ * The sha256-based digest of the image manifest.
+ */
+ @JsonProperty(value = "digest")
+ private String digest;
+
+ /**
+ * Get the type of the base image dependency. Possible values include: 'BuildTime', 'RunTime'.
+ *
+ * @return the type value
+ */
+ public BaseImageDependencyType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of the base image dependency. Possible values include: 'BuildTime', 'RunTime'.
+ *
+ * @param type the type value to set
+ * @return the BaseImageDependency object itself.
+ */
+ public BaseImageDependency withType(BaseImageDependencyType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the registry login server.
+ *
+ * @return the registry value
+ */
+ public String registry() {
+ return this.registry;
+ }
+
+ /**
+ * Set the registry login server.
+ *
+ * @param registry the registry value to set
+ * @return the BaseImageDependency object itself.
+ */
+ public BaseImageDependency withRegistry(String registry) {
+ this.registry = registry;
+ return this;
+ }
+
+ /**
+ * Get the repository name.
+ *
+ * @return the repository value
+ */
+ public String repository() {
+ return this.repository;
+ }
+
+ /**
+ * Set the repository name.
+ *
+ * @param repository the repository value to set
+ * @return the BaseImageDependency object itself.
+ */
+ public BaseImageDependency withRepository(String repository) {
+ this.repository = repository;
+ return this;
+ }
+
+ /**
+ * Get the tag name.
+ *
+ * @return the tag value
+ */
+ public String tag() {
+ return this.tag;
+ }
+
+ /**
+ * Set the tag name.
+ *
+ * @param tag the tag value to set
+ * @return the BaseImageDependency object itself.
+ */
+ public BaseImageDependency withTag(String tag) {
+ this.tag = tag;
+ return this;
+ }
+
+ /**
+ * Get the sha256-based digest of the image manifest.
+ *
+ * @return the digest value
+ */
+ public String digest() {
+ return this.digest;
+ }
+
+ /**
+ * Set the sha256-based digest of the image manifest.
+ *
+ * @param digest the digest value to set
+ * @return the BaseImageDependency object itself.
+ */
+ public BaseImageDependency withDigest(String digest) {
+ this.digest = digest;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependencyType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependencyType.java
new file mode 100644
index 000000000000..82fae7378f67
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageDependencyType.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BaseImageDependencyType.
+ */
+public final class BaseImageDependencyType extends ExpandableStringEnum {
+ /** Static value BuildTime for BaseImageDependencyType. */
+ public static final BaseImageDependencyType BUILD_TIME = fromString("BuildTime");
+
+ /** Static value RunTime for BaseImageDependencyType. */
+ public static final BaseImageDependencyType RUN_TIME = fromString("RunTime");
+
+ /**
+ * Creates or finds a BaseImageDependencyType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BaseImageDependencyType
+ */
+ @JsonCreator
+ public static BaseImageDependencyType fromString(String name) {
+ return fromString(name, BaseImageDependencyType.class);
+ }
+
+ /**
+ * @return known BaseImageDependencyType values
+ */
+ public static Collection values() {
+ return values(BaseImageDependencyType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTrigger.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTrigger.java
new file mode 100644
index 000000000000..0f681c70bffd
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTrigger.java
@@ -0,0 +1,150 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The trigger based on base image dependency.
+ */
+public class BaseImageTrigger {
+ /**
+ * The type of the auto trigger for base image dependency updates. Possible
+ * values include: 'All', 'Runtime'.
+ */
+ @JsonProperty(value = "baseImageTriggerType", required = true)
+ private BaseImageTriggerType baseImageTriggerType;
+
+ /**
+ * The endpoint URL for receiving update triggers.
+ */
+ @JsonProperty(value = "updateTriggerEndpoint")
+ private String updateTriggerEndpoint;
+
+ /**
+ * Type of Payload body for Base image update triggers. Possible values
+ * include: 'Default', 'Token'.
+ */
+ @JsonProperty(value = "updateTriggerPayloadType")
+ private UpdateTriggerPayloadType updateTriggerPayloadType;
+
+ /**
+ * The current status of trigger. Possible values include: 'Disabled',
+ * 'Enabled'.
+ */
+ @JsonProperty(value = "status")
+ private TriggerStatus status;
+
+ /**
+ * The name of the trigger.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the type of the auto trigger for base image dependency updates. Possible values include: 'All', 'Runtime'.
+ *
+ * @return the baseImageTriggerType value
+ */
+ public BaseImageTriggerType baseImageTriggerType() {
+ return this.baseImageTriggerType;
+ }
+
+ /**
+ * Set the type of the auto trigger for base image dependency updates. Possible values include: 'All', 'Runtime'.
+ *
+ * @param baseImageTriggerType the baseImageTriggerType value to set
+ * @return the BaseImageTrigger object itself.
+ */
+ public BaseImageTrigger withBaseImageTriggerType(BaseImageTriggerType baseImageTriggerType) {
+ this.baseImageTriggerType = baseImageTriggerType;
+ return this;
+ }
+
+ /**
+ * Get the endpoint URL for receiving update triggers.
+ *
+ * @return the updateTriggerEndpoint value
+ */
+ public String updateTriggerEndpoint() {
+ return this.updateTriggerEndpoint;
+ }
+
+ /**
+ * Set the endpoint URL for receiving update triggers.
+ *
+ * @param updateTriggerEndpoint the updateTriggerEndpoint value to set
+ * @return the BaseImageTrigger object itself.
+ */
+ public BaseImageTrigger withUpdateTriggerEndpoint(String updateTriggerEndpoint) {
+ this.updateTriggerEndpoint = updateTriggerEndpoint;
+ return this;
+ }
+
+ /**
+ * Get type of Payload body for Base image update triggers. Possible values include: 'Default', 'Token'.
+ *
+ * @return the updateTriggerPayloadType value
+ */
+ public UpdateTriggerPayloadType updateTriggerPayloadType() {
+ return this.updateTriggerPayloadType;
+ }
+
+ /**
+ * Set type of Payload body for Base image update triggers. Possible values include: 'Default', 'Token'.
+ *
+ * @param updateTriggerPayloadType the updateTriggerPayloadType value to set
+ * @return the BaseImageTrigger object itself.
+ */
+ public BaseImageTrigger withUpdateTriggerPayloadType(UpdateTriggerPayloadType updateTriggerPayloadType) {
+ this.updateTriggerPayloadType = updateTriggerPayloadType;
+ return this;
+ }
+
+ /**
+ * Get the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @return the status value
+ */
+ public TriggerStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @param status the status value to set
+ * @return the BaseImageTrigger object itself.
+ */
+ public BaseImageTrigger withStatus(TriggerStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the name of the trigger.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the trigger.
+ *
+ * @param name the name value to set
+ * @return the BaseImageTrigger object itself.
+ */
+ public BaseImageTrigger withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerType.java
new file mode 100644
index 000000000000..337d6b50a86c
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerType.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BaseImageTriggerType.
+ */
+public final class BaseImageTriggerType extends ExpandableStringEnum {
+ /** Static value All for BaseImageTriggerType. */
+ public static final BaseImageTriggerType ALL = fromString("All");
+
+ /** Static value Runtime for BaseImageTriggerType. */
+ public static final BaseImageTriggerType RUNTIME = fromString("Runtime");
+
+ /**
+ * Creates or finds a BaseImageTriggerType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BaseImageTriggerType
+ */
+ @JsonCreator
+ public static BaseImageTriggerType fromString(String name) {
+ return fromString(name, BaseImageTriggerType.class);
+ }
+
+ /**
+ * @return known BaseImageTriggerType values
+ */
+ public static Collection values() {
+ return values(BaseImageTriggerType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerUpdateParameters.java
new file mode 100644
index 000000000000..c59e39a0b39b
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/BaseImageTriggerUpdateParameters.java
@@ -0,0 +1,150 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties for updating base image dependency trigger.
+ */
+public class BaseImageTriggerUpdateParameters {
+ /**
+ * The type of the auto trigger for base image dependency updates. Possible
+ * values include: 'All', 'Runtime'.
+ */
+ @JsonProperty(value = "baseImageTriggerType")
+ private BaseImageTriggerType baseImageTriggerType;
+
+ /**
+ * The endpoint URL for receiving update triggers.
+ */
+ @JsonProperty(value = "updateTriggerEndpoint")
+ private String updateTriggerEndpoint;
+
+ /**
+ * Type of Payload body for Base image update triggers. Possible values
+ * include: 'Default', 'Token'.
+ */
+ @JsonProperty(value = "updateTriggerPayloadType")
+ private UpdateTriggerPayloadType updateTriggerPayloadType;
+
+ /**
+ * The current status of trigger. Possible values include: 'Disabled',
+ * 'Enabled'.
+ */
+ @JsonProperty(value = "status")
+ private TriggerStatus status;
+
+ /**
+ * The name of the trigger.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the type of the auto trigger for base image dependency updates. Possible values include: 'All', 'Runtime'.
+ *
+ * @return the baseImageTriggerType value
+ */
+ public BaseImageTriggerType baseImageTriggerType() {
+ return this.baseImageTriggerType;
+ }
+
+ /**
+ * Set the type of the auto trigger for base image dependency updates. Possible values include: 'All', 'Runtime'.
+ *
+ * @param baseImageTriggerType the baseImageTriggerType value to set
+ * @return the BaseImageTriggerUpdateParameters object itself.
+ */
+ public BaseImageTriggerUpdateParameters withBaseImageTriggerType(BaseImageTriggerType baseImageTriggerType) {
+ this.baseImageTriggerType = baseImageTriggerType;
+ return this;
+ }
+
+ /**
+ * Get the endpoint URL for receiving update triggers.
+ *
+ * @return the updateTriggerEndpoint value
+ */
+ public String updateTriggerEndpoint() {
+ return this.updateTriggerEndpoint;
+ }
+
+ /**
+ * Set the endpoint URL for receiving update triggers.
+ *
+ * @param updateTriggerEndpoint the updateTriggerEndpoint value to set
+ * @return the BaseImageTriggerUpdateParameters object itself.
+ */
+ public BaseImageTriggerUpdateParameters withUpdateTriggerEndpoint(String updateTriggerEndpoint) {
+ this.updateTriggerEndpoint = updateTriggerEndpoint;
+ return this;
+ }
+
+ /**
+ * Get type of Payload body for Base image update triggers. Possible values include: 'Default', 'Token'.
+ *
+ * @return the updateTriggerPayloadType value
+ */
+ public UpdateTriggerPayloadType updateTriggerPayloadType() {
+ return this.updateTriggerPayloadType;
+ }
+
+ /**
+ * Set type of Payload body for Base image update triggers. Possible values include: 'Default', 'Token'.
+ *
+ * @param updateTriggerPayloadType the updateTriggerPayloadType value to set
+ * @return the BaseImageTriggerUpdateParameters object itself.
+ */
+ public BaseImageTriggerUpdateParameters withUpdateTriggerPayloadType(UpdateTriggerPayloadType updateTriggerPayloadType) {
+ this.updateTriggerPayloadType = updateTriggerPayloadType;
+ return this;
+ }
+
+ /**
+ * Get the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @return the status value
+ */
+ public TriggerStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @param status the status value to set
+ * @return the BaseImageTriggerUpdateParameters object itself.
+ */
+ public BaseImageTriggerUpdateParameters withStatus(TriggerStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the name of the trigger.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the trigger.
+ *
+ * @param name the name value to set
+ * @return the BaseImageTriggerUpdateParameters object itself.
+ */
+ public BaseImageTriggerUpdateParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CallbackConfig.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CallbackConfig.java
new file mode 100644
index 000000000000..c78059093075
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CallbackConfig.java
@@ -0,0 +1,31 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.CallbackConfigInner;
+import java.util.Map;
+
+/**
+ * Type representing CallbackConfig.
+ */
+public interface CallbackConfig extends HasInner, HasManager {
+ /**
+ * @return the customHeaders value.
+ */
+ Map customHeaders();
+
+ /**
+ * @return the serviceUri value.
+ */
+ String serviceUri();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Credentials.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Credentials.java
new file mode 100644
index 000000000000..1b84813914d6
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Credentials.java
@@ -0,0 +1,80 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters that describes a set of credentials that will be used when a
+ * run is invoked.
+ */
+public class Credentials {
+ /**
+ * Describes the credential parameters for accessing the source registry.
+ */
+ @JsonProperty(value = "sourceRegistry")
+ private SourceRegistryCredentials sourceRegistry;
+
+ /**
+ * Describes the credential parameters for accessing other custom
+ * registries. The key
+ * for the dictionary item will be the registry login server
+ * (myregistry.azurecr.io) and
+ * the value of the item will be the registry credentials for accessing the
+ * registry.
+ */
+ @JsonProperty(value = "customRegistries")
+ private Map customRegistries;
+
+ /**
+ * Get describes the credential parameters for accessing the source registry.
+ *
+ * @return the sourceRegistry value
+ */
+ public SourceRegistryCredentials sourceRegistry() {
+ return this.sourceRegistry;
+ }
+
+ /**
+ * Set describes the credential parameters for accessing the source registry.
+ *
+ * @param sourceRegistry the sourceRegistry value to set
+ * @return the Credentials object itself.
+ */
+ public Credentials withSourceRegistry(SourceRegistryCredentials sourceRegistry) {
+ this.sourceRegistry = sourceRegistry;
+ return this;
+ }
+
+ /**
+ * Get describes the credential parameters for accessing other custom registries. The key
+ for the dictionary item will be the registry login server (myregistry.azurecr.io) and
+ the value of the item will be the registry credentials for accessing the registry.
+ *
+ * @return the customRegistries value
+ */
+ public Map customRegistries() {
+ return this.customRegistries;
+ }
+
+ /**
+ * Set describes the credential parameters for accessing other custom registries. The key
+ for the dictionary item will be the registry login server (myregistry.azurecr.io) and
+ the value of the item will be the registry credentials for accessing the registry.
+ *
+ * @param customRegistries the customRegistries value to set
+ * @return the Credentials object itself.
+ */
+ public Credentials withCustomRegistries(Map customRegistries) {
+ this.customRegistries = customRegistries;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CustomRegistryCredentials.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CustomRegistryCredentials.java
new file mode 100644
index 000000000000..4ccdb6a3210e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/CustomRegistryCredentials.java
@@ -0,0 +1,116 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes the credentials that will be used to access a custom registry
+ * during a run.
+ */
+public class CustomRegistryCredentials {
+ /**
+ * The username for logging into the custom registry.
+ */
+ @JsonProperty(value = "userName")
+ private SecretObject userName;
+
+ /**
+ * The password for logging into the custom registry. The password is a
+ * secret
+ * object that allows multiple ways of providing the value for it.
+ */
+ @JsonProperty(value = "password")
+ private SecretObject password;
+
+ /**
+ * Indicates the managed identity assigned to the custom credential. If a
+ * user-assigned identity
+ * this value is the Client ID. If a system-assigned identity, the value
+ * will be `system`. In
+ * the case of a system-assigned identity, the Client ID will be determined
+ * by the runner. This
+ * identity may be used to authenticate to key vault to retrieve
+ * credentials or it may be the only
+ * source of authentication used for accessing the registry.
+ */
+ @JsonProperty(value = "identity")
+ private String identity;
+
+ /**
+ * Get the username for logging into the custom registry.
+ *
+ * @return the userName value
+ */
+ public SecretObject userName() {
+ return this.userName;
+ }
+
+ /**
+ * Set the username for logging into the custom registry.
+ *
+ * @param userName the userName value to set
+ * @return the CustomRegistryCredentials object itself.
+ */
+ public CustomRegistryCredentials withUserName(SecretObject userName) {
+ this.userName = userName;
+ return this;
+ }
+
+ /**
+ * Get the password for logging into the custom registry. The password is a secret
+ object that allows multiple ways of providing the value for it.
+ *
+ * @return the password value
+ */
+ public SecretObject password() {
+ return this.password;
+ }
+
+ /**
+ * Set the password for logging into the custom registry. The password is a secret
+ object that allows multiple ways of providing the value for it.
+ *
+ * @param password the password value to set
+ * @return the CustomRegistryCredentials object itself.
+ */
+ public CustomRegistryCredentials withPassword(SecretObject password) {
+ this.password = password;
+ return this;
+ }
+
+ /**
+ * Get indicates the managed identity assigned to the custom credential. If a user-assigned identity
+ this value is the Client ID. If a system-assigned identity, the value will be `system`. In
+ the case of a system-assigned identity, the Client ID will be determined by the runner. This
+ identity may be used to authenticate to key vault to retrieve credentials or it may be the only
+ source of authentication used for accessing the registry.
+ *
+ * @return the identity value
+ */
+ public String identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set indicates the managed identity assigned to the custom credential. If a user-assigned identity
+ this value is the Client ID. If a system-assigned identity, the value will be `system`. In
+ the case of a system-assigned identity, the Client ID will be determined by the runner. This
+ identity may be used to authenticate to key vault to retrieve credentials or it may be the only
+ source of authentication used for accessing the registry.
+ *
+ * @param identity the identity value to set
+ * @return the CustomRegistryCredentials object itself.
+ */
+ public CustomRegistryCredentials withIdentity(String identity) {
+ this.identity = identity;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DefaultAction.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DefaultAction.java
new file mode 100644
index 000000000000..0a3e3697c1d8
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DefaultAction.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DefaultAction.
+ */
+public final class DefaultAction extends ExpandableStringEnum {
+ /** Static value Allow for DefaultAction. */
+ public static final DefaultAction ALLOW = fromString("Allow");
+
+ /** Static value Deny for DefaultAction. */
+ public static final DefaultAction DENY = fromString("Deny");
+
+ /**
+ * Creates or finds a DefaultAction from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DefaultAction
+ */
+ @JsonCreator
+ public static DefaultAction fromString(String name) {
+ return fromString(name, DefaultAction.class);
+ }
+
+ /**
+ * @return known DefaultAction values
+ */
+ public static Collection values() {
+ return values(DefaultAction.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildRequest.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildRequest.java
new file mode 100644
index 000000000000..23e0b54b9f0f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildRequest.java
@@ -0,0 +1,316 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The parameters for a docker quick build.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = DockerBuildRequest.class)
+@JsonTypeName("DockerBuildRequest")
+public class DockerBuildRequest extends RunRequest {
+ /**
+ * The fully qualified image names including the repository and tag.
+ */
+ @JsonProperty(value = "imageNames")
+ private List imageNames;
+
+ /**
+ * The value of this property indicates whether the image built should be
+ * pushed to the registry or not.
+ */
+ @JsonProperty(value = "isPushEnabled")
+ private Boolean isPushEnabled;
+
+ /**
+ * The value of this property indicates whether the image cache is enabled
+ * or not.
+ */
+ @JsonProperty(value = "noCache")
+ private Boolean noCache;
+
+ /**
+ * The Docker file path relative to the source location.
+ */
+ @JsonProperty(value = "dockerFilePath", required = true)
+ private String dockerFilePath;
+
+ /**
+ * The name of the target build stage for the docker build.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * The collection of override arguments to be used when executing the run.
+ */
+ @JsonProperty(value = "arguments")
+ private List arguments;
+
+ /**
+ * Run timeout in seconds.
+ */
+ @JsonProperty(value = "timeout")
+ private Integer timeout;
+
+ /**
+ * The platform properties against which the run has to happen.
+ */
+ @JsonProperty(value = "platform", required = true)
+ private PlatformProperties platform;
+
+ /**
+ * The machine configuration of the run agent.
+ */
+ @JsonProperty(value = "agentConfiguration")
+ private AgentProperties agentConfiguration;
+
+ /**
+ * The URL(absolute or relative) of the source context. It can be an URL to
+ * a tar or git repository.
+ * If it is relative URL, the relative path should be obtained from calling
+ * listBuildSourceUploadUrl API.
+ */
+ @JsonProperty(value = "sourceLocation")
+ private String sourceLocation;
+
+ /**
+ * The properties that describes a set of credentials that will be used
+ * when this run is invoked.
+ */
+ @JsonProperty(value = "credentials")
+ private Credentials credentials;
+
+ /**
+ * Get the fully qualified image names including the repository and tag.
+ *
+ * @return the imageNames value
+ */
+ public List imageNames() {
+ return this.imageNames;
+ }
+
+ /**
+ * Set the fully qualified image names including the repository and tag.
+ *
+ * @param imageNames the imageNames value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withImageNames(List imageNames) {
+ this.imageNames = imageNames;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @return the isPushEnabled value
+ */
+ public Boolean isPushEnabled() {
+ return this.isPushEnabled;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @param isPushEnabled the isPushEnabled value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withIsPushEnabled(Boolean isPushEnabled) {
+ this.isPushEnabled = isPushEnabled;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @return the noCache value
+ */
+ public Boolean noCache() {
+ return this.noCache;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @param noCache the noCache value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withNoCache(Boolean noCache) {
+ this.noCache = noCache;
+ return this;
+ }
+
+ /**
+ * Get the Docker file path relative to the source location.
+ *
+ * @return the dockerFilePath value
+ */
+ public String dockerFilePath() {
+ return this.dockerFilePath;
+ }
+
+ /**
+ * Set the Docker file path relative to the source location.
+ *
+ * @param dockerFilePath the dockerFilePath value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withDockerFilePath(String dockerFilePath) {
+ this.dockerFilePath = dockerFilePath;
+ return this;
+ }
+
+ /**
+ * Get the name of the target build stage for the docker build.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set the name of the target build stage for the docker build.
+ *
+ * @param target the target value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get the collection of override arguments to be used when executing the run.
+ *
+ * @return the arguments value
+ */
+ public List arguments() {
+ return this.arguments;
+ }
+
+ /**
+ * Set the collection of override arguments to be used when executing the run.
+ *
+ * @param arguments the arguments value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withArguments(List arguments) {
+ this.arguments = arguments;
+ return this;
+ }
+
+ /**
+ * Get run timeout in seconds.
+ *
+ * @return the timeout value
+ */
+ public Integer timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Set run timeout in seconds.
+ *
+ * @param timeout the timeout value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withTimeout(Integer timeout) {
+ this.timeout = timeout;
+ return this;
+ }
+
+ /**
+ * Get the platform properties against which the run has to happen.
+ *
+ * @return the platform value
+ */
+ public PlatformProperties platform() {
+ return this.platform;
+ }
+
+ /**
+ * Set the platform properties against which the run has to happen.
+ *
+ * @param platform the platform value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withPlatform(PlatformProperties platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get the machine configuration of the run agent.
+ *
+ * @return the agentConfiguration value
+ */
+ public AgentProperties agentConfiguration() {
+ return this.agentConfiguration;
+ }
+
+ /**
+ * Set the machine configuration of the run agent.
+ *
+ * @param agentConfiguration the agentConfiguration value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withAgentConfiguration(AgentProperties agentConfiguration) {
+ this.agentConfiguration = agentConfiguration;
+ return this;
+ }
+
+ /**
+ * Get the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @return the sourceLocation value
+ */
+ public String sourceLocation() {
+ return this.sourceLocation;
+ }
+
+ /**
+ * Set the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @param sourceLocation the sourceLocation value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withSourceLocation(String sourceLocation) {
+ this.sourceLocation = sourceLocation;
+ return this;
+ }
+
+ /**
+ * Get the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @return the credentials value
+ */
+ public Credentials credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @param credentials the credentials value to set
+ * @return the DockerBuildRequest object itself.
+ */
+ public DockerBuildRequest withCredentials(Credentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStep.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStep.java
new file mode 100644
index 000000000000..cad1d1be2a2a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStep.java
@@ -0,0 +1,181 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The Docker build step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = DockerBuildStep.class)
+@JsonTypeName("Docker")
+public class DockerBuildStep extends TaskStepProperties {
+ /**
+ * The fully qualified image names including the repository and tag.
+ */
+ @JsonProperty(value = "imageNames")
+ private List imageNames;
+
+ /**
+ * The value of this property indicates whether the image built should be
+ * pushed to the registry or not.
+ */
+ @JsonProperty(value = "isPushEnabled")
+ private Boolean isPushEnabled;
+
+ /**
+ * The value of this property indicates whether the image cache is enabled
+ * or not.
+ */
+ @JsonProperty(value = "noCache")
+ private Boolean noCache;
+
+ /**
+ * The Docker file path relative to the source context.
+ */
+ @JsonProperty(value = "dockerFilePath", required = true)
+ private String dockerFilePath;
+
+ /**
+ * The name of the target build stage for the docker build.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * The collection of override arguments to be used when executing this
+ * build step.
+ */
+ @JsonProperty(value = "arguments")
+ private List arguments;
+
+ /**
+ * Get the fully qualified image names including the repository and tag.
+ *
+ * @return the imageNames value
+ */
+ public List imageNames() {
+ return this.imageNames;
+ }
+
+ /**
+ * Set the fully qualified image names including the repository and tag.
+ *
+ * @param imageNames the imageNames value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withImageNames(List imageNames) {
+ this.imageNames = imageNames;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @return the isPushEnabled value
+ */
+ public Boolean isPushEnabled() {
+ return this.isPushEnabled;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @param isPushEnabled the isPushEnabled value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withIsPushEnabled(Boolean isPushEnabled) {
+ this.isPushEnabled = isPushEnabled;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @return the noCache value
+ */
+ public Boolean noCache() {
+ return this.noCache;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @param noCache the noCache value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withNoCache(Boolean noCache) {
+ this.noCache = noCache;
+ return this;
+ }
+
+ /**
+ * Get the Docker file path relative to the source context.
+ *
+ * @return the dockerFilePath value
+ */
+ public String dockerFilePath() {
+ return this.dockerFilePath;
+ }
+
+ /**
+ * Set the Docker file path relative to the source context.
+ *
+ * @param dockerFilePath the dockerFilePath value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withDockerFilePath(String dockerFilePath) {
+ this.dockerFilePath = dockerFilePath;
+ return this;
+ }
+
+ /**
+ * Get the name of the target build stage for the docker build.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set the name of the target build stage for the docker build.
+ *
+ * @param target the target value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get the collection of override arguments to be used when executing this build step.
+ *
+ * @return the arguments value
+ */
+ public List arguments() {
+ return this.arguments;
+ }
+
+ /**
+ * Set the collection of override arguments to be used when executing this build step.
+ *
+ * @param arguments the arguments value to set
+ * @return the DockerBuildStep object itself.
+ */
+ public DockerBuildStep withArguments(List arguments) {
+ this.arguments = arguments;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStepUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStepUpdateParameters.java
new file mode 100644
index 000000000000..c69e52b9ebb2
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/DockerBuildStepUpdateParameters.java
@@ -0,0 +1,181 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties for updating a docker build step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = DockerBuildStepUpdateParameters.class)
+@JsonTypeName("Docker")
+public class DockerBuildStepUpdateParameters extends TaskStepUpdateParameters {
+ /**
+ * The fully qualified image names including the repository and tag.
+ */
+ @JsonProperty(value = "imageNames")
+ private List imageNames;
+
+ /**
+ * The value of this property indicates whether the image built should be
+ * pushed to the registry or not.
+ */
+ @JsonProperty(value = "isPushEnabled")
+ private Boolean isPushEnabled;
+
+ /**
+ * The value of this property indicates whether the image cache is enabled
+ * or not.
+ */
+ @JsonProperty(value = "noCache")
+ private Boolean noCache;
+
+ /**
+ * The Docker file path relative to the source context.
+ */
+ @JsonProperty(value = "dockerFilePath")
+ private String dockerFilePath;
+
+ /**
+ * The collection of override arguments to be used when executing this
+ * build step.
+ */
+ @JsonProperty(value = "arguments")
+ private List arguments;
+
+ /**
+ * The name of the target build stage for the docker build.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * Get the fully qualified image names including the repository and tag.
+ *
+ * @return the imageNames value
+ */
+ public List imageNames() {
+ return this.imageNames;
+ }
+
+ /**
+ * Set the fully qualified image names including the repository and tag.
+ *
+ * @param imageNames the imageNames value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withImageNames(List imageNames) {
+ this.imageNames = imageNames;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @return the isPushEnabled value
+ */
+ public Boolean isPushEnabled() {
+ return this.isPushEnabled;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image built should be pushed to the registry or not.
+ *
+ * @param isPushEnabled the isPushEnabled value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withIsPushEnabled(Boolean isPushEnabled) {
+ this.isPushEnabled = isPushEnabled;
+ return this;
+ }
+
+ /**
+ * Get the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @return the noCache value
+ */
+ public Boolean noCache() {
+ return this.noCache;
+ }
+
+ /**
+ * Set the value of this property indicates whether the image cache is enabled or not.
+ *
+ * @param noCache the noCache value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withNoCache(Boolean noCache) {
+ this.noCache = noCache;
+ return this;
+ }
+
+ /**
+ * Get the Docker file path relative to the source context.
+ *
+ * @return the dockerFilePath value
+ */
+ public String dockerFilePath() {
+ return this.dockerFilePath;
+ }
+
+ /**
+ * Set the Docker file path relative to the source context.
+ *
+ * @param dockerFilePath the dockerFilePath value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withDockerFilePath(String dockerFilePath) {
+ this.dockerFilePath = dockerFilePath;
+ return this;
+ }
+
+ /**
+ * Get the collection of override arguments to be used when executing this build step.
+ *
+ * @return the arguments value
+ */
+ public List arguments() {
+ return this.arguments;
+ }
+
+ /**
+ * Set the collection of override arguments to be used when executing this build step.
+ *
+ * @param arguments the arguments value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withArguments(List arguments) {
+ this.arguments = arguments;
+ return this;
+ }
+
+ /**
+ * Get the name of the target build stage for the docker build.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set the name of the target build stage for the docker build.
+ *
+ * @param target the target value to set
+ * @return the DockerBuildStepUpdateParameters object itself.
+ */
+ public DockerBuildStepUpdateParameters withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskRunRequest.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskRunRequest.java
new file mode 100644
index 000000000000..cb3be288c1f9
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskRunRequest.java
@@ -0,0 +1,237 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The parameters for a quick task run request.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = EncodedTaskRunRequest.class)
+@JsonTypeName("EncodedTaskRunRequest")
+public class EncodedTaskRunRequest extends RunRequest {
+ /**
+ * Base64 encoded value of the template/definition file content.
+ */
+ @JsonProperty(value = "encodedTaskContent", required = true)
+ private String encodedTaskContent;
+
+ /**
+ * Base64 encoded value of the parameters/values file content.
+ */
+ @JsonProperty(value = "encodedValuesContent")
+ private String encodedValuesContent;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Run timeout in seconds.
+ */
+ @JsonProperty(value = "timeout")
+ private Integer timeout;
+
+ /**
+ * The platform properties against which the run has to happen.
+ */
+ @JsonProperty(value = "platform", required = true)
+ private PlatformProperties platform;
+
+ /**
+ * The machine configuration of the run agent.
+ */
+ @JsonProperty(value = "agentConfiguration")
+ private AgentProperties agentConfiguration;
+
+ /**
+ * The URL(absolute or relative) of the source context. It can be an URL to
+ * a tar or git repository.
+ * If it is relative URL, the relative path should be obtained from calling
+ * listBuildSourceUploadUrl API.
+ */
+ @JsonProperty(value = "sourceLocation")
+ private String sourceLocation;
+
+ /**
+ * The properties that describes a set of credentials that will be used
+ * when this run is invoked.
+ */
+ @JsonProperty(value = "credentials")
+ private Credentials credentials;
+
+ /**
+ * Get base64 encoded value of the template/definition file content.
+ *
+ * @return the encodedTaskContent value
+ */
+ public String encodedTaskContent() {
+ return this.encodedTaskContent;
+ }
+
+ /**
+ * Set base64 encoded value of the template/definition file content.
+ *
+ * @param encodedTaskContent the encodedTaskContent value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withEncodedTaskContent(String encodedTaskContent) {
+ this.encodedTaskContent = encodedTaskContent;
+ return this;
+ }
+
+ /**
+ * Get base64 encoded value of the parameters/values file content.
+ *
+ * @return the encodedValuesContent value
+ */
+ public String encodedValuesContent() {
+ return this.encodedValuesContent;
+ }
+
+ /**
+ * Set base64 encoded value of the parameters/values file content.
+ *
+ * @param encodedValuesContent the encodedValuesContent value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withEncodedValuesContent(String encodedValuesContent) {
+ this.encodedValuesContent = encodedValuesContent;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+ /**
+ * Get run timeout in seconds.
+ *
+ * @return the timeout value
+ */
+ public Integer timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Set run timeout in seconds.
+ *
+ * @param timeout the timeout value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withTimeout(Integer timeout) {
+ this.timeout = timeout;
+ return this;
+ }
+
+ /**
+ * Get the platform properties against which the run has to happen.
+ *
+ * @return the platform value
+ */
+ public PlatformProperties platform() {
+ return this.platform;
+ }
+
+ /**
+ * Set the platform properties against which the run has to happen.
+ *
+ * @param platform the platform value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withPlatform(PlatformProperties platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get the machine configuration of the run agent.
+ *
+ * @return the agentConfiguration value
+ */
+ public AgentProperties agentConfiguration() {
+ return this.agentConfiguration;
+ }
+
+ /**
+ * Set the machine configuration of the run agent.
+ *
+ * @param agentConfiguration the agentConfiguration value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withAgentConfiguration(AgentProperties agentConfiguration) {
+ this.agentConfiguration = agentConfiguration;
+ return this;
+ }
+
+ /**
+ * Get the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @return the sourceLocation value
+ */
+ public String sourceLocation() {
+ return this.sourceLocation;
+ }
+
+ /**
+ * Set the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @param sourceLocation the sourceLocation value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withSourceLocation(String sourceLocation) {
+ this.sourceLocation = sourceLocation;
+ return this;
+ }
+
+ /**
+ * Get the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @return the credentials value
+ */
+ public Credentials credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @param credentials the credentials value to set
+ * @return the EncodedTaskRunRequest object itself.
+ */
+ public EncodedTaskRunRequest withCredentials(Credentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStep.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStep.java
new file mode 100644
index 000000000000..73da0065f4d1
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStep.java
@@ -0,0 +1,101 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties of a encoded task step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = EncodedTaskStep.class)
+@JsonTypeName("EncodedTask")
+public class EncodedTaskStep extends TaskStepProperties {
+ /**
+ * Base64 encoded value of the template/definition file content.
+ */
+ @JsonProperty(value = "encodedTaskContent", required = true)
+ private String encodedTaskContent;
+
+ /**
+ * Base64 encoded value of the parameters/values file content.
+ */
+ @JsonProperty(value = "encodedValuesContent")
+ private String encodedValuesContent;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get base64 encoded value of the template/definition file content.
+ *
+ * @return the encodedTaskContent value
+ */
+ public String encodedTaskContent() {
+ return this.encodedTaskContent;
+ }
+
+ /**
+ * Set base64 encoded value of the template/definition file content.
+ *
+ * @param encodedTaskContent the encodedTaskContent value to set
+ * @return the EncodedTaskStep object itself.
+ */
+ public EncodedTaskStep withEncodedTaskContent(String encodedTaskContent) {
+ this.encodedTaskContent = encodedTaskContent;
+ return this;
+ }
+
+ /**
+ * Get base64 encoded value of the parameters/values file content.
+ *
+ * @return the encodedValuesContent value
+ */
+ public String encodedValuesContent() {
+ return this.encodedValuesContent;
+ }
+
+ /**
+ * Set base64 encoded value of the parameters/values file content.
+ *
+ * @param encodedValuesContent the encodedValuesContent value to set
+ * @return the EncodedTaskStep object itself.
+ */
+ public EncodedTaskStep withEncodedValuesContent(String encodedValuesContent) {
+ this.encodedValuesContent = encodedValuesContent;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the EncodedTaskStep object itself.
+ */
+ public EncodedTaskStep withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStepUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStepUpdateParameters.java
new file mode 100644
index 000000000000..d9e48267297e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncodedTaskStepUpdateParameters.java
@@ -0,0 +1,101 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties for updating encoded task step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = EncodedTaskStepUpdateParameters.class)
+@JsonTypeName("EncodedTask")
+public class EncodedTaskStepUpdateParameters extends TaskStepUpdateParameters {
+ /**
+ * Base64 encoded value of the template/definition file content.
+ */
+ @JsonProperty(value = "encodedTaskContent")
+ private String encodedTaskContent;
+
+ /**
+ * Base64 encoded value of the parameters/values file content.
+ */
+ @JsonProperty(value = "encodedValuesContent")
+ private String encodedValuesContent;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get base64 encoded value of the template/definition file content.
+ *
+ * @return the encodedTaskContent value
+ */
+ public String encodedTaskContent() {
+ return this.encodedTaskContent;
+ }
+
+ /**
+ * Set base64 encoded value of the template/definition file content.
+ *
+ * @param encodedTaskContent the encodedTaskContent value to set
+ * @return the EncodedTaskStepUpdateParameters object itself.
+ */
+ public EncodedTaskStepUpdateParameters withEncodedTaskContent(String encodedTaskContent) {
+ this.encodedTaskContent = encodedTaskContent;
+ return this;
+ }
+
+ /**
+ * Get base64 encoded value of the parameters/values file content.
+ *
+ * @return the encodedValuesContent value
+ */
+ public String encodedValuesContent() {
+ return this.encodedValuesContent;
+ }
+
+ /**
+ * Set base64 encoded value of the parameters/values file content.
+ *
+ * @param encodedValuesContent the encodedValuesContent value to set
+ * @return the EncodedTaskStepUpdateParameters object itself.
+ */
+ public EncodedTaskStepUpdateParameters withEncodedValuesContent(String encodedValuesContent) {
+ this.encodedValuesContent = encodedValuesContent;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the EncodedTaskStepUpdateParameters object itself.
+ */
+ public EncodedTaskStepUpdateParameters withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionProperty.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionProperty.java
new file mode 100644
index 000000000000..8876b4faac3a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionProperty.java
@@ -0,0 +1,70 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The EncryptionProperty model.
+ */
+public class EncryptionProperty {
+ /**
+ * Indicates whether or not the encryption is enabled for container
+ * registry. Possible values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "status")
+ private EncryptionStatus status;
+
+ /**
+ * Key vault properties.
+ */
+ @JsonProperty(value = "keyVaultProperties")
+ private KeyVaultProperties keyVaultProperties;
+
+ /**
+ * Get indicates whether or not the encryption is enabled for container registry. Possible values include: 'enabled', 'disabled'.
+ *
+ * @return the status value
+ */
+ public EncryptionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set indicates whether or not the encryption is enabled for container registry. Possible values include: 'enabled', 'disabled'.
+ *
+ * @param status the status value to set
+ * @return the EncryptionProperty object itself.
+ */
+ public EncryptionProperty withStatus(EncryptionStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get key vault properties.
+ *
+ * @return the keyVaultProperties value
+ */
+ public KeyVaultProperties keyVaultProperties() {
+ return this.keyVaultProperties;
+ }
+
+ /**
+ * Set key vault properties.
+ *
+ * @param keyVaultProperties the keyVaultProperties value to set
+ * @return the EncryptionProperty object itself.
+ */
+ public EncryptionProperty withKeyVaultProperties(KeyVaultProperties keyVaultProperties) {
+ this.keyVaultProperties = keyVaultProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionStatus.java
new file mode 100644
index 000000000000..719cdedabff7
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EncryptionStatus.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EncryptionStatus.
+ */
+public final class EncryptionStatus extends ExpandableStringEnum {
+ /** Static value enabled for EncryptionStatus. */
+ public static final EncryptionStatus ENABLED = fromString("enabled");
+
+ /** Static value disabled for EncryptionStatus. */
+ public static final EncryptionStatus DISABLED = fromString("disabled");
+
+ /**
+ * Creates or finds a EncryptionStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EncryptionStatus
+ */
+ @JsonCreator
+ public static EncryptionStatus fromString(String name) {
+ return fromString(name, EncryptionStatus.class);
+ }
+
+ /**
+ * @return known EncryptionStatus values
+ */
+ public static Collection values() {
+ return values(EncryptionStatus.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Error.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Error.java
new file mode 100644
index 000000000000..be54197ed3ec
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Error.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An error response from the Azure Container Registry service.
+ */
+public class Error {
+ /**
+ * error code.
+ */
+ @JsonProperty(value = "code", required = true)
+ private String code;
+
+ /**
+ * error message.
+ */
+ @JsonProperty(value = "message", required = true)
+ private String message;
+
+ /**
+ * Get error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Set error code.
+ *
+ * @param code the code value to set
+ * @return the Error object itself.
+ */
+ public Error withCode(String code) {
+ this.code = code;
+ return this;
+ }
+
+ /**
+ * Get error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set error message.
+ *
+ * @param message the message value to set
+ * @return the Error object itself.
+ */
+ public Error withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchema.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchema.java
new file mode 100644
index 000000000000..8cae56d0fd96
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchema.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An error response from the Azure Container Registry service.
+ */
+public class ErrorSchema {
+ /**
+ * Azure container registry build API error body.
+ */
+ @JsonProperty(value = "error")
+ private Error error;
+
+ /**
+ * Get azure container registry build API error body.
+ *
+ * @return the error value
+ */
+ public Error error() {
+ return this.error;
+ }
+
+ /**
+ * Set azure container registry build API error body.
+ *
+ * @param error the error value to set
+ * @return the ErrorSchema object itself.
+ */
+ public ErrorSchema withError(Error error) {
+ this.error = error;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchemaException.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchemaException.java
new file mode 100644
index 000000000000..278cfae7409a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ErrorSchemaException.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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorSchema information.
+ */
+public class ErrorSchemaException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorSchemaException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorSchemaException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorSchemaException 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 ErrorSchemaException(final String message, final Response response, final ErrorSchema body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorSchema body() {
+ return (ErrorSchema) super.body();
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Event.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Event.java
new file mode 100644
index 000000000000..5dccc7b20e90
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Event.java
@@ -0,0 +1,35 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.EventInner;
+
+/**
+ * Type representing Event.
+ */
+public interface Event extends HasInner, HasManager {
+ /**
+ * @return the eventRequestMessage value.
+ */
+ EventRequestMessage eventRequestMessage();
+
+ /**
+ * @return the eventResponseMessage value.
+ */
+ EventResponseMessage eventResponseMessage();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventContent.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventContent.java
new file mode 100644
index 000000000000..aa2bf22b71ba
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventContent.java
@@ -0,0 +1,202 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The content of the event request message.
+ */
+public class EventContent {
+ /**
+ * The event ID.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The time at which the event occurred.
+ */
+ @JsonProperty(value = "timestamp")
+ private DateTime timestamp;
+
+ /**
+ * The action that encompasses the provided event.
+ */
+ @JsonProperty(value = "action")
+ private String action;
+
+ /**
+ * The target of the event.
+ */
+ @JsonProperty(value = "target")
+ private Target target;
+
+ /**
+ * The request that generated the event.
+ */
+ @JsonProperty(value = "request")
+ private Request request;
+
+ /**
+ * The agent that initiated the event. For most situations, this could be
+ * from the authorization context of the request.
+ */
+ @JsonProperty(value = "actor")
+ private Actor actor;
+
+ /**
+ * The registry node that generated the event. Put differently, while the
+ * actor initiates the event, the source generates it.
+ */
+ @JsonProperty(value = "source")
+ private Source source;
+
+ /**
+ * Get the event ID.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the event ID.
+ *
+ * @param id the id value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the time at which the event occurred.
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Set the time at which the event occurred.
+ *
+ * @param timestamp the timestamp value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withTimestamp(DateTime timestamp) {
+ this.timestamp = timestamp;
+ return this;
+ }
+
+ /**
+ * Get the action that encompasses the provided event.
+ *
+ * @return the action value
+ */
+ public String action() {
+ return this.action;
+ }
+
+ /**
+ * Set the action that encompasses the provided event.
+ *
+ * @param action the action value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withAction(String action) {
+ this.action = action;
+ return this;
+ }
+
+ /**
+ * Get the target of the event.
+ *
+ * @return the target value
+ */
+ public Target target() {
+ return this.target;
+ }
+
+ /**
+ * Set the target of the event.
+ *
+ * @param target the target value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withTarget(Target target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get the request that generated the event.
+ *
+ * @return the request value
+ */
+ public Request request() {
+ return this.request;
+ }
+
+ /**
+ * Set the request that generated the event.
+ *
+ * @param request the request value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withRequest(Request request) {
+ this.request = request;
+ return this;
+ }
+
+ /**
+ * Get the agent that initiated the event. For most situations, this could be from the authorization context of the request.
+ *
+ * @return the actor value
+ */
+ public Actor actor() {
+ return this.actor;
+ }
+
+ /**
+ * Set the agent that initiated the event. For most situations, this could be from the authorization context of the request.
+ *
+ * @param actor the actor value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withActor(Actor actor) {
+ this.actor = actor;
+ return this;
+ }
+
+ /**
+ * Get the registry node that generated the event. Put differently, while the actor initiates the event, the source generates it.
+ *
+ * @return the source value
+ */
+ public Source source() {
+ return this.source;
+ }
+
+ /**
+ * Set the registry node that generated the event. Put differently, while the actor initiates the event, the source generates it.
+ *
+ * @param source the source value to set
+ * @return the EventContent object itself.
+ */
+ public EventContent withSource(Source source) {
+ this.source = source;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventInfo.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventInfo.java
new file mode 100644
index 000000000000..237e47425983
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventInfo.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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.EventInfoInner;
+
+/**
+ * Type representing EventInfo.
+ */
+public interface EventInfo extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventRequestMessage.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventRequestMessage.java
new file mode 100644
index 000000000000..0711a406630a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventRequestMessage.java
@@ -0,0 +1,148 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The event request message sent to the service URI.
+ */
+public class EventRequestMessage {
+ /**
+ * The content of the event request message.
+ */
+ @JsonProperty(value = "content")
+ private EventContent content;
+
+ /**
+ * The headers of the event request message.
+ */
+ @JsonProperty(value = "headers")
+ private Map headers;
+
+ /**
+ * The HTTP method used to send the event request message.
+ */
+ @JsonProperty(value = "method")
+ private String method;
+
+ /**
+ * The URI used to send the event request message.
+ */
+ @JsonProperty(value = "requestUri")
+ private String requestUri;
+
+ /**
+ * The HTTP message version.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get the content of the event request message.
+ *
+ * @return the content value
+ */
+ public EventContent content() {
+ return this.content;
+ }
+
+ /**
+ * Set the content of the event request message.
+ *
+ * @param content the content value to set
+ * @return the EventRequestMessage object itself.
+ */
+ public EventRequestMessage withContent(EventContent content) {
+ this.content = content;
+ return this;
+ }
+
+ /**
+ * Get the headers of the event request message.
+ *
+ * @return the headers value
+ */
+ public Map headers() {
+ return this.headers;
+ }
+
+ /**
+ * Set the headers of the event request message.
+ *
+ * @param headers the headers value to set
+ * @return the EventRequestMessage object itself.
+ */
+ public EventRequestMessage withHeaders(Map headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * Get the HTTP method used to send the event request message.
+ *
+ * @return the method value
+ */
+ public String method() {
+ return this.method;
+ }
+
+ /**
+ * Set the HTTP method used to send the event request message.
+ *
+ * @param method the method value to set
+ * @return the EventRequestMessage object itself.
+ */
+ public EventRequestMessage withMethod(String method) {
+ this.method = method;
+ return this;
+ }
+
+ /**
+ * Get the URI used to send the event request message.
+ *
+ * @return the requestUri value
+ */
+ public String requestUri() {
+ return this.requestUri;
+ }
+
+ /**
+ * Set the URI used to send the event request message.
+ *
+ * @param requestUri the requestUri value to set
+ * @return the EventRequestMessage object itself.
+ */
+ public EventRequestMessage withRequestUri(String requestUri) {
+ this.requestUri = requestUri;
+ return this;
+ }
+
+ /**
+ * Get the HTTP message version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the HTTP message version.
+ *
+ * @param version the version value to set
+ * @return the EventRequestMessage object itself.
+ */
+ public EventRequestMessage withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventResponseMessage.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventResponseMessage.java
new file mode 100644
index 000000000000..9bd2af6b99ae
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/EventResponseMessage.java
@@ -0,0 +1,148 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The event response message received from the service URI.
+ */
+public class EventResponseMessage {
+ /**
+ * The content of the event response message.
+ */
+ @JsonProperty(value = "content")
+ private String content;
+
+ /**
+ * The headers of the event response message.
+ */
+ @JsonProperty(value = "headers")
+ private Map headers;
+
+ /**
+ * The reason phrase of the event response message.
+ */
+ @JsonProperty(value = "reasonPhrase")
+ private String reasonPhrase;
+
+ /**
+ * The status code of the event response message.
+ */
+ @JsonProperty(value = "statusCode")
+ private String statusCode;
+
+ /**
+ * The HTTP message version.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get the content of the event response message.
+ *
+ * @return the content value
+ */
+ public String content() {
+ return this.content;
+ }
+
+ /**
+ * Set the content of the event response message.
+ *
+ * @param content the content value to set
+ * @return the EventResponseMessage object itself.
+ */
+ public EventResponseMessage withContent(String content) {
+ this.content = content;
+ return this;
+ }
+
+ /**
+ * Get the headers of the event response message.
+ *
+ * @return the headers value
+ */
+ public Map headers() {
+ return this.headers;
+ }
+
+ /**
+ * Set the headers of the event response message.
+ *
+ * @param headers the headers value to set
+ * @return the EventResponseMessage object itself.
+ */
+ public EventResponseMessage withHeaders(Map headers) {
+ this.headers = headers;
+ return this;
+ }
+
+ /**
+ * Get the reason phrase of the event response message.
+ *
+ * @return the reasonPhrase value
+ */
+ public String reasonPhrase() {
+ return this.reasonPhrase;
+ }
+
+ /**
+ * Set the reason phrase of the event response message.
+ *
+ * @param reasonPhrase the reasonPhrase value to set
+ * @return the EventResponseMessage object itself.
+ */
+ public EventResponseMessage withReasonPhrase(String reasonPhrase) {
+ this.reasonPhrase = reasonPhrase;
+ return this;
+ }
+
+ /**
+ * Get the status code of the event response message.
+ *
+ * @return the statusCode value
+ */
+ public String statusCode() {
+ return this.statusCode;
+ }
+
+ /**
+ * Set the status code of the event response message.
+ *
+ * @param statusCode the statusCode value to set
+ * @return the EventResponseMessage object itself.
+ */
+ public EventResponseMessage withStatusCode(String statusCode) {
+ this.statusCode = statusCode;
+ return this;
+ }
+
+ /**
+ * Get the HTTP message version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the HTTP message version.
+ *
+ * @param version the version value to set
+ * @return the EventResponseMessage object itself.
+ */
+ public EventResponseMessage withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskRunRequest.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskRunRequest.java
new file mode 100644
index 000000000000..e891936ff0e1
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskRunRequest.java
@@ -0,0 +1,237 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The request parameters for a scheduling run against a task file.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = FileTaskRunRequest.class)
+@JsonTypeName("FileTaskRunRequest")
+public class FileTaskRunRequest extends RunRequest {
+ /**
+ * The template/definition file path relative to the source.
+ */
+ @JsonProperty(value = "taskFilePath", required = true)
+ private String taskFilePath;
+
+ /**
+ * The values/parameters file path relative to the source.
+ */
+ @JsonProperty(value = "valuesFilePath")
+ private String valuesFilePath;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Run timeout in seconds.
+ */
+ @JsonProperty(value = "timeout")
+ private Integer timeout;
+
+ /**
+ * The platform properties against which the run has to happen.
+ */
+ @JsonProperty(value = "platform", required = true)
+ private PlatformProperties platform;
+
+ /**
+ * The machine configuration of the run agent.
+ */
+ @JsonProperty(value = "agentConfiguration")
+ private AgentProperties agentConfiguration;
+
+ /**
+ * The URL(absolute or relative) of the source context. It can be an URL to
+ * a tar or git repository.
+ * If it is relative URL, the relative path should be obtained from calling
+ * listBuildSourceUploadUrl API.
+ */
+ @JsonProperty(value = "sourceLocation")
+ private String sourceLocation;
+
+ /**
+ * The properties that describes a set of credentials that will be used
+ * when this run is invoked.
+ */
+ @JsonProperty(value = "credentials")
+ private Credentials credentials;
+
+ /**
+ * Get the template/definition file path relative to the source.
+ *
+ * @return the taskFilePath value
+ */
+ public String taskFilePath() {
+ return this.taskFilePath;
+ }
+
+ /**
+ * Set the template/definition file path relative to the source.
+ *
+ * @param taskFilePath the taskFilePath value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withTaskFilePath(String taskFilePath) {
+ this.taskFilePath = taskFilePath;
+ return this;
+ }
+
+ /**
+ * Get the values/parameters file path relative to the source.
+ *
+ * @return the valuesFilePath value
+ */
+ public String valuesFilePath() {
+ return this.valuesFilePath;
+ }
+
+ /**
+ * Set the values/parameters file path relative to the source.
+ *
+ * @param valuesFilePath the valuesFilePath value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withValuesFilePath(String valuesFilePath) {
+ this.valuesFilePath = valuesFilePath;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+ /**
+ * Get run timeout in seconds.
+ *
+ * @return the timeout value
+ */
+ public Integer timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Set run timeout in seconds.
+ *
+ * @param timeout the timeout value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withTimeout(Integer timeout) {
+ this.timeout = timeout;
+ return this;
+ }
+
+ /**
+ * Get the platform properties against which the run has to happen.
+ *
+ * @return the platform value
+ */
+ public PlatformProperties platform() {
+ return this.platform;
+ }
+
+ /**
+ * Set the platform properties against which the run has to happen.
+ *
+ * @param platform the platform value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withPlatform(PlatformProperties platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get the machine configuration of the run agent.
+ *
+ * @return the agentConfiguration value
+ */
+ public AgentProperties agentConfiguration() {
+ return this.agentConfiguration;
+ }
+
+ /**
+ * Set the machine configuration of the run agent.
+ *
+ * @param agentConfiguration the agentConfiguration value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withAgentConfiguration(AgentProperties agentConfiguration) {
+ this.agentConfiguration = agentConfiguration;
+ return this;
+ }
+
+ /**
+ * Get the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @return the sourceLocation value
+ */
+ public String sourceLocation() {
+ return this.sourceLocation;
+ }
+
+ /**
+ * Set the URL(absolute or relative) of the source context. It can be an URL to a tar or git repository.
+ If it is relative URL, the relative path should be obtained from calling listBuildSourceUploadUrl API.
+ *
+ * @param sourceLocation the sourceLocation value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withSourceLocation(String sourceLocation) {
+ this.sourceLocation = sourceLocation;
+ return this;
+ }
+
+ /**
+ * Get the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @return the credentials value
+ */
+ public Credentials credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set the properties that describes a set of credentials that will be used when this run is invoked.
+ *
+ * @param credentials the credentials value to set
+ * @return the FileTaskRunRequest object itself.
+ */
+ public FileTaskRunRequest withCredentials(Credentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStep.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStep.java
new file mode 100644
index 000000000000..82646367390f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStep.java
@@ -0,0 +1,101 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties of a task step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = FileTaskStep.class)
+@JsonTypeName("FileTask")
+public class FileTaskStep extends TaskStepProperties {
+ /**
+ * The task template/definition file path relative to the source context.
+ */
+ @JsonProperty(value = "taskFilePath", required = true)
+ private String taskFilePath;
+
+ /**
+ * The task values/parameters file path relative to the source context.
+ */
+ @JsonProperty(value = "valuesFilePath")
+ private String valuesFilePath;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the task template/definition file path relative to the source context.
+ *
+ * @return the taskFilePath value
+ */
+ public String taskFilePath() {
+ return this.taskFilePath;
+ }
+
+ /**
+ * Set the task template/definition file path relative to the source context.
+ *
+ * @param taskFilePath the taskFilePath value to set
+ * @return the FileTaskStep object itself.
+ */
+ public FileTaskStep withTaskFilePath(String taskFilePath) {
+ this.taskFilePath = taskFilePath;
+ return this;
+ }
+
+ /**
+ * Get the task values/parameters file path relative to the source context.
+ *
+ * @return the valuesFilePath value
+ */
+ public String valuesFilePath() {
+ return this.valuesFilePath;
+ }
+
+ /**
+ * Set the task values/parameters file path relative to the source context.
+ *
+ * @param valuesFilePath the valuesFilePath value to set
+ * @return the FileTaskStep object itself.
+ */
+ public FileTaskStep withValuesFilePath(String valuesFilePath) {
+ this.valuesFilePath = valuesFilePath;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the FileTaskStep object itself.
+ */
+ public FileTaskStep withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStepUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStepUpdateParameters.java
new file mode 100644
index 000000000000..692885113cfe
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/FileTaskStepUpdateParameters.java
@@ -0,0 +1,101 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties of updating a task step.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = FileTaskStepUpdateParameters.class)
+@JsonTypeName("FileTask")
+public class FileTaskStepUpdateParameters extends TaskStepUpdateParameters {
+ /**
+ * The task template/definition file path relative to the source context.
+ */
+ @JsonProperty(value = "taskFilePath")
+ private String taskFilePath;
+
+ /**
+ * The values/parameters file path relative to the source context.
+ */
+ @JsonProperty(value = "valuesFilePath")
+ private String valuesFilePath;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the task template/definition file path relative to the source context.
+ *
+ * @return the taskFilePath value
+ */
+ public String taskFilePath() {
+ return this.taskFilePath;
+ }
+
+ /**
+ * Set the task template/definition file path relative to the source context.
+ *
+ * @param taskFilePath the taskFilePath value to set
+ * @return the FileTaskStepUpdateParameters object itself.
+ */
+ public FileTaskStepUpdateParameters withTaskFilePath(String taskFilePath) {
+ this.taskFilePath = taskFilePath;
+ return this;
+ }
+
+ /**
+ * Get the values/parameters file path relative to the source context.
+ *
+ * @return the valuesFilePath value
+ */
+ public String valuesFilePath() {
+ return this.valuesFilePath;
+ }
+
+ /**
+ * Set the values/parameters file path relative to the source context.
+ *
+ * @param valuesFilePath the valuesFilePath value to set
+ * @return the FileTaskStepUpdateParameters object itself.
+ */
+ public FileTaskStepUpdateParameters withValuesFilePath(String valuesFilePath) {
+ this.valuesFilePath = valuesFilePath;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a task.
+ *
+ * @param values the values value to set
+ * @return the FileTaskStepUpdateParameters object itself.
+ */
+ public FileTaskStepUpdateParameters withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsParameters.java
new file mode 100644
index 000000000000..b1083de83152
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsParameters.java
@@ -0,0 +1,100 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters used to generate credentials for a specified token or user of
+ * a container registry.
+ */
+public class GenerateCredentialsParameters {
+ /**
+ * The resource ID of the token for which credentials have to be generated.
+ */
+ @JsonProperty(value = "tokenId")
+ private String tokenId;
+
+ /**
+ * The expiry date of the generated credentials after which the credentials
+ * become invalid.
+ */
+ @JsonProperty(value = "expiry")
+ private DateTime expiry;
+
+ /**
+ * Specifies name of the password which should be regenerated if any --
+ * password1 or password2. Possible values include: 'password1',
+ * 'password2'.
+ */
+ @JsonProperty(value = "name")
+ private TokenPasswordName name;
+
+ /**
+ * Get the resource ID of the token for which credentials have to be generated.
+ *
+ * @return the tokenId value
+ */
+ public String tokenId() {
+ return this.tokenId;
+ }
+
+ /**
+ * Set the resource ID of the token for which credentials have to be generated.
+ *
+ * @param tokenId the tokenId value to set
+ * @return the GenerateCredentialsParameters object itself.
+ */
+ public GenerateCredentialsParameters withTokenId(String tokenId) {
+ this.tokenId = tokenId;
+ return this;
+ }
+
+ /**
+ * Get the expiry date of the generated credentials after which the credentials become invalid.
+ *
+ * @return the expiry value
+ */
+ public DateTime expiry() {
+ return this.expiry;
+ }
+
+ /**
+ * Set the expiry date of the generated credentials after which the credentials become invalid.
+ *
+ * @param expiry the expiry value to set
+ * @return the GenerateCredentialsParameters object itself.
+ */
+ public GenerateCredentialsParameters withExpiry(DateTime expiry) {
+ this.expiry = expiry;
+ return this;
+ }
+
+ /**
+ * Get specifies name of the password which should be regenerated if any -- password1 or password2. Possible values include: 'password1', 'password2'.
+ *
+ * @return the name value
+ */
+ public TokenPasswordName name() {
+ return this.name;
+ }
+
+ /**
+ * Set specifies name of the password which should be regenerated if any -- password1 or password2. Possible values include: 'password1', 'password2'.
+ *
+ * @param name the name value to set
+ * @return the GenerateCredentialsParameters object itself.
+ */
+ public GenerateCredentialsParameters withName(TokenPasswordName name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsResult.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsResult.java
new file mode 100644
index 000000000000..ab07d26dd47b
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/GenerateCredentialsResult.java
@@ -0,0 +1,31 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.GenerateCredentialsResultInner;
+import java.util.List;
+
+/**
+ * Type representing GenerateCredentialsResult.
+ */
+public interface GenerateCredentialsResult extends HasInner, HasManager {
+ /**
+ * @return the passwords value.
+ */
+ List passwords();
+
+ /**
+ * @return the username value.
+ */
+ String username();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IPRule.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IPRule.java
new file mode 100644
index 000000000000..c2e216deff53
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IPRule.java
@@ -0,0 +1,70 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * IP rule with specific IP or IP range in CIDR format.
+ */
+public class IPRule {
+ /**
+ * The action of IP ACL rule. Possible values include: 'Allow'.
+ */
+ @JsonProperty(value = "action")
+ private Action action;
+
+ /**
+ * Specifies the IP or IP range in CIDR format. Only IPV4 address is
+ * allowed.
+ */
+ @JsonProperty(value = "value", required = true)
+ private String iPAddressOrRange;
+
+ /**
+ * Get the action of IP ACL rule. Possible values include: 'Allow'.
+ *
+ * @return the action value
+ */
+ public Action action() {
+ return this.action;
+ }
+
+ /**
+ * Set the action of IP ACL rule. Possible values include: 'Allow'.
+ *
+ * @param action the action value to set
+ * @return the IPRule object itself.
+ */
+ public IPRule withAction(Action action) {
+ this.action = action;
+ return this;
+ }
+
+ /**
+ * Get specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
+ *
+ * @return the iPAddressOrRange value
+ */
+ public String iPAddressOrRange() {
+ return this.iPAddressOrRange;
+ }
+
+ /**
+ * Set specifies the IP or IP range in CIDR format. Only IPV4 address is allowed.
+ *
+ * @param iPAddressOrRange the iPAddressOrRange value to set
+ * @return the IPRule object itself.
+ */
+ public IPRule withIPAddressOrRange(String iPAddressOrRange) {
+ this.iPAddressOrRange = iPAddressOrRange;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IdentityProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IdentityProperties.java
new file mode 100644
index 000000000000..9e7018df7996
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/IdentityProperties.java
@@ -0,0 +1,133 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Managed identity for the resource.
+ */
+public class IdentityProperties {
+ /**
+ * The principal ID of resource identity.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /**
+ * The tenant ID of resource.
+ */
+ @JsonProperty(value = "tenantId")
+ private String tenantId;
+
+ /**
+ * The identity type. Possible values include: 'SystemAssigned',
+ * 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * The list of user identities associated with the resource. The user
+ * identity
+ * dictionary key references will be ARM resource ids in the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
+ * providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal ID of resource identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principal ID of resource identity.
+ *
+ * @param principalId the principalId value to set
+ * @return the IdentityProperties object itself.
+ */
+ public IdentityProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the tenant ID of resource.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Set the tenant ID of resource.
+ *
+ * @param tenantId the tenantId value to set
+ * @return the IdentityProperties object itself.
+ */
+ public IdentityProperties withTenantId(String tenantId) {
+ this.tenantId = tenantId;
+ return this;
+ }
+
+ /**
+ * Get the identity type. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the IdentityProperties object itself.
+ */
+ public IdentityProperties withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the list of user identities associated with the resource. The user identity
+ dictionary key references will be ARM resource ids in the form:
+ '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
+ providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set the list of user identities associated with the resource. The user identity
+ dictionary key references will be ARM resource ids in the form:
+ '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
+ providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the IdentityProperties object itself.
+ */
+ public IdentityProperties withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageDescriptor.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageDescriptor.java
new file mode 100644
index 000000000000..4ec2affca157
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageDescriptor.java
@@ -0,0 +1,121 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties for a registry image.
+ */
+public class ImageDescriptor {
+ /**
+ * The registry login server.
+ */
+ @JsonProperty(value = "registry")
+ private String registry;
+
+ /**
+ * The repository name.
+ */
+ @JsonProperty(value = "repository")
+ private String repository;
+
+ /**
+ * The tag name.
+ */
+ @JsonProperty(value = "tag")
+ private String tag;
+
+ /**
+ * The sha256-based digest of the image manifest.
+ */
+ @JsonProperty(value = "digest")
+ private String digest;
+
+ /**
+ * Get the registry login server.
+ *
+ * @return the registry value
+ */
+ public String registry() {
+ return this.registry;
+ }
+
+ /**
+ * Set the registry login server.
+ *
+ * @param registry the registry value to set
+ * @return the ImageDescriptor object itself.
+ */
+ public ImageDescriptor withRegistry(String registry) {
+ this.registry = registry;
+ return this;
+ }
+
+ /**
+ * Get the repository name.
+ *
+ * @return the repository value
+ */
+ public String repository() {
+ return this.repository;
+ }
+
+ /**
+ * Set the repository name.
+ *
+ * @param repository the repository value to set
+ * @return the ImageDescriptor object itself.
+ */
+ public ImageDescriptor withRepository(String repository) {
+ this.repository = repository;
+ return this;
+ }
+
+ /**
+ * Get the tag name.
+ *
+ * @return the tag value
+ */
+ public String tag() {
+ return this.tag;
+ }
+
+ /**
+ * Set the tag name.
+ *
+ * @param tag the tag value to set
+ * @return the ImageDescriptor object itself.
+ */
+ public ImageDescriptor withTag(String tag) {
+ this.tag = tag;
+ return this;
+ }
+
+ /**
+ * Get the sha256-based digest of the image manifest.
+ *
+ * @return the digest value
+ */
+ public String digest() {
+ return this.digest;
+ }
+
+ /**
+ * Set the sha256-based digest of the image manifest.
+ *
+ * @param digest the digest value to set
+ * @return the ImageDescriptor object itself.
+ */
+ public ImageDescriptor withDigest(String digest) {
+ this.digest = digest;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageUpdateTrigger.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageUpdateTrigger.java
new file mode 100644
index 000000000000..cc285d2b6942
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImageUpdateTrigger.java
@@ -0,0 +1,97 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The image update trigger that caused a build.
+ */
+public class ImageUpdateTrigger {
+ /**
+ * The unique ID of the trigger.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The timestamp when the image update happened.
+ */
+ @JsonProperty(value = "timestamp")
+ private DateTime timestamp;
+
+ /**
+ * The list of image updates that caused the build.
+ */
+ @JsonProperty(value = "images")
+ private List images;
+
+ /**
+ * Get the unique ID of the trigger.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the unique ID of the trigger.
+ *
+ * @param id the id value to set
+ * @return the ImageUpdateTrigger object itself.
+ */
+ public ImageUpdateTrigger withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the timestamp when the image update happened.
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Set the timestamp when the image update happened.
+ *
+ * @param timestamp the timestamp value to set
+ * @return the ImageUpdateTrigger object itself.
+ */
+ public ImageUpdateTrigger withTimestamp(DateTime timestamp) {
+ this.timestamp = timestamp;
+ return this;
+ }
+
+ /**
+ * Get the list of image updates that caused the build.
+ *
+ * @return the images value
+ */
+ public List images() {
+ return this.images;
+ }
+
+ /**
+ * Set the list of image updates that caused the build.
+ *
+ * @param images the images value to set
+ * @return the ImageUpdateTrigger object itself.
+ */
+ public ImageUpdateTrigger withImages(List images) {
+ this.images = images;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportImageParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportImageParameters.java
new file mode 100644
index 000000000000..eafa3a20447e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportImageParameters.java
@@ -0,0 +1,126 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ImportImageParameters model.
+ */
+public class ImportImageParameters {
+ /**
+ * The source of the image.
+ */
+ @JsonProperty(value = "source", required = true)
+ private ImportSource source;
+
+ /**
+ * List of strings of the form repo[:tag]. When tag is omitted the source
+ * will be used (or 'latest' if source tag is also omitted).
+ */
+ @JsonProperty(value = "targetTags")
+ private List targetTags;
+
+ /**
+ * List of strings of repository names to do a manifest only copy. No tag
+ * will be created.
+ */
+ @JsonProperty(value = "untaggedTargetRepositories")
+ private List untaggedTargetRepositories;
+
+ /**
+ * When Force, any existing target tags will be overwritten. When NoForce,
+ * any existing target tags will fail the operation before any copying
+ * begins. Possible values include: 'NoForce', 'Force'.
+ */
+ @JsonProperty(value = "mode")
+ private ImportMode mode;
+
+ /**
+ * Get the source of the image.
+ *
+ * @return the source value
+ */
+ public ImportSource source() {
+ return this.source;
+ }
+
+ /**
+ * Set the source of the image.
+ *
+ * @param source the source value to set
+ * @return the ImportImageParameters object itself.
+ */
+ public ImportImageParameters withSource(ImportSource source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get list of strings of the form repo[:tag]. When tag is omitted the source will be used (or 'latest' if source tag is also omitted).
+ *
+ * @return the targetTags value
+ */
+ public List targetTags() {
+ return this.targetTags;
+ }
+
+ /**
+ * Set list of strings of the form repo[:tag]. When tag is omitted the source will be used (or 'latest' if source tag is also omitted).
+ *
+ * @param targetTags the targetTags value to set
+ * @return the ImportImageParameters object itself.
+ */
+ public ImportImageParameters withTargetTags(List targetTags) {
+ this.targetTags = targetTags;
+ return this;
+ }
+
+ /**
+ * Get list of strings of repository names to do a manifest only copy. No tag will be created.
+ *
+ * @return the untaggedTargetRepositories value
+ */
+ public List untaggedTargetRepositories() {
+ return this.untaggedTargetRepositories;
+ }
+
+ /**
+ * Set list of strings of repository names to do a manifest only copy. No tag will be created.
+ *
+ * @param untaggedTargetRepositories the untaggedTargetRepositories value to set
+ * @return the ImportImageParameters object itself.
+ */
+ public ImportImageParameters withUntaggedTargetRepositories(List untaggedTargetRepositories) {
+ this.untaggedTargetRepositories = untaggedTargetRepositories;
+ return this;
+ }
+
+ /**
+ * Get when Force, any existing target tags will be overwritten. When NoForce, any existing target tags will fail the operation before any copying begins. Possible values include: 'NoForce', 'Force'.
+ *
+ * @return the mode value
+ */
+ public ImportMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set when Force, any existing target tags will be overwritten. When NoForce, any existing target tags will fail the operation before any copying begins. Possible values include: 'NoForce', 'Force'.
+ *
+ * @param mode the mode value to set
+ * @return the ImportImageParameters object itself.
+ */
+ public ImportImageParameters withMode(ImportMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportMode.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportMode.java
new file mode 100644
index 000000000000..c4ac56b076d3
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportMode.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ImportMode.
+ */
+public final class ImportMode extends ExpandableStringEnum {
+ /** Static value NoForce for ImportMode. */
+ public static final ImportMode NO_FORCE = fromString("NoForce");
+
+ /** Static value Force for ImportMode. */
+ public static final ImportMode FORCE = fromString("Force");
+
+ /**
+ * Creates or finds a ImportMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ImportMode
+ */
+ @JsonCreator
+ public static ImportMode fromString(String name) {
+ return fromString(name, ImportMode.class);
+ }
+
+ /**
+ * @return known ImportMode values
+ */
+ public static Collection values() {
+ return values(ImportMode.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSource.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSource.java
new file mode 100644
index 000000000000..7f7f1f52a260
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSource.java
@@ -0,0 +1,132 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ImportSource model.
+ */
+public class ImportSource {
+ /**
+ * The resource identifier of the source Azure Container Registry.
+ */
+ @JsonProperty(value = "resourceId")
+ private String resourceId;
+
+ /**
+ * The address of the source registry (e.g. 'mcr.microsoft.com').
+ */
+ @JsonProperty(value = "registryUri")
+ private String registryUri;
+
+ /**
+ * Credentials used when importing from a registry uri.
+ */
+ @JsonProperty(value = "credentials")
+ private ImportSourceCredentials credentials;
+
+ /**
+ * Repository name of the source image.
+ * Specify an image by repository ('hello-world'). This will use the
+ * 'latest' tag.
+ * Specify an image by tag ('hello-world:latest').
+ * Specify an image by sha256-based manifest digest
+ * ('hello-world@sha256:abc123').
+ */
+ @JsonProperty(value = "sourceImage", required = true)
+ private String sourceImage;
+
+ /**
+ * Get the resource identifier of the source Azure Container Registry.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the resource identifier of the source Azure Container Registry.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the ImportSource object itself.
+ */
+ public ImportSource withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get the address of the source registry (e.g. 'mcr.microsoft.com').
+ *
+ * @return the registryUri value
+ */
+ public String registryUri() {
+ return this.registryUri;
+ }
+
+ /**
+ * Set the address of the source registry (e.g. 'mcr.microsoft.com').
+ *
+ * @param registryUri the registryUri value to set
+ * @return the ImportSource object itself.
+ */
+ public ImportSource withRegistryUri(String registryUri) {
+ this.registryUri = registryUri;
+ return this;
+ }
+
+ /**
+ * Get credentials used when importing from a registry uri.
+ *
+ * @return the credentials value
+ */
+ public ImportSourceCredentials credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set credentials used when importing from a registry uri.
+ *
+ * @param credentials the credentials value to set
+ * @return the ImportSource object itself.
+ */
+ public ImportSource withCredentials(ImportSourceCredentials credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get repository name of the source image.
+ Specify an image by repository ('hello-world'). This will use the 'latest' tag.
+ Specify an image by tag ('hello-world:latest').
+ Specify an image by sha256-based manifest digest ('hello-world@sha256:abc123').
+ *
+ * @return the sourceImage value
+ */
+ public String sourceImage() {
+ return this.sourceImage;
+ }
+
+ /**
+ * Set repository name of the source image.
+ Specify an image by repository ('hello-world'). This will use the 'latest' tag.
+ Specify an image by tag ('hello-world:latest').
+ Specify an image by sha256-based manifest digest ('hello-world@sha256:abc123').
+ *
+ * @param sourceImage the sourceImage value to set
+ * @return the ImportSource object itself.
+ */
+ public ImportSource withSourceImage(String sourceImage) {
+ this.sourceImage = sourceImage;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSourceCredentials.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSourceCredentials.java
new file mode 100644
index 000000000000..36eaead4d291
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ImportSourceCredentials.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The ImportSourceCredentials model.
+ */
+public class ImportSourceCredentials {
+ /**
+ * The username to authenticate with the source registry.
+ */
+ @JsonProperty(value = "username")
+ private String username;
+
+ /**
+ * The password used to authenticate with the source registry.
+ */
+ @JsonProperty(value = "password", required = true)
+ private String password;
+
+ /**
+ * Get the username to authenticate with the source registry.
+ *
+ * @return the username value
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set the username to authenticate with the source registry.
+ *
+ * @param username the username value to set
+ * @return the ImportSourceCredentials object itself.
+ */
+ public ImportSourceCredentials withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get the password used to authenticate with the source registry.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set the password used to authenticate with the source registry.
+ *
+ * @param password the password value to set
+ * @return the ImportSourceCredentials object itself.
+ */
+ public ImportSourceCredentials withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/KeyVaultProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/KeyVaultProperties.java
new file mode 100644
index 000000000000..0d07bed54d49
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/KeyVaultProperties.java
@@ -0,0 +1,85 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The KeyVaultProperties model.
+ */
+public class KeyVaultProperties {
+ /**
+ * Key vault uri to access the encryption key.
+ */
+ @JsonProperty(value = "keyIdentifier")
+ private String keyIdentifier;
+
+ /**
+ * The fully qualified key identifier that includes the version of the key
+ * that is actually used for encryption.
+ */
+ @JsonProperty(value = "versionedKeyIdentifier", access = JsonProperty.Access.WRITE_ONLY)
+ private String versionedKeyIdentifier;
+
+ /**
+ * The client id of the identity which will be used to access key vault.
+ */
+ @JsonProperty(value = "identity")
+ private String identity;
+
+ /**
+ * Get key vault uri to access the encryption key.
+ *
+ * @return the keyIdentifier value
+ */
+ public String keyIdentifier() {
+ return this.keyIdentifier;
+ }
+
+ /**
+ * Set key vault uri to access the encryption key.
+ *
+ * @param keyIdentifier the keyIdentifier value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyIdentifier(String keyIdentifier) {
+ this.keyIdentifier = keyIdentifier;
+ return this;
+ }
+
+ /**
+ * Get the fully qualified key identifier that includes the version of the key that is actually used for encryption.
+ *
+ * @return the versionedKeyIdentifier value
+ */
+ public String versionedKeyIdentifier() {
+ return this.versionedKeyIdentifier;
+ }
+
+ /**
+ * Get the client id of the identity which will be used to access key vault.
+ *
+ * @return the identity value
+ */
+ public String identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the client id of the identity which will be used to access key vault.
+ *
+ * @param identity the identity value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withIdentity(String identity) {
+ this.identity = identity;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/NetworkRuleSet.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/NetworkRuleSet.java
new file mode 100644
index 000000000000..bc4f055129c3
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/NetworkRuleSet.java
@@ -0,0 +1,97 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The network rule set for a container registry.
+ */
+public class NetworkRuleSet {
+ /**
+ * The default action of allow or deny when no other rules match. Possible
+ * values include: 'Allow', 'Deny'.
+ */
+ @JsonProperty(value = "defaultAction", required = true)
+ private DefaultAction defaultAction;
+
+ /**
+ * The virtual network rules.
+ */
+ @JsonProperty(value = "virtualNetworkRules")
+ private List virtualNetworkRules;
+
+ /**
+ * The IP ACL rules.
+ */
+ @JsonProperty(value = "ipRules")
+ private List ipRules;
+
+ /**
+ * Get the default action of allow or deny when no other rules match. Possible values include: 'Allow', 'Deny'.
+ *
+ * @return the defaultAction value
+ */
+ public DefaultAction defaultAction() {
+ return this.defaultAction;
+ }
+
+ /**
+ * Set the default action of allow or deny when no other rules match. Possible values include: 'Allow', 'Deny'.
+ *
+ * @param defaultAction the defaultAction value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withDefaultAction(DefaultAction defaultAction) {
+ this.defaultAction = defaultAction;
+ return this;
+ }
+
+ /**
+ * Get the virtual network rules.
+ *
+ * @return the virtualNetworkRules value
+ */
+ public List virtualNetworkRules() {
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * Set the virtual network rules.
+ *
+ * @param virtualNetworkRules the virtualNetworkRules value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withVirtualNetworkRules(List virtualNetworkRules) {
+ this.virtualNetworkRules = virtualNetworkRules;
+ return this;
+ }
+
+ /**
+ * Get the IP ACL rules.
+ *
+ * @return the ipRules value
+ */
+ public List ipRules() {
+ return this.ipRules;
+ }
+
+ /**
+ * Set the IP ACL rules.
+ *
+ * @param ipRules the ipRules value to set
+ * @return the NetworkRuleSet object itself.
+ */
+ public NetworkRuleSet withIpRules(List ipRules) {
+ this.ipRules = ipRules;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OS.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OS.java
new file mode 100644
index 000000000000..c1e88c5f8955
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OS.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OS.
+ */
+public final class OS extends ExpandableStringEnum {
+ /** Static value Windows for OS. */
+ public static final OS WINDOWS = fromString("Windows");
+
+ /** Static value Linux for OS. */
+ public static final OS LINUX = fromString("Linux");
+
+ /**
+ * Creates or finds a OS from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OS
+ */
+ @JsonCreator
+ public static OS fromString(String name) {
+ return fromString(name, OS.class);
+ }
+
+ /**
+ * @return known OS values
+ */
+ public static Collection values() {
+ return values(OS.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDefinition.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDefinition.java
new file mode 100644
index 000000000000..6abfd8167f73
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDefinition.java
@@ -0,0 +1,40 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.OperationDefinitionInner;
+
+/**
+ * Type representing OperationDefinition.
+ */
+public interface OperationDefinition extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplayDefinition display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the serviceSpecification value.
+ */
+ OperationServiceSpecificationDefinition serviceSpecification();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDisplayDefinition.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDisplayDefinition.java
new file mode 100644
index 000000000000..ed61d03a8c61
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationDisplayDefinition.java
@@ -0,0 +1,121 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The display information for a container registry operation.
+ */
+public class OperationDisplayDefinition {
+ /**
+ * The resource provider name: Microsoft.ContainerRegistry.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The resource on which the operation is performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The operation that users can perform.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * The description for the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the resource provider name: Microsoft.ContainerRegistry.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the resource provider name: Microsoft.ContainerRegistry.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplayDefinition object itself.
+ */
+ public OperationDisplayDefinition withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get the resource on which the operation is performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the resource on which the operation is performed.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplayDefinition object itself.
+ */
+ public OperationDisplayDefinition withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the operation that users can perform.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set the operation that users can perform.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplayDefinition object itself.
+ */
+ public OperationDisplayDefinition withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get the description for the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description for the operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplayDefinition object itself.
+ */
+ public OperationDisplayDefinition withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationMetricSpecificationDefinition.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationMetricSpecificationDefinition.java
new file mode 100644
index 000000000000..7fa334c1f38e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationMetricSpecificationDefinition.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The definition of Azure Monitoring metric.
+ */
+public class OperationMetricSpecificationDefinition {
+ /**
+ * Metric name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Metric display name.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Metric description.
+ */
+ @JsonProperty(value = "displayDescription")
+ private String displayDescription;
+
+ /**
+ * Metric unit.
+ */
+ @JsonProperty(value = "unit")
+ private String unit;
+
+ /**
+ * Metric aggregation type.
+ */
+ @JsonProperty(value = "aggregationType")
+ private String aggregationType;
+
+ /**
+ * Internal metric name.
+ */
+ @JsonProperty(value = "internalMetricName")
+ private String internalMetricName;
+
+ /**
+ * Get metric name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set metric name.
+ *
+ * @param name the name value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get metric display name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set metric display name.
+ *
+ * @param displayName the displayName value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get metric description.
+ *
+ * @return the displayDescription value
+ */
+ public String displayDescription() {
+ return this.displayDescription;
+ }
+
+ /**
+ * Set metric description.
+ *
+ * @param displayDescription the displayDescription value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withDisplayDescription(String displayDescription) {
+ this.displayDescription = displayDescription;
+ return this;
+ }
+
+ /**
+ * Get metric unit.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set metric unit.
+ *
+ * @param unit the unit value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withUnit(String unit) {
+ this.unit = unit;
+ return this;
+ }
+
+ /**
+ * Get metric aggregation type.
+ *
+ * @return the aggregationType value
+ */
+ public String aggregationType() {
+ return this.aggregationType;
+ }
+
+ /**
+ * Set metric aggregation type.
+ *
+ * @param aggregationType the aggregationType value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withAggregationType(String aggregationType) {
+ this.aggregationType = aggregationType;
+ return this;
+ }
+
+ /**
+ * Get internal metric name.
+ *
+ * @return the internalMetricName value
+ */
+ public String internalMetricName() {
+ return this.internalMetricName;
+ }
+
+ /**
+ * Set internal metric name.
+ *
+ * @param internalMetricName the internalMetricName value to set
+ * @return the OperationMetricSpecificationDefinition object itself.
+ */
+ public OperationMetricSpecificationDefinition withInternalMetricName(String internalMetricName) {
+ this.internalMetricName = internalMetricName;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationServiceSpecificationDefinition.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationServiceSpecificationDefinition.java
new file mode 100644
index 000000000000..68dc4835bf96
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OperationServiceSpecificationDefinition.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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The definition of Azure Monitoring list.
+ */
+public class OperationServiceSpecificationDefinition {
+ /**
+ * A list of Azure Monitoring metrics definition.
+ */
+ @JsonProperty(value = "metricSpecifications")
+ private List metricSpecifications;
+
+ /**
+ * Get a list of Azure Monitoring metrics definition.
+ *
+ * @return the metricSpecifications value
+ */
+ public List metricSpecifications() {
+ return this.metricSpecifications;
+ }
+
+ /**
+ * Set a list of Azure Monitoring metrics definition.
+ *
+ * @param metricSpecifications the metricSpecifications value to set
+ * @return the OperationServiceSpecificationDefinition object itself.
+ */
+ public OperationServiceSpecificationDefinition withMetricSpecifications(List metricSpecifications) {
+ this.metricSpecifications = metricSpecifications;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Operations.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Operations.java
new file mode 100644
index 000000000000..1604e5075dda
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OverrideTaskStepProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OverrideTaskStepProperties.java
new file mode 100644
index 000000000000..ab0431aea49e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/OverrideTaskStepProperties.java
@@ -0,0 +1,179 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The OverrideTaskStepProperties model.
+ */
+public class OverrideTaskStepProperties {
+ /**
+ * The source context against which run has to be queued.
+ */
+ @JsonProperty(value = "contextPath")
+ private String contextPath;
+
+ /**
+ * The file against which run has to be queued.
+ */
+ @JsonProperty(value = "file")
+ private String file;
+
+ /**
+ * Gets or sets the collection of override arguments to be used when
+ * executing a build step.
+ */
+ @JsonProperty(value = "arguments")
+ private List arguments;
+
+ /**
+ * The name of the target build stage for the docker build.
+ */
+ @JsonProperty(value = "target")
+ private String target;
+
+ /**
+ * The collection of overridable values that can be passed when running a
+ * Task.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Base64 encoded update trigger token that will be attached with the base
+ * image trigger webhook.
+ */
+ @JsonProperty(value = "updateTriggerToken")
+ private String updateTriggerToken;
+
+ /**
+ * Get the source context against which run has to be queued.
+ *
+ * @return the contextPath value
+ */
+ public String contextPath() {
+ return this.contextPath;
+ }
+
+ /**
+ * Set the source context against which run has to be queued.
+ *
+ * @param contextPath the contextPath value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withContextPath(String contextPath) {
+ this.contextPath = contextPath;
+ return this;
+ }
+
+ /**
+ * Get the file against which run has to be queued.
+ *
+ * @return the file value
+ */
+ public String file() {
+ return this.file;
+ }
+
+ /**
+ * Set the file against which run has to be queued.
+ *
+ * @param file the file value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withFile(String file) {
+ this.file = file;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the collection of override arguments to be used when
+ executing a build step.
+ *
+ * @return the arguments value
+ */
+ public List arguments() {
+ return this.arguments;
+ }
+
+ /**
+ * Set gets or sets the collection of override arguments to be used when
+ executing a build step.
+ *
+ * @param arguments the arguments value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withArguments(List arguments) {
+ this.arguments = arguments;
+ return this;
+ }
+
+ /**
+ * Get the name of the target build stage for the docker build.
+ *
+ * @return the target value
+ */
+ public String target() {
+ return this.target;
+ }
+
+ /**
+ * Set the name of the target build stage for the docker build.
+ *
+ * @param target the target value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withTarget(String target) {
+ this.target = target;
+ return this;
+ }
+
+ /**
+ * Get the collection of overridable values that can be passed when running a Task.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the collection of overridable values that can be passed when running a Task.
+ *
+ * @param values the values value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+ /**
+ * Get base64 encoded update trigger token that will be attached with the base image trigger webhook.
+ *
+ * @return the updateTriggerToken value
+ */
+ public String updateTriggerToken() {
+ return this.updateTriggerToken;
+ }
+
+ /**
+ * Set base64 encoded update trigger token that will be attached with the base image trigger webhook.
+ *
+ * @param updateTriggerToken the updateTriggerToken value to set
+ * @return the OverrideTaskStepProperties object itself.
+ */
+ public OverrideTaskStepProperties withUpdateTriggerToken(String updateTriggerToken) {
+ this.updateTriggerToken = updateTriggerToken;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PasswordName.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PasswordName.java
new file mode 100644
index 000000000000..dc0960a49363
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PasswordName.java
@@ -0,0 +1,53 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for PasswordName.
+ */
+public enum PasswordName {
+ /** Enum value password. */
+ PASSWORD("password"),
+
+ /** Enum value password2. */
+ PASSWORD2("password2");
+
+ /** The actual serialized value for a PasswordName instance. */
+ private String value;
+
+ PasswordName(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a PasswordName instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed PasswordName object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static PasswordName fromString(String value) {
+ PasswordName[] items = PasswordName.values();
+ for (PasswordName item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformProperties.java
new file mode 100644
index 000000000000..df324a9cf332
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformProperties.java
@@ -0,0 +1,97 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The platform properties against which the run has to happen.
+ */
+public class PlatformProperties {
+ /**
+ * The operating system type required for the run. Possible values include:
+ * 'Windows', 'Linux'.
+ */
+ @JsonProperty(value = "os", required = true)
+ private OS os;
+
+ /**
+ * The OS architecture. Possible values include: 'amd64', 'x86', '386',
+ * 'arm', 'arm64'.
+ */
+ @JsonProperty(value = "architecture")
+ private Architecture architecture;
+
+ /**
+ * Variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ */
+ @JsonProperty(value = "variant")
+ private Variant variant;
+
+ /**
+ * Get the operating system type required for the run. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the os value
+ */
+ public OS os() {
+ return this.os;
+ }
+
+ /**
+ * Set the operating system type required for the run. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param os the os value to set
+ * @return the PlatformProperties object itself.
+ */
+ public PlatformProperties withOs(OS os) {
+ this.os = os;
+ return this;
+ }
+
+ /**
+ * Get the OS architecture. Possible values include: 'amd64', 'x86', '386', 'arm', 'arm64'.
+ *
+ * @return the architecture value
+ */
+ public Architecture architecture() {
+ return this.architecture;
+ }
+
+ /**
+ * Set the OS architecture. Possible values include: 'amd64', 'x86', '386', 'arm', 'arm64'.
+ *
+ * @param architecture the architecture value to set
+ * @return the PlatformProperties object itself.
+ */
+ public PlatformProperties withArchitecture(Architecture architecture) {
+ this.architecture = architecture;
+ return this;
+ }
+
+ /**
+ * Get variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ *
+ * @return the variant value
+ */
+ public Variant variant() {
+ return this.variant;
+ }
+
+ /**
+ * Set variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ *
+ * @param variant the variant value to set
+ * @return the PlatformProperties object itself.
+ */
+ public PlatformProperties withVariant(Variant variant) {
+ this.variant = variant;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformUpdateParameters.java
new file mode 100644
index 000000000000..d69490e0197e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PlatformUpdateParameters.java
@@ -0,0 +1,97 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties for updating the platform configuration.
+ */
+public class PlatformUpdateParameters {
+ /**
+ * The operating system type required for the run. Possible values include:
+ * 'Windows', 'Linux'.
+ */
+ @JsonProperty(value = "os")
+ private OS os;
+
+ /**
+ * The OS architecture. Possible values include: 'amd64', 'x86', '386',
+ * 'arm', 'arm64'.
+ */
+ @JsonProperty(value = "architecture")
+ private Architecture architecture;
+
+ /**
+ * Variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ */
+ @JsonProperty(value = "variant")
+ private Variant variant;
+
+ /**
+ * Get the operating system type required for the run. Possible values include: 'Windows', 'Linux'.
+ *
+ * @return the os value
+ */
+ public OS os() {
+ return this.os;
+ }
+
+ /**
+ * Set the operating system type required for the run. Possible values include: 'Windows', 'Linux'.
+ *
+ * @param os the os value to set
+ * @return the PlatformUpdateParameters object itself.
+ */
+ public PlatformUpdateParameters withOs(OS os) {
+ this.os = os;
+ return this;
+ }
+
+ /**
+ * Get the OS architecture. Possible values include: 'amd64', 'x86', '386', 'arm', 'arm64'.
+ *
+ * @return the architecture value
+ */
+ public Architecture architecture() {
+ return this.architecture;
+ }
+
+ /**
+ * Set the OS architecture. Possible values include: 'amd64', 'x86', '386', 'arm', 'arm64'.
+ *
+ * @param architecture the architecture value to set
+ * @return the PlatformUpdateParameters object itself.
+ */
+ public PlatformUpdateParameters withArchitecture(Architecture architecture) {
+ this.architecture = architecture;
+ return this;
+ }
+
+ /**
+ * Get variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ *
+ * @return the variant value
+ */
+ public Variant variant() {
+ return this.variant;
+ }
+
+ /**
+ * Set variant of the CPU. Possible values include: 'v6', 'v7', 'v8'.
+ *
+ * @param variant the variant value to set
+ * @return the PlatformUpdateParameters object itself.
+ */
+ public PlatformUpdateParameters withVariant(Variant variant) {
+ this.variant = variant;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Policies.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Policies.java
new file mode 100644
index 000000000000..731d8234de77
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Policies.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The policies for a container registry.
+ */
+public class Policies {
+ /**
+ * The quarantine policy for a container registry.
+ */
+ @JsonProperty(value = "quarantinePolicy")
+ private QuarantinePolicy quarantinePolicy;
+
+ /**
+ * The content trust policy for a container registry.
+ */
+ @JsonProperty(value = "trustPolicy")
+ private TrustPolicy trustPolicy;
+
+ /**
+ * The retention policy for a container registry.
+ */
+ @JsonProperty(value = "retentionPolicy")
+ private RetentionPolicy retentionPolicy;
+
+ /**
+ * Get the quarantine policy for a container registry.
+ *
+ * @return the quarantinePolicy value
+ */
+ public QuarantinePolicy quarantinePolicy() {
+ return this.quarantinePolicy;
+ }
+
+ /**
+ * Set the quarantine policy for a container registry.
+ *
+ * @param quarantinePolicy the quarantinePolicy value to set
+ * @return the Policies object itself.
+ */
+ public Policies withQuarantinePolicy(QuarantinePolicy quarantinePolicy) {
+ this.quarantinePolicy = quarantinePolicy;
+ return this;
+ }
+
+ /**
+ * Get the content trust policy for a container registry.
+ *
+ * @return the trustPolicy value
+ */
+ public TrustPolicy trustPolicy() {
+ return this.trustPolicy;
+ }
+
+ /**
+ * Set the content trust policy for a container registry.
+ *
+ * @param trustPolicy the trustPolicy value to set
+ * @return the Policies object itself.
+ */
+ public Policies withTrustPolicy(TrustPolicy trustPolicy) {
+ this.trustPolicy = trustPolicy;
+ return this;
+ }
+
+ /**
+ * Get the retention policy for a container registry.
+ *
+ * @return the retentionPolicy value
+ */
+ public RetentionPolicy retentionPolicy() {
+ return this.retentionPolicy;
+ }
+
+ /**
+ * Set the retention policy for a container registry.
+ *
+ * @param retentionPolicy the retentionPolicy value to set
+ * @return the Policies object itself.
+ */
+ public Policies withRetentionPolicy(RetentionPolicy retentionPolicy) {
+ this.retentionPolicy = retentionPolicy;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PolicyStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PolicyStatus.java
new file mode 100644
index 000000000000..19c02ee3d0fe
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PolicyStatus.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PolicyStatus.
+ */
+public final class PolicyStatus extends ExpandableStringEnum {
+ /** Static value enabled for PolicyStatus. */
+ public static final PolicyStatus ENABLED = fromString("enabled");
+
+ /** Static value disabled for PolicyStatus. */
+ public static final PolicyStatus DISABLED = fromString("disabled");
+
+ /**
+ * Creates or finds a PolicyStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PolicyStatus
+ */
+ @JsonCreator
+ public static PolicyStatus fromString(String name) {
+ return fromString(name, PolicyStatus.class);
+ }
+
+ /**
+ * @return known PolicyStatus values
+ */
+ public static Collection values() {
+ return values(PolicyStatus.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpoint.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpoint.java
new file mode 100644
index 000000000000..b03931ceaeef
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpoint.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Private Endpoint resource.
+ */
+public class PrivateEndpoint {
+ /**
+ * This is private endpoint resource created with Microsoft.Network
+ * resource provider.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get this is private endpoint resource created with Microsoft.Network resource provider.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set this is private endpoint resource created with Microsoft.Network resource provider.
+ *
+ * @param id the id value to set
+ * @return the PrivateEndpoint object itself.
+ */
+ public PrivateEndpoint withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnection.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnection.java
new file mode 100644
index 000000000000..7291b71287cd
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnection.java
@@ -0,0 +1,151 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.PrivateEndpointConnectionInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+
+/**
+ * Type representing PrivateEndpointConnection.
+ */
+public interface PrivateEndpointConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the privateEndpoint value.
+ */
+ PrivateEndpoint privateEndpoint();
+
+ /**
+ * @return the privateLinkServiceConnectionState value.
+ */
+ PrivateLinkServiceConnectionState privateLinkServiceConnectionState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the PrivateEndpointConnection definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithRegistry, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PrivateEndpointConnection definition.
+ */
+ interface Blank extends WithRegistry {
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify Registry.
+ */
+ interface WithRegistry {
+ /**
+ * Specifies resourceGroupName, registryName.
+ * @param resourceGroupName The name of the resource group to which the container registry belongs
+ * @param registryName The name of the container registry
+ * @return the next definition stage
+ */
+ WithCreate withExistingRegistry(String resourceGroupName, String registryName);
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The resource of private endpoint
+ * @return the next definition stage
+ */
+ WithCreate withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ /**
+ * The stage of the privateendpointconnection definition allowing to specify PrivateLinkServiceConnectionState.
+ */
+ interface WithPrivateLinkServiceConnectionState {
+ /**
+ * Specifies privateLinkServiceConnectionState.
+ * @param privateLinkServiceConnectionState A collection of information about the state of the connection between service consumer and provider
+ * @return the next definition stage
+ */
+ WithCreate withPrivateLinkServiceConnectionState(PrivateLinkServiceConnectionState privateLinkServiceConnectionState);
+ }
+
+ /**
+ * 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, DefinitionStages.WithPrivateEndpoint, DefinitionStages.WithPrivateLinkServiceConnectionState {
+ }
+ }
+ /**
+ * The template for a PrivateEndpointConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPrivateEndpoint, UpdateStages.WithPrivateLinkServiceConnectionState {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The resource of private endpoint
+ * @return the next update stage
+ */
+ Update withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateLinkServiceConnectionState.
+ */
+ interface WithPrivateLinkServiceConnectionState {
+ /**
+ * Specifies privateLinkServiceConnectionState.
+ * @param privateLinkServiceConnectionState A collection of information about the state of the connection between service consumer and provider
+ * @return the next update stage
+ */
+ Update withPrivateLinkServiceConnectionState(PrivateLinkServiceConnectionState privateLinkServiceConnectionState);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnections.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnections.java
new file mode 100644
index 000000000000..afe3e4e08e81
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateEndpointConnections.java
@@ -0,0 +1,53 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.PrivateEndpointConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateEndpointConnections.
+ */
+public interface PrivateEndpointConnections extends SupportsCreating, HasInner {
+ /**
+ * Get the specified private endpoint connection associated with the container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String privateEndpointConnectionName);
+
+ /**
+ * List all private endpoint connections in a container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String registryName);
+
+ /**
+ * Deletes the specified private endpoint connection associated with the container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param privateEndpointConnectionName The name of the private endpoint connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String registryName, String privateEndpointConnectionName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkResource.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkResource.java
new file mode 100644
index 000000000000..9e8e5e129877
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkResource.java
@@ -0,0 +1,51 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.PrivateLinkResourceInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import java.util.List;
+
+/**
+ * Type representing PrivateLinkResource.
+ */
+public interface PrivateLinkResource extends HasInner, HasManager {
+ /**
+ * @return the groupId value.
+ */
+ String groupId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the requiredMembers value.
+ */
+ List requiredMembers();
+
+ /**
+ * @return the requiredZoneNames value.
+ */
+ List requiredZoneNames();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkServiceConnectionState.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkServiceConnectionState.java
new file mode 100644
index 000000000000..4ca3f6598c66
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/PrivateLinkServiceConnectionState.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The state of a private link service connection.
+ */
+public class PrivateLinkServiceConnectionState {
+ /**
+ * The private link service connection status. Possible values include:
+ * 'Approved', 'Pending', 'Rejected', 'Disconnected'.
+ */
+ @JsonProperty(value = "status")
+ private Status status;
+
+ /**
+ * The description for connection status. For example if connection is
+ * rejected it can indicate reason for rejection.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * A message indicating if changes on the service provider require any
+ * updates on the consumer. Possible values include: 'None', 'Recreate'.
+ */
+ @JsonProperty(value = "actionsRequired")
+ private ActionsRequired actionsRequired;
+
+ /**
+ * Get the private link service connection status. Possible values include: 'Approved', 'Pending', 'Rejected', 'Disconnected'.
+ *
+ * @return the status value
+ */
+ public Status status() {
+ return this.status;
+ }
+
+ /**
+ * Set the private link service connection status. Possible values include: 'Approved', 'Pending', 'Rejected', 'Disconnected'.
+ *
+ * @param status the status value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withStatus(Status status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the description for connection status. For example if connection is rejected it can indicate reason for rejection.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description for connection status. For example if connection is rejected it can indicate reason for rejection.
+ *
+ * @param description the description value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get a message indicating if changes on the service provider require any updates on the consumer. Possible values include: 'None', 'Recreate'.
+ *
+ * @return the actionsRequired value
+ */
+ public ActionsRequired actionsRequired() {
+ return this.actionsRequired;
+ }
+
+ /**
+ * Set a message indicating if changes on the service provider require any updates on the consumer. Possible values include: 'None', 'Recreate'.
+ *
+ * @param actionsRequired the actionsRequired value to set
+ * @return the PrivateLinkServiceConnectionState object itself.
+ */
+ public PrivateLinkServiceConnectionState withActionsRequired(ActionsRequired actionsRequired) {
+ this.actionsRequired = actionsRequired;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ProvisioningState.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ProvisioningState.java
new file mode 100644
index 000000000000..9d832feeb653
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ProvisioningState.java
@@ -0,0 +1,53 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+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 Creating for ProvisioningState. */
+ public static final ProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for ProvisioningState. */
+ public static final ProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for ProvisioningState. */
+ public static final ProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for ProvisioningState. */
+ public static final ProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for ProvisioningState. */
+ public static final ProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Canceled for ProvisioningState. */
+ public static final ProvisioningState CANCELED = fromString("Canceled");
+
+ /**
+ * 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/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/QuarantinePolicy.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/QuarantinePolicy.java
new file mode 100644
index 000000000000..c02cb08a6d8d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/QuarantinePolicy.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The quarantine policy for a container registry.
+ */
+public class QuarantinePolicy {
+ /**
+ * The value that indicates whether the policy is enabled or not. Possible
+ * values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "status")
+ private PolicyStatus status;
+
+ /**
+ * Get the value that indicates whether the policy is enabled or not. Possible values include: 'enabled', 'disabled'.
+ *
+ * @return the status value
+ */
+ public PolicyStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the value that indicates whether the policy is enabled or not. Possible values include: 'enabled', 'disabled'.
+ *
+ * @param status the status value to set
+ * @return the QuarantinePolicy object itself.
+ */
+ public QuarantinePolicy withStatus(PolicyStatus status) {
+ this.status = status;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegenerateCredentialParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegenerateCredentialParameters.java
new file mode 100644
index 000000000000..be73ba923304
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegenerateCredentialParameters.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters used to regenerate the login credential.
+ */
+public class RegenerateCredentialParameters {
+ /**
+ * Specifies name of the password which should be regenerated -- password
+ * or password2. Possible values include: 'password', 'password2'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private PasswordName name;
+
+ /**
+ * Get specifies name of the password which should be regenerated -- password or password2. Possible values include: 'password', 'password2'.
+ *
+ * @return the name value
+ */
+ public PasswordName name() {
+ return this.name;
+ }
+
+ /**
+ * Set specifies name of the password which should be regenerated -- password or password2. Possible values include: 'password', 'password2'.
+ *
+ * @param name the name value to set
+ * @return the RegenerateCredentialParameters object itself.
+ */
+ public RegenerateCredentialParameters withName(PasswordName name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registries.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registries.java
new file mode 100644
index 000000000000..3e55287254cb
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registries.java
@@ -0,0 +1,120 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+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.containerregistry.v2019_12_01_preview.implementation.RegistriesInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.PrivateLinkResource;
+
+/**
+ * Type representing Registries.
+ */
+public interface Registries extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Copies an image to this container registry from the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param parameters The parameters specifying the image to copy and the source container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable importImageAsync(String resourceGroupName, String registryName, ImportImageParameters parameters);
+
+ /**
+ * Lists the login credentials for the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCredentialsAsync(String resourceGroupName, String registryName);
+
+ /**
+ * Regenerates one of the login credentials for the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param name Specifies name of the password which should be regenerated -- password or password2. Possible values include: 'password', 'password2'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateCredentialAsync(String resourceGroupName, String registryName, PasswordName name);
+
+ /**
+ * Schedules a new run based on the request parameters and add it to the run queue.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param runRequest The parameters of a run that needs to scheduled.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable scheduleRunAsync(String resourceGroupName, String registryName, RunRequest runRequest);
+
+ /**
+ * Get the upload location for the user to be able to upload the source.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getBuildSourceUploadUrlAsync(String resourceGroupName, String registryName);
+
+ /**
+ * Generate keys for a token of a specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param generateCredentialsParameters The parameters for generating credentials.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable generateCredentialsAsync(String resourceGroupName, String registryName, GenerateCredentialsParameters generateCredentialsParameters);
+
+ /**
+ * Checks whether the container registry name is available for use. The name must contain only alphanumeric characters, be globally unique, and between 5 and 50 characters in length.
+ *
+ * @param name The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String name);
+
+ /**
+ * Gets the quota usages for the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(String resourceGroupName, String registryName);
+
+ /**
+ * Lists the private link resources for a container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listPrivateLinkResourcesAsync(final String resourceGroupName, final String registryName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registry.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registry.java
new file mode 100644
index 000000000000..35f866794bab
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Registry.java
@@ -0,0 +1,320 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import org.joda.time.DateTime;
+import java.util.List;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RegistryInner;
+
+/**
+ * Type representing Registry.
+ */
+public interface Registry extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the adminUserEnabled value.
+ */
+ Boolean adminUserEnabled();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the dataEndpointEnabled value.
+ */
+ Boolean dataEndpointEnabled();
+
+ /**
+ * @return the dataEndpointHostNames value.
+ */
+ List dataEndpointHostNames();
+
+ /**
+ * @return the encryption value.
+ */
+ EncryptionProperty encryption();
+
+ /**
+ * @return the identity value.
+ */
+ IdentityProperties identity();
+
+ /**
+ * @return the loginServer value.
+ */
+ String loginServer();
+
+ /**
+ * @return the networkRuleSet value.
+ */
+ NetworkRuleSet networkRuleSet();
+
+ /**
+ * @return the policies value.
+ */
+ Policies policies();
+
+ /**
+ * @return the privateEndpointConnections value.
+ */
+ List privateEndpointConnections();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the status value.
+ */
+ Status1 status();
+
+ /**
+ * @return the storageAccount value.
+ */
+ StorageAccountProperties storageAccount();
+
+ /**
+ * The entirety of the Registry definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithSku, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Registry definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Registry definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Registry definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the container registry
+ * @return the next definition stage
+*/
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify AdminUserEnabled.
+ */
+ interface WithAdminUserEnabled {
+ /**
+ * Specifies adminUserEnabled.
+ * @param adminUserEnabled The value that indicates whether the admin user is enabled
+ * @return the next definition stage
+ */
+ WithCreate withAdminUserEnabled(Boolean adminUserEnabled);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify DataEndpointEnabled.
+ */
+ interface WithDataEndpointEnabled {
+ /**
+ * Specifies dataEndpointEnabled.
+ * @param dataEndpointEnabled Enable a single data endpoint per region for serving data
+ * @return the next definition stage
+ */
+ WithCreate withDataEndpointEnabled(Boolean dataEndpointEnabled);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify Encryption.
+ */
+ interface WithEncryption {
+ /**
+ * Specifies encryption.
+ * @param encryption The encryption settings of container registry
+ * @return the next definition stage
+ */
+ WithCreate withEncryption(EncryptionProperty encryption);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the container registry
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(IdentityProperties identity);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify NetworkRuleSet.
+ */
+ interface WithNetworkRuleSet {
+ /**
+ * Specifies networkRuleSet.
+ * @param networkRuleSet The network rule set for a container registry
+ * @return the next definition stage
+ */
+ WithCreate withNetworkRuleSet(NetworkRuleSet networkRuleSet);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify Policies.
+ */
+ interface WithPolicies {
+ /**
+ * Specifies policies.
+ * @param policies The policies for a container registry
+ * @return the next definition stage
+ */
+ WithCreate withPolicies(Policies policies);
+ }
+
+ /**
+ * The stage of the registry definition allowing to specify StorageAccount.
+ */
+ interface WithStorageAccount {
+ /**
+ * Specifies storageAccount.
+ * @param storageAccount The properties of the storage account for the container registry. Only applicable to Classic SKU
+ * @return the next definition stage
+ */
+ WithCreate withStorageAccount(StorageAccountProperties storageAccount);
+ }
+
+ /**
+ * 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.WithAdminUserEnabled, DefinitionStages.WithDataEndpointEnabled, DefinitionStages.WithEncryption, DefinitionStages.WithIdentity, DefinitionStages.WithNetworkRuleSet, DefinitionStages.WithPolicies, DefinitionStages.WithStorageAccount {
+ }
+ }
+ /**
+ * The template for a Registry update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAdminUserEnabled, UpdateStages.WithDataEndpointEnabled, UpdateStages.WithEncryption, UpdateStages.WithIdentity, UpdateStages.WithNetworkRuleSet, UpdateStages.WithPolicies, UpdateStages.WithSku {
+ }
+
+ /**
+ * Grouping of Registry update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the registry update allowing to specify AdminUserEnabled.
+ */
+ interface WithAdminUserEnabled {
+ /**
+ * Specifies adminUserEnabled.
+ * @param adminUserEnabled The value that indicates whether the admin user is enabled
+ * @return the next update stage
+ */
+ Update withAdminUserEnabled(Boolean adminUserEnabled);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify DataEndpointEnabled.
+ */
+ interface WithDataEndpointEnabled {
+ /**
+ * Specifies dataEndpointEnabled.
+ * @param dataEndpointEnabled Enable a single data endpoint per region for serving data
+ * @return the next update stage
+ */
+ Update withDataEndpointEnabled(Boolean dataEndpointEnabled);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify Encryption.
+ */
+ interface WithEncryption {
+ /**
+ * Specifies encryption.
+ * @param encryption The encryption settings of container registry
+ * @return the next update stage
+ */
+ Update withEncryption(EncryptionProperty encryption);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the container registry
+ * @return the next update stage
+ */
+ Update withIdentity(IdentityProperties identity);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify NetworkRuleSet.
+ */
+ interface WithNetworkRuleSet {
+ /**
+ * Specifies networkRuleSet.
+ * @param networkRuleSet The network rule set for a container registry
+ * @return the next update stage
+ */
+ Update withNetworkRuleSet(NetworkRuleSet networkRuleSet);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify Policies.
+ */
+ interface WithPolicies {
+ /**
+ * Specifies policies.
+ * @param policies The policies for a container registry
+ * @return the next update stage
+ */
+ Update withPolicies(Policies policies);
+ }
+
+ /**
+ * The stage of the registry update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the container registry
+ * @return the next update stage
+ */
+ Update withSku(Sku sku);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryListCredentialsResult.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryListCredentialsResult.java
new file mode 100644
index 000000000000..3bf49f709635
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryListCredentialsResult.java
@@ -0,0 +1,31 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RegistryListCredentialsResultInner;
+import java.util.List;
+
+/**
+ * Type representing RegistryListCredentialsResult.
+ */
+public interface RegistryListCredentialsResult extends HasInner, HasManager {
+ /**
+ * @return the passwords value.
+ */
+ List passwords();
+
+ /**
+ * @return the username value.
+ */
+ String username();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameCheckRequest.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameCheckRequest.java
new file mode 100644
index 000000000000..4b5999e32519
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameCheckRequest.java
@@ -0,0 +1,78 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A request to check whether a container registry name is available.
+ */
+public class RegistryNameCheckRequest {
+ /**
+ * The name of the container registry.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The resource type of the container registry. This field must be set to
+ * 'Microsoft.ContainerRegistry/registries'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of RegistryNameCheckRequest class.
+ * @param name the name of the container registry.
+ */
+ public RegistryNameCheckRequest() {
+ type = "Microsoft.ContainerRegistry/registries";
+ }
+
+ /**
+ * Get the name of the container registry.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the container registry.
+ *
+ * @param name the name value to set
+ * @return the RegistryNameCheckRequest object itself.
+ */
+ public RegistryNameCheckRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the resource type of the container registry. This field must be set to 'Microsoft.ContainerRegistry/registries'.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the resource type of the container registry. This field must be set to 'Microsoft.ContainerRegistry/registries'.
+ *
+ * @param type the type value to set
+ * @return the RegistryNameCheckRequest object itself.
+ */
+ public RegistryNameCheckRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameStatus.java
new file mode 100644
index 000000000000..34c57afed2bc
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryNameStatus.java
@@ -0,0 +1,35 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RegistryNameStatusInner;
+
+/**
+ * Type representing RegistryNameStatus.
+ */
+public interface RegistryNameStatus extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ String reason();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryPassword.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryPassword.java
new file mode 100644
index 000000000000..78bb7fabd317
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryPassword.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The login password for the container registry.
+ */
+public class RegistryPassword {
+ /**
+ * The password name. Possible values include: 'password', 'password2'.
+ */
+ @JsonProperty(value = "name")
+ private PasswordName name;
+
+ /**
+ * The password value.
+ */
+ @JsonProperty(value = "value")
+ private String value;
+
+ /**
+ * Get the password name. Possible values include: 'password', 'password2'.
+ *
+ * @return the name value
+ */
+ public PasswordName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the password name. Possible values include: 'password', 'password2'.
+ *
+ * @param name the name value to set
+ * @return the RegistryPassword object itself.
+ */
+ public RegistryPassword withName(PasswordName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the password value.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the password value.
+ *
+ * @param value the value value to set
+ * @return the RegistryPassword object itself.
+ */
+ public RegistryPassword withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUpdateParameters.java
new file mode 100644
index 000000000000..dfedad679cae
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUpdateParameters.java
@@ -0,0 +1,228 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The parameters for updating a container registry.
+ */
+@JsonFlatten
+public class RegistryUpdateParameters {
+ /**
+ * The tags for the container registry.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The SKU of the container registry.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * The identity of the container registry.
+ */
+ @JsonProperty(value = "identity")
+ private IdentityProperties identity;
+
+ /**
+ * The value that indicates whether the admin user is enabled.
+ */
+ @JsonProperty(value = "properties.adminUserEnabled")
+ private Boolean adminUserEnabled;
+
+ /**
+ * The network rule set for a container registry.
+ */
+ @JsonProperty(value = "properties.networkRuleSet")
+ private NetworkRuleSet networkRuleSet;
+
+ /**
+ * The policies for a container registry.
+ */
+ @JsonProperty(value = "properties.policies")
+ private Policies policies;
+
+ /**
+ * The encryption settings of container registry.
+ */
+ @JsonProperty(value = "properties.encryption")
+ private EncryptionProperty encryption;
+
+ /**
+ * Enable a single data endpoint per region for serving data.
+ */
+ @JsonProperty(value = "properties.dataEndpointEnabled")
+ private Boolean dataEndpointEnabled;
+
+ /**
+ * Get the tags for the container registry.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags for the container registry.
+ *
+ * @param tags the tags value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the SKU of the container registry.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU of the container registry.
+ *
+ * @param sku the sku value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the identity of the container registry.
+ *
+ * @return the identity value
+ */
+ public IdentityProperties identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity of the container registry.
+ *
+ * @param identity the identity value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withIdentity(IdentityProperties identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the value that indicates whether the admin user is enabled.
+ *
+ * @return the adminUserEnabled value
+ */
+ public Boolean adminUserEnabled() {
+ return this.adminUserEnabled;
+ }
+
+ /**
+ * Set the value that indicates whether the admin user is enabled.
+ *
+ * @param adminUserEnabled the adminUserEnabled value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withAdminUserEnabled(Boolean adminUserEnabled) {
+ this.adminUserEnabled = adminUserEnabled;
+ return this;
+ }
+
+ /**
+ * Get the network rule set for a container registry.
+ *
+ * @return the networkRuleSet value
+ */
+ public NetworkRuleSet networkRuleSet() {
+ return this.networkRuleSet;
+ }
+
+ /**
+ * Set the network rule set for a container registry.
+ *
+ * @param networkRuleSet the networkRuleSet value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withNetworkRuleSet(NetworkRuleSet networkRuleSet) {
+ this.networkRuleSet = networkRuleSet;
+ return this;
+ }
+
+ /**
+ * Get the policies for a container registry.
+ *
+ * @return the policies value
+ */
+ public Policies policies() {
+ return this.policies;
+ }
+
+ /**
+ * Set the policies for a container registry.
+ *
+ * @param policies the policies value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withPolicies(Policies policies) {
+ this.policies = policies;
+ return this;
+ }
+
+ /**
+ * Get the encryption settings of container registry.
+ *
+ * @return the encryption value
+ */
+ public EncryptionProperty encryption() {
+ return this.encryption;
+ }
+
+ /**
+ * Set the encryption settings of container registry.
+ *
+ * @param encryption the encryption value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withEncryption(EncryptionProperty encryption) {
+ this.encryption = encryption;
+ return this;
+ }
+
+ /**
+ * Get enable a single data endpoint per region for serving data.
+ *
+ * @return the dataEndpointEnabled value
+ */
+ public Boolean dataEndpointEnabled() {
+ return this.dataEndpointEnabled;
+ }
+
+ /**
+ * Set enable a single data endpoint per region for serving data.
+ *
+ * @param dataEndpointEnabled the dataEndpointEnabled value to set
+ * @return the RegistryUpdateParameters object itself.
+ */
+ public RegistryUpdateParameters withDataEndpointEnabled(Boolean dataEndpointEnabled) {
+ this.dataEndpointEnabled = dataEndpointEnabled;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsage.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsage.java
new file mode 100644
index 000000000000..e3be9d190f93
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsage.java
@@ -0,0 +1,121 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The quota usage for a container registry.
+ */
+public class RegistryUsage {
+ /**
+ * The name of the usage.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The limit of the usage.
+ */
+ @JsonProperty(value = "limit")
+ private Long limit;
+
+ /**
+ * The current value of the usage.
+ */
+ @JsonProperty(value = "currentValue")
+ private Long currentValue;
+
+ /**
+ * The unit of measurement. Possible values include: 'Count', 'Bytes'.
+ */
+ @JsonProperty(value = "unit")
+ private RegistryUsageUnit unit;
+
+ /**
+ * Get the name of the usage.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the usage.
+ *
+ * @param name the name value to set
+ * @return the RegistryUsage object itself.
+ */
+ public RegistryUsage withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the limit of the usage.
+ *
+ * @return the limit value
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Set the limit of the usage.
+ *
+ * @param limit the limit value to set
+ * @return the RegistryUsage object itself.
+ */
+ public RegistryUsage withLimit(Long limit) {
+ this.limit = limit;
+ return this;
+ }
+
+ /**
+ * Get the current value of the usage.
+ *
+ * @return the currentValue value
+ */
+ public Long currentValue() {
+ return this.currentValue;
+ }
+
+ /**
+ * Set the current value of the usage.
+ *
+ * @param currentValue the currentValue value to set
+ * @return the RegistryUsage object itself.
+ */
+ public RegistryUsage withCurrentValue(Long currentValue) {
+ this.currentValue = currentValue;
+ return this;
+ }
+
+ /**
+ * Get the unit of measurement. Possible values include: 'Count', 'Bytes'.
+ *
+ * @return the unit value
+ */
+ public RegistryUsageUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Set the unit of measurement. Possible values include: 'Count', 'Bytes'.
+ *
+ * @param unit the unit value to set
+ * @return the RegistryUsage object itself.
+ */
+ public RegistryUsage withUnit(RegistryUsageUnit unit) {
+ this.unit = unit;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageListResult.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageListResult.java
new file mode 100644
index 000000000000..9de276339a01
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageListResult.java
@@ -0,0 +1,26 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RegistryUsageListResultInner;
+import java.util.List;
+
+/**
+ * Type representing RegistryUsageListResult.
+ */
+public interface RegistryUsageListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageUnit.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageUnit.java
new file mode 100644
index 000000000000..763aaac63250
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RegistryUsageUnit.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RegistryUsageUnit.
+ */
+public final class RegistryUsageUnit extends ExpandableStringEnum {
+ /** Static value Count for RegistryUsageUnit. */
+ public static final RegistryUsageUnit COUNT = fromString("Count");
+
+ /** Static value Bytes for RegistryUsageUnit. */
+ public static final RegistryUsageUnit BYTES = fromString("Bytes");
+
+ /**
+ * Creates or finds a RegistryUsageUnit from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RegistryUsageUnit
+ */
+ @JsonCreator
+ public static RegistryUsageUnit fromString(String name) {
+ return fromString(name, RegistryUsageUnit.class);
+ }
+
+ /**
+ * @return known RegistryUsageUnit values
+ */
+ public static Collection values() {
+ return values(RegistryUsageUnit.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replication.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replication.java
new file mode 100644
index 000000000000..7f66d76b621d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replication.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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ReplicationInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import java.util.Map;
+
+/**
+ * Type representing Replication.
+ */
+public interface Replication extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the status value.
+ */
+ Status1 status();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Replication definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithRegistry, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Replication definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Replication definition.
+ */
+ interface Blank extends WithRegistry {
+ }
+
+ /**
+ * The stage of the replication definition allowing to specify Registry.
+ */
+ interface WithRegistry {
+ /**
+ * Specifies resourceGroupName, registryName.
+ * @param resourceGroupName The name of the resource group to which the container registry belongs
+ * @param registryName The name of the container registry
+ * @return the next definition stage
+ */
+ WithLocation withExistingRegistry(String resourceGroupName, String registryName);
+ }
+
+ /**
+ * The stage of the replication definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The location of the resource. This cannot be changed after the resource is created
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the replication definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags of the resource
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * 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, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a Replication update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of Replication update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the replication update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags of the resource
+ * @return the next update stage
+ */
+ Update withTags(Map tags);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ReplicationUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ReplicationUpdateParameters.java
new file mode 100644
index 000000000000..4123b681257f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ReplicationUpdateParameters.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The parameters for updating a replication.
+ */
+public class ReplicationUpdateParameters {
+ /**
+ * The tags for the replication.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the tags for the replication.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags for the replication.
+ *
+ * @param tags the tags value to set
+ * @return the ReplicationUpdateParameters object itself.
+ */
+ public ReplicationUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replications.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replications.java
new file mode 100644
index 000000000000..85305406e24d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Replications.java
@@ -0,0 +1,53 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ReplicationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Replications.
+ */
+public interface Replications extends SupportsCreating, HasInner {
+ /**
+ * Gets the properties of the specified replication.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param replicationName The name of the replication.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String replicationName);
+
+ /**
+ * Lists all the replications for the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String registryName);
+
+ /**
+ * Deletes a replication from a container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param replicationName The name of the replication.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String registryName, String replicationName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Request.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Request.java
new file mode 100644
index 000000000000..7842263ef9c5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Request.java
@@ -0,0 +1,150 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The request that generated the event.
+ */
+public class Request {
+ /**
+ * The ID of the request that initiated the event.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The IP or hostname and possibly port of the client connection that
+ * initiated the event. This is the RemoteAddr from the standard http
+ * request.
+ */
+ @JsonProperty(value = "addr")
+ private String addr;
+
+ /**
+ * The externally accessible hostname of the registry instance, as
+ * specified by the http host header on incoming requests.
+ */
+ @JsonProperty(value = "host")
+ private String host;
+
+ /**
+ * The request method that generated the event.
+ */
+ @JsonProperty(value = "method")
+ private String method;
+
+ /**
+ * The user agent header of the request.
+ */
+ @JsonProperty(value = "useragent")
+ private String useragent;
+
+ /**
+ * Get the ID of the request that initiated the event.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the ID of the request that initiated the event.
+ *
+ * @param id the id value to set
+ * @return the Request object itself.
+ */
+ public Request withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the IP or hostname and possibly port of the client connection that initiated the event. This is the RemoteAddr from the standard http request.
+ *
+ * @return the addr value
+ */
+ public String addr() {
+ return this.addr;
+ }
+
+ /**
+ * Set the IP or hostname and possibly port of the client connection that initiated the event. This is the RemoteAddr from the standard http request.
+ *
+ * @param addr the addr value to set
+ * @return the Request object itself.
+ */
+ public Request withAddr(String addr) {
+ this.addr = addr;
+ return this;
+ }
+
+ /**
+ * Get the externally accessible hostname of the registry instance, as specified by the http host header on incoming requests.
+ *
+ * @return the host value
+ */
+ public String host() {
+ return this.host;
+ }
+
+ /**
+ * Set the externally accessible hostname of the registry instance, as specified by the http host header on incoming requests.
+ *
+ * @param host the host value to set
+ * @return the Request object itself.
+ */
+ public Request withHost(String host) {
+ this.host = host;
+ return this;
+ }
+
+ /**
+ * Get the request method that generated the event.
+ *
+ * @return the method value
+ */
+ public String method() {
+ return this.method;
+ }
+
+ /**
+ * Set the request method that generated the event.
+ *
+ * @param method the method value to set
+ * @return the Request object itself.
+ */
+ public Request withMethod(String method) {
+ this.method = method;
+ return this;
+ }
+
+ /**
+ * Get the user agent header of the request.
+ *
+ * @return the useragent value
+ */
+ public String useragent() {
+ return this.useragent;
+ }
+
+ /**
+ * Set the user agent header of the request.
+ *
+ * @param useragent the useragent value to set
+ * @return the Request object itself.
+ */
+ public Request withUseragent(String useragent) {
+ this.useragent = useragent;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ResourceIdentityType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ResourceIdentityType.java
new file mode 100644
index 000000000000..87cc77baf802
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ResourceIdentityType.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.containerregistry.v2019_12_01_preview;
+
+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"),
+
+ /** Enum value UserAssigned. */
+ USER_ASSIGNED("UserAssigned"),
+
+ /** Enum value SystemAssigned, UserAssigned. */
+ SYSTEM_ASSIGNED_USER_ASSIGNED("SystemAssigned, UserAssigned"),
+
+ /** Enum value None. */
+ NONE("None");
+
+ /** 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/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RetentionPolicy.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RetentionPolicy.java
new file mode 100644
index 000000000000..51d3a9ead1c6
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RetentionPolicy.java
@@ -0,0 +1,87 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The retention policy for a container registry.
+ */
+public class RetentionPolicy {
+ /**
+ * The number of days to retain an untagged manifest after which it gets
+ * purged.
+ */
+ @JsonProperty(value = "days")
+ private Integer days;
+
+ /**
+ * The timestamp when the policy was last updated.
+ */
+ @JsonProperty(value = "lastUpdatedTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastUpdatedTime;
+
+ /**
+ * The value that indicates whether the policy is enabled or not. Possible
+ * values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "status")
+ private PolicyStatus status;
+
+ /**
+ * Get the number of days to retain an untagged manifest after which it gets purged.
+ *
+ * @return the days value
+ */
+ public Integer days() {
+ return this.days;
+ }
+
+ /**
+ * Set the number of days to retain an untagged manifest after which it gets purged.
+ *
+ * @param days the days value to set
+ * @return the RetentionPolicy object itself.
+ */
+ public RetentionPolicy withDays(Integer days) {
+ this.days = days;
+ return this;
+ }
+
+ /**
+ * Get the timestamp when the policy was last updated.
+ *
+ * @return the lastUpdatedTime value
+ */
+ public DateTime lastUpdatedTime() {
+ return this.lastUpdatedTime;
+ }
+
+ /**
+ * Get the value that indicates whether the policy is enabled or not. Possible values include: 'enabled', 'disabled'.
+ *
+ * @return the status value
+ */
+ public PolicyStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the value that indicates whether the policy is enabled or not. Possible values include: 'enabled', 'disabled'.
+ *
+ * @param status the status value to set
+ * @return the RetentionPolicy object itself.
+ */
+ public RetentionPolicy withStatus(PolicyStatus status) {
+ this.status = status;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Run.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Run.java
new file mode 100644
index 000000000000..ea5efb165518
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Run.java
@@ -0,0 +1,169 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RunInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing Run.
+ */
+public interface Run extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the agentConfiguration value.
+ */
+ AgentProperties agentConfiguration();
+
+ /**
+ * @return the agentPoolName value.
+ */
+ String agentPoolName();
+
+ /**
+ * @return the createTime value.
+ */
+ DateTime createTime();
+
+ /**
+ * @return the customRegistries value.
+ */
+ List customRegistries();
+
+ /**
+ * @return the finishTime value.
+ */
+ DateTime finishTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the imageUpdateTrigger value.
+ */
+ ImageUpdateTrigger imageUpdateTrigger();
+
+ /**
+ * @return the isArchiveEnabled value.
+ */
+ Boolean isArchiveEnabled();
+
+ /**
+ * @return the lastUpdatedTime value.
+ */
+ DateTime lastUpdatedTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the outputImages value.
+ */
+ List outputImages();
+
+ /**
+ * @return the platform value.
+ */
+ PlatformProperties platform();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the runErrorMessage value.
+ */
+ String runErrorMessage();
+
+ /**
+ * @return the runId value.
+ */
+ String runId();
+
+ /**
+ * @return the runType value.
+ */
+ RunType runType();
+
+ /**
+ * @return the sourceRegistryAuth value.
+ */
+ String sourceRegistryAuth();
+
+ /**
+ * @return the sourceTrigger value.
+ */
+ SourceTriggerDescriptor sourceTrigger();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the status value.
+ */
+ RunStatus status();
+
+ /**
+ * @return the task value.
+ */
+ String task();
+
+ /**
+ * @return the timerTrigger value.
+ */
+ TimerTriggerDescriptor timerTrigger();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updateTriggerToken value.
+ */
+ String updateTriggerToken();
+
+ /**
+ * The template for a Run update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIsArchiveEnabled {
+ }
+
+ /**
+ * Grouping of Run update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the run update allowing to specify IsArchiveEnabled.
+ */
+ interface WithIsArchiveEnabled {
+ /**
+ * Specifies isArchiveEnabled.
+ * @param isArchiveEnabled The value that indicates whether archiving is enabled or not
+ * @return the next update stage
+ */
+ Update withIsArchiveEnabled(Boolean isArchiveEnabled);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunFilter.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunFilter.java
new file mode 100644
index 000000000000..8493895f9da9
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunFilter.java
@@ -0,0 +1,259 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties that are enabled for Odata querying on runs.
+ */
+public class RunFilter {
+ /**
+ * The unique identifier for the run.
+ */
+ @JsonProperty(value = "runId")
+ private String runId;
+
+ /**
+ * The type of run. Possible values include: 'QuickBuild', 'QuickRun',
+ * 'AutoBuild', 'AutoRun'.
+ */
+ @JsonProperty(value = "runType")
+ private RunType runType;
+
+ /**
+ * The current status of the run. Possible values include: 'Queued',
+ * 'Started', 'Running', 'Succeeded', 'Failed', 'Canceled', 'Error',
+ * 'Timeout'.
+ */
+ @JsonProperty(value = "status")
+ private RunStatus status;
+
+ /**
+ * The create time for a run.
+ */
+ @JsonProperty(value = "createTime")
+ private DateTime createTime;
+
+ /**
+ * The time the run finished.
+ */
+ @JsonProperty(value = "finishTime")
+ private DateTime finishTime;
+
+ /**
+ * The list of comma-separated image manifests that were generated from the
+ * run. This is applicable if the run is of
+ * build type.
+ */
+ @JsonProperty(value = "outputImageManifests")
+ private String outputImageManifests;
+
+ /**
+ * The value that indicates whether archiving is enabled or not.
+ */
+ @JsonProperty(value = "isArchiveEnabled")
+ private Boolean isArchiveEnabled;
+
+ /**
+ * The name of the task that the run corresponds to.
+ */
+ @JsonProperty(value = "taskName")
+ private String taskName;
+
+ /**
+ * The name of the agent pool that the run corresponds to.
+ */
+ @JsonProperty(value = "agentPoolName")
+ private String agentPoolName;
+
+ /**
+ * Get the unique identifier for the run.
+ *
+ * @return the runId value
+ */
+ public String runId() {
+ return this.runId;
+ }
+
+ /**
+ * Set the unique identifier for the run.
+ *
+ * @param runId the runId value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withRunId(String runId) {
+ this.runId = runId;
+ return this;
+ }
+
+ /**
+ * Get the type of run. Possible values include: 'QuickBuild', 'QuickRun', 'AutoBuild', 'AutoRun'.
+ *
+ * @return the runType value
+ */
+ public RunType runType() {
+ return this.runType;
+ }
+
+ /**
+ * Set the type of run. Possible values include: 'QuickBuild', 'QuickRun', 'AutoBuild', 'AutoRun'.
+ *
+ * @param runType the runType value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withRunType(RunType runType) {
+ this.runType = runType;
+ return this;
+ }
+
+ /**
+ * Get the current status of the run. Possible values include: 'Queued', 'Started', 'Running', 'Succeeded', 'Failed', 'Canceled', 'Error', 'Timeout'.
+ *
+ * @return the status value
+ */
+ public RunStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the current status of the run. Possible values include: 'Queued', 'Started', 'Running', 'Succeeded', 'Failed', 'Canceled', 'Error', 'Timeout'.
+ *
+ * @param status the status value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withStatus(RunStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the create time for a run.
+ *
+ * @return the createTime value
+ */
+ public DateTime createTime() {
+ return this.createTime;
+ }
+
+ /**
+ * Set the create time for a run.
+ *
+ * @param createTime the createTime value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withCreateTime(DateTime createTime) {
+ this.createTime = createTime;
+ return this;
+ }
+
+ /**
+ * Get the time the run finished.
+ *
+ * @return the finishTime value
+ */
+ public DateTime finishTime() {
+ return this.finishTime;
+ }
+
+ /**
+ * Set the time the run finished.
+ *
+ * @param finishTime the finishTime value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withFinishTime(DateTime finishTime) {
+ this.finishTime = finishTime;
+ return this;
+ }
+
+ /**
+ * Get the list of comma-separated image manifests that were generated from the run. This is applicable if the run is of
+ build type.
+ *
+ * @return the outputImageManifests value
+ */
+ public String outputImageManifests() {
+ return this.outputImageManifests;
+ }
+
+ /**
+ * Set the list of comma-separated image manifests that were generated from the run. This is applicable if the run is of
+ build type.
+ *
+ * @param outputImageManifests the outputImageManifests value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withOutputImageManifests(String outputImageManifests) {
+ this.outputImageManifests = outputImageManifests;
+ return this;
+ }
+
+ /**
+ * Get the value that indicates whether archiving is enabled or not.
+ *
+ * @return the isArchiveEnabled value
+ */
+ public Boolean isArchiveEnabled() {
+ return this.isArchiveEnabled;
+ }
+
+ /**
+ * Set the value that indicates whether archiving is enabled or not.
+ *
+ * @param isArchiveEnabled the isArchiveEnabled value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withIsArchiveEnabled(Boolean isArchiveEnabled) {
+ this.isArchiveEnabled = isArchiveEnabled;
+ return this;
+ }
+
+ /**
+ * Get the name of the task that the run corresponds to.
+ *
+ * @return the taskName value
+ */
+ public String taskName() {
+ return this.taskName;
+ }
+
+ /**
+ * Set the name of the task that the run corresponds to.
+ *
+ * @param taskName the taskName value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withTaskName(String taskName) {
+ this.taskName = taskName;
+ return this;
+ }
+
+ /**
+ * Get the name of the agent pool that the run corresponds to.
+ *
+ * @return the agentPoolName value
+ */
+ public String agentPoolName() {
+ return this.agentPoolName;
+ }
+
+ /**
+ * Set the name of the agent pool that the run corresponds to.
+ *
+ * @param agentPoolName the agentPoolName value to set
+ * @return the RunFilter object itself.
+ */
+ public RunFilter withAgentPoolName(String agentPoolName) {
+ this.agentPoolName = agentPoolName;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunGetLogResult.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunGetLogResult.java
new file mode 100644
index 000000000000..7095aed95485
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunGetLogResult.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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RunGetLogResultInner;
+
+/**
+ * Type representing RunGetLogResult.
+ */
+public interface RunGetLogResult extends HasInner, HasManager {
+ /**
+ * @return the logLink value.
+ */
+ String logLink();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunRequest.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunRequest.java
new file mode 100644
index 000000000000..0d7c4adfc4e8
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunRequest.java
@@ -0,0 +1,81 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * The request parameters for scheduling a run.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", defaultImpl = RunRequest.class)
+@JsonTypeName("RunRequest")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "DockerBuildRequest", value = DockerBuildRequest.class),
+ @JsonSubTypes.Type(name = "FileTaskRunRequest", value = FileTaskRunRequest.class),
+ @JsonSubTypes.Type(name = "TaskRunRequest", value = TaskRunRequest.class),
+ @JsonSubTypes.Type(name = "EncodedTaskRunRequest", value = EncodedTaskRunRequest.class)
+})
+public class RunRequest {
+ /**
+ * The value that indicates whether archiving is enabled for the run or
+ * not.
+ */
+ @JsonProperty(value = "isArchiveEnabled")
+ private Boolean isArchiveEnabled;
+
+ /**
+ * The dedicated agent pool for the run.
+ */
+ @JsonProperty(value = "agentPoolName")
+ private String agentPoolName;
+
+ /**
+ * Get the value that indicates whether archiving is enabled for the run or not.
+ *
+ * @return the isArchiveEnabled value
+ */
+ public Boolean isArchiveEnabled() {
+ return this.isArchiveEnabled;
+ }
+
+ /**
+ * Set the value that indicates whether archiving is enabled for the run or not.
+ *
+ * @param isArchiveEnabled the isArchiveEnabled value to set
+ * @return the RunRequest object itself.
+ */
+ public RunRequest withIsArchiveEnabled(Boolean isArchiveEnabled) {
+ this.isArchiveEnabled = isArchiveEnabled;
+ return this;
+ }
+
+ /**
+ * Get the dedicated agent pool for the run.
+ *
+ * @return the agentPoolName value
+ */
+ public String agentPoolName() {
+ return this.agentPoolName;
+ }
+
+ /**
+ * Set the dedicated agent pool for the run.
+ *
+ * @param agentPoolName the agentPoolName value to set
+ * @return the RunRequest object itself.
+ */
+ public RunRequest withAgentPoolName(String agentPoolName) {
+ this.agentPoolName = agentPoolName;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunStatus.java
new file mode 100644
index 000000000000..8400b42b1465
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunStatus.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RunStatus.
+ */
+public final class RunStatus extends ExpandableStringEnum {
+ /** Static value Queued for RunStatus. */
+ public static final RunStatus QUEUED = fromString("Queued");
+
+ /** Static value Started for RunStatus. */
+ public static final RunStatus STARTED = fromString("Started");
+
+ /** Static value Running for RunStatus. */
+ public static final RunStatus RUNNING = fromString("Running");
+
+ /** Static value Succeeded for RunStatus. */
+ public static final RunStatus SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for RunStatus. */
+ public static final RunStatus FAILED = fromString("Failed");
+
+ /** Static value Canceled for RunStatus. */
+ public static final RunStatus CANCELED = fromString("Canceled");
+
+ /** Static value Error for RunStatus. */
+ public static final RunStatus ERROR = fromString("Error");
+
+ /** Static value Timeout for RunStatus. */
+ public static final RunStatus TIMEOUT = fromString("Timeout");
+
+ /**
+ * Creates or finds a RunStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RunStatus
+ */
+ @JsonCreator
+ public static RunStatus fromString(String name) {
+ return fromString(name, RunStatus.class);
+ }
+
+ /**
+ * @return known RunStatus values
+ */
+ public static Collection values() {
+ return values(RunStatus.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunType.java
new file mode 100644
index 000000000000..4ad7d4845a8d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunType.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for RunType.
+ */
+public final class RunType extends ExpandableStringEnum {
+ /** Static value QuickBuild for RunType. */
+ public static final RunType QUICK_BUILD = fromString("QuickBuild");
+
+ /** Static value QuickRun for RunType. */
+ public static final RunType QUICK_RUN = fromString("QuickRun");
+
+ /** Static value AutoBuild for RunType. */
+ public static final RunType AUTO_BUILD = fromString("AutoBuild");
+
+ /** Static value AutoRun for RunType. */
+ public static final RunType AUTO_RUN = fromString("AutoRun");
+
+ /**
+ * Creates or finds a RunType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding RunType
+ */
+ @JsonCreator
+ public static RunType fromString(String name) {
+ return fromString(name, RunType.class);
+ }
+
+ /**
+ * @return known RunType values
+ */
+ public static Collection values() {
+ return values(RunType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunUpdateParameters.java
new file mode 100644
index 000000000000..34fa8c2eff35
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/RunUpdateParameters.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The set of run properties that can be updated.
+ */
+public class RunUpdateParameters {
+ /**
+ * The value that indicates whether archiving is enabled or not.
+ */
+ @JsonProperty(value = "isArchiveEnabled")
+ private Boolean isArchiveEnabled;
+
+ /**
+ * Get the value that indicates whether archiving is enabled or not.
+ *
+ * @return the isArchiveEnabled value
+ */
+ public Boolean isArchiveEnabled() {
+ return this.isArchiveEnabled;
+ }
+
+ /**
+ * Set the value that indicates whether archiving is enabled or not.
+ *
+ * @param isArchiveEnabled the isArchiveEnabled value to set
+ * @return the RunUpdateParameters object itself.
+ */
+ public RunUpdateParameters withIsArchiveEnabled(Boolean isArchiveEnabled) {
+ this.isArchiveEnabled = isArchiveEnabled;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Runs.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Runs.java
new file mode 100644
index 000000000000..5214b2c831d2
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Runs.java
@@ -0,0 +1,63 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import rx.Observable;
+import rx.Completable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.RunsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Runs.
+ */
+public interface Runs extends HasInner {
+ /**
+ * Gets a link to download the run logs.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param runId The run ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getLogSasUrlAsync(String resourceGroupName, String registryName, String runId);
+
+ /**
+ * Cancel an existing run.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param runId The run ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable cancelAsync(String resourceGroupName, String registryName, String runId);
+
+ /**
+ * Gets the detailed information for a given run.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param runId The run ID.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String runId);
+
+ /**
+ * Gets all the runs for a registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String registryName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMap.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMap.java
new file mode 100644
index 000000000000..6cf7b5bafe95
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMap.java
@@ -0,0 +1,167 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ScopeMapInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import java.util.List;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ScopeMap.
+ */
+public interface ScopeMap extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the actions value.
+ */
+ List actions();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the scopeMapType value.
+ */
+ String scopeMapType();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ScopeMap definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithRegistry, DefinitionStages.WithActions, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ScopeMap definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ScopeMap definition.
+ */
+ interface Blank extends WithRegistry {
+ }
+
+ /**
+ * The stage of the scopemap definition allowing to specify Registry.
+ */
+ interface WithRegistry {
+ /**
+ * Specifies resourceGroupName, registryName.
+ * @param resourceGroupName The name of the resource group to which the container registry belongs
+ * @param registryName The name of the container registry
+ * @return the next definition stage
+ */
+ WithActions withExistingRegistry(String resourceGroupName, String registryName);
+ }
+
+ /**
+ * The stage of the scopemap definition allowing to specify Actions.
+ */
+ interface WithActions {
+ /**
+ * Specifies actions.
+ * @param actions The list of scoped permissions for registry artifacts.
+ E.g. repositories/repository-name/content/read,
+ repositories/repository-name/metadata/write
+ * @return the next definition stage
+ */
+ WithCreate withActions(List actions);
+ }
+
+ /**
+ * The stage of the scopemap definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The user friendly description of the scope map
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * 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, DefinitionStages.WithDescription {
+ }
+ }
+ /**
+ * The template for a ScopeMap update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithActions, UpdateStages.WithDescription {
+ }
+
+ /**
+ * Grouping of ScopeMap update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the scopemap update allowing to specify Actions.
+ */
+ interface WithActions {
+ /**
+ * Specifies actions.
+ * @param actions The list of scope permissions for registry artifacts.
+ E.g. repositories/repository-name/pull,
+ repositories/repository-name/delete
+ * @return the next update stage
+ */
+ Update withActions(List actions);
+ }
+
+ /**
+ * The stage of the scopemap update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description The user friendly description of the scope map
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMapUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMapUpdateParameters.java
new file mode 100644
index 000000000000..694381a566e5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMapUpdateParameters.java
@@ -0,0 +1,78 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The properties for updating the scope map.
+ */
+@JsonFlatten
+public class ScopeMapUpdateParameters {
+ /**
+ * The user friendly description of the scope map.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * The list of scope permissions for registry artifacts.
+ * E.g. repositories/repository-name/pull,
+ * repositories/repository-name/delete.
+ */
+ @JsonProperty(value = "properties.actions")
+ private List actions;
+
+ /**
+ * Get the user friendly description of the scope map.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the user friendly description of the scope map.
+ *
+ * @param description the description value to set
+ * @return the ScopeMapUpdateParameters object itself.
+ */
+ public ScopeMapUpdateParameters withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the list of scope permissions for registry artifacts.
+ E.g. repositories/repository-name/pull,
+ repositories/repository-name/delete.
+ *
+ * @return the actions value
+ */
+ public List actions() {
+ return this.actions;
+ }
+
+ /**
+ * Set the list of scope permissions for registry artifacts.
+ E.g. repositories/repository-name/pull,
+ repositories/repository-name/delete.
+ *
+ * @param actions the actions value to set
+ * @return the ScopeMapUpdateParameters object itself.
+ */
+ public ScopeMapUpdateParameters withActions(List actions) {
+ this.actions = actions;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMaps.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMaps.java
new file mode 100644
index 000000000000..1e3dd9d70fe6
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/ScopeMaps.java
@@ -0,0 +1,53 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ScopeMapsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ScopeMaps.
+ */
+public interface ScopeMaps extends SupportsCreating, HasInner {
+ /**
+ * Gets the properties of the specified scope map.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param scopeMapName The name of the scope map.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String scopeMapName);
+
+ /**
+ * Lists all the scope maps for the specified container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String resourceGroupName, final String registryName);
+
+ /**
+ * Deletes a scope map from a container registry.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param scopeMapName The name of the scope map.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String registryName, String scopeMapName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObject.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObject.java
new file mode 100644
index 000000000000..d81d4ba70e6a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObject.java
@@ -0,0 +1,80 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes the properties of a secret object value.
+ */
+public class SecretObject {
+ /**
+ * The value of the secret. The format of this value will be determined
+ * based on the type of the secret object. If the type is Opaque, the value
+ * will be
+ * used as is without any modification.
+ */
+ @JsonProperty(value = "value")
+ private String value;
+
+ /**
+ * The type of the secret object which determines how the value of the
+ * secret object has to be
+ * interpreted. Possible values include: 'Opaque', 'Vaultsecret'.
+ */
+ @JsonProperty(value = "type")
+ private SecretObjectType type;
+
+ /**
+ * Get the value of the secret. The format of this value will be determined
+ based on the type of the secret object. If the type is Opaque, the value will be
+ used as is without any modification.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the value of the secret. The format of this value will be determined
+ based on the type of the secret object. If the type is Opaque, the value will be
+ used as is without any modification.
+ *
+ * @param value the value value to set
+ * @return the SecretObject object itself.
+ */
+ public SecretObject withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get the type of the secret object which determines how the value of the secret object has to be
+ interpreted. Possible values include: 'Opaque', 'Vaultsecret'.
+ *
+ * @return the type value
+ */
+ public SecretObjectType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of the secret object which determines how the value of the secret object has to be
+ interpreted. Possible values include: 'Opaque', 'Vaultsecret'.
+ *
+ * @param type the type value to set
+ * @return the SecretObject object itself.
+ */
+ public SecretObject withType(SecretObjectType type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObjectType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObjectType.java
new file mode 100644
index 000000000000..31f778497151
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SecretObjectType.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SecretObjectType.
+ */
+public final class SecretObjectType extends ExpandableStringEnum {
+ /** Static value Opaque for SecretObjectType. */
+ public static final SecretObjectType OPAQUE = fromString("Opaque");
+
+ /** Static value Vaultsecret for SecretObjectType. */
+ public static final SecretObjectType VAULTSECRET = fromString("Vaultsecret");
+
+ /**
+ * Creates or finds a SecretObjectType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SecretObjectType
+ */
+ @JsonCreator
+ public static SecretObjectType fromString(String name) {
+ return fromString(name, SecretObjectType.class);
+ }
+
+ /**
+ * @return known SecretObjectType values
+ */
+ public static Collection values() {
+ return values(SecretObjectType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SetValue.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SetValue.java
new file mode 100644
index 000000000000..264bb42b0323
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SetValue.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a overridable value that can be passed to a task template.
+ */
+public class SetValue {
+ /**
+ * The name of the overridable value.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The overridable value.
+ */
+ @JsonProperty(value = "value", required = true)
+ private String value;
+
+ /**
+ * Flag to indicate whether the value represents a secret or not.
+ */
+ @JsonProperty(value = "isSecret")
+ private Boolean isSecret;
+
+ /**
+ * Get the name of the overridable value.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the overridable value.
+ *
+ * @param name the name value to set
+ * @return the SetValue object itself.
+ */
+ public SetValue withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the overridable value.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set the overridable value.
+ *
+ * @param value the value value to set
+ * @return the SetValue object itself.
+ */
+ public SetValue withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get flag to indicate whether the value represents a secret or not.
+ *
+ * @return the isSecret value
+ */
+ public Boolean isSecret() {
+ return this.isSecret;
+ }
+
+ /**
+ * Set flag to indicate whether the value represents a secret or not.
+ *
+ * @param isSecret the isSecret value to set
+ * @return the SetValue object itself.
+ */
+ public SetValue withIsSecret(Boolean isSecret) {
+ this.isSecret = isSecret;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Sku.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Sku.java
new file mode 100644
index 000000000000..c96dba10261b
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Sku.java
@@ -0,0 +1,60 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The SKU of a container registry.
+ */
+public class Sku {
+ /**
+ * The SKU name of the container registry. Required for registry creation.
+ * Possible values include: 'Classic', 'Basic', 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private SkuName name;
+
+ /**
+ * The SKU tier based on the SKU name. Possible values include: 'Classic',
+ * 'Basic', 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "tier", access = JsonProperty.Access.WRITE_ONLY)
+ private SkuTier tier;
+
+ /**
+ * Get the SKU name of the container registry. Required for registry creation. Possible values include: 'Classic', 'Basic', 'Standard', 'Premium'.
+ *
+ * @return the name value
+ */
+ public SkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set the SKU name of the container registry. Required for registry creation. Possible values include: 'Classic', 'Basic', 'Standard', 'Premium'.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(SkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the SKU tier based on the SKU name. Possible values include: 'Classic', 'Basic', 'Standard', 'Premium'.
+ *
+ * @return the tier value
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuName.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuName.java
new file mode 100644
index 000000000000..74e6314bda5b
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuName.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuName.
+ */
+public final class SkuName extends ExpandableStringEnum {
+ /** Static value Classic for SkuName. */
+ public static final SkuName CLASSIC = fromString("Classic");
+
+ /** Static value Basic for SkuName. */
+ public static final SkuName BASIC = fromString("Basic");
+
+ /** Static value Standard for SkuName. */
+ public static final SkuName STANDARD = fromString("Standard");
+
+ /** Static value Premium for SkuName. */
+ public static final SkuName PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a SkuName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuName
+ */
+ @JsonCreator
+ public static SkuName fromString(String name) {
+ return fromString(name, SkuName.class);
+ }
+
+ /**
+ * @return known SkuName values
+ */
+ public static Collection values() {
+ return values(SkuName.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuTier.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuTier.java
new file mode 100644
index 000000000000..d2e144674d95
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SkuTier.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuTier.
+ */
+public final class SkuTier extends ExpandableStringEnum {
+ /** Static value Classic for SkuTier. */
+ public static final SkuTier CLASSIC = fromString("Classic");
+
+ /** Static value Basic for SkuTier. */
+ public static final SkuTier BASIC = fromString("Basic");
+
+ /** Static value Standard for SkuTier. */
+ public static final SkuTier STANDARD = fromString("Standard");
+
+ /** Static value Premium for SkuTier. */
+ public static final SkuTier PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a SkuTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuTier
+ */
+ @JsonCreator
+ public static SkuTier fromString(String name) {
+ return fromString(name, SkuTier.class);
+ }
+
+ /**
+ * @return known SkuTier values
+ */
+ public static Collection values() {
+ return values(SkuTier.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Source.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Source.java
new file mode 100644
index 000000000000..19a8d74b0c17
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Source.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The registry node that generated the event. Put differently, while the actor
+ * initiates the event, the source generates it.
+ */
+public class Source {
+ /**
+ * The IP or hostname and the port of the registry node that generated the
+ * event. Generally, this will be resolved by os.Hostname() along with the
+ * running port.
+ */
+ @JsonProperty(value = "addr")
+ private String addr;
+
+ /**
+ * The running instance of an application. Changes after each restart.
+ */
+ @JsonProperty(value = "instanceID")
+ private String instanceID;
+
+ /**
+ * Get the IP or hostname and the port of the registry node that generated the event. Generally, this will be resolved by os.Hostname() along with the running port.
+ *
+ * @return the addr value
+ */
+ public String addr() {
+ return this.addr;
+ }
+
+ /**
+ * Set the IP or hostname and the port of the registry node that generated the event. Generally, this will be resolved by os.Hostname() along with the running port.
+ *
+ * @param addr the addr value to set
+ * @return the Source object itself.
+ */
+ public Source withAddr(String addr) {
+ this.addr = addr;
+ return this;
+ }
+
+ /**
+ * Get the running instance of an application. Changes after each restart.
+ *
+ * @return the instanceID value
+ */
+ public String instanceID() {
+ return this.instanceID;
+ }
+
+ /**
+ * Set the running instance of an application. Changes after each restart.
+ *
+ * @param instanceID the instanceID value to set
+ * @return the Source object itself.
+ */
+ public Source withInstanceID(String instanceID) {
+ this.instanceID = instanceID;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceControlType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceControlType.java
new file mode 100644
index 000000000000..6d6c1d106940
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceControlType.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SourceControlType.
+ */
+public final class SourceControlType extends ExpandableStringEnum {
+ /** Static value Github for SourceControlType. */
+ public static final SourceControlType GITHUB = fromString("Github");
+
+ /** Static value VisualStudioTeamService for SourceControlType. */
+ public static final SourceControlType VISUAL_STUDIO_TEAM_SERVICE = fromString("VisualStudioTeamService");
+
+ /**
+ * Creates or finds a SourceControlType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SourceControlType
+ */
+ @JsonCreator
+ public static SourceControlType fromString(String name) {
+ return fromString(name, SourceControlType.class);
+ }
+
+ /**
+ * @return known SourceControlType values
+ */
+ public static Collection values() {
+ return values(SourceControlType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceProperties.java
new file mode 100644
index 000000000000..126736a2a3ef
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceProperties.java
@@ -0,0 +1,126 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of the source code repository.
+ */
+public class SourceProperties {
+ /**
+ * The type of source control service. Possible values include: 'Github',
+ * 'VisualStudioTeamService'.
+ */
+ @JsonProperty(value = "sourceControlType", required = true)
+ private SourceControlType sourceControlType;
+
+ /**
+ * The full URL to the source code repository.
+ */
+ @JsonProperty(value = "repositoryUrl", required = true)
+ private String repositoryUrl;
+
+ /**
+ * The branch name of the source code.
+ */
+ @JsonProperty(value = "branch")
+ private String branch;
+
+ /**
+ * The authorization properties for accessing the source code repository
+ * and to set up
+ * webhooks for notifications.
+ */
+ @JsonProperty(value = "sourceControlAuthProperties")
+ private AuthInfo sourceControlAuthProperties;
+
+ /**
+ * Get the type of source control service. Possible values include: 'Github', 'VisualStudioTeamService'.
+ *
+ * @return the sourceControlType value
+ */
+ public SourceControlType sourceControlType() {
+ return this.sourceControlType;
+ }
+
+ /**
+ * Set the type of source control service. Possible values include: 'Github', 'VisualStudioTeamService'.
+ *
+ * @param sourceControlType the sourceControlType value to set
+ * @return the SourceProperties object itself.
+ */
+ public SourceProperties withSourceControlType(SourceControlType sourceControlType) {
+ this.sourceControlType = sourceControlType;
+ return this;
+ }
+
+ /**
+ * Get the full URL to the source code repository.
+ *
+ * @return the repositoryUrl value
+ */
+ public String repositoryUrl() {
+ return this.repositoryUrl;
+ }
+
+ /**
+ * Set the full URL to the source code repository.
+ *
+ * @param repositoryUrl the repositoryUrl value to set
+ * @return the SourceProperties object itself.
+ */
+ public SourceProperties withRepositoryUrl(String repositoryUrl) {
+ this.repositoryUrl = repositoryUrl;
+ return this;
+ }
+
+ /**
+ * Get the branch name of the source code.
+ *
+ * @return the branch value
+ */
+ public String branch() {
+ return this.branch;
+ }
+
+ /**
+ * Set the branch name of the source code.
+ *
+ * @param branch the branch value to set
+ * @return the SourceProperties object itself.
+ */
+ public SourceProperties withBranch(String branch) {
+ this.branch = branch;
+ return this;
+ }
+
+ /**
+ * Get the authorization properties for accessing the source code repository and to set up
+ webhooks for notifications.
+ *
+ * @return the sourceControlAuthProperties value
+ */
+ public AuthInfo sourceControlAuthProperties() {
+ return this.sourceControlAuthProperties;
+ }
+
+ /**
+ * Set the authorization properties for accessing the source code repository and to set up
+ webhooks for notifications.
+ *
+ * @param sourceControlAuthProperties the sourceControlAuthProperties value to set
+ * @return the SourceProperties object itself.
+ */
+ public SourceProperties withSourceControlAuthProperties(AuthInfo sourceControlAuthProperties) {
+ this.sourceControlAuthProperties = sourceControlAuthProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryCredentials.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryCredentials.java
new file mode 100644
index 000000000000..1456ee210a2e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryCredentials.java
@@ -0,0 +1,52 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Describes the credential parameters for accessing the source registry.
+ */
+public class SourceRegistryCredentials {
+ /**
+ * The authentication mode which determines the source registry login
+ * scope. The credentials for the source registry
+ * will be generated using the given scope. These credentials will be used
+ * to login to
+ * the source registry during the run. Possible values include: 'None',
+ * 'Default'.
+ */
+ @JsonProperty(value = "loginMode")
+ private SourceRegistryLoginMode loginMode;
+
+ /**
+ * Get the authentication mode which determines the source registry login scope. The credentials for the source registry
+ will be generated using the given scope. These credentials will be used to login to
+ the source registry during the run. Possible values include: 'None', 'Default'.
+ *
+ * @return the loginMode value
+ */
+ public SourceRegistryLoginMode loginMode() {
+ return this.loginMode;
+ }
+
+ /**
+ * Set the authentication mode which determines the source registry login scope. The credentials for the source registry
+ will be generated using the given scope. These credentials will be used to login to
+ the source registry during the run. Possible values include: 'None', 'Default'.
+ *
+ * @param loginMode the loginMode value to set
+ * @return the SourceRegistryCredentials object itself.
+ */
+ public SourceRegistryCredentials withLoginMode(SourceRegistryLoginMode loginMode) {
+ this.loginMode = loginMode;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryLoginMode.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryLoginMode.java
new file mode 100644
index 000000000000..4a6997a9d6a7
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceRegistryLoginMode.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SourceRegistryLoginMode.
+ */
+public final class SourceRegistryLoginMode extends ExpandableStringEnum {
+ /** Static value None for SourceRegistryLoginMode. */
+ public static final SourceRegistryLoginMode NONE = fromString("None");
+
+ /** Static value Default for SourceRegistryLoginMode. */
+ public static final SourceRegistryLoginMode DEFAULT = fromString("Default");
+
+ /**
+ * Creates or finds a SourceRegistryLoginMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SourceRegistryLoginMode
+ */
+ @JsonCreator
+ public static SourceRegistryLoginMode fromString(String name) {
+ return fromString(name, SourceRegistryLoginMode.class);
+ }
+
+ /**
+ * @return known SourceRegistryLoginMode values
+ */
+ public static Collection values() {
+ return values(SourceRegistryLoginMode.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTrigger.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTrigger.java
new file mode 100644
index 000000000000..a48f4bf96c7e
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTrigger.java
@@ -0,0 +1,123 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a source based trigger.
+ */
+public class SourceTrigger {
+ /**
+ * The properties that describes the source(code) for the task.
+ */
+ @JsonProperty(value = "sourceRepository", required = true)
+ private SourceProperties sourceRepository;
+
+ /**
+ * The source event corresponding to the trigger.
+ */
+ @JsonProperty(value = "sourceTriggerEvents", required = true)
+ private List sourceTriggerEvents;
+
+ /**
+ * The current status of trigger. Possible values include: 'Disabled',
+ * 'Enabled'.
+ */
+ @JsonProperty(value = "status")
+ private TriggerStatus status;
+
+ /**
+ * The name of the trigger.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the properties that describes the source(code) for the task.
+ *
+ * @return the sourceRepository value
+ */
+ public SourceProperties sourceRepository() {
+ return this.sourceRepository;
+ }
+
+ /**
+ * Set the properties that describes the source(code) for the task.
+ *
+ * @param sourceRepository the sourceRepository value to set
+ * @return the SourceTrigger object itself.
+ */
+ public SourceTrigger withSourceRepository(SourceProperties sourceRepository) {
+ this.sourceRepository = sourceRepository;
+ return this;
+ }
+
+ /**
+ * Get the source event corresponding to the trigger.
+ *
+ * @return the sourceTriggerEvents value
+ */
+ public List sourceTriggerEvents() {
+ return this.sourceTriggerEvents;
+ }
+
+ /**
+ * Set the source event corresponding to the trigger.
+ *
+ * @param sourceTriggerEvents the sourceTriggerEvents value to set
+ * @return the SourceTrigger object itself.
+ */
+ public SourceTrigger withSourceTriggerEvents(List sourceTriggerEvents) {
+ this.sourceTriggerEvents = sourceTriggerEvents;
+ return this;
+ }
+
+ /**
+ * Get the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @return the status value
+ */
+ public TriggerStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @param status the status value to set
+ * @return the SourceTrigger object itself.
+ */
+ public SourceTrigger withStatus(TriggerStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the name of the trigger.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the trigger.
+ *
+ * @param name the name value to set
+ * @return the SourceTrigger object itself.
+ */
+ public SourceTrigger withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerDescriptor.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerDescriptor.java
new file mode 100644
index 000000000000..202564247415
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerDescriptor.java
@@ -0,0 +1,199 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The source trigger that caused a run.
+ */
+public class SourceTriggerDescriptor {
+ /**
+ * The unique ID of the trigger.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The event type of the trigger.
+ */
+ @JsonProperty(value = "eventType")
+ private String eventType;
+
+ /**
+ * The unique ID that identifies a commit.
+ */
+ @JsonProperty(value = "commitId")
+ private String commitId;
+
+ /**
+ * The unique ID that identifies pull request.
+ */
+ @JsonProperty(value = "pullRequestId")
+ private String pullRequestId;
+
+ /**
+ * The repository URL.
+ */
+ @JsonProperty(value = "repositoryUrl")
+ private String repositoryUrl;
+
+ /**
+ * The branch name in the repository.
+ */
+ @JsonProperty(value = "branchName")
+ private String branchName;
+
+ /**
+ * The source control provider type.
+ */
+ @JsonProperty(value = "providerType")
+ private String providerType;
+
+ /**
+ * Get the unique ID of the trigger.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the unique ID of the trigger.
+ *
+ * @param id the id value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the event type of the trigger.
+ *
+ * @return the eventType value
+ */
+ public String eventType() {
+ return this.eventType;
+ }
+
+ /**
+ * Set the event type of the trigger.
+ *
+ * @param eventType the eventType value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withEventType(String eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get the unique ID that identifies a commit.
+ *
+ * @return the commitId value
+ */
+ public String commitId() {
+ return this.commitId;
+ }
+
+ /**
+ * Set the unique ID that identifies a commit.
+ *
+ * @param commitId the commitId value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withCommitId(String commitId) {
+ this.commitId = commitId;
+ return this;
+ }
+
+ /**
+ * Get the unique ID that identifies pull request.
+ *
+ * @return the pullRequestId value
+ */
+ public String pullRequestId() {
+ return this.pullRequestId;
+ }
+
+ /**
+ * Set the unique ID that identifies pull request.
+ *
+ * @param pullRequestId the pullRequestId value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withPullRequestId(String pullRequestId) {
+ this.pullRequestId = pullRequestId;
+ return this;
+ }
+
+ /**
+ * Get the repository URL.
+ *
+ * @return the repositoryUrl value
+ */
+ public String repositoryUrl() {
+ return this.repositoryUrl;
+ }
+
+ /**
+ * Set the repository URL.
+ *
+ * @param repositoryUrl the repositoryUrl value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withRepositoryUrl(String repositoryUrl) {
+ this.repositoryUrl = repositoryUrl;
+ return this;
+ }
+
+ /**
+ * Get the branch name in the repository.
+ *
+ * @return the branchName value
+ */
+ public String branchName() {
+ return this.branchName;
+ }
+
+ /**
+ * Set the branch name in the repository.
+ *
+ * @param branchName the branchName value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withBranchName(String branchName) {
+ this.branchName = branchName;
+ return this;
+ }
+
+ /**
+ * Get the source control provider type.
+ *
+ * @return the providerType value
+ */
+ public String providerType() {
+ return this.providerType;
+ }
+
+ /**
+ * Set the source control provider type.
+ *
+ * @param providerType the providerType value to set
+ * @return the SourceTriggerDescriptor object itself.
+ */
+ public SourceTriggerDescriptor withProviderType(String providerType) {
+ this.providerType = providerType;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerEvent.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerEvent.java
new file mode 100644
index 000000000000..a8465fc8628f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerEvent.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SourceTriggerEvent.
+ */
+public final class SourceTriggerEvent extends ExpandableStringEnum {
+ /** Static value commit for SourceTriggerEvent. */
+ public static final SourceTriggerEvent COMMIT = fromString("commit");
+
+ /** Static value pullrequest for SourceTriggerEvent. */
+ public static final SourceTriggerEvent PULLREQUEST = fromString("pullrequest");
+
+ /**
+ * Creates or finds a SourceTriggerEvent from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SourceTriggerEvent
+ */
+ @JsonCreator
+ public static SourceTriggerEvent fromString(String name) {
+ return fromString(name, SourceTriggerEvent.class);
+ }
+
+ /**
+ * @return known SourceTriggerEvent values
+ */
+ public static Collection values() {
+ return values(SourceTriggerEvent.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerUpdateParameters.java
new file mode 100644
index 000000000000..da8a87b45fc4
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceTriggerUpdateParameters.java
@@ -0,0 +1,123 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties for updating a source based trigger.
+ */
+public class SourceTriggerUpdateParameters {
+ /**
+ * The properties that describes the source(code) for the task.
+ */
+ @JsonProperty(value = "sourceRepository")
+ private SourceUpdateParameters sourceRepository;
+
+ /**
+ * The source event corresponding to the trigger.
+ */
+ @JsonProperty(value = "sourceTriggerEvents")
+ private List sourceTriggerEvents;
+
+ /**
+ * The current status of trigger. Possible values include: 'Disabled',
+ * 'Enabled'.
+ */
+ @JsonProperty(value = "status")
+ private TriggerStatus status;
+
+ /**
+ * The name of the trigger.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the properties that describes the source(code) for the task.
+ *
+ * @return the sourceRepository value
+ */
+ public SourceUpdateParameters sourceRepository() {
+ return this.sourceRepository;
+ }
+
+ /**
+ * Set the properties that describes the source(code) for the task.
+ *
+ * @param sourceRepository the sourceRepository value to set
+ * @return the SourceTriggerUpdateParameters object itself.
+ */
+ public SourceTriggerUpdateParameters withSourceRepository(SourceUpdateParameters sourceRepository) {
+ this.sourceRepository = sourceRepository;
+ return this;
+ }
+
+ /**
+ * Get the source event corresponding to the trigger.
+ *
+ * @return the sourceTriggerEvents value
+ */
+ public List sourceTriggerEvents() {
+ return this.sourceTriggerEvents;
+ }
+
+ /**
+ * Set the source event corresponding to the trigger.
+ *
+ * @param sourceTriggerEvents the sourceTriggerEvents value to set
+ * @return the SourceTriggerUpdateParameters object itself.
+ */
+ public SourceTriggerUpdateParameters withSourceTriggerEvents(List sourceTriggerEvents) {
+ this.sourceTriggerEvents = sourceTriggerEvents;
+ return this;
+ }
+
+ /**
+ * Get the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @return the status value
+ */
+ public TriggerStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the current status of trigger. Possible values include: 'Disabled', 'Enabled'.
+ *
+ * @param status the status value to set
+ * @return the SourceTriggerUpdateParameters object itself.
+ */
+ public SourceTriggerUpdateParameters withStatus(TriggerStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the name of the trigger.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the trigger.
+ *
+ * @param name the name value to set
+ * @return the SourceTriggerUpdateParameters object itself.
+ */
+ public SourceTriggerUpdateParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUpdateParameters.java
new file mode 100644
index 000000000000..515b749f665f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUpdateParameters.java
@@ -0,0 +1,126 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties for updating the source code repository.
+ */
+public class SourceUpdateParameters {
+ /**
+ * The type of source control service. Possible values include: 'Github',
+ * 'VisualStudioTeamService'.
+ */
+ @JsonProperty(value = "sourceControlType")
+ private SourceControlType sourceControlType;
+
+ /**
+ * The full URL to the source code repository.
+ */
+ @JsonProperty(value = "repositoryUrl")
+ private String repositoryUrl;
+
+ /**
+ * The branch name of the source code.
+ */
+ @JsonProperty(value = "branch")
+ private String branch;
+
+ /**
+ * The authorization properties for accessing the source code repository
+ * and to set up
+ * webhooks for notifications.
+ */
+ @JsonProperty(value = "sourceControlAuthProperties")
+ private AuthInfoUpdateParameters sourceControlAuthProperties;
+
+ /**
+ * Get the type of source control service. Possible values include: 'Github', 'VisualStudioTeamService'.
+ *
+ * @return the sourceControlType value
+ */
+ public SourceControlType sourceControlType() {
+ return this.sourceControlType;
+ }
+
+ /**
+ * Set the type of source control service. Possible values include: 'Github', 'VisualStudioTeamService'.
+ *
+ * @param sourceControlType the sourceControlType value to set
+ * @return the SourceUpdateParameters object itself.
+ */
+ public SourceUpdateParameters withSourceControlType(SourceControlType sourceControlType) {
+ this.sourceControlType = sourceControlType;
+ return this;
+ }
+
+ /**
+ * Get the full URL to the source code repository.
+ *
+ * @return the repositoryUrl value
+ */
+ public String repositoryUrl() {
+ return this.repositoryUrl;
+ }
+
+ /**
+ * Set the full URL to the source code repository.
+ *
+ * @param repositoryUrl the repositoryUrl value to set
+ * @return the SourceUpdateParameters object itself.
+ */
+ public SourceUpdateParameters withRepositoryUrl(String repositoryUrl) {
+ this.repositoryUrl = repositoryUrl;
+ return this;
+ }
+
+ /**
+ * Get the branch name of the source code.
+ *
+ * @return the branch value
+ */
+ public String branch() {
+ return this.branch;
+ }
+
+ /**
+ * Set the branch name of the source code.
+ *
+ * @param branch the branch value to set
+ * @return the SourceUpdateParameters object itself.
+ */
+ public SourceUpdateParameters withBranch(String branch) {
+ this.branch = branch;
+ return this;
+ }
+
+ /**
+ * Get the authorization properties for accessing the source code repository and to set up
+ webhooks for notifications.
+ *
+ * @return the sourceControlAuthProperties value
+ */
+ public AuthInfoUpdateParameters sourceControlAuthProperties() {
+ return this.sourceControlAuthProperties;
+ }
+
+ /**
+ * Set the authorization properties for accessing the source code repository and to set up
+ webhooks for notifications.
+ *
+ * @param sourceControlAuthProperties the sourceControlAuthProperties value to set
+ * @return the SourceUpdateParameters object itself.
+ */
+ public SourceUpdateParameters withSourceControlAuthProperties(AuthInfoUpdateParameters sourceControlAuthProperties) {
+ this.sourceControlAuthProperties = sourceControlAuthProperties;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUploadDefinition.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUploadDefinition.java
new file mode 100644
index 000000000000..e51257c1ada8
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/SourceUploadDefinition.java
@@ -0,0 +1,30 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.SourceUploadDefinitionInner;
+
+/**
+ * Type representing SourceUploadDefinition.
+ */
+public interface SourceUploadDefinition extends HasInner, HasManager {
+ /**
+ * @return the relativePath value.
+ */
+ String relativePath();
+
+ /**
+ * @return the uploadUrl value.
+ */
+ String uploadUrl();
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status.java
new file mode 100644
index 000000000000..ef5d581fe5a3
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status.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.containerregistry.v2019_12_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Status.
+ */
+public final class Status extends ExpandableStringEnum {
+ /** Static value Approved for Status. */
+ public static final Status APPROVED = fromString("Approved");
+
+ /** Static value Pending for Status. */
+ public static final Status PENDING = fromString("Pending");
+
+ /** Static value Rejected for Status. */
+ public static final Status REJECTED = fromString("Rejected");
+
+ /** Static value Disconnected for Status. */
+ public static final Status DISCONNECTED = fromString("Disconnected");
+
+ /**
+ * Creates or finds a Status from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Status
+ */
+ @JsonCreator
+ public static Status fromString(String name) {
+ return fromString(name, Status.class);
+ }
+
+ /**
+ * @return known Status values
+ */
+ public static Collection values() {
+ return values(Status.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status1.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status1.java
new file mode 100644
index 000000000000..9177764c9113
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Status1.java
@@ -0,0 +1,64 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The status of an Azure resource at the time the operation was called.
+ */
+public class Status1 {
+ /**
+ * The short label for the status.
+ */
+ @JsonProperty(value = "displayStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String displayStatus;
+
+ /**
+ * The detailed message for the status, including alerts and error
+ * messages.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * The timestamp when the status was changed to the current value.
+ */
+ @JsonProperty(value = "timestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timestamp;
+
+ /**
+ * Get the short label for the status.
+ *
+ * @return the displayStatus value
+ */
+ public String displayStatus() {
+ return this.displayStatus;
+ }
+
+ /**
+ * Get the detailed message for the status, including alerts and error messages.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Get the timestamp when the status was changed to the current value.
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/StorageAccountProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/StorageAccountProperties.java
new file mode 100644
index 000000000000..38c78d3afa22
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/StorageAccountProperties.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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties of a storage account for a container registry. Only
+ * applicable to Classic SKU.
+ */
+public class StorageAccountProperties {
+ /**
+ * The resource ID of the storage account.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String id;
+
+ /**
+ * Get the resource ID of the storage account.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the resource ID of the storage account.
+ *
+ * @param id the id value to set
+ * @return the StorageAccountProperties object itself.
+ */
+ public StorageAccountProperties withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Target.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Target.java
new file mode 100644
index 000000000000..41345d21fdde
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Target.java
@@ -0,0 +1,252 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The target of the event.
+ */
+public class Target {
+ /**
+ * The MIME type of the referenced object.
+ */
+ @JsonProperty(value = "mediaType")
+ private String mediaType;
+
+ /**
+ * The number of bytes of the content. Same as Length field.
+ */
+ @JsonProperty(value = "size")
+ private Long size;
+
+ /**
+ * The digest of the content, as defined by the Registry V2 HTTP API
+ * Specification.
+ */
+ @JsonProperty(value = "digest")
+ private String digest;
+
+ /**
+ * The number of bytes of the content. Same as Size field.
+ */
+ @JsonProperty(value = "length")
+ private Long length;
+
+ /**
+ * The repository name.
+ */
+ @JsonProperty(value = "repository")
+ private String repository;
+
+ /**
+ * The direct URL to the content.
+ */
+ @JsonProperty(value = "url")
+ private String url;
+
+ /**
+ * The tag name.
+ */
+ @JsonProperty(value = "tag")
+ private String tag;
+
+ /**
+ * The name of the artifact.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The version of the artifact.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get the MIME type of the referenced object.
+ *
+ * @return the mediaType value
+ */
+ public String mediaType() {
+ return this.mediaType;
+ }
+
+ /**
+ * Set the MIME type of the referenced object.
+ *
+ * @param mediaType the mediaType value to set
+ * @return the Target object itself.
+ */
+ public Target withMediaType(String mediaType) {
+ this.mediaType = mediaType;
+ return this;
+ }
+
+ /**
+ * Get the number of bytes of the content. Same as Length field.
+ *
+ * @return the size value
+ */
+ public Long size() {
+ return this.size;
+ }
+
+ /**
+ * Set the number of bytes of the content. Same as Length field.
+ *
+ * @param size the size value to set
+ * @return the Target object itself.
+ */
+ public Target withSize(Long size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the digest of the content, as defined by the Registry V2 HTTP API Specification.
+ *
+ * @return the digest value
+ */
+ public String digest() {
+ return this.digest;
+ }
+
+ /**
+ * Set the digest of the content, as defined by the Registry V2 HTTP API Specification.
+ *
+ * @param digest the digest value to set
+ * @return the Target object itself.
+ */
+ public Target withDigest(String digest) {
+ this.digest = digest;
+ return this;
+ }
+
+ /**
+ * Get the number of bytes of the content. Same as Size field.
+ *
+ * @return the length value
+ */
+ public Long length() {
+ return this.length;
+ }
+
+ /**
+ * Set the number of bytes of the content. Same as Size field.
+ *
+ * @param length the length value to set
+ * @return the Target object itself.
+ */
+ public Target withLength(Long length) {
+ this.length = length;
+ return this;
+ }
+
+ /**
+ * Get the repository name.
+ *
+ * @return the repository value
+ */
+ public String repository() {
+ return this.repository;
+ }
+
+ /**
+ * Set the repository name.
+ *
+ * @param repository the repository value to set
+ * @return the Target object itself.
+ */
+ public Target withRepository(String repository) {
+ this.repository = repository;
+ return this;
+ }
+
+ /**
+ * Get the direct URL to the content.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Set the direct URL to the content.
+ *
+ * @param url the url value to set
+ * @return the Target object itself.
+ */
+ public Target withUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Get the tag name.
+ *
+ * @return the tag value
+ */
+ public String tag() {
+ return this.tag;
+ }
+
+ /**
+ * Set the tag name.
+ *
+ * @param tag the tag value to set
+ * @return the Target object itself.
+ */
+ public Target withTag(String tag) {
+ this.tag = tag;
+ return this;
+ }
+
+ /**
+ * Get the name of the artifact.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the artifact.
+ *
+ * @param name the name value to set
+ * @return the Target object itself.
+ */
+ public Target withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the version of the artifact.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version of the artifact.
+ *
+ * @param version the version value to set
+ * @return the Target object itself.
+ */
+ public Target withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Task.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Task.java
new file mode 100644
index 000000000000..4fc87bb5d1c3
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Task.java
@@ -0,0 +1,407 @@
+/**
+ * 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.containerregistry.v2019_12_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation.TaskInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.containerregistry.v2019_12_01_preview.implementation.ContainerRegistryManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing Task.
+ */
+public interface Task extends HasInner, Indexable, Refreshable