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/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/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/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/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/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/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/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..3dace1920cf1
--- /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,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 KeyVaultProperties model.
+ */
+public class KeyVaultProperties {
+ /**
+ * Key vault uri to access the encryption key.
+ */
+ @JsonProperty(value = "keyIdentifier")
+ private String keyIdentifier;
+
+ /**
+ * 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 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/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/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/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/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..e02d8814ada7
--- /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,77 @@
+/**
+ * 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;
+
+/**
+ * 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);
+
+ /**
+ * 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);
+
+}
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..acbf8b424355
--- /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,280 @@
+/**
+ * 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 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 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 provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the status value.
+ */
+ Status 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 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.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.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 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..56976cc44684
--- /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,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 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;
+
+ /**
+ * 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;
+ }
+
+}
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..011803983c59
--- /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.
+ */
+ Status 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/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/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..a651c2604745
--- /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,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 Status {
+ /**
+ * 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/TrustPolicy.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/TrustPolicy.java
new file mode 100644
index 000000000000..4cf6f029446d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/TrustPolicy.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 content trust policy for a container registry.
+ */
+public class TrustPolicy {
+ /**
+ * The type of trust policy. Possible values include: 'Notary'.
+ */
+ @JsonProperty(value = "type")
+ private TrustPolicyType type;
+
+ /**
+ * The value that indicates whether the policy is enabled or not. Possible
+ * values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "status")
+ private PolicyStatus status;
+
+ /**
+ * Get the type of trust policy. Possible values include: 'Notary'.
+ *
+ * @return the type value
+ */
+ public TrustPolicyType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of trust policy. Possible values include: 'Notary'.
+ *
+ * @param type the type value to set
+ * @return the TrustPolicy object itself.
+ */
+ public TrustPolicy withType(TrustPolicyType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * 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 TrustPolicy object itself.
+ */
+ public TrustPolicy 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/TrustPolicyType.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/TrustPolicyType.java
new file mode 100644
index 000000000000..3358d8e033f5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/TrustPolicyType.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 TrustPolicyType.
+ */
+public final class TrustPolicyType extends ExpandableStringEnum {
+ /** Static value Notary for TrustPolicyType. */
+ public static final TrustPolicyType NOTARY = fromString("Notary");
+
+ /**
+ * Creates or finds a TrustPolicyType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TrustPolicyType
+ */
+ @JsonCreator
+ public static TrustPolicyType fromString(String name) {
+ return fromString(name, TrustPolicyType.class);
+ }
+
+ /**
+ * @return known TrustPolicyType values
+ */
+ public static Collection values() {
+ return values(TrustPolicyType.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/UserIdentityProperties.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/UserIdentityProperties.java
new file mode 100644
index 000000000000..cb33dfb8879f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/UserIdentityProperties.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 UserIdentityProperties model.
+ */
+public class UserIdentityProperties {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId")
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId")
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Set the principal id of user assigned identity.
+ *
+ * @param principalId the principalId value to set
+ * @return the UserIdentityProperties object itself.
+ */
+ public UserIdentityProperties withPrincipalId(String principalId) {
+ this.principalId = principalId;
+ return this;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set the client id of user assigned identity.
+ *
+ * @param clientId the clientId value to set
+ * @return the UserIdentityProperties object itself.
+ */
+ public UserIdentityProperties withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/VirtualNetworkRule.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/VirtualNetworkRule.java
new file mode 100644
index 000000000000..d2757085771b
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/VirtualNetworkRule.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;
+
+/**
+ * Virtual network rule.
+ */
+public class VirtualNetworkRule {
+ /**
+ * The action of virtual network rule. Possible values include: 'Allow'.
+ */
+ @JsonProperty(value = "action")
+ private Action action;
+
+ /**
+ * Resource ID of a subnet, for example:
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
+ */
+ @JsonProperty(value = "id", required = true)
+ private String virtualNetworkResourceId;
+
+ /**
+ * Get the action of virtual network rule. Possible values include: 'Allow'.
+ *
+ * @return the action value
+ */
+ public Action action() {
+ return this.action;
+ }
+
+ /**
+ * Set the action of virtual network rule. Possible values include: 'Allow'.
+ *
+ * @param action the action value to set
+ * @return the VirtualNetworkRule object itself.
+ */
+ public VirtualNetworkRule withAction(Action action) {
+ this.action = action;
+ return this;
+ }
+
+ /**
+ * Get resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
+ *
+ * @return the virtualNetworkResourceId value
+ */
+ public String virtualNetworkResourceId() {
+ return this.virtualNetworkResourceId;
+ }
+
+ /**
+ * Set resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}.
+ *
+ * @param virtualNetworkResourceId the virtualNetworkResourceId value to set
+ * @return the VirtualNetworkRule object itself.
+ */
+ public VirtualNetworkRule withVirtualNetworkResourceId(String virtualNetworkResourceId) {
+ this.virtualNetworkResourceId = virtualNetworkResourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Webhook.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Webhook.java
new file mode 100644
index 000000000000..7e6be7b657c5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Webhook.java
@@ -0,0 +1,276 @@
+/**
+ * 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.WebhookInner;
+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 java.util.List;
+
+/**
+ * Type representing Webhook.
+ */
+public interface Webhook extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the actions value.
+ */
+ List actions();
+
+ /**
+ * @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 scope value.
+ */
+ String scope();
+
+ /**
+ * @return the status value.
+ */
+ WebhookStatus status();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Webhook definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithRegistry, DefinitionStages.WithActions, DefinitionStages.WithLocation, DefinitionStages.WithServiceUri, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Webhook definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Webhook definition.
+ */
+ interface Blank extends WithRegistry {
+ }
+
+ /**
+ * The stage of the webhook 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 webhook definition allowing to specify Actions.
+ */
+ interface WithActions {
+ /**
+ * Specifies actions.
+ * @param actions The list of actions that trigger the webhook to post notifications
+ * @return the next definition stage
+ */
+ WithLocation withActions(List actions);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The location of the webhook. This cannot be changed after the resource is created
+ * @return the next definition stage
+ */
+ WithServiceUri withLocation(String location);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify ServiceUri.
+ */
+ interface WithServiceUri {
+ /**
+ * Specifies serviceUri.
+ * @param serviceUri The service URI for the webhook to post notifications
+ * @return the next definition stage
+ */
+ WithCreate withServiceUri(String serviceUri);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify CustomHeaders.
+ */
+ interface WithCustomHeaders {
+ /**
+ * Specifies customHeaders.
+ * @param customHeaders Custom headers that will be added to the webhook notifications
+ * @return the next definition stage
+ */
+ WithCreate withCustomHeaders(Map customHeaders);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify Scope.
+ */
+ interface WithScope {
+ /**
+ * Specifies scope.
+ * @param scope The scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events
+ * @return the next definition stage
+ */
+ WithCreate withScope(String scope);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status The status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'
+ * @return the next definition stage
+ */
+ WithCreate withStatus(WebhookStatus status);
+ }
+
+ /**
+ * The stage of the webhook definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags for the webhook
+ * @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.WithCustomHeaders, DefinitionStages.WithScope, DefinitionStages.WithStatus, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a Webhook update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithActions, UpdateStages.WithCustomHeaders, UpdateStages.WithScope, UpdateStages.WithServiceUri, UpdateStages.WithStatus, UpdateStages.WithTags {
+ }
+
+ /**
+ * Grouping of Webhook update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the webhook update allowing to specify Actions.
+ */
+ interface WithActions {
+ /**
+ * Specifies actions.
+ * @param actions The list of actions that trigger the webhook to post notifications
+ * @return the next update stage
+ */
+ Update withActions(List actions);
+ }
+
+ /**
+ * The stage of the webhook update allowing to specify CustomHeaders.
+ */
+ interface WithCustomHeaders {
+ /**
+ * Specifies customHeaders.
+ * @param customHeaders Custom headers that will be added to the webhook notifications
+ * @return the next update stage
+ */
+ Update withCustomHeaders(Map customHeaders);
+ }
+
+ /**
+ * The stage of the webhook update allowing to specify Scope.
+ */
+ interface WithScope {
+ /**
+ * Specifies scope.
+ * @param scope The scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events
+ * @return the next update stage
+ */
+ Update withScope(String scope);
+ }
+
+ /**
+ * The stage of the webhook update allowing to specify ServiceUri.
+ */
+ interface WithServiceUri {
+ /**
+ * Specifies serviceUri.
+ * @param serviceUri The service URI for the webhook to post notifications
+ * @return the next update stage
+ */
+ Update withServiceUri(String serviceUri);
+ }
+
+ /**
+ * The stage of the webhook update allowing to specify Status.
+ */
+ interface WithStatus {
+ /**
+ * Specifies status.
+ * @param status The status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'
+ * @return the next update stage
+ */
+ Update withStatus(WebhookStatus status);
+ }
+
+ /**
+ * The stage of the webhook update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags The tags for the webhook
+ * @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/WebhookAction.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookAction.java
new file mode 100644
index 000000000000..6e3118b325bf
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookAction.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 WebhookAction.
+ */
+public final class WebhookAction extends ExpandableStringEnum {
+ /** Static value push for WebhookAction. */
+ public static final WebhookAction PUSH = fromString("push");
+
+ /** Static value delete for WebhookAction. */
+ public static final WebhookAction DELETE = fromString("delete");
+
+ /** Static value quarantine for WebhookAction. */
+ public static final WebhookAction QUARANTINE = fromString("quarantine");
+
+ /** Static value chart_push for WebhookAction. */
+ public static final WebhookAction CHART_PUSH = fromString("chart_push");
+
+ /** Static value chart_delete for WebhookAction. */
+ public static final WebhookAction CHART_DELETE = fromString("chart_delete");
+
+ /**
+ * Creates or finds a WebhookAction from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WebhookAction
+ */
+ @JsonCreator
+ public static WebhookAction fromString(String name) {
+ return fromString(name, WebhookAction.class);
+ }
+
+ /**
+ * @return known WebhookAction values
+ */
+ public static Collection values() {
+ return values(WebhookAction.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookCreateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookCreateParameters.java
new file mode 100644
index 000000000000..cf1f14a3cd49
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookCreateParameters.java
@@ -0,0 +1,208 @@
+/**
+ * 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 java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The parameters for creating a webhook.
+ */
+@JsonFlatten
+public class WebhookCreateParameters {
+ /**
+ * The tags for the webhook.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The location of the webhook. This cannot be changed after the resource
+ * is created.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * The service URI for the webhook to post notifications.
+ */
+ @JsonProperty(value = "properties.serviceUri", required = true)
+ private String serviceUri;
+
+ /**
+ * Custom headers that will be added to the webhook notifications.
+ */
+ @JsonProperty(value = "properties.customHeaders")
+ private Map customHeaders;
+
+ /**
+ * The status of the webhook at the time the operation was called. Possible
+ * values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "properties.status")
+ private WebhookStatus status;
+
+ /**
+ * The scope of repositories where the event can be triggered. For example,
+ * 'foo:*' means events for all tags under repository 'foo'. 'foo:bar'
+ * means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'.
+ * Empty means all events.
+ */
+ @JsonProperty(value = "properties.scope")
+ private String scope;
+
+ /**
+ * The list of actions that trigger the webhook to post notifications.
+ */
+ @JsonProperty(value = "properties.actions", required = true)
+ private List actions;
+
+ /**
+ * Get the tags for the webhook.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags for the webhook.
+ *
+ * @param tags the tags value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the location of the webhook. This cannot be changed after the resource is created.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location of the webhook. This cannot be changed after the resource is created.
+ *
+ * @param location the location value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the service URI for the webhook to post notifications.
+ *
+ * @return the serviceUri value
+ */
+ public String serviceUri() {
+ return this.serviceUri;
+ }
+
+ /**
+ * Set the service URI for the webhook to post notifications.
+ *
+ * @param serviceUri the serviceUri value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withServiceUri(String serviceUri) {
+ this.serviceUri = serviceUri;
+ return this;
+ }
+
+ /**
+ * Get custom headers that will be added to the webhook notifications.
+ *
+ * @return the customHeaders value
+ */
+ public Map customHeaders() {
+ return this.customHeaders;
+ }
+
+ /**
+ * Set custom headers that will be added to the webhook notifications.
+ *
+ * @param customHeaders the customHeaders value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withCustomHeaders(Map customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+ /**
+ * Get the status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'.
+ *
+ * @return the status value
+ */
+ public WebhookStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'.
+ *
+ * @param status the status value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withStatus(WebhookStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events.
+ *
+ * @return the scope value
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events.
+ *
+ * @param scope the scope value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the list of actions that trigger the webhook to post notifications.
+ *
+ * @return the actions value
+ */
+ public List actions() {
+ return this.actions;
+ }
+
+ /**
+ * Set the list of actions that trigger the webhook to post notifications.
+ *
+ * @param actions the actions value to set
+ * @return the WebhookCreateParameters object itself.
+ */
+ public WebhookCreateParameters 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/WebhookStatus.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookStatus.java
new file mode 100644
index 000000000000..161dc4ba2d61
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookStatus.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 WebhookStatus.
+ */
+public final class WebhookStatus extends ExpandableStringEnum {
+ /** Static value enabled for WebhookStatus. */
+ public static final WebhookStatus ENABLED = fromString("enabled");
+
+ /** Static value disabled for WebhookStatus. */
+ public static final WebhookStatus DISABLED = fromString("disabled");
+
+ /**
+ * Creates or finds a WebhookStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding WebhookStatus
+ */
+ @JsonCreator
+ public static WebhookStatus fromString(String name) {
+ return fromString(name, WebhookStatus.class);
+ }
+
+ /**
+ * @return known WebhookStatus values
+ */
+ public static Collection values() {
+ return values(WebhookStatus.class);
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookUpdateParameters.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookUpdateParameters.java
new file mode 100644
index 000000000000..6f39f0032b02
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/WebhookUpdateParameters.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.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The parameters for updating a webhook.
+ */
+@JsonFlatten
+public class WebhookUpdateParameters {
+ /**
+ * The tags for the webhook.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The service URI for the webhook to post notifications.
+ */
+ @JsonProperty(value = "properties.serviceUri")
+ private String serviceUri;
+
+ /**
+ * Custom headers that will be added to the webhook notifications.
+ */
+ @JsonProperty(value = "properties.customHeaders")
+ private Map customHeaders;
+
+ /**
+ * The status of the webhook at the time the operation was called. Possible
+ * values include: 'enabled', 'disabled'.
+ */
+ @JsonProperty(value = "properties.status")
+ private WebhookStatus status;
+
+ /**
+ * The scope of repositories where the event can be triggered. For example,
+ * 'foo:*' means events for all tags under repository 'foo'. 'foo:bar'
+ * means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'.
+ * Empty means all events.
+ */
+ @JsonProperty(value = "properties.scope")
+ private String scope;
+
+ /**
+ * The list of actions that trigger the webhook to post notifications.
+ */
+ @JsonProperty(value = "properties.actions")
+ private List actions;
+
+ /**
+ * Get the tags for the webhook.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set the tags for the webhook.
+ *
+ * @param tags the tags value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the service URI for the webhook to post notifications.
+ *
+ * @return the serviceUri value
+ */
+ public String serviceUri() {
+ return this.serviceUri;
+ }
+
+ /**
+ * Set the service URI for the webhook to post notifications.
+ *
+ * @param serviceUri the serviceUri value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters withServiceUri(String serviceUri) {
+ this.serviceUri = serviceUri;
+ return this;
+ }
+
+ /**
+ * Get custom headers that will be added to the webhook notifications.
+ *
+ * @return the customHeaders value
+ */
+ public Map customHeaders() {
+ return this.customHeaders;
+ }
+
+ /**
+ * Set custom headers that will be added to the webhook notifications.
+ *
+ * @param customHeaders the customHeaders value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters withCustomHeaders(Map customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+ /**
+ * Get the status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'.
+ *
+ * @return the status value
+ */
+ public WebhookStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set the status of the webhook at the time the operation was called. Possible values include: 'enabled', 'disabled'.
+ *
+ * @param status the status value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters withStatus(WebhookStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events.
+ *
+ * @return the scope value
+ */
+ public String scope() {
+ return this.scope;
+ }
+
+ /**
+ * Set the scope of repositories where the event can be triggered. For example, 'foo:*' means events for all tags under repository 'foo'. 'foo:bar' means events for 'foo:bar' only. 'foo' is equivalent to 'foo:latest'. Empty means all events.
+ *
+ * @param scope the scope value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters withScope(String scope) {
+ this.scope = scope;
+ return this;
+ }
+
+ /**
+ * Get the list of actions that trigger the webhook to post notifications.
+ *
+ * @return the actions value
+ */
+ public List actions() {
+ return this.actions;
+ }
+
+ /**
+ * Set the list of actions that trigger the webhook to post notifications.
+ *
+ * @param actions the actions value to set
+ * @return the WebhookUpdateParameters object itself.
+ */
+ public WebhookUpdateParameters 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/Webhooks.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Webhooks.java
new file mode 100644
index 000000000000..5462fd3ef39d
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/Webhooks.java
@@ -0,0 +1,86 @@
+/**
+ * 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.WebhooksInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Webhooks.
+ */
+public interface Webhooks extends SupportsCreating, HasInner {
+ /**
+ * Triggers a ping event to be sent to the webhook.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param webhookName The name of the webhook.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable pingAsync(String resourceGroupName, String registryName, String webhookName);
+
+ /**
+ * Gets the configuration of service URI and custom headers for the webhook.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param webhookName The name of the webhook.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCallbackConfigAsync(String resourceGroupName, String registryName, String webhookName);
+
+ /**
+ * Lists recent events for the specified webhook.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param webhookName The name of the webhook.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listEventsAsync(final String resourceGroupName, final String registryName, final String webhookName);
+
+ /**
+ * Gets the properties of the specified webhook.
+ *
+ * @param resourceGroupName The name of the resource group to which the container registry belongs.
+ * @param registryName The name of the container registry.
+ * @param webhookName The name of the webhook.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String registryName, String webhookName);
+
+ /**
+ * Lists all the webhooks 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 webhook 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 webhookName The name of the webhook.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String registryName, String webhookName);
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigImpl.java
new file mode 100644
index 000000000000..1daff90841be
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigImpl.java
@@ -0,0 +1,37 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.CallbackConfig;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import java.util.Map;
+
+class CallbackConfigImpl extends WrapperImpl implements CallbackConfig {
+ private final ContainerRegistryManager manager;
+ CallbackConfigImpl(CallbackConfigInner inner, ContainerRegistryManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerRegistryManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Map customHeaders() {
+ return this.inner().customHeaders();
+ }
+
+ @Override
+ public String serviceUri() {
+ return this.inner().serviceUri();
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigInner.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigInner.java
new file mode 100644
index 000000000000..3806a6953749
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/CallbackConfigInner.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.implementation;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The configuration of service URI and custom headers for the webhook.
+ */
+public class CallbackConfigInner {
+ /**
+ * The service URI for the webhook to post notifications.
+ */
+ @JsonProperty(value = "serviceUri", required = true)
+ private String serviceUri;
+
+ /**
+ * Custom headers that will be added to the webhook notifications.
+ */
+ @JsonProperty(value = "customHeaders")
+ private Map customHeaders;
+
+ /**
+ * Get the service URI for the webhook to post notifications.
+ *
+ * @return the serviceUri value
+ */
+ public String serviceUri() {
+ return this.serviceUri;
+ }
+
+ /**
+ * Set the service URI for the webhook to post notifications.
+ *
+ * @param serviceUri the serviceUri value to set
+ * @return the CallbackConfigInner object itself.
+ */
+ public CallbackConfigInner withServiceUri(String serviceUri) {
+ this.serviceUri = serviceUri;
+ return this;
+ }
+
+ /**
+ * Get custom headers that will be added to the webhook notifications.
+ *
+ * @return the customHeaders value
+ */
+ public Map customHeaders() {
+ return this.customHeaders;
+ }
+
+ /**
+ * Set custom headers that will be added to the webhook notifications.
+ *
+ * @param customHeaders the customHeaders value to set
+ * @return the CallbackConfigInner object itself.
+ */
+ public CallbackConfigInner withCustomHeaders(Map customHeaders) {
+ this.customHeaders = customHeaders;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManagementClientImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManagementClientImpl.java
new file mode 100644
index 000000000000..caed38481d8a
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManagementClientImpl.java
@@ -0,0 +1,238 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the ContainerRegistryManagementClientImpl class.
+ */
+public class ContainerRegistryManagementClientImpl extends AzureServiceClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** The Microsoft Azure subscription ID. */
+ private String subscriptionId;
+
+ /**
+ * Gets The Microsoft Azure subscription ID.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets The Microsoft Azure subscription ID.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public ContainerRegistryManagementClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** The client API version. */
+ private String apiVersion;
+
+ /**
+ * Gets The client API version.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public ContainerRegistryManagementClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public ContainerRegistryManagementClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public ContainerRegistryManagementClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The RegistriesInner object to access its operations.
+ */
+ private RegistriesInner registries;
+
+ /**
+ * Gets the RegistriesInner object to access its operations.
+ * @return the RegistriesInner object.
+ */
+ public RegistriesInner registries() {
+ return this.registries;
+ }
+
+ /**
+ * The OperationsInner object to access its operations.
+ */
+ private OperationsInner operations;
+
+ /**
+ * Gets the OperationsInner object to access its operations.
+ * @return the OperationsInner object.
+ */
+ public OperationsInner operations() {
+ return this.operations;
+ }
+
+ /**
+ * The ReplicationsInner object to access its operations.
+ */
+ private ReplicationsInner replications;
+
+ /**
+ * Gets the ReplicationsInner object to access its operations.
+ * @return the ReplicationsInner object.
+ */
+ public ReplicationsInner replications() {
+ return this.replications;
+ }
+
+ /**
+ * The WebhooksInner object to access its operations.
+ */
+ private WebhooksInner webhooks;
+
+ /**
+ * Gets the WebhooksInner object to access its operations.
+ * @return the WebhooksInner object.
+ */
+ public WebhooksInner webhooks() {
+ return this.webhooks;
+ }
+
+ /**
+ * Initializes an instance of ContainerRegistryManagementClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public ContainerRegistryManagementClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of ContainerRegistryManagementClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public ContainerRegistryManagementClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of ContainerRegistryManagementClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public ContainerRegistryManagementClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2019-12-01-preview";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.registries = new RegistriesInner(restClient().retrofit(), this);
+ this.operations = new OperationsInner(restClient().retrofit(), this);
+ this.replications = new ReplicationsInner(restClient().retrofit(), this);
+ this.webhooks = new WebhooksInner(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "ContainerRegistryManagementClient", "2019-12-01-preview");
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManager.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManager.java
new file mode 100644
index 000000000000..a37c67fd48e0
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/ContainerRegistryManager.java
@@ -0,0 +1,135 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Registries;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Operations;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Replications;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Webhooks;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure ContainerRegistry resource management.
+ */
+public final class ContainerRegistryManager extends ManagerCore {
+ private Registries registries;
+ private Operations operations;
+ private Replications replications;
+ private Webhooks webhooks;
+ /**
+ * Get a Configurable instance that can be used to create ContainerRegistryManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new ContainerRegistryManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of ContainerRegistryManager that exposes ContainerRegistry resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the ContainerRegistryManager
+ */
+ public static ContainerRegistryManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new ContainerRegistryManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of ContainerRegistryManager that exposes ContainerRegistry resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the ContainerRegistryManager
+ */
+ public static ContainerRegistryManager authenticate(RestClient restClient, String subscriptionId) {
+ return new ContainerRegistryManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of ContainerRegistryManager that exposes ContainerRegistry management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing ContainerRegistry management API entry points that work across subscriptions
+ */
+ ContainerRegistryManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage Registries.
+ */
+ public Registries registries() {
+ if (this.registries == null) {
+ this.registries = new RegistriesImpl(this);
+ }
+ return this.registries;
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * @return Entry point to manage Replications.
+ */
+ public Replications replications() {
+ if (this.replications == null) {
+ this.replications = new ReplicationsImpl(this);
+ }
+ return this.replications;
+ }
+
+ /**
+ * @return Entry point to manage Webhooks.
+ */
+ public Webhooks webhooks() {
+ if (this.webhooks == null) {
+ this.webhooks = new WebhooksImpl(this);
+ }
+ return this.webhooks;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public ContainerRegistryManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return ContainerRegistryManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private ContainerRegistryManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new ContainerRegistryManagementClientImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventImpl.java
new file mode 100644
index 000000000000..9c1ae0fcf6c5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventImpl.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.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Event;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.EventRequestMessage;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.EventResponseMessage;
+
+class EventImpl extends WrapperImpl implements Event {
+ private final ContainerRegistryManager manager;
+ EventImpl(EventInner inner, ContainerRegistryManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerRegistryManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public EventRequestMessage eventRequestMessage() {
+ return this.inner().eventRequestMessage();
+ }
+
+ @Override
+ public EventResponseMessage eventResponseMessage() {
+ return this.inner().eventResponseMessage();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoImpl.java
new file mode 100644
index 000000000000..df6441b2e374
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoImpl.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.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.EventInfo;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+
+class EventInfoImpl extends WrapperImpl implements EventInfo {
+ private final ContainerRegistryManager manager;
+ EventInfoImpl(EventInfoInner inner, ContainerRegistryManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerRegistryManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoInner.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoInner.java
new file mode 100644
index 000000000000..beb8b5b38d87
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInfoInner.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.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The basic information of an event.
+ */
+public class EventInfoInner {
+ /**
+ * The event ID.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * 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 EventInfoInner object itself.
+ */
+ public EventInfoInner 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/implementation/EventInner.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInner.java
new file mode 100644
index 000000000000..faf9351d3fa4
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/EventInner.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.EventRequestMessage;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.EventResponseMessage;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The event for a webhook.
+ */
+public class EventInner extends EventInfoInner {
+ /**
+ * The event request message sent to the service URI.
+ */
+ @JsonProperty(value = "eventRequestMessage")
+ private EventRequestMessage eventRequestMessage;
+
+ /**
+ * The event response message received from the service URI.
+ */
+ @JsonProperty(value = "eventResponseMessage")
+ private EventResponseMessage eventResponseMessage;
+
+ /**
+ * Get the event request message sent to the service URI.
+ *
+ * @return the eventRequestMessage value
+ */
+ public EventRequestMessage eventRequestMessage() {
+ return this.eventRequestMessage;
+ }
+
+ /**
+ * Set the event request message sent to the service URI.
+ *
+ * @param eventRequestMessage the eventRequestMessage value to set
+ * @return the EventInner object itself.
+ */
+ public EventInner withEventRequestMessage(EventRequestMessage eventRequestMessage) {
+ this.eventRequestMessage = eventRequestMessage;
+ return this;
+ }
+
+ /**
+ * Get the event response message received from the service URI.
+ *
+ * @return the eventResponseMessage value
+ */
+ public EventResponseMessage eventResponseMessage() {
+ return this.eventResponseMessage;
+ }
+
+ /**
+ * Set the event response message received from the service URI.
+ *
+ * @param eventResponseMessage the eventResponseMessage value to set
+ * @return the EventInner object itself.
+ */
+ public EventInner withEventResponseMessage(EventResponseMessage eventResponseMessage) {
+ this.eventResponseMessage = eventResponseMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/IdParsingUtils.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..f1e7deb0d2d6
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/IdParsingUtils.java
@@ -0,0 +1,57 @@
+/**
+ * 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.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionImpl.java
new file mode 100644
index 000000000000..eadda5268c49
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionImpl.java
@@ -0,0 +1,48 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationDefinition;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationDisplayDefinition;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationServiceSpecificationDefinition;
+
+class OperationDefinitionImpl extends WrapperImpl implements OperationDefinition {
+ private final ContainerRegistryManager manager;
+ OperationDefinitionImpl(OperationDefinitionInner inner, ContainerRegistryManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public ContainerRegistryManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public OperationDisplayDefinition display() {
+ return this.inner().display();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String origin() {
+ return this.inner().origin();
+ }
+
+ @Override
+ public OperationServiceSpecificationDefinition serviceSpecification() {
+ return this.inner().serviceSpecification();
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionInner.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionInner.java
new file mode 100644
index 000000000000..bec449682568
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationDefinitionInner.java
@@ -0,0 +1,125 @@
+/**
+ * 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.implementation;
+
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationDisplayDefinition;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationServiceSpecificationDefinition;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * The definition of a container registry operation.
+ */
+@JsonFlatten
+public class OperationDefinitionInner {
+ /**
+ * The origin information of the container registry operation.
+ */
+ @JsonProperty(value = "origin")
+ private String origin;
+
+ /**
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The display information for the container registry operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplayDefinition display;
+
+ /**
+ * The definition of Azure Monitoring service.
+ */
+ @JsonProperty(value = "properties.serviceSpecification")
+ private OperationServiceSpecificationDefinition serviceSpecification;
+
+ /**
+ * Get the origin information of the container registry operation.
+ *
+ * @return the origin value
+ */
+ public String origin() {
+ return this.origin;
+ }
+
+ /**
+ * Set the origin information of the container registry operation.
+ *
+ * @param origin the origin value to set
+ * @return the OperationDefinitionInner object itself.
+ */
+ public OperationDefinitionInner withOrigin(String origin) {
+ this.origin = origin;
+ return this;
+ }
+
+ /**
+ * Get operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set
+ * @return the OperationDefinitionInner object itself.
+ */
+ public OperationDefinitionInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the display information for the container registry operation.
+ *
+ * @return the display value
+ */
+ public OperationDisplayDefinition display() {
+ return this.display;
+ }
+
+ /**
+ * Set the display information for the container registry operation.
+ *
+ * @param display the display value to set
+ * @return the OperationDefinitionInner object itself.
+ */
+ public OperationDefinitionInner withDisplay(OperationDisplayDefinition display) {
+ this.display = display;
+ return this;
+ }
+
+ /**
+ * Get the definition of Azure Monitoring service.
+ *
+ * @return the serviceSpecification value
+ */
+ public OperationServiceSpecificationDefinition serviceSpecification() {
+ return this.serviceSpecification;
+ }
+
+ /**
+ * Set the definition of Azure Monitoring service.
+ *
+ * @param serviceSpecification the serviceSpecification value to set
+ * @return the OperationDefinitionInner object itself.
+ */
+ public OperationDefinitionInner withServiceSpecification(OperationServiceSpecificationDefinition serviceSpecification) {
+ this.serviceSpecification = serviceSpecification;
+ return this;
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..b183f6ad7e1f
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsImpl.java
@@ -0,0 +1,49 @@
+/**
+ * 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.
+ * abc
+ */
+
+package com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Operations;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.OperationDefinition;
+
+class OperationsImpl extends WrapperImpl implements Operations {
+ private final ContainerRegistryManager manager;
+
+ OperationsImpl(ContainerRegistryManager manager) {
+ super(manager.inner().operations());
+ this.manager = manager;
+ }
+
+ public ContainerRegistryManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync() {
+ OperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public OperationDefinition call(OperationDefinitionInner inner) {
+ return new OperationDefinitionImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsInner.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsInner.java
new file mode 100644
index 000000000000..e53028854ed5
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/OperationsInner.java
@@ -0,0 +1,283 @@
+/**
+ * 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.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private ContainerRegistryManagementClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsInner(Retrofit retrofit, ContainerRegistryManagementClientImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Operations list" })
+ @GET("providers/Microsoft.ContainerRegistry/operations")
+ Observable> list(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Operations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationDefinitionInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationDefinitionInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationDefinitionInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationDefinitionInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationDefinitionInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationDefinitionInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationDefinitionInner> object
+ */
+ public Observable>> listNextWithServiceResponseAsync(final String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Azure Container Registry REST API operations.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationDefinitionInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listNextDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/PageImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/PageImpl.java
new file mode 100644
index 000000000000..8a9abd57aa0c
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/PageImpl.java
@@ -0,0 +1,75 @@
+/**
+ * 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.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.Page;
+import java.util.List;
+
+/**
+ * An instance of this class defines a page of Azure resources and a link to
+ * get the next page of resources, if any.
+ *
+ * @param type of Azure resource
+ */
+public class PageImpl implements Page {
+ /**
+ * The link to the next page.
+ */
+ @JsonProperty("nextLink")
+ private String nextPageLink;
+
+ /**
+ * The list of items.
+ */
+ @JsonProperty("value")
+ private List items;
+
+ /**
+ * Gets the link to the next page.
+ *
+ * @return the link to the next page.
+ */
+ @Override
+ public String nextPageLink() {
+ return this.nextPageLink;
+ }
+
+ /**
+ * Gets the list of items.
+ *
+ * @return the list of items in {@link List}.
+ */
+ @Override
+ public List items() {
+ return items;
+ }
+
+ /**
+ * Sets the link to the next page.
+ *
+ * @param nextPageLink the link to the next page.
+ * @return this Page object itself.
+ */
+ public PageImpl setNextPageLink(String nextPageLink) {
+ this.nextPageLink = nextPageLink;
+ return this;
+ }
+
+ /**
+ * Sets the list of items.
+ *
+ * @param items the list of items in {@link List}.
+ * @return this Page object itself.
+ */
+ public PageImpl setItems(List items) {
+ this.items = items;
+ return this;
+ }
+}
diff --git a/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/RegistriesImpl.java b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/RegistriesImpl.java
new file mode 100644
index 000000000000..0c838d4ba052
--- /dev/null
+++ b/sdk/containerregistry/mgmt-v2019_12_01_preview/src/main/java/com/microsoft/azure/management/containerregistry/v2019_12_01_preview/implementation/RegistriesImpl.java
@@ -0,0 +1,197 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * def
+ */
+
+package com.microsoft.azure.management.containerregistry.v2019_12_01_preview.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Registries;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.Registry;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.RegistryListCredentialsResult;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.RegistryNameStatus;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.ImportImageParameters;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.PasswordName;
+import com.microsoft.azure.management.containerregistry.v2019_12_01_preview.RegistryUsageListResult;
+
+class RegistriesImpl extends GroupableResourcesCoreImpl implements Registries {
+ protected RegistriesImpl(ContainerRegistryManager manager) {
+ super(manager.inner().registries(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ RegistriesInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ RegistriesInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ RegistriesInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ RegistriesInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Registry call(RegistryInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public PagedList