diff --git a/sdk/eventgrid/mgmt-v2020_06_01/pom.xml b/sdk/eventgrid/mgmt-v2020_06_01/pom.xml
new file mode 100644
index 000000000000..ac5726711c82
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.eventgrid.v2020_06_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.3.1
+ ../../parents/azure-arm-parent/pom.xml
+
+ azure-mgmt-eventgrid
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for EventGrid Management
+ This package contains Microsoft EventGrid 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/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AdvancedFilter.java
new file mode 100644
index 000000000000..41d778df4c2a
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AdvancedFilter.java
@@ -0,0 +1,66 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * This is the base type that represents an advanced filter. To configure an
+ * advanced filter, do not directly instantiate an object of this class.
+ * Instead, instantiate an object of a derived class such as
+ * BoolEqualsAdvancedFilter, NumberInAdvancedFilter, StringEqualsAdvancedFilter
+ * etc. depending on the type of the key based on which you want to filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = AdvancedFilter.class)
+@JsonTypeName("AdvancedFilter")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "NumberIn", value = NumberInAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "NumberNotIn", value = NumberNotInAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "NumberLessThan", value = NumberLessThanAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "NumberGreaterThan", value = NumberGreaterThanAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "NumberLessThanOrEquals", value = NumberLessThanOrEqualsAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "NumberGreaterThanOrEquals", value = NumberGreaterThanOrEqualsAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "BoolEquals", value = BoolEqualsAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "StringIn", value = StringInAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "StringNotIn", value = StringNotInAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "StringBeginsWith", value = StringBeginsWithAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "StringEndsWith", value = StringEndsWithAdvancedFilter.class),
+ @JsonSubTypes.Type(name = "StringContains", value = StringContainsAdvancedFilter.class)
+})
+public class AdvancedFilter {
+ /**
+ * The field/property in the event based on which you want to filter.
+ */
+ @JsonProperty(value = "key")
+ private String key;
+
+ /**
+ * Get the field/property in the event based on which you want to filter.
+ *
+ * @return the key value
+ */
+ public String key() {
+ return this.key;
+ }
+
+ /**
+ * Set the field/property in the event based on which you want to filter.
+ *
+ * @param key the key value to set
+ * @return the AdvancedFilter object itself.
+ */
+ public AdvancedFilter withKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AzureFunctionEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AzureFunctionEventSubscriptionDestination.java
new file mode 100644
index 000000000000..c76fcbab688e
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/AzureFunctionEventSubscriptionDestination.java
@@ -0,0 +1,102 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the azure function destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = AzureFunctionEventSubscriptionDestination.class)
+@JsonTypeName("AzureFunction")
+@JsonFlatten
+public class AzureFunctionEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource Id that represents the endpoint of the Azure Function
+ * destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Maximum number of events per batch.
+ */
+ @JsonProperty(value = "properties.maxEventsPerBatch")
+ private Integer maxEventsPerBatch;
+
+ /**
+ * Preferred batch size in Kilobytes.
+ */
+ @JsonProperty(value = "properties.preferredBatchSizeInKilobytes")
+ private Integer preferredBatchSizeInKilobytes;
+
+ /**
+ * Get the Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the AzureFunctionEventSubscriptionDestination object itself.
+ */
+ public AzureFunctionEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get maximum number of events per batch.
+ *
+ * @return the maxEventsPerBatch value
+ */
+ public Integer maxEventsPerBatch() {
+ return this.maxEventsPerBatch;
+ }
+
+ /**
+ * Set maximum number of events per batch.
+ *
+ * @param maxEventsPerBatch the maxEventsPerBatch value to set
+ * @return the AzureFunctionEventSubscriptionDestination object itself.
+ */
+ public AzureFunctionEventSubscriptionDestination withMaxEventsPerBatch(Integer maxEventsPerBatch) {
+ this.maxEventsPerBatch = maxEventsPerBatch;
+ return this;
+ }
+
+ /**
+ * Get preferred batch size in Kilobytes.
+ *
+ * @return the preferredBatchSizeInKilobytes value
+ */
+ public Integer preferredBatchSizeInKilobytes() {
+ return this.preferredBatchSizeInKilobytes;
+ }
+
+ /**
+ * Set preferred batch size in Kilobytes.
+ *
+ * @param preferredBatchSizeInKilobytes the preferredBatchSizeInKilobytes value to set
+ * @return the AzureFunctionEventSubscriptionDestination object itself.
+ */
+ public AzureFunctionEventSubscriptionDestination withPreferredBatchSizeInKilobytes(Integer preferredBatchSizeInKilobytes) {
+ this.preferredBatchSizeInKilobytes = preferredBatchSizeInKilobytes;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/BoolEqualsAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/BoolEqualsAdvancedFilter.java
new file mode 100644
index 000000000000..99441cc34a94
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/BoolEqualsAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * BoolEquals Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = BoolEqualsAdvancedFilter.class)
+@JsonTypeName("BoolEquals")
+public class BoolEqualsAdvancedFilter extends AdvancedFilter {
+ /**
+ * The boolean filter value.
+ */
+ @JsonProperty(value = "value")
+ private Boolean value;
+
+ /**
+ * Get the boolean filter value.
+ *
+ * @return the value value
+ */
+ public Boolean value() {
+ return this.value;
+ }
+
+ /**
+ * Set the boolean filter value.
+ *
+ * @param value the value value to set
+ * @return the BoolEqualsAdvancedFilter object itself.
+ */
+ public BoolEqualsAdvancedFilter withValue(Boolean value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ConnectionState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ConnectionState.java
new file mode 100644
index 000000000000..816e1c8ab404
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ConnectionState.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * ConnectionState information.
+ */
+public class ConnectionState {
+ /**
+ * Status of the connection. Possible values include: 'Pending',
+ * 'Approved', 'Rejected', 'Disconnected'.
+ */
+ @JsonProperty(value = "status")
+ private PersistedConnectionStatus status;
+
+ /**
+ * Description of the connection state.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Actions required (if any).
+ */
+ @JsonProperty(value = "actionsRequired")
+ private String actionsRequired;
+
+ /**
+ * Get status of the connection. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected'.
+ *
+ * @return the status value
+ */
+ public PersistedConnectionStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set status of the connection. Possible values include: 'Pending', 'Approved', 'Rejected', 'Disconnected'.
+ *
+ * @param status the status value to set
+ * @return the ConnectionState object itself.
+ */
+ public ConnectionState withStatus(PersistedConnectionStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get description of the connection state.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the connection state.
+ *
+ * @param description the description value to set
+ * @return the ConnectionState object itself.
+ */
+ public ConnectionState withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get actions required (if any).
+ *
+ * @return the actionsRequired value
+ */
+ public String actionsRequired() {
+ return this.actionsRequired;
+ }
+
+ /**
+ * Set actions required (if any).
+ *
+ * @param actionsRequired the actionsRequired value to set
+ * @return the ConnectionState object itself.
+ */
+ public ConnectionState withActionsRequired(String actionsRequired) {
+ this.actionsRequired = actionsRequired;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DeadLetterDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DeadLetterDestination.java
new file mode 100644
index 000000000000..7315b8a4e507
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DeadLetterDestination.java
@@ -0,0 +1,28 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Information about the dead letter destination for an event subscription. To
+ * configure a deadletter destination, do not directly instantiate an object of
+ * this class. Instead, instantiate an object of a derived class. Currently,
+ * StorageBlobDeadLetterDestination is the only class that derives from this
+ * class.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = DeadLetterDestination.class)
+@JsonTypeName("DeadLetterDestination")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "StorageBlob", value = StorageBlobDeadLetterDestination.class)
+})
+public class DeadLetterDestination {
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domain.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domain.java
new file mode 100644
index 000000000000..24d93c882b5e
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domain.java
@@ -0,0 +1,196 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import java.util.List;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.PrivateEndpointConnectionInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.DomainInner;
+
+/**
+ * Type representing Domain.
+ */
+public interface Domain extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the endpoint value.
+ */
+ String endpoint();
+
+ /**
+ * @return the inboundIpRules value.
+ */
+ List inboundIpRules();
+
+ /**
+ * @return the inputSchema value.
+ */
+ InputSchema inputSchema();
+
+ /**
+ * @return the inputSchemaMapping value.
+ */
+ InputSchemaMapping inputSchemaMapping();
+
+ /**
+ * @return the metricResourceId value.
+ */
+ String metricResourceId();
+
+ /**
+ * @return the privateEndpointConnections value.
+ */
+ List privateEndpointConnections();
+
+ /**
+ * @return the provisioningState value.
+ */
+ DomainProvisioningState provisioningState();
+
+ /**
+ * @return the publicNetworkAccess value.
+ */
+ PublicNetworkAccess publicNetworkAccess();
+
+ /**
+ * The entirety of the Domain definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Domain definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Domain definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Domain definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the domain definition allowing to specify InboundIpRules.
+ */
+ interface WithInboundIpRules {
+ /**
+ * Specifies inboundIpRules.
+ * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled
+ * @return the next definition stage
+ */
+ WithCreate withInboundIpRules(List inboundIpRules);
+ }
+
+ /**
+ * The stage of the domain definition allowing to specify InputSchema.
+ */
+ interface WithInputSchema {
+ /**
+ * Specifies inputSchema.
+ * @param inputSchema This determines the format that Event Grid should expect for incoming events published to the domain. Possible values include: 'EventGridSchema', 'CustomEventSchema', 'CloudEventSchemaV1_0'
+ * @return the next definition stage
+ */
+ WithCreate withInputSchema(InputSchema inputSchema);
+ }
+
+ /**
+ * The stage of the domain definition allowing to specify InputSchemaMapping.
+ */
+ interface WithInputSchemaMapping {
+ /**
+ * Specifies inputSchemaMapping.
+ * @param inputSchemaMapping Information about the InputSchemaMapping which specified the info about mapping event payload
+ * @return the next definition stage
+ */
+ WithCreate withInputSchemaMapping(InputSchemaMapping inputSchemaMapping);
+ }
+
+ /**
+ * The stage of the domain definition allowing to specify PrivateEndpointConnections.
+ */
+ interface WithPrivateEndpointConnections {
+ /**
+ * Specifies privateEndpointConnections.
+ * @param privateEndpointConnections List of private endpoint connections
+ * @return the next definition stage
+ */
+ WithCreate withPrivateEndpointConnections(List privateEndpointConnections);
+ }
+
+ /**
+ * The stage of the domain definition allowing to specify PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ /**
+ * 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.WithInboundIpRules, DefinitionStages.WithInputSchema, DefinitionStages.WithInputSchemaMapping, DefinitionStages.WithPrivateEndpointConnections, DefinitionStages.WithPublicNetworkAccess {
+ }
+ }
+ /**
+ * The template for a Domain update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithInboundIpRules, UpdateStages.WithPublicNetworkAccess {
+ }
+
+ /**
+ * Grouping of Domain update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the domain update allowing to specify InboundIpRules.
+ */
+ interface WithInboundIpRules {
+ /**
+ * Specifies inboundIpRules.
+ * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled
+ * @return the next update stage
+ */
+ Update withInboundIpRules(List inboundIpRules);
+ }
+
+ /**
+ * The stage of the domain update allowing to specify PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'
+ * @return the next update stage
+ */
+ Update withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainProvisioningState.java
new file mode 100644
index 000000000000..f4ad6667197d
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainProvisioningState.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DomainProvisioningState.
+ */
+public final class DomainProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for DomainProvisioningState. */
+ public static final DomainProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for DomainProvisioningState. */
+ public static final DomainProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for DomainProvisioningState. */
+ public static final DomainProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for DomainProvisioningState. */
+ public static final DomainProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for DomainProvisioningState. */
+ public static final DomainProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for DomainProvisioningState. */
+ public static final DomainProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a DomainProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DomainProvisioningState
+ */
+ @JsonCreator
+ public static DomainProvisioningState fromString(String name) {
+ return fromString(name, DomainProvisioningState.class);
+ }
+
+ /**
+ * @return known DomainProvisioningState values
+ */
+ public static Collection values() {
+ return values(DomainProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainRegenerateKeyRequest.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainRegenerateKeyRequest.java
new file mode 100644
index 000000000000..60b4aa2694aa
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainRegenerateKeyRequest.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Domain regenerate share access key request.
+ */
+public class DomainRegenerateKeyRequest {
+ /**
+ * Key name to regenerate key1 or key2.
+ */
+ @JsonProperty(value = "keyName", required = true)
+ private String keyName;
+
+ /**
+ * Get key name to regenerate key1 or key2.
+ *
+ * @return the keyName value
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set key name to regenerate key1 or key2.
+ *
+ * @param keyName the keyName value to set
+ * @return the DomainRegenerateKeyRequest object itself.
+ */
+ public DomainRegenerateKeyRequest withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainSharedAccessKeys.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainSharedAccessKeys.java
new file mode 100644
index 000000000000..a7afc1e2a4e4
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainSharedAccessKeys.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.DomainSharedAccessKeysInner;
+
+/**
+ * Type representing DomainSharedAccessKeys.
+ */
+public interface DomainSharedAccessKeys extends HasInner, HasManager {
+ /**
+ * @return the key1 value.
+ */
+ String key1();
+
+ /**
+ * @return the key2 value.
+ */
+ String key2();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopic.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopic.java
new file mode 100644
index 000000000000..8105708641a8
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopic.java
@@ -0,0 +1,93 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.DomainTopicInner;
+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.eventgrid.v2020_06_01.implementation.EventGridManager;
+
+/**
+ * Type representing DomainTopic.
+ */
+public interface DomainTopic extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ DomainTopicProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DomainTopic definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDomain, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DomainTopic definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DomainTopic definition.
+ */
+ interface Blank extends WithDomain {
+ }
+
+ /**
+ * The stage of the domaintopic definition allowing to specify Domain.
+ */
+ interface WithDomain {
+ /**
+ * Specifies resourceGroupName, domainName.
+ * @param resourceGroupName The name of the resource group within the user's subscription
+ * @param domainName Name of the domain
+ * @return the next definition stage
+ */
+ WithCreate withExistingDomain(String resourceGroupName, String domainName);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a DomainTopic update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of DomainTopic update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopicProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopicProvisioningState.java
new file mode 100644
index 000000000000..235290182213
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopicProvisioningState.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DomainTopicProvisioningState.
+ */
+public final class DomainTopicProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for DomainTopicProvisioningState. */
+ public static final DomainTopicProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a DomainTopicProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DomainTopicProvisioningState
+ */
+ @JsonCreator
+ public static DomainTopicProvisioningState fromString(String name) {
+ return fromString(name, DomainTopicProvisioningState.class);
+ }
+
+ /**
+ * @return known DomainTopicProvisioningState values
+ */
+ public static Collection values() {
+ return values(DomainTopicProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopics.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopics.java
new file mode 100644
index 000000000000..fb46946ce50d
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainTopics.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.DomainTopicsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DomainTopics.
+ */
+public interface DomainTopics extends SupportsCreating, HasInner {
+ /**
+ * Get a domain topic.
+ * Get properties of a domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String domainName, String domainTopicName);
+
+ /**
+ * List domain topics.
+ * List all the topics in a domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Domain name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDomainAsync(final String resourceGroupName, final String domainName);
+
+ /**
+ * Delete a domain topic.
+ * Delete existing domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String domainName, String domainTopicName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainUpdateParameters.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainUpdateParameters.java
new file mode 100644
index 000000000000..3725bb21f171
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/DomainUpdateParameters.java
@@ -0,0 +1,106 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Properties of the Domain update.
+ */
+@JsonFlatten
+public class DomainUpdateParameters {
+ /**
+ * Tags of the domains resource.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * This determines if traffic is allowed over public network. By default it
+ * is enabled.
+ * You can further restrict to specific IPs by configuring <seealso
+ * cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainUpdateParameterProperties.InboundIpRules"
+ * />. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * This can be used to restrict traffic from specific IPs instead of all
+ * IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ */
+ @JsonProperty(value = "properties.inboundIpRules")
+ private List inboundIpRules;
+
+ /**
+ * Get tags of the domains resource.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags of the domains resource.
+ *
+ * @param tags the tags value to set
+ * @return the DomainUpdateParameters object itself.
+ */
+ public DomainUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the publicNetworkAccess value
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set
+ * @return the DomainUpdateParameters object itself.
+ */
+ public DomainUpdateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @return the inboundIpRules value
+ */
+ public List inboundIpRules() {
+ return this.inboundIpRules;
+ }
+
+ /**
+ * Set this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @param inboundIpRules the inboundIpRules value to set
+ * @return the DomainUpdateParameters object itself.
+ */
+ public DomainUpdateParameters withInboundIpRules(List inboundIpRules) {
+ this.inboundIpRules = inboundIpRules;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domains.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domains.java
new file mode 100644
index 000000000000..3b95863ee45a
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Domains.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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.DomainsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Domains.
+ */
+public interface Domains extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * List keys for a domain.
+ * List the two keys used to publish to a domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSharedAccessKeysAsync(String resourceGroupName, String domainName);
+
+ /**
+ * Regenerate key for a domain.
+ * Regenerate a shared access key for a domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param keyName Key name to regenerate key1 or key2.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateKeyAsync(String resourceGroupName, String domainName, String keyName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventDeliverySchema.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventDeliverySchema.java
new file mode 100644
index 000000000000..59b50b846399
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventDeliverySchema.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EventDeliverySchema.
+ */
+public final class EventDeliverySchema extends ExpandableStringEnum {
+ /** Static value EventGridSchema for EventDeliverySchema. */
+ public static final EventDeliverySchema EVENT_GRID_SCHEMA = fromString("EventGridSchema");
+
+ /** Static value CustomInputSchema for EventDeliverySchema. */
+ public static final EventDeliverySchema CUSTOM_INPUT_SCHEMA = fromString("CustomInputSchema");
+
+ /** Static value CloudEventSchemaV1_0 for EventDeliverySchema. */
+ public static final EventDeliverySchema CLOUD_EVENT_SCHEMA_V1_0 = fromString("CloudEventSchemaV1_0");
+
+ /**
+ * Creates or finds a EventDeliverySchema from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EventDeliverySchema
+ */
+ @JsonCreator
+ public static EventDeliverySchema fromString(String name) {
+ return fromString(name, EventDeliverySchema.class);
+ }
+
+ /**
+ * @return known EventDeliverySchema values
+ */
+ public static Collection values() {
+ return values(EventDeliverySchema.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventHubEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventHubEventSubscriptionDestination.java
new file mode 100644
index 000000000000..3111ceb19763
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventHubEventSubscriptionDestination.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the event hub destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = EventHubEventSubscriptionDestination.class)
+@JsonTypeName("EventHub")
+@JsonFlatten
+public class EventHubEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource Id that represents the endpoint of an Event Hub
+ * destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Get the Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the EventHubEventSubscriptionDestination object itself.
+ */
+ public EventHubEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscription.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscription.java
new file mode 100644
index 000000000000..6a9c53718b6f
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscription.java
@@ -0,0 +1,302 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventSubscriptionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import java.util.List;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing EventSubscription.
+ */
+public interface EventSubscription extends HasInner, Indexable, Updatable, Refreshable, HasManager {
+ /**
+ * @return the deadLetterDestination value.
+ */
+ DeadLetterDestination deadLetterDestination();
+
+ /**
+ * @return the destination value.
+ */
+ EventSubscriptionDestination destination();
+
+ /**
+ * @return the eventDeliverySchema value.
+ */
+ EventDeliverySchema eventDeliverySchema();
+
+ /**
+ * @return the expirationTimeUtc value.
+ */
+ DateTime expirationTimeUtc();
+
+ /**
+ * @return the filter value.
+ */
+ EventSubscriptionFilter filter();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the labels value.
+ */
+ List labels();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ EventSubscriptionProvisioningState provisioningState();
+
+ /**
+ * @return the retryPolicy value.
+ */
+ RetryPolicy retryPolicy();
+
+ /**
+ * @return the topic value.
+ */
+ String topic();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the EventSubscription definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithScope, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of EventSubscription definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a EventSubscription definition.
+ */
+ interface Blank extends WithScope {
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify Scope.
+ */
+ interface WithScope {
+ /**
+ * Specifies scope.
+ * @param scope The identifier of the resource to which the event subscription needs to be created or updated. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic
+ * @return the next definition stage
+ */
+ WithCreate withScope(String scope);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify DeadLetterDestination.
+ */
+ interface WithDeadLetterDestination {
+ /**
+ * Specifies deadLetterDestination.
+ * @param deadLetterDestination The DeadLetter destination of the event subscription
+ * @return the next definition stage
+ */
+ WithCreate withDeadLetterDestination(DeadLetterDestination deadLetterDestination);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify Destination.
+ */
+ interface WithDestination {
+ /**
+ * Specifies destination.
+ * @param destination Information about the destination where events have to be delivered for the event subscription
+ * @return the next definition stage
+ */
+ WithCreate withDestination(EventSubscriptionDestination destination);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify EventDeliverySchema.
+ */
+ interface WithEventDeliverySchema {
+ /**
+ * Specifies eventDeliverySchema.
+ * @param eventDeliverySchema The event delivery schema for the event subscription. Possible values include: 'EventGridSchema', 'CustomInputSchema', 'CloudEventSchemaV1_0'
+ * @return the next definition stage
+ */
+ WithCreate withEventDeliverySchema(EventDeliverySchema eventDeliverySchema);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify ExpirationTimeUtc.
+ */
+ interface WithExpirationTimeUtc {
+ /**
+ * Specifies expirationTimeUtc.
+ * @param expirationTimeUtc Expiration time of the event subscription
+ * @return the next definition stage
+ */
+ WithCreate withExpirationTimeUtc(DateTime expirationTimeUtc);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify Filter.
+ */
+ interface WithFilter {
+ /**
+ * Specifies filter.
+ * @param filter Information about the filter for the event subscription
+ * @return the next definition stage
+ */
+ WithCreate withFilter(EventSubscriptionFilter filter);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify Labels.
+ */
+ interface WithLabels {
+ /**
+ * Specifies labels.
+ * @param labels List of user defined labels
+ * @return the next definition stage
+ */
+ WithCreate withLabels(List labels);
+ }
+
+ /**
+ * The stage of the eventsubscription definition allowing to specify RetryPolicy.
+ */
+ interface WithRetryPolicy {
+ /**
+ * Specifies retryPolicy.
+ * @param retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events
+ * @return the next definition stage
+ */
+ WithCreate withRetryPolicy(RetryPolicy retryPolicy);
+ }
+
+ /**
+ * 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.WithDeadLetterDestination, DefinitionStages.WithDestination, DefinitionStages.WithEventDeliverySchema, DefinitionStages.WithExpirationTimeUtc, DefinitionStages.WithFilter, DefinitionStages.WithLabels, DefinitionStages.WithRetryPolicy {
+ }
+ }
+ /**
+ * The template for a EventSubscription update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDeadLetterDestination, UpdateStages.WithDestination, UpdateStages.WithEventDeliverySchema, UpdateStages.WithExpirationTimeUtc, UpdateStages.WithFilter, UpdateStages.WithLabels, UpdateStages.WithRetryPolicy {
+ }
+
+ /**
+ * Grouping of EventSubscription update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the eventsubscription update allowing to specify DeadLetterDestination.
+ */
+ interface WithDeadLetterDestination {
+ /**
+ * Specifies deadLetterDestination.
+ * @param deadLetterDestination The DeadLetter destination of the event subscription
+ * @return the next update stage
+ */
+ Update withDeadLetterDestination(DeadLetterDestination deadLetterDestination);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify Destination.
+ */
+ interface WithDestination {
+ /**
+ * Specifies destination.
+ * @param destination Information about the destination where events have to be delivered for the event subscription
+ * @return the next update stage
+ */
+ Update withDestination(EventSubscriptionDestination destination);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify EventDeliverySchema.
+ */
+ interface WithEventDeliverySchema {
+ /**
+ * Specifies eventDeliverySchema.
+ * @param eventDeliverySchema The event delivery schema for the event subscription. Possible values include: 'EventGridSchema', 'CustomInputSchema', 'CloudEventSchemaV1_0'
+ * @return the next update stage
+ */
+ Update withEventDeliverySchema(EventDeliverySchema eventDeliverySchema);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify ExpirationTimeUtc.
+ */
+ interface WithExpirationTimeUtc {
+ /**
+ * Specifies expirationTimeUtc.
+ * @param expirationTimeUtc Information about the expiration time for the event subscription
+ * @return the next update stage
+ */
+ Update withExpirationTimeUtc(DateTime expirationTimeUtc);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify Filter.
+ */
+ interface WithFilter {
+ /**
+ * Specifies filter.
+ * @param filter Information about the filter for the event subscription
+ * @return the next update stage
+ */
+ Update withFilter(EventSubscriptionFilter filter);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify Labels.
+ */
+ interface WithLabels {
+ /**
+ * Specifies labels.
+ * @param labels List of user defined labels
+ * @return the next update stage
+ */
+ Update withLabels(List labels);
+ }
+
+ /**
+ * The stage of the eventsubscription update allowing to specify RetryPolicy.
+ */
+ interface WithRetryPolicy {
+ /**
+ * Specifies retryPolicy.
+ * @param retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events
+ * @return the next update stage
+ */
+ Update withRetryPolicy(RetryPolicy retryPolicy);
+ }
+
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionDestination.java
new file mode 100644
index 000000000000..afe0bb353ddb
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionDestination.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * Information about the destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = EventSubscriptionDestination.class)
+@JsonTypeName("EventSubscriptionDestination")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "WebHook", value = WebHookEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "EventHub", value = EventHubEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "StorageQueue", value = StorageQueueEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "HybridConnection", value = HybridConnectionEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "ServiceBusQueue", value = ServiceBusQueueEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "ServiceBusTopic", value = ServiceBusTopicEventSubscriptionDestination.class),
+ @JsonSubTypes.Type(name = "AzureFunction", value = AzureFunctionEventSubscriptionDestination.class)
+})
+public class EventSubscriptionDestination {
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFilter.java
new file mode 100644
index 000000000000..b9e860463b76
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFilter.java
@@ -0,0 +1,166 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Filter for the Event Subscription.
+ */
+public class EventSubscriptionFilter {
+ /**
+ * An optional string to filter events for an event subscription based on a
+ * resource path prefix.
+ * The format of this depends on the publisher of the events.
+ * Wildcard characters are not supported in this path.
+ */
+ @JsonProperty(value = "subjectBeginsWith")
+ private String subjectBeginsWith;
+
+ /**
+ * An optional string to filter events for an event subscription based on a
+ * resource path suffix.
+ * Wildcard characters are not supported in this path.
+ */
+ @JsonProperty(value = "subjectEndsWith")
+ private String subjectEndsWith;
+
+ /**
+ * A list of applicable event types that need to be part of the event
+ * subscription. If it is desired to subscribe to all default event types,
+ * set the IncludedEventTypes to null.
+ */
+ @JsonProperty(value = "includedEventTypes")
+ private List includedEventTypes;
+
+ /**
+ * Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the
+ * filter
+ * should be compared in a case sensitive manner.
+ */
+ @JsonProperty(value = "isSubjectCaseSensitive")
+ private Boolean isSubjectCaseSensitive;
+
+ /**
+ * An array of advanced filters that are used for filtering event
+ * subscriptions.
+ */
+ @JsonProperty(value = "advancedFilters")
+ private List advancedFilters;
+
+ /**
+ * Get an optional string to filter events for an event subscription based on a resource path prefix.
+ The format of this depends on the publisher of the events.
+ Wildcard characters are not supported in this path.
+ *
+ * @return the subjectBeginsWith value
+ */
+ public String subjectBeginsWith() {
+ return this.subjectBeginsWith;
+ }
+
+ /**
+ * Set an optional string to filter events for an event subscription based on a resource path prefix.
+ The format of this depends on the publisher of the events.
+ Wildcard characters are not supported in this path.
+ *
+ * @param subjectBeginsWith the subjectBeginsWith value to set
+ * @return the EventSubscriptionFilter object itself.
+ */
+ public EventSubscriptionFilter withSubjectBeginsWith(String subjectBeginsWith) {
+ this.subjectBeginsWith = subjectBeginsWith;
+ return this;
+ }
+
+ /**
+ * Get an optional string to filter events for an event subscription based on a resource path suffix.
+ Wildcard characters are not supported in this path.
+ *
+ * @return the subjectEndsWith value
+ */
+ public String subjectEndsWith() {
+ return this.subjectEndsWith;
+ }
+
+ /**
+ * Set an optional string to filter events for an event subscription based on a resource path suffix.
+ Wildcard characters are not supported in this path.
+ *
+ * @param subjectEndsWith the subjectEndsWith value to set
+ * @return the EventSubscriptionFilter object itself.
+ */
+ public EventSubscriptionFilter withSubjectEndsWith(String subjectEndsWith) {
+ this.subjectEndsWith = subjectEndsWith;
+ return this;
+ }
+
+ /**
+ * Get a list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.
+ *
+ * @return the includedEventTypes value
+ */
+ public List includedEventTypes() {
+ return this.includedEventTypes;
+ }
+
+ /**
+ * Set a list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.
+ *
+ * @param includedEventTypes the includedEventTypes value to set
+ * @return the EventSubscriptionFilter object itself.
+ */
+ public EventSubscriptionFilter withIncludedEventTypes(List includedEventTypes) {
+ this.includedEventTypes = includedEventTypes;
+ return this;
+ }
+
+ /**
+ * Get specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter
+ should be compared in a case sensitive manner.
+ *
+ * @return the isSubjectCaseSensitive value
+ */
+ public Boolean isSubjectCaseSensitive() {
+ return this.isSubjectCaseSensitive;
+ }
+
+ /**
+ * Set specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter
+ should be compared in a case sensitive manner.
+ *
+ * @param isSubjectCaseSensitive the isSubjectCaseSensitive value to set
+ * @return the EventSubscriptionFilter object itself.
+ */
+ public EventSubscriptionFilter withIsSubjectCaseSensitive(Boolean isSubjectCaseSensitive) {
+ this.isSubjectCaseSensitive = isSubjectCaseSensitive;
+ return this;
+ }
+
+ /**
+ * Get an array of advanced filters that are used for filtering event subscriptions.
+ *
+ * @return the advancedFilters value
+ */
+ public List advancedFilters() {
+ return this.advancedFilters;
+ }
+
+ /**
+ * Set an array of advanced filters that are used for filtering event subscriptions.
+ *
+ * @param advancedFilters the advancedFilters value to set
+ * @return the EventSubscriptionFilter object itself.
+ */
+ public EventSubscriptionFilter withAdvancedFilters(List advancedFilters) {
+ this.advancedFilters = advancedFilters;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFullUrl.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFullUrl.java
new file mode 100644
index 000000000000..c4ab571b77ef
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionFullUrl.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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventSubscriptionFullUrlInner;
+
+/**
+ * Type representing EventSubscriptionFullUrl.
+ */
+public interface EventSubscriptionFullUrl extends HasInner, HasManager {
+ /**
+ * @return the endpointUrl value.
+ */
+ String endpointUrl();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionProvisioningState.java
new file mode 100644
index 000000000000..09e65c8f9964
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionProvisioningState.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EventSubscriptionProvisioningState.
+ */
+public final class EventSubscriptionProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState FAILED = fromString("Failed");
+
+ /** Static value AwaitingManualAction for EventSubscriptionProvisioningState. */
+ public static final EventSubscriptionProvisioningState AWAITING_MANUAL_ACTION = fromString("AwaitingManualAction");
+
+ /**
+ * Creates or finds a EventSubscriptionProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EventSubscriptionProvisioningState
+ */
+ @JsonCreator
+ public static EventSubscriptionProvisioningState fromString(String name) {
+ return fromString(name, EventSubscriptionProvisioningState.class);
+ }
+
+ /**
+ * @return known EventSubscriptionProvisioningState values
+ */
+ public static Collection values() {
+ return values(EventSubscriptionProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionUpdateParameters.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionUpdateParameters.java
new file mode 100644
index 000000000000..8ac2d46326b0
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptionUpdateParameters.java
@@ -0,0 +1,204 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of the Event Subscription update.
+ */
+public class EventSubscriptionUpdateParameters {
+ /**
+ * Information about the destination where events have to be delivered for
+ * the event subscription.
+ */
+ @JsonProperty(value = "destination")
+ private EventSubscriptionDestination destination;
+
+ /**
+ * Information about the filter for the event subscription.
+ */
+ @JsonProperty(value = "filter")
+ private EventSubscriptionFilter filter;
+
+ /**
+ * List of user defined labels.
+ */
+ @JsonProperty(value = "labels")
+ private List labels;
+
+ /**
+ * Information about the expiration time for the event subscription.
+ */
+ @JsonProperty(value = "expirationTimeUtc")
+ private DateTime expirationTimeUtc;
+
+ /**
+ * The event delivery schema for the event subscription. Possible values
+ * include: 'EventGridSchema', 'CustomInputSchema', 'CloudEventSchemaV1_0'.
+ */
+ @JsonProperty(value = "eventDeliverySchema")
+ private EventDeliverySchema eventDeliverySchema;
+
+ /**
+ * The retry policy for events. This can be used to configure maximum
+ * number of delivery attempts and time to live for events.
+ */
+ @JsonProperty(value = "retryPolicy")
+ private RetryPolicy retryPolicy;
+
+ /**
+ * The DeadLetter destination of the event subscription.
+ */
+ @JsonProperty(value = "deadLetterDestination")
+ private DeadLetterDestination deadLetterDestination;
+
+ /**
+ * Get information about the destination where events have to be delivered for the event subscription.
+ *
+ * @return the destination value
+ */
+ public EventSubscriptionDestination destination() {
+ return this.destination;
+ }
+
+ /**
+ * Set information about the destination where events have to be delivered for the event subscription.
+ *
+ * @param destination the destination value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withDestination(EventSubscriptionDestination destination) {
+ this.destination = destination;
+ return this;
+ }
+
+ /**
+ * Get information about the filter for the event subscription.
+ *
+ * @return the filter value
+ */
+ public EventSubscriptionFilter filter() {
+ return this.filter;
+ }
+
+ /**
+ * Set information about the filter for the event subscription.
+ *
+ * @param filter the filter value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withFilter(EventSubscriptionFilter filter) {
+ this.filter = filter;
+ return this;
+ }
+
+ /**
+ * Get list of user defined labels.
+ *
+ * @return the labels value
+ */
+ public List labels() {
+ return this.labels;
+ }
+
+ /**
+ * Set list of user defined labels.
+ *
+ * @param labels the labels value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withLabels(List labels) {
+ this.labels = labels;
+ return this;
+ }
+
+ /**
+ * Get information about the expiration time for the event subscription.
+ *
+ * @return the expirationTimeUtc value
+ */
+ public DateTime expirationTimeUtc() {
+ return this.expirationTimeUtc;
+ }
+
+ /**
+ * Set information about the expiration time for the event subscription.
+ *
+ * @param expirationTimeUtc the expirationTimeUtc value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withExpirationTimeUtc(DateTime expirationTimeUtc) {
+ this.expirationTimeUtc = expirationTimeUtc;
+ return this;
+ }
+
+ /**
+ * Get the event delivery schema for the event subscription. Possible values include: 'EventGridSchema', 'CustomInputSchema', 'CloudEventSchemaV1_0'.
+ *
+ * @return the eventDeliverySchema value
+ */
+ public EventDeliverySchema eventDeliverySchema() {
+ return this.eventDeliverySchema;
+ }
+
+ /**
+ * Set the event delivery schema for the event subscription. Possible values include: 'EventGridSchema', 'CustomInputSchema', 'CloudEventSchemaV1_0'.
+ *
+ * @param eventDeliverySchema the eventDeliverySchema value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withEventDeliverySchema(EventDeliverySchema eventDeliverySchema) {
+ this.eventDeliverySchema = eventDeliverySchema;
+ return this;
+ }
+
+ /**
+ * Get the retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events.
+ *
+ * @return the retryPolicy value
+ */
+ public RetryPolicy retryPolicy() {
+ return this.retryPolicy;
+ }
+
+ /**
+ * Set the retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events.
+ *
+ * @param retryPolicy the retryPolicy value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = retryPolicy;
+ return this;
+ }
+
+ /**
+ * Get the DeadLetter destination of the event subscription.
+ *
+ * @return the deadLetterDestination value
+ */
+ public DeadLetterDestination deadLetterDestination() {
+ return this.deadLetterDestination;
+ }
+
+ /**
+ * Set the DeadLetter destination of the event subscription.
+ *
+ * @param deadLetterDestination the deadLetterDestination value to set
+ * @return the EventSubscriptionUpdateParameters object itself.
+ */
+ public EventSubscriptionUpdateParameters withDeadLetterDestination(DeadLetterDestination deadLetterDestination) {
+ this.deadLetterDestination = deadLetterDestination;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptions.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptions.java
new file mode 100644
index 000000000000..8dab92e83e67
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventSubscriptions.java
@@ -0,0 +1,146 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventSubscriptionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing EventSubscriptions.
+ */
+public interface EventSubscriptions extends SupportsCreating, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Get an event subscription.
+ * Get properties of an event subscription.
+ *
+ * @param scope The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.
+ * @param eventSubscriptionName Name of the event subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String scope, String eventSubscriptionName);
+
+ /**
+ * Delete an event subscription.
+ * Delete an existing event subscription.
+ *
+ * @param scope The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.
+ * @param eventSubscriptionName Name of the event subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String scope, String eventSubscriptionName);
+
+ /**
+ * Get full URL of an event subscription.
+ * Get the full endpoint URL for an event subscription.
+ *
+ * @param scope The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.
+ * @param eventSubscriptionName Name of the event subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getFullUrlAsync(String scope, String eventSubscriptionName);
+
+ /**
+ * List all global event subscriptions for a topic type.
+ * List all global event subscriptions under an Azure subscription for a topic type.
+ *
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGlobalBySubscriptionForTopicTypeAsync(final String topicTypeName);
+
+ /**
+ * List all global event subscriptions under a resource group for a topic type.
+ * List all global event subscriptions under a resource group for a specific topic type.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listGlobalByResourceGroupForTopicTypeAsync(final String resourceGroupName, final String topicTypeName);
+
+ /**
+ * List all regional event subscriptions under an Azure subscription.
+ * List all event subscriptions from the given location under a specific Azure subscription.
+ *
+ * @param location Name of the location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listRegionalBySubscriptionAsync(final String location);
+
+ /**
+ * List all regional event subscriptions under an Azure subscription and resource group.
+ * List all event subscriptions from the given location under a specific Azure subscription and resource group.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param location Name of the location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listRegionalByResourceGroupAsync(final String resourceGroupName, final String location);
+
+ /**
+ * List all regional event subscriptions under an Azure subscription for a topic type.
+ * List all event subscriptions from the given location under a specific Azure subscription and topic type.
+ *
+ * @param location Name of the location.
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listRegionalBySubscriptionForTopicTypeAsync(final String location, final String topicTypeName);
+
+ /**
+ * List all regional event subscriptions under an Azure subscription and resource group for a topic type.
+ * List all event subscriptions from the given location under a specific Azure subscription and resource group and topic type.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param location Name of the location.
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listRegionalByResourceGroupForTopicTypeAsync(final String resourceGroupName, final String location, final String topicTypeName);
+
+ /**
+ * List all event subscriptions for a specific topic.
+ * List all event subscriptions that have been created for a specific topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param providerNamespace Namespace of the provider of the topic.
+ * @param resourceTypeName Name of the resource type.
+ * @param resourceName Name of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceAsync(final String resourceGroupName, final String providerNamespace, final String resourceTypeName, final String resourceName);
+
+ /**
+ * List all event subscriptions for a specific domain topic.
+ * List all event subscriptions that have been created for a specific domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the top level domain.
+ * @param topicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDomainTopicAsync(final String resourceGroupName, final String domainName, final String topicName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventType.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventType.java
new file mode 100644
index 000000000000..4ca93ffdc154
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/EventType.java
@@ -0,0 +1,55 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventTypeInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+
+/**
+ * Type representing EventType.
+ */
+public interface EventType extends HasInner, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isInDefaultSet value.
+ */
+ Boolean isInDefaultSet();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the schemaUrl value.
+ */
+ String schemaUrl();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/HybridConnectionEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/HybridConnectionEventSubscriptionDestination.java
new file mode 100644
index 000000000000..e72a65085ca8
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/HybridConnectionEventSubscriptionDestination.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the HybridConnection destination for an event
+ * subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = HybridConnectionEventSubscriptionDestination.class)
+@JsonTypeName("HybridConnection")
+@JsonFlatten
+public class HybridConnectionEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource ID of an hybrid connection that is the destination of
+ * an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Get the Azure Resource ID of an hybrid connection that is the destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource ID of an hybrid connection that is the destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the HybridConnectionEventSubscriptionDestination object itself.
+ */
+ public HybridConnectionEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InboundIpRule.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InboundIpRule.java
new file mode 100644
index 000000000000..54780e9e1acf
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InboundIpRule.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The InboundIpRule model.
+ */
+public class InboundIpRule {
+ /**
+ * IP Address in CIDR notation e.g., 10.0.0.0/8.
+ */
+ @JsonProperty(value = "ipMask")
+ private String ipMask;
+
+ /**
+ * Action to perform based on the match or no match of the IpMask. Possible
+ * values include: 'Allow'.
+ */
+ @JsonProperty(value = "action")
+ private IpActionType action;
+
+ /**
+ * Get iP Address in CIDR notation e.g., 10.0.0.0/8.
+ *
+ * @return the ipMask value
+ */
+ public String ipMask() {
+ return this.ipMask;
+ }
+
+ /**
+ * Set iP Address in CIDR notation e.g., 10.0.0.0/8.
+ *
+ * @param ipMask the ipMask value to set
+ * @return the InboundIpRule object itself.
+ */
+ public InboundIpRule withIpMask(String ipMask) {
+ this.ipMask = ipMask;
+ return this;
+ }
+
+ /**
+ * Get action to perform based on the match or no match of the IpMask. Possible values include: 'Allow'.
+ *
+ * @return the action value
+ */
+ public IpActionType action() {
+ return this.action;
+ }
+
+ /**
+ * Set action to perform based on the match or no match of the IpMask. Possible values include: 'Allow'.
+ *
+ * @param action the action value to set
+ * @return the InboundIpRule object itself.
+ */
+ public InboundIpRule withAction(IpActionType action) {
+ this.action = action;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchema.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchema.java
new file mode 100644
index 000000000000..7d936fbf2b76
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchema.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for InputSchema.
+ */
+public final class InputSchema extends ExpandableStringEnum {
+ /** Static value EventGridSchema for InputSchema. */
+ public static final InputSchema EVENT_GRID_SCHEMA = fromString("EventGridSchema");
+
+ /** Static value CustomEventSchema for InputSchema. */
+ public static final InputSchema CUSTOM_EVENT_SCHEMA = fromString("CustomEventSchema");
+
+ /** Static value CloudEventSchemaV1_0 for InputSchema. */
+ public static final InputSchema CLOUD_EVENT_SCHEMA_V1_0 = fromString("CloudEventSchemaV1_0");
+
+ /**
+ * Creates or finds a InputSchema from its string representation.
+ * @param name a name to look for
+ * @return the corresponding InputSchema
+ */
+ @JsonCreator
+ public static InputSchema fromString(String name) {
+ return fromString(name, InputSchema.class);
+ }
+
+ /**
+ * @return known InputSchema values
+ */
+ public static Collection values() {
+ return values(InputSchema.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchemaMapping.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchemaMapping.java
new file mode 100644
index 000000000000..86812c2bf686
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/InputSchemaMapping.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * By default, Event Grid expects events to be in the Event Grid event schema.
+ * Specifying an input schema mapping enables publishing to Event Grid using a
+ * custom input schema. Currently, the only supported type of
+ * InputSchemaMapping is 'JsonInputSchemaMapping'.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "inputSchemaMappingType", defaultImpl = InputSchemaMapping.class)
+@JsonTypeName("InputSchemaMapping")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Json", value = JsonInputSchemaMapping.class)
+})
+public class InputSchemaMapping {
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/IpActionType.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/IpActionType.java
new file mode 100644
index 000000000000..5fbe27a47a33
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/IpActionType.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for IpActionType.
+ */
+public final class IpActionType extends ExpandableStringEnum {
+ /** Static value Allow for IpActionType. */
+ public static final IpActionType ALLOW = fromString("Allow");
+
+ /**
+ * Creates or finds a IpActionType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding IpActionType
+ */
+ @JsonCreator
+ public static IpActionType fromString(String name) {
+ return fromString(name, IpActionType.class);
+ }
+
+ /**
+ * @return known IpActionType values
+ */
+ public static Collection values() {
+ return values(IpActionType.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonField.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonField.java
new file mode 100644
index 000000000000..4a9aa25b770c
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonField.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This is used to express the source of an input schema mapping for a single
+ * target field in the Event Grid Event schema. This is currently used in the
+ * mappings for the 'id', 'topic' and 'eventtime' properties. This represents a
+ * field in the input event schema.
+ */
+public class JsonField {
+ /**
+ * Name of a field in the input event schema that's to be used as the
+ * source of a mapping.
+ */
+ @JsonProperty(value = "sourceField")
+ private String sourceField;
+
+ /**
+ * Get name of a field in the input event schema that's to be used as the source of a mapping.
+ *
+ * @return the sourceField value
+ */
+ public String sourceField() {
+ return this.sourceField;
+ }
+
+ /**
+ * Set name of a field in the input event schema that's to be used as the source of a mapping.
+ *
+ * @param sourceField the sourceField value to set
+ * @return the JsonField object itself.
+ */
+ public JsonField withSourceField(String sourceField) {
+ this.sourceField = sourceField;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonFieldWithDefault.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonFieldWithDefault.java
new file mode 100644
index 000000000000..a13cbb957f50
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonFieldWithDefault.java
@@ -0,0 +1,79 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * This is used to express the source of an input schema mapping for a single
+ * target field
+ * in the Event Grid Event schema. This is currently used in the mappings for
+ * the 'subject',
+ * 'eventtype' and 'dataversion' properties. This represents a field in the
+ * input event schema
+ * along with a default value to be used, and at least one of these two
+ * properties should be provided.
+ */
+public class JsonFieldWithDefault {
+ /**
+ * Name of a field in the input event schema that's to be used as the
+ * source of a mapping.
+ */
+ @JsonProperty(value = "sourceField")
+ private String sourceField;
+
+ /**
+ * The default value to be used for mapping when a SourceField is not
+ * provided or if there's no property with the specified name in the
+ * published JSON event payload.
+ */
+ @JsonProperty(value = "defaultValue")
+ private String defaultValue;
+
+ /**
+ * Get name of a field in the input event schema that's to be used as the source of a mapping.
+ *
+ * @return the sourceField value
+ */
+ public String sourceField() {
+ return this.sourceField;
+ }
+
+ /**
+ * Set name of a field in the input event schema that's to be used as the source of a mapping.
+ *
+ * @param sourceField the sourceField value to set
+ * @return the JsonFieldWithDefault object itself.
+ */
+ public JsonFieldWithDefault withSourceField(String sourceField) {
+ this.sourceField = sourceField;
+ return this;
+ }
+
+ /**
+ * Get the default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.
+ *
+ * @return the defaultValue value
+ */
+ public String defaultValue() {
+ return this.defaultValue;
+ }
+
+ /**
+ * Set the default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.
+ *
+ * @param defaultValue the defaultValue value to set
+ * @return the JsonFieldWithDefault object itself.
+ */
+ public JsonFieldWithDefault withDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonInputSchemaMapping.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonInputSchemaMapping.java
new file mode 100644
index 000000000000..c8595bc0b4fc
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/JsonInputSchemaMapping.java
@@ -0,0 +1,185 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * This enables publishing to Event Grid using a custom input schema. This can
+ * be used to map properties from a custom input JSON schema to the Event Grid
+ * event schema.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "inputSchemaMappingType", defaultImpl = JsonInputSchemaMapping.class)
+@JsonTypeName("Json")
+@JsonFlatten
+public class JsonInputSchemaMapping extends InputSchemaMapping {
+ /**
+ * The mapping information for the Id property of the Event Grid Event.
+ */
+ @JsonProperty(value = "properties.id")
+ private JsonField id;
+
+ /**
+ * The mapping information for the Topic property of the Event Grid Event.
+ */
+ @JsonProperty(value = "properties.topic")
+ private JsonField topic;
+
+ /**
+ * The mapping information for the EventTime property of the Event Grid
+ * Event.
+ */
+ @JsonProperty(value = "properties.eventTime")
+ private JsonField eventTime;
+
+ /**
+ * The mapping information for the EventType property of the Event Grid
+ * Event.
+ */
+ @JsonProperty(value = "properties.eventType")
+ private JsonFieldWithDefault eventType;
+
+ /**
+ * The mapping information for the Subject property of the Event Grid
+ * Event.
+ */
+ @JsonProperty(value = "properties.subject")
+ private JsonFieldWithDefault subject;
+
+ /**
+ * The mapping information for the DataVersion property of the Event Grid
+ * Event.
+ */
+ @JsonProperty(value = "properties.dataVersion")
+ private JsonFieldWithDefault dataVersion;
+
+ /**
+ * Get the mapping information for the Id property of the Event Grid Event.
+ *
+ * @return the id value
+ */
+ public JsonField id() {
+ return this.id;
+ }
+
+ /**
+ * Set the mapping information for the Id property of the Event Grid Event.
+ *
+ * @param id the id value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withId(JsonField id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the mapping information for the Topic property of the Event Grid Event.
+ *
+ * @return the topic value
+ */
+ public JsonField topic() {
+ return this.topic;
+ }
+
+ /**
+ * Set the mapping information for the Topic property of the Event Grid Event.
+ *
+ * @param topic the topic value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withTopic(JsonField topic) {
+ this.topic = topic;
+ return this;
+ }
+
+ /**
+ * Get the mapping information for the EventTime property of the Event Grid Event.
+ *
+ * @return the eventTime value
+ */
+ public JsonField eventTime() {
+ return this.eventTime;
+ }
+
+ /**
+ * Set the mapping information for the EventTime property of the Event Grid Event.
+ *
+ * @param eventTime the eventTime value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withEventTime(JsonField eventTime) {
+ this.eventTime = eventTime;
+ return this;
+ }
+
+ /**
+ * Get the mapping information for the EventType property of the Event Grid Event.
+ *
+ * @return the eventType value
+ */
+ public JsonFieldWithDefault eventType() {
+ return this.eventType;
+ }
+
+ /**
+ * Set the mapping information for the EventType property of the Event Grid Event.
+ *
+ * @param eventType the eventType value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withEventType(JsonFieldWithDefault eventType) {
+ this.eventType = eventType;
+ return this;
+ }
+
+ /**
+ * Get the mapping information for the Subject property of the Event Grid Event.
+ *
+ * @return the subject value
+ */
+ public JsonFieldWithDefault subject() {
+ return this.subject;
+ }
+
+ /**
+ * Set the mapping information for the Subject property of the Event Grid Event.
+ *
+ * @param subject the subject value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withSubject(JsonFieldWithDefault subject) {
+ this.subject = subject;
+ return this;
+ }
+
+ /**
+ * Get the mapping information for the DataVersion property of the Event Grid Event.
+ *
+ * @return the dataVersion value
+ */
+ public JsonFieldWithDefault dataVersion() {
+ return this.dataVersion;
+ }
+
+ /**
+ * Set the mapping information for the DataVersion property of the Event Grid Event.
+ *
+ * @param dataVersion the dataVersion value to set
+ * @return the JsonInputSchemaMapping object itself.
+ */
+ public JsonInputSchemaMapping withDataVersion(JsonFieldWithDefault dataVersion) {
+ this.dataVersion = dataVersion;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanAdvancedFilter.java
new file mode 100644
index 000000000000..17325f732f71
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberGreaterThan Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberGreaterThanAdvancedFilter.class)
+@JsonTypeName("NumberGreaterThan")
+public class NumberGreaterThanAdvancedFilter extends AdvancedFilter {
+ /**
+ * The filter value.
+ */
+ @JsonProperty(value = "value")
+ private Double value;
+
+ /**
+ * Get the filter value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+ /**
+ * Set the filter value.
+ *
+ * @param value the value value to set
+ * @return the NumberGreaterThanAdvancedFilter object itself.
+ */
+ public NumberGreaterThanAdvancedFilter withValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanOrEqualsAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanOrEqualsAdvancedFilter.java
new file mode 100644
index 000000000000..9fc86f1f56d2
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberGreaterThanOrEqualsAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberGreaterThanOrEquals Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberGreaterThanOrEqualsAdvancedFilter.class)
+@JsonTypeName("NumberGreaterThanOrEquals")
+public class NumberGreaterThanOrEqualsAdvancedFilter extends AdvancedFilter {
+ /**
+ * The filter value.
+ */
+ @JsonProperty(value = "value")
+ private Double value;
+
+ /**
+ * Get the filter value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+ /**
+ * Set the filter value.
+ *
+ * @param value the value value to set
+ * @return the NumberGreaterThanOrEqualsAdvancedFilter object itself.
+ */
+ public NumberGreaterThanOrEqualsAdvancedFilter withValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberInAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberInAdvancedFilter.java
new file mode 100644
index 000000000000..97aa71eb1233
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberInAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberIn Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberInAdvancedFilter.class)
+@JsonTypeName("NumberIn")
+public class NumberInAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the NumberInAdvancedFilter object itself.
+ */
+ public NumberInAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanAdvancedFilter.java
new file mode 100644
index 000000000000..72e1cf7c48aa
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberLessThan Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberLessThanAdvancedFilter.class)
+@JsonTypeName("NumberLessThan")
+public class NumberLessThanAdvancedFilter extends AdvancedFilter {
+ /**
+ * The filter value.
+ */
+ @JsonProperty(value = "value")
+ private Double value;
+
+ /**
+ * Get the filter value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+ /**
+ * Set the filter value.
+ *
+ * @param value the value value to set
+ * @return the NumberLessThanAdvancedFilter object itself.
+ */
+ public NumberLessThanAdvancedFilter withValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanOrEqualsAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanOrEqualsAdvancedFilter.java
new file mode 100644
index 000000000000..bd2069042629
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberLessThanOrEqualsAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberLessThanOrEquals Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberLessThanOrEqualsAdvancedFilter.class)
+@JsonTypeName("NumberLessThanOrEquals")
+public class NumberLessThanOrEqualsAdvancedFilter extends AdvancedFilter {
+ /**
+ * The filter value.
+ */
+ @JsonProperty(value = "value")
+ private Double value;
+
+ /**
+ * Get the filter value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+ /**
+ * Set the filter value.
+ *
+ * @param value the value value to set
+ * @return the NumberLessThanOrEqualsAdvancedFilter object itself.
+ */
+ public NumberLessThanOrEqualsAdvancedFilter withValue(Double value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberNotInAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberNotInAdvancedFilter.java
new file mode 100644
index 000000000000..9ddcde8b204f
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/NumberNotInAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * NumberNotIn Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = NumberNotInAdvancedFilter.class)
+@JsonTypeName("NumberNotIn")
+public class NumberNotInAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the NumberNotInAdvancedFilter object itself.
+ */
+ public NumberNotInAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operation.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operation.java
new file mode 100644
index 000000000000..66d89d7782ad
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operation.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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationInfo display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ Object properties();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/OperationInfo.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/OperationInfo.java
new file mode 100644
index 000000000000..5c3360d7de80
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/OperationInfo.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about an operation.
+ */
+public class OperationInfo {
+ /**
+ * Name of the provider.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Name of the resource type.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Name of the operation.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Description of the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get name of the provider.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set name of the provider.
+ *
+ * @param provider the provider value to set
+ * @return the OperationInfo object itself.
+ */
+ public OperationInfo withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get name of the resource type.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set name of the resource type.
+ *
+ * @param resource the resource value to set
+ * @return the OperationInfo object itself.
+ */
+ public OperationInfo withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get name of the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set name of the operation.
+ *
+ * @param operation the operation value to set
+ * @return the OperationInfo object itself.
+ */
+ public OperationInfo withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the operation.
+ *
+ * @param description the description value to set
+ * @return the OperationInfo object itself.
+ */
+ public OperationInfo withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operations.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operations.java
new file mode 100644
index 000000000000..98c195f497e0
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Operations.java
@@ -0,0 +1,28 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * List available operations.
+ * List the available operations supported by the Microsoft.EventGrid resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PersistedConnectionStatus.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PersistedConnectionStatus.java
new file mode 100644
index 000000000000..97c264bb9376
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PersistedConnectionStatus.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PersistedConnectionStatus.
+ */
+public final class PersistedConnectionStatus extends ExpandableStringEnum {
+ /** Static value Pending for PersistedConnectionStatus. */
+ public static final PersistedConnectionStatus PENDING = fromString("Pending");
+
+ /** Static value Approved for PersistedConnectionStatus. */
+ public static final PersistedConnectionStatus APPROVED = fromString("Approved");
+
+ /** Static value Rejected for PersistedConnectionStatus. */
+ public static final PersistedConnectionStatus REJECTED = fromString("Rejected");
+
+ /** Static value Disconnected for PersistedConnectionStatus. */
+ public static final PersistedConnectionStatus DISCONNECTED = fromString("Disconnected");
+
+ /**
+ * Creates or finds a PersistedConnectionStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PersistedConnectionStatus
+ */
+ @JsonCreator
+ public static PersistedConnectionStatus fromString(String name) {
+ return fromString(name, PersistedConnectionStatus.class);
+ }
+
+ /**
+ * @return known PersistedConnectionStatus values
+ */
+ public static Collection values() {
+ return values(PersistedConnectionStatus.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpoint.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpoint.java
new file mode 100644
index 000000000000..3864fa8f51cc
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpoint.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * PrivateEndpoint information.
+ */
+public class PrivateEndpoint {
+ /**
+ * The ARM identifier for Private Endpoint.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get the ARM identifier for Private Endpoint.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the ARM identifier for Private Endpoint.
+ *
+ * @param id the id value to set
+ * @return the PrivateEndpoint object itself.
+ */
+ public PrivateEndpoint withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnection.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnection.java
new file mode 100644
index 000000000000..8154ee7e6078
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnection.java
@@ -0,0 +1,118 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.PrivateEndpointConnectionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import java.util.List;
+
+/**
+ * Type representing PrivateEndpointConnection.
+ */
+public interface PrivateEndpointConnection extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the groupIds value.
+ */
+ List groupIds();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the privateEndpoint value.
+ */
+ PrivateEndpoint privateEndpoint();
+
+ /**
+ * @return the privateLinkServiceConnectionState value.
+ */
+ ConnectionState privateLinkServiceConnectionState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ResourceProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The template for a PrivateEndpointConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithGroupIds, UpdateStages.WithPrivateEndpoint, UpdateStages.WithPrivateLinkServiceConnectionState, UpdateStages.WithProvisioningState {
+ }
+
+ /**
+ * Grouping of PrivateEndpointConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the privateendpointconnection update allowing to specify GroupIds.
+ */
+ interface WithGroupIds {
+ /**
+ * Specifies groupIds.
+ * @param groupIds GroupIds from the private link service resource
+ * @return the next update stage
+ */
+ Update withGroupIds(List groupIds);
+ }
+
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateEndpoint.
+ */
+ interface WithPrivateEndpoint {
+ /**
+ * Specifies privateEndpoint.
+ * @param privateEndpoint The Private Endpoint resource for this Connection
+ * @return the next update stage
+ */
+ Update withPrivateEndpoint(PrivateEndpoint privateEndpoint);
+ }
+
+ /**
+ * The stage of the privateendpointconnection update allowing to specify PrivateLinkServiceConnectionState.
+ */
+ interface WithPrivateLinkServiceConnectionState {
+ /**
+ * Specifies privateLinkServiceConnectionState.
+ * @param privateLinkServiceConnectionState Details about the state of the connection
+ * @return the next update stage
+ */
+ Update withPrivateLinkServiceConnectionState(ConnectionState privateLinkServiceConnectionState);
+ }
+
+ /**
+ * The stage of the privateendpointconnection update allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ * @param provisioningState Provisioning state of the Private Endpoint Connection. Possible values include: 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'
+ * @return the next update stage
+ */
+ Update withProvisioningState(ResourceProvisioningState provisioningState);
+ }
+
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnections.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnections.java
new file mode 100644
index 000000000000..ca8eef5e7a27
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateEndpointConnections.java
@@ -0,0 +1,58 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.PrivateEndpointConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PrivateEndpointConnections.
+ */
+public interface PrivateEndpointConnections extends HasInner {
+ /**
+ * Get a specific private endpoint connection.
+ * Get a specific private endpoint connection under a topic or domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param parentType The type of the parent resource. This can be either \'topics\' or \'domains\'. Possible values include: 'topics', 'domains'
+ * @param parentName The name of the parent resource (namely, either, the topic name or domain name).
+ * @param privateEndpointConnectionName The name of the private endpoint connection connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String parentType, String parentName, String privateEndpointConnectionName);
+
+ /**
+ * Delete a specific private endpoint connection.
+ * Delete a specific private endpoint connection under a topic or domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param parentType The type of the parent resource. This can be either \'topics\' or \'domains\'. Possible values include: 'topics', 'domains'
+ * @param parentName The name of the parent resource (namely, either, the topic name or domain name).
+ * @param privateEndpointConnectionName The name of the private endpoint connection connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String parentType, String parentName, String privateEndpointConnectionName);
+
+ /**
+ * Lists all private endpoint connections under a resource.
+ * Get all private endpoint connections under a topic or domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param parentType The type of the parent resource. This can be either \'topics\' or \'domains\'. Possible values include: 'topics', 'domains'
+ * @param parentName The name of the parent resource (namely, either, the topic name or domain name).
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceAsync(final String resourceGroupName, final String parentType, final String parentName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResource.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResource.java
new file mode 100644
index 000000000000..367995dce2b8
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResource.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.PrivateLinkResourceInner;
+import java.util.List;
+
+/**
+ * Type representing PrivateLinkResource.
+ */
+public interface PrivateLinkResource extends HasInner, HasManager {
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the groupId value.
+ */
+ String groupId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the requiredMembers value.
+ */
+ List requiredMembers();
+
+ /**
+ * @return the requiredZoneNames value.
+ */
+ List requiredZoneNames();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResources.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResources.java
new file mode 100644
index 000000000000..53d823f65f32
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PrivateLinkResources.java
@@ -0,0 +1,42 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import rx.Observable;
+
+/**
+ * Type representing PrivateLinkResources.
+ */
+public interface PrivateLinkResources {
+ /**
+ * Get a private link resource.
+ * Get properties of a private link resource.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param parentType The type of the parent resource. This can be either \'topics\' or \'domains\'.
+ * @param parentName The name of the parent resource (namely, either, the topic name or domain name).
+ * @param privateLinkResourceName The name of private link resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String parentType, String parentName, String privateLinkResourceName);
+
+ /**
+ * List private link resources under specific topic or domain.
+ * List all the private link resources under a topic or domain.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param parentType The type of the parent resource. This can be either \'topics\' or \'domains\'.
+ * @param parentName The name of the parent resource (namely, either, the topic name or domain name).
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceAsync(final String resourceGroupName, final String parentType, final String parentName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PublicNetworkAccess.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PublicNetworkAccess.java
new file mode 100644
index 000000000000..64990a81dd4a
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/PublicNetworkAccess.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PublicNetworkAccess.
+ */
+public final class PublicNetworkAccess extends ExpandableStringEnum {
+ /** Static value Enabled for PublicNetworkAccess. */
+ public static final PublicNetworkAccess ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for PublicNetworkAccess. */
+ public static final PublicNetworkAccess DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a PublicNetworkAccess from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PublicNetworkAccess
+ */
+ @JsonCreator
+ public static PublicNetworkAccess fromString(String name) {
+ return fromString(name, PublicNetworkAccess.class);
+ }
+
+ /**
+ * @return known PublicNetworkAccess values
+ */
+ public static Collection values() {
+ return values(PublicNetworkAccess.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceProvisioningState.java
new file mode 100644
index 000000000000..ccbe6e52ba8d
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceProvisioningState.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ResourceProvisioningState.
+ */
+public final class ResourceProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for ResourceProvisioningState. */
+ public static final ResourceProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for ResourceProvisioningState. */
+ public static final ResourceProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for ResourceProvisioningState. */
+ public static final ResourceProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for ResourceProvisioningState. */
+ public static final ResourceProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for ResourceProvisioningState. */
+ public static final ResourceProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for ResourceProvisioningState. */
+ public static final ResourceProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a ResourceProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ResourceProvisioningState
+ */
+ @JsonCreator
+ public static ResourceProvisioningState fromString(String name) {
+ return fromString(name, ResourceProvisioningState.class);
+ }
+
+ /**
+ * @return known ResourceProvisioningState values
+ */
+ public static Collection values() {
+ return values(ResourceProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceRegionType.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceRegionType.java
new file mode 100644
index 000000000000..b4d9c96f0424
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ResourceRegionType.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ResourceRegionType.
+ */
+public final class ResourceRegionType extends ExpandableStringEnum {
+ /** Static value RegionalResource for ResourceRegionType. */
+ public static final ResourceRegionType REGIONAL_RESOURCE = fromString("RegionalResource");
+
+ /** Static value GlobalResource for ResourceRegionType. */
+ public static final ResourceRegionType GLOBAL_RESOURCE = fromString("GlobalResource");
+
+ /**
+ * Creates or finds a ResourceRegionType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ResourceRegionType
+ */
+ @JsonCreator
+ public static ResourceRegionType fromString(String name) {
+ return fromString(name, ResourceRegionType.class);
+ }
+
+ /**
+ * @return known ResourceRegionType values
+ */
+ public static Collection values() {
+ return values(ResourceRegionType.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/RetryPolicy.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/RetryPolicy.java
new file mode 100644
index 000000000000..29e2befde409
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/RetryPolicy.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about the retry policy for an event subscription.
+ */
+public class RetryPolicy {
+ /**
+ * Maximum number of delivery retry attempts for events.
+ */
+ @JsonProperty(value = "maxDeliveryAttempts")
+ private Integer maxDeliveryAttempts;
+
+ /**
+ * Time To Live (in minutes) for events.
+ */
+ @JsonProperty(value = "eventTimeToLiveInMinutes")
+ private Integer eventTimeToLiveInMinutes;
+
+ /**
+ * Get maximum number of delivery retry attempts for events.
+ *
+ * @return the maxDeliveryAttempts value
+ */
+ public Integer maxDeliveryAttempts() {
+ return this.maxDeliveryAttempts;
+ }
+
+ /**
+ * Set maximum number of delivery retry attempts for events.
+ *
+ * @param maxDeliveryAttempts the maxDeliveryAttempts value to set
+ * @return the RetryPolicy object itself.
+ */
+ public RetryPolicy withMaxDeliveryAttempts(Integer maxDeliveryAttempts) {
+ this.maxDeliveryAttempts = maxDeliveryAttempts;
+ return this;
+ }
+
+ /**
+ * Get time To Live (in minutes) for events.
+ *
+ * @return the eventTimeToLiveInMinutes value
+ */
+ public Integer eventTimeToLiveInMinutes() {
+ return this.eventTimeToLiveInMinutes;
+ }
+
+ /**
+ * Set time To Live (in minutes) for events.
+ *
+ * @param eventTimeToLiveInMinutes the eventTimeToLiveInMinutes value to set
+ * @return the RetryPolicy object itself.
+ */
+ public RetryPolicy withEventTimeToLiveInMinutes(Integer eventTimeToLiveInMinutes) {
+ this.eventTimeToLiveInMinutes = eventTimeToLiveInMinutes;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusQueueEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusQueueEventSubscriptionDestination.java
new file mode 100644
index 000000000000..125ee17e240e
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusQueueEventSubscriptionDestination.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the service bus destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = ServiceBusQueueEventSubscriptionDestination.class)
+@JsonTypeName("ServiceBusQueue")
+@JsonFlatten
+public class ServiceBusQueueEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource Id that represents the endpoint of the Service Bus
+ * destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Get the Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the ServiceBusQueueEventSubscriptionDestination object itself.
+ */
+ public ServiceBusQueueEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusTopicEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusTopicEventSubscriptionDestination.java
new file mode 100644
index 000000000000..4baea9ef901d
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/ServiceBusTopicEventSubscriptionDestination.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the service bus topic destination for an event
+ * subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = ServiceBusTopicEventSubscriptionDestination.class)
+@JsonTypeName("ServiceBusTopic")
+@JsonFlatten
+public class ServiceBusTopicEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource Id that represents the endpoint of the Service Bus
+ * Topic destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Get the Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the ServiceBusTopicEventSubscriptionDestination object itself.
+ */
+ public ServiceBusTopicEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageBlobDeadLetterDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageBlobDeadLetterDestination.java
new file mode 100644
index 000000000000..d77afcc99a43
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageBlobDeadLetterDestination.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the storage blob based dead letter destination.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = StorageBlobDeadLetterDestination.class)
+@JsonTypeName("StorageBlob")
+@JsonFlatten
+public class StorageBlobDeadLetterDestination extends DeadLetterDestination {
+ /**
+ * The Azure Resource ID of the storage account that is the destination of
+ * the deadletter events.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * The name of the Storage blob container that is the destination of the
+ * deadletter events.
+ */
+ @JsonProperty(value = "properties.blobContainerName")
+ private String blobContainerName;
+
+ /**
+ * Get the Azure Resource ID of the storage account that is the destination of the deadletter events.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource ID of the storage account that is the destination of the deadletter events.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the StorageBlobDeadLetterDestination object itself.
+ */
+ public StorageBlobDeadLetterDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get the name of the Storage blob container that is the destination of the deadletter events.
+ *
+ * @return the blobContainerName value
+ */
+ public String blobContainerName() {
+ return this.blobContainerName;
+ }
+
+ /**
+ * Set the name of the Storage blob container that is the destination of the deadletter events.
+ *
+ * @param blobContainerName the blobContainerName value to set
+ * @return the StorageBlobDeadLetterDestination object itself.
+ */
+ public StorageBlobDeadLetterDestination withBlobContainerName(String blobContainerName) {
+ this.blobContainerName = blobContainerName;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageQueueEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageQueueEventSubscriptionDestination.java
new file mode 100644
index 000000000000..9a66887fb429
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StorageQueueEventSubscriptionDestination.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the storage queue destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = StorageQueueEventSubscriptionDestination.class)
+@JsonTypeName("StorageQueue")
+@JsonFlatten
+public class StorageQueueEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The Azure Resource ID of the storage account that contains the queue
+ * that is the destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * The name of the Storage queue under a storage account that is the
+ * destination of an event subscription.
+ */
+ @JsonProperty(value = "properties.queueName")
+ private String queueName;
+
+ /**
+ * Get the Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set the Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the StorageQueueEventSubscriptionDestination object itself.
+ */
+ public StorageQueueEventSubscriptionDestination withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get the name of the Storage queue under a storage account that is the destination of an event subscription.
+ *
+ * @return the queueName value
+ */
+ public String queueName() {
+ return this.queueName;
+ }
+
+ /**
+ * Set the name of the Storage queue under a storage account that is the destination of an event subscription.
+ *
+ * @param queueName the queueName value to set
+ * @return the StorageQueueEventSubscriptionDestination object itself.
+ */
+ public StorageQueueEventSubscriptionDestination withQueueName(String queueName) {
+ this.queueName = queueName;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringBeginsWithAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringBeginsWithAdvancedFilter.java
new file mode 100644
index 000000000000..d558958730bb
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringBeginsWithAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * StringBeginsWith Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = StringBeginsWithAdvancedFilter.class)
+@JsonTypeName("StringBeginsWith")
+public class StringBeginsWithAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the StringBeginsWithAdvancedFilter object itself.
+ */
+ public StringBeginsWithAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringContainsAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringContainsAdvancedFilter.java
new file mode 100644
index 000000000000..0fedbc34bbb7
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringContainsAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * StringContains Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = StringContainsAdvancedFilter.class)
+@JsonTypeName("StringContains")
+public class StringContainsAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the StringContainsAdvancedFilter object itself.
+ */
+ public StringContainsAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringEndsWithAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringEndsWithAdvancedFilter.java
new file mode 100644
index 000000000000..3bec00652a52
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringEndsWithAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * StringEndsWith Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = StringEndsWithAdvancedFilter.class)
+@JsonTypeName("StringEndsWith")
+public class StringEndsWithAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the StringEndsWithAdvancedFilter object itself.
+ */
+ public StringEndsWithAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringInAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringInAdvancedFilter.java
new file mode 100644
index 000000000000..d0a9821ccf13
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringInAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * StringIn Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = StringInAdvancedFilter.class)
+@JsonTypeName("StringIn")
+public class StringInAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the StringInAdvancedFilter object itself.
+ */
+ public StringInAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringNotInAdvancedFilter.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringNotInAdvancedFilter.java
new file mode 100644
index 000000000000..5e8b82702704
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/StringNotInAdvancedFilter.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.eventgrid.v2020_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * StringNotIn Advanced Filter.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "operatorType", defaultImpl = StringNotInAdvancedFilter.class)
+@JsonTypeName("StringNotIn")
+public class StringNotInAdvancedFilter extends AdvancedFilter {
+ /**
+ * The set of filter values.
+ */
+ @JsonProperty(value = "values")
+ private List values;
+
+ /**
+ * Get the set of filter values.
+ *
+ * @return the values value
+ */
+ public List values() {
+ return this.values;
+ }
+
+ /**
+ * Set the set of filter values.
+ *
+ * @param values the values value to set
+ * @return the StringNotInAdvancedFilter object itself.
+ */
+ public StringNotInAdvancedFilter withValues(List values) {
+ this.values = values;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topic.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topic.java
new file mode 100644
index 000000000000..3a250b38a886
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topic.java
@@ -0,0 +1,196 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import java.util.List;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.PrivateEndpointConnectionInner;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.TopicInner;
+
+/**
+ * Type representing Topic.
+ */
+public interface Topic extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the endpoint value.
+ */
+ String endpoint();
+
+ /**
+ * @return the inboundIpRules value.
+ */
+ List inboundIpRules();
+
+ /**
+ * @return the inputSchema value.
+ */
+ InputSchema inputSchema();
+
+ /**
+ * @return the inputSchemaMapping value.
+ */
+ InputSchemaMapping inputSchemaMapping();
+
+ /**
+ * @return the metricResourceId value.
+ */
+ String metricResourceId();
+
+ /**
+ * @return the privateEndpointConnections value.
+ */
+ List privateEndpointConnections();
+
+ /**
+ * @return the provisioningState value.
+ */
+ TopicProvisioningState provisioningState();
+
+ /**
+ * @return the publicNetworkAccess value.
+ */
+ PublicNetworkAccess publicNetworkAccess();
+
+ /**
+ * The entirety of the Topic definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Topic definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Topic definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Topic definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the topic definition allowing to specify InboundIpRules.
+ */
+ interface WithInboundIpRules {
+ /**
+ * Specifies inboundIpRules.
+ * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled
+ * @return the next definition stage
+ */
+ WithCreate withInboundIpRules(List inboundIpRules);
+ }
+
+ /**
+ * The stage of the topic definition allowing to specify InputSchema.
+ */
+ interface WithInputSchema {
+ /**
+ * Specifies inputSchema.
+ * @param inputSchema This determines the format that Event Grid should expect for incoming events published to the topic. Possible values include: 'EventGridSchema', 'CustomEventSchema', 'CloudEventSchemaV1_0'
+ * @return the next definition stage
+ */
+ WithCreate withInputSchema(InputSchema inputSchema);
+ }
+
+ /**
+ * The stage of the topic definition allowing to specify InputSchemaMapping.
+ */
+ interface WithInputSchemaMapping {
+ /**
+ * Specifies inputSchemaMapping.
+ * @param inputSchemaMapping This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of a source schema to various required properties of the EventGridEvent schema
+ * @return the next definition stage
+ */
+ WithCreate withInputSchemaMapping(InputSchemaMapping inputSchemaMapping);
+ }
+
+ /**
+ * The stage of the topic definition allowing to specify PrivateEndpointConnections.
+ */
+ interface WithPrivateEndpointConnections {
+ /**
+ * Specifies privateEndpointConnections.
+ * @param privateEndpointConnections the privateEndpointConnections parameter value
+ * @return the next definition stage
+ */
+ WithCreate withPrivateEndpointConnections(List privateEndpointConnections);
+ }
+
+ /**
+ * The stage of the topic definition allowing to specify PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'
+ * @return the next definition stage
+ */
+ WithCreate withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ /**
+ * 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.WithInboundIpRules, DefinitionStages.WithInputSchema, DefinitionStages.WithInputSchemaMapping, DefinitionStages.WithPrivateEndpointConnections, DefinitionStages.WithPublicNetworkAccess {
+ }
+ }
+ /**
+ * The template for a Topic update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithInboundIpRules, UpdateStages.WithPublicNetworkAccess {
+ }
+
+ /**
+ * Grouping of Topic update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the topic update allowing to specify InboundIpRules.
+ */
+ interface WithInboundIpRules {
+ /**
+ * Specifies inboundIpRules.
+ * @param inboundIpRules This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled
+ * @return the next update stage
+ */
+ Update withInboundIpRules(List inboundIpRules);
+ }
+
+ /**
+ * The stage of the topic update allowing to specify PublicNetworkAccess.
+ */
+ interface WithPublicNetworkAccess {
+ /**
+ * Specifies publicNetworkAccess.
+ * @param publicNetworkAccess This determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'
+ * @return the next update stage
+ */
+ Update withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess);
+ }
+
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicProvisioningState.java
new file mode 100644
index 000000000000..6e8f52335a69
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicProvisioningState.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for TopicProvisioningState.
+ */
+public final class TopicProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for TopicProvisioningState. */
+ public static final TopicProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for TopicProvisioningState. */
+ public static final TopicProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for TopicProvisioningState. */
+ public static final TopicProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for TopicProvisioningState. */
+ public static final TopicProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for TopicProvisioningState. */
+ public static final TopicProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for TopicProvisioningState. */
+ public static final TopicProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a TopicProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TopicProvisioningState
+ */
+ @JsonCreator
+ public static TopicProvisioningState fromString(String name) {
+ return fromString(name, TopicProvisioningState.class);
+ }
+
+ /**
+ * @return known TopicProvisioningState values
+ */
+ public static Collection values() {
+ return values(TopicProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicRegenerateKeyRequest.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicRegenerateKeyRequest.java
new file mode 100644
index 000000000000..9b3461b2ea32
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicRegenerateKeyRequest.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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Topic regenerate share access key request.
+ */
+public class TopicRegenerateKeyRequest {
+ /**
+ * Key name to regenerate key1 or key2.
+ */
+ @JsonProperty(value = "keyName", required = true)
+ private String keyName;
+
+ /**
+ * Get key name to regenerate key1 or key2.
+ *
+ * @return the keyName value
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set key name to regenerate key1 or key2.
+ *
+ * @param keyName the keyName value to set
+ * @return the TopicRegenerateKeyRequest object itself.
+ */
+ public TopicRegenerateKeyRequest withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicSharedAccessKeys.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicSharedAccessKeys.java
new file mode 100644
index 000000000000..d2bd5c766bab
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicSharedAccessKeys.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.TopicSharedAccessKeysInner;
+
+/**
+ * Type representing TopicSharedAccessKeys.
+ */
+public interface TopicSharedAccessKeys extends HasInner, HasManager {
+ /**
+ * @return the key1 value.
+ */
+ String key1();
+
+ /**
+ * @return the key2 value.
+ */
+ String key2();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeInfo.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeInfo.java
new file mode 100644
index 000000000000..67f4a66ac4f6
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeInfo.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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.EventGridManager;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.TopicTypeInfoInner;
+import java.util.List;
+
+/**
+ * Type representing TopicTypeInfo.
+ */
+public interface TopicTypeInfo extends HasInner, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provider value.
+ */
+ String provider();
+
+ /**
+ * @return the provisioningState value.
+ */
+ TopicTypeProvisioningState provisioningState();
+
+ /**
+ * @return the resourceRegionType value.
+ */
+ ResourceRegionType resourceRegionType();
+
+ /**
+ * @return the sourceResourceFormat value.
+ */
+ String sourceResourceFormat();
+
+ /**
+ * @return the supportedLocations value.
+ */
+ List supportedLocations();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeProvisioningState.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeProvisioningState.java
new file mode 100644
index 000000000000..06e29fba18e6
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypeProvisioningState.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.eventgrid.v2020_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for TopicTypeProvisioningState.
+ */
+public final class TopicTypeProvisioningState extends ExpandableStringEnum {
+ /** Static value Creating for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Updating for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Canceled for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState CANCELED = fromString("Canceled");
+
+ /** Static value Failed for TopicTypeProvisioningState. */
+ public static final TopicTypeProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a TopicTypeProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding TopicTypeProvisioningState
+ */
+ @JsonCreator
+ public static TopicTypeProvisioningState fromString(String name) {
+ return fromString(name, TopicTypeProvisioningState.class);
+ }
+
+ /**
+ * @return known TopicTypeProvisioningState values
+ */
+ public static Collection values() {
+ return values(TopicTypeProvisioningState.class);
+ }
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypes.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypes.java
new file mode 100644
index 000000000000..d41146439720
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicTypes.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.eventgrid.v2020_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.TopicTypesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing TopicTypes.
+ */
+public interface TopicTypes extends HasInner {
+ /**
+ * List event types.
+ * List event types for a topic type.
+ *
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listEventTypesAsync(String topicTypeName);
+
+ /**
+ * Get a topic type.
+ * Get information about a topic type.
+ *
+ * @param topicTypeName Name of the topic type.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String topicTypeName);
+
+ /**
+ * List topic types.
+ * List all registered topic types.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicUpdateParameters.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicUpdateParameters.java
new file mode 100644
index 000000000000..2b59787c5fcc
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/TopicUpdateParameters.java
@@ -0,0 +1,106 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Properties of the Topic update.
+ */
+@JsonFlatten
+public class TopicUpdateParameters {
+ /**
+ * Tags of the resource.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * This determines if traffic is allowed over public network. By default it
+ * is enabled.
+ * You can further restrict to specific IPs by configuring <seealso
+ * cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicUpdateParameterProperties.InboundIpRules"
+ * />. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * This can be used to restrict traffic from specific IPs instead of all
+ * IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ */
+ @JsonProperty(value = "properties.inboundIpRules")
+ private List inboundIpRules;
+
+ /**
+ * Get tags of the resource.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set tags of the resource.
+ *
+ * @param tags the tags value to set
+ * @return the TopicUpdateParameters object itself.
+ */
+ public TopicUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the publicNetworkAccess value
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.TopicUpdateParameterProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set
+ * @return the TopicUpdateParameters object itself.
+ */
+ public TopicUpdateParameters withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @return the inboundIpRules value
+ */
+ public List inboundIpRules() {
+ return this.inboundIpRules;
+ }
+
+ /**
+ * Set this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @param inboundIpRules the inboundIpRules value to set
+ * @return the TopicUpdateParameters object itself.
+ */
+ public TopicUpdateParameters withInboundIpRules(List inboundIpRules) {
+ this.inboundIpRules = inboundIpRules;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topics.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topics.java
new file mode 100644
index 000000000000..088a0da9202a
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/Topics.java
@@ -0,0 +1,61 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.implementation.TopicsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Topics.
+ */
+public interface Topics extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * List keys for a topic.
+ * List the two keys used to publish to a topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param topicName Name of the topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSharedAccessKeysAsync(String resourceGroupName, String topicName);
+
+ /**
+ * Regenerate key for a topic.
+ * Regenerate a shared access key for a topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param topicName Name of the topic.
+ * @param keyName Key name to regenerate key1 or key2
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable regenerateKeyAsync(String resourceGroupName, String topicName, String keyName);
+
+ /**
+ * List topic event types.
+ * List event types for a topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param providerNamespace Namespace of the provider of the topic.
+ * @param resourceTypeName Name of the topic type.
+ * @param resourceName Name of the topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listEventTypesAsync(String resourceGroupName, String providerNamespace, String resourceTypeName, String resourceName);
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/WebHookEventSubscriptionDestination.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/WebHookEventSubscriptionDestination.java
new file mode 100644
index 000000000000..c84d99bfe509
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/WebHookEventSubscriptionDestination.java
@@ -0,0 +1,172 @@
+/**
+ * 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.eventgrid.v2020_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Information about the webhook destination for an event subscription.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "endpointType", defaultImpl = WebHookEventSubscriptionDestination.class)
+@JsonTypeName("WebHook")
+@JsonFlatten
+public class WebHookEventSubscriptionDestination extends EventSubscriptionDestination {
+ /**
+ * The URL that represents the endpoint of the destination of an event
+ * subscription.
+ */
+ @JsonProperty(value = "properties.endpointUrl")
+ private String endpointUrl;
+
+ /**
+ * The base URL that represents the endpoint of the destination of an event
+ * subscription.
+ */
+ @JsonProperty(value = "properties.endpointBaseUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String endpointBaseUrl;
+
+ /**
+ * Maximum number of events per batch.
+ */
+ @JsonProperty(value = "properties.maxEventsPerBatch")
+ private Integer maxEventsPerBatch;
+
+ /**
+ * Preferred batch size in Kilobytes.
+ */
+ @JsonProperty(value = "properties.preferredBatchSizeInKilobytes")
+ private Integer preferredBatchSizeInKilobytes;
+
+ /**
+ * The Azure Active Directory Tenant ID to get the access token that will
+ * be included as the bearer token in delivery requests.
+ */
+ @JsonProperty(value = "properties.azureActiveDirectoryTenantId")
+ private String azureActiveDirectoryTenantId;
+
+ /**
+ * The Azure Active Directory Application ID or URI to get the access token
+ * that will be included as the bearer token in delivery requests.
+ */
+ @JsonProperty(value = "properties.azureActiveDirectoryApplicationIdOrUri")
+ private String azureActiveDirectoryApplicationIdOrUri;
+
+ /**
+ * Get the URL that represents the endpoint of the destination of an event subscription.
+ *
+ * @return the endpointUrl value
+ */
+ public String endpointUrl() {
+ return this.endpointUrl;
+ }
+
+ /**
+ * Set the URL that represents the endpoint of the destination of an event subscription.
+ *
+ * @param endpointUrl the endpointUrl value to set
+ * @return the WebHookEventSubscriptionDestination object itself.
+ */
+ public WebHookEventSubscriptionDestination withEndpointUrl(String endpointUrl) {
+ this.endpointUrl = endpointUrl;
+ return this;
+ }
+
+ /**
+ * Get the base URL that represents the endpoint of the destination of an event subscription.
+ *
+ * @return the endpointBaseUrl value
+ */
+ public String endpointBaseUrl() {
+ return this.endpointBaseUrl;
+ }
+
+ /**
+ * Get maximum number of events per batch.
+ *
+ * @return the maxEventsPerBatch value
+ */
+ public Integer maxEventsPerBatch() {
+ return this.maxEventsPerBatch;
+ }
+
+ /**
+ * Set maximum number of events per batch.
+ *
+ * @param maxEventsPerBatch the maxEventsPerBatch value to set
+ * @return the WebHookEventSubscriptionDestination object itself.
+ */
+ public WebHookEventSubscriptionDestination withMaxEventsPerBatch(Integer maxEventsPerBatch) {
+ this.maxEventsPerBatch = maxEventsPerBatch;
+ return this;
+ }
+
+ /**
+ * Get preferred batch size in Kilobytes.
+ *
+ * @return the preferredBatchSizeInKilobytes value
+ */
+ public Integer preferredBatchSizeInKilobytes() {
+ return this.preferredBatchSizeInKilobytes;
+ }
+
+ /**
+ * Set preferred batch size in Kilobytes.
+ *
+ * @param preferredBatchSizeInKilobytes the preferredBatchSizeInKilobytes value to set
+ * @return the WebHookEventSubscriptionDestination object itself.
+ */
+ public WebHookEventSubscriptionDestination withPreferredBatchSizeInKilobytes(Integer preferredBatchSizeInKilobytes) {
+ this.preferredBatchSizeInKilobytes = preferredBatchSizeInKilobytes;
+ return this;
+ }
+
+ /**
+ * Get the Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.
+ *
+ * @return the azureActiveDirectoryTenantId value
+ */
+ public String azureActiveDirectoryTenantId() {
+ return this.azureActiveDirectoryTenantId;
+ }
+
+ /**
+ * Set the Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.
+ *
+ * @param azureActiveDirectoryTenantId the azureActiveDirectoryTenantId value to set
+ * @return the WebHookEventSubscriptionDestination object itself.
+ */
+ public WebHookEventSubscriptionDestination withAzureActiveDirectoryTenantId(String azureActiveDirectoryTenantId) {
+ this.azureActiveDirectoryTenantId = azureActiveDirectoryTenantId;
+ return this;
+ }
+
+ /**
+ * Get the Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.
+ *
+ * @return the azureActiveDirectoryApplicationIdOrUri value
+ */
+ public String azureActiveDirectoryApplicationIdOrUri() {
+ return this.azureActiveDirectoryApplicationIdOrUri;
+ }
+
+ /**
+ * Set the Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.
+ *
+ * @param azureActiveDirectoryApplicationIdOrUri the azureActiveDirectoryApplicationIdOrUri value to set
+ * @return the WebHookEventSubscriptionDestination object itself.
+ */
+ public WebHookEventSubscriptionDestination withAzureActiveDirectoryApplicationIdOrUri(String azureActiveDirectoryApplicationIdOrUri) {
+ this.azureActiveDirectoryApplicationIdOrUri = azureActiveDirectoryApplicationIdOrUri;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainImpl.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainImpl.java
new file mode 100644
index 000000000000..5459fd9128cc
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainImpl.java
@@ -0,0 +1,159 @@
+/**
+ * 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.eventgrid.v2020_06_01.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.Domain;
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainUpdateParameters;
+import java.util.List;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainProvisioningState;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InputSchema;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InputSchemaMapping;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.PublicNetworkAccess;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InboundIpRule;
+import java.util.ArrayList;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.PrivateEndpointConnection;
+import rx.functions.Func1;
+
+class DomainImpl extends GroupableResourceCoreImpl implements Domain, Domain.Definition, Domain.Update {
+ private DomainUpdateParameters updateParameter;
+ DomainImpl(String name, DomainInner inner, EventGridManager manager) {
+ super(name, inner, manager);
+ this.updateParameter = new DomainUpdateParameters();
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ DomainsInner client = this.manager().inner().domains();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(new Func1() {
+ @Override
+ public DomainInner call(DomainInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ DomainsInner client = this.manager().inner().domains();
+ return client.updateAsync(this.resourceGroupName(), this.name(), this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public DomainInner call(DomainInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ DomainsInner client = this.manager().inner().domains();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.updateParameter = new DomainUpdateParameters();
+ }
+
+ @Override
+ public String endpoint() {
+ return this.inner().endpoint();
+ }
+
+ @Override
+ public List inboundIpRules() {
+ return this.inner().inboundIpRules();
+ }
+
+ @Override
+ public InputSchema inputSchema() {
+ return this.inner().inputSchema();
+ }
+
+ @Override
+ public InputSchemaMapping inputSchemaMapping() {
+ return this.inner().inputSchemaMapping();
+ }
+
+ @Override
+ public String metricResourceId() {
+ return this.inner().metricResourceId();
+ }
+
+ @Override
+ public List privateEndpointConnections() {
+ List lst = new ArrayList();
+ if (this.inner().privateEndpointConnections() != null) {
+ for (PrivateEndpointConnectionInner inner : this.inner().privateEndpointConnections()) {
+ lst.add( new PrivateEndpointConnectionImpl(inner, manager()));
+ }
+ }
+ return lst;
+ }
+
+ @Override
+ public DomainProvisioningState provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.inner().publicNetworkAccess();
+ }
+
+ @Override
+ public DomainImpl withInputSchema(InputSchema inputSchema) {
+ this.inner().withInputSchema(inputSchema);
+ return this;
+ }
+
+ @Override
+ public DomainImpl withInputSchemaMapping(InputSchemaMapping inputSchemaMapping) {
+ this.inner().withInputSchemaMapping(inputSchemaMapping);
+ return this;
+ }
+
+ @Override
+ public DomainImpl withPrivateEndpointConnections(List privateEndpointConnections) {
+ this.inner().withPrivateEndpointConnections(privateEndpointConnections);
+ return this;
+ }
+
+ @Override
+ public DomainImpl withInboundIpRules(List inboundIpRules) {
+ if (isInCreateMode()) {
+ this.inner().withInboundIpRules(inboundIpRules);
+ } else {
+ this.updateParameter.withInboundIpRules(inboundIpRules);
+ }
+ return this;
+ }
+
+ @Override
+ public DomainImpl withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ if (isInCreateMode()) {
+ this.inner().withPublicNetworkAccess(publicNetworkAccess);
+ } else {
+ this.updateParameter.withPublicNetworkAccess(publicNetworkAccess);
+ }
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainInner.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainInner.java
new file mode 100644
index 000000000000..f72b50cac646
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainInner.java
@@ -0,0 +1,212 @@
+/**
+ * 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.eventgrid.v2020_06_01.implementation;
+
+import java.util.List;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainProvisioningState;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InputSchema;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InputSchemaMapping;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.PublicNetworkAccess;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.InboundIpRule;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * EventGrid Domain.
+ */
+@JsonFlatten
+public class DomainInner extends Resource {
+ /**
+ * List of private endpoint connections.
+ */
+ @JsonProperty(value = "properties.privateEndpointConnections")
+ private List privateEndpointConnections;
+
+ /**
+ * Provisioning state of the domain. Possible values include: 'Creating',
+ * 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private DomainProvisioningState provisioningState;
+
+ /**
+ * Endpoint for the domain.
+ */
+ @JsonProperty(value = "properties.endpoint", access = JsonProperty.Access.WRITE_ONLY)
+ private String endpoint;
+
+ /**
+ * This determines the format that Event Grid should expect for incoming
+ * events published to the domain. Possible values include:
+ * 'EventGridSchema', 'CustomEventSchema', 'CloudEventSchemaV1_0'.
+ */
+ @JsonProperty(value = "properties.inputSchema")
+ private InputSchema inputSchema;
+
+ /**
+ * Information about the InputSchemaMapping which specified the info about
+ * mapping event payload.
+ */
+ @JsonProperty(value = "properties.inputSchemaMapping")
+ private InputSchemaMapping inputSchemaMapping;
+
+ /**
+ * Metric resource id for the domain.
+ */
+ @JsonProperty(value = "properties.metricResourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String metricResourceId;
+
+ /**
+ * This determines if traffic is allowed over public network. By default it
+ * is enabled.
+ * You can further restrict to specific IPs by configuring <seealso
+ * cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainProperties.InboundIpRules"
+ * />. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.publicNetworkAccess")
+ private PublicNetworkAccess publicNetworkAccess;
+
+ /**
+ * This can be used to restrict traffic from specific IPs instead of all
+ * IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ */
+ @JsonProperty(value = "properties.inboundIpRules")
+ private List inboundIpRules;
+
+ /**
+ * Get list of private endpoint connections.
+ *
+ * @return the privateEndpointConnections value
+ */
+ public List privateEndpointConnections() {
+ return this.privateEndpointConnections;
+ }
+
+ /**
+ * Set list of private endpoint connections.
+ *
+ * @param privateEndpointConnections the privateEndpointConnections value to set
+ * @return the DomainInner object itself.
+ */
+ public DomainInner withPrivateEndpointConnections(List privateEndpointConnections) {
+ this.privateEndpointConnections = privateEndpointConnections;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the domain. Possible values include: 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public DomainProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get endpoint for the domain.
+ *
+ * @return the endpoint value
+ */
+ public String endpoint() {
+ return this.endpoint;
+ }
+
+ /**
+ * Get this determines the format that Event Grid should expect for incoming events published to the domain. Possible values include: 'EventGridSchema', 'CustomEventSchema', 'CloudEventSchemaV1_0'.
+ *
+ * @return the inputSchema value
+ */
+ public InputSchema inputSchema() {
+ return this.inputSchema;
+ }
+
+ /**
+ * Set this determines the format that Event Grid should expect for incoming events published to the domain. Possible values include: 'EventGridSchema', 'CustomEventSchema', 'CloudEventSchemaV1_0'.
+ *
+ * @param inputSchema the inputSchema value to set
+ * @return the DomainInner object itself.
+ */
+ public DomainInner withInputSchema(InputSchema inputSchema) {
+ this.inputSchema = inputSchema;
+ return this;
+ }
+
+ /**
+ * Get information about the InputSchemaMapping which specified the info about mapping event payload.
+ *
+ * @return the inputSchemaMapping value
+ */
+ public InputSchemaMapping inputSchemaMapping() {
+ return this.inputSchemaMapping;
+ }
+
+ /**
+ * Set information about the InputSchemaMapping which specified the info about mapping event payload.
+ *
+ * @param inputSchemaMapping the inputSchemaMapping value to set
+ * @return the DomainInner object itself.
+ */
+ public DomainInner withInputSchemaMapping(InputSchemaMapping inputSchemaMapping) {
+ this.inputSchemaMapping = inputSchemaMapping;
+ return this;
+ }
+
+ /**
+ * Get metric resource id for the domain.
+ *
+ * @return the metricResourceId value
+ */
+ public String metricResourceId() {
+ return this.metricResourceId;
+ }
+
+ /**
+ * Get this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the publicNetworkAccess value
+ */
+ public PublicNetworkAccess publicNetworkAccess() {
+ return this.publicNetworkAccess;
+ }
+
+ /**
+ * Set this determines if traffic is allowed over public network. By default it is enabled.
+ You can further restrict to specific IPs by configuring <seealso cref="P:Microsoft.Azure.Events.ResourceProvider.Common.Contracts.DomainProperties.InboundIpRules" />. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param publicNetworkAccess the publicNetworkAccess value to set
+ * @return the DomainInner object itself.
+ */
+ public DomainInner withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+ this.publicNetworkAccess = publicNetworkAccess;
+ return this;
+ }
+
+ /**
+ * Get this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @return the inboundIpRules value
+ */
+ public List inboundIpRules() {
+ return this.inboundIpRules;
+ }
+
+ /**
+ * Set this can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.
+ *
+ * @param inboundIpRules the inboundIpRules value to set
+ * @return the DomainInner object itself.
+ */
+ public DomainInner withInboundIpRules(List inboundIpRules) {
+ this.inboundIpRules = inboundIpRules;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysImpl.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysImpl.java
new file mode 100644
index 000000000000..d68eb7c84463
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysImpl.java
@@ -0,0 +1,36 @@
+/**
+ * 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.eventgrid.v2020_06_01.implementation;
+
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainSharedAccessKeys;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+
+class DomainSharedAccessKeysImpl extends WrapperImpl implements DomainSharedAccessKeys {
+ private final EventGridManager manager;
+ DomainSharedAccessKeysImpl(DomainSharedAccessKeysInner inner, EventGridManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public EventGridManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String key1() {
+ return this.inner().key1();
+ }
+
+ @Override
+ public String key2() {
+ return this.inner().key2();
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysInner.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysInner.java
new file mode 100644
index 000000000000..28a80817652b
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainSharedAccessKeysInner.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.eventgrid.v2020_06_01.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Shared access keys of the Domain.
+ */
+public class DomainSharedAccessKeysInner {
+ /**
+ * Shared access key1 for the domain.
+ */
+ @JsonProperty(value = "key1")
+ private String key1;
+
+ /**
+ * Shared access key2 for the domain.
+ */
+ @JsonProperty(value = "key2")
+ private String key2;
+
+ /**
+ * Get shared access key1 for the domain.
+ *
+ * @return the key1 value
+ */
+ public String key1() {
+ return this.key1;
+ }
+
+ /**
+ * Set shared access key1 for the domain.
+ *
+ * @param key1 the key1 value to set
+ * @return the DomainSharedAccessKeysInner object itself.
+ */
+ public DomainSharedAccessKeysInner withKey1(String key1) {
+ this.key1 = key1;
+ return this;
+ }
+
+ /**
+ * Get shared access key2 for the domain.
+ *
+ * @return the key2 value
+ */
+ public String key2() {
+ return this.key2;
+ }
+
+ /**
+ * Set shared access key2 for the domain.
+ *
+ * @param key2 the key2 value to set
+ * @return the DomainSharedAccessKeysInner object itself.
+ */
+ public DomainSharedAccessKeysInner withKey2(String key2) {
+ this.key2 = key2;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicImpl.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicImpl.java
new file mode 100644
index 000000000000..107ce7079dfe
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicImpl.java
@@ -0,0 +1,100 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01.implementation;
+
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopic;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopicProvisioningState;
+
+class DomainTopicImpl extends CreatableUpdatableImpl implements DomainTopic, DomainTopic.Definition, DomainTopic.Update {
+ private final EventGridManager manager;
+ private String resourceGroupName;
+ private String domainName;
+ private String domainTopicName;
+
+ DomainTopicImpl(String name, EventGridManager manager) {
+ super(name, new DomainTopicInner());
+ this.manager = manager;
+ // Set resource name
+ this.domainTopicName = name;
+ //
+ }
+
+ DomainTopicImpl(DomainTopicInner inner, EventGridManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.domainTopicName = inner.name();
+ // set resource ancestor and positional variables
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.domainName = IdParsingUtils.getValueFromIdByName(inner.id(), "domains");
+ this.domainTopicName = IdParsingUtils.getValueFromIdByName(inner.id(), "topics");
+ //
+ }
+
+ @Override
+ public EventGridManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ DomainTopicsInner client = this.manager().inner().domainTopics();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.domainName, this.domainTopicName)
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ DomainTopicsInner client = this.manager().inner().domainTopics();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.domainName, this.domainTopicName)
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ DomainTopicsInner client = this.manager().inner().domainTopics();
+ return client.getAsync(this.resourceGroupName, this.domainName, this.domainTopicName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public DomainTopicProvisioningState provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public DomainTopicImpl withExistingDomain(String resourceGroupName, String domainName) {
+ this.resourceGroupName = resourceGroupName;
+ this.domainName = domainName;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicInner.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicInner.java
new file mode 100644
index 000000000000..c394e09aba7a
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicInner.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.eventgrid.v2020_06_01.implementation;
+
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopicProvisioningState;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Domain Topic.
+ */
+@JsonFlatten
+public class DomainTopicInner extends ProxyResource {
+ /**
+ * Provisioning state of the domain topic. Possible values include:
+ * 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private DomainTopicProvisioningState provisioningState;
+
+ /**
+ * Get provisioning state of the domain topic. Possible values include: 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public DomainTopicProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the domain topic. Possible values include: 'Creating', 'Updating', 'Deleting', 'Succeeded', 'Canceled', 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the DomainTopicInner object itself.
+ */
+ public DomainTopicInner withProvisioningState(DomainTopicProvisioningState provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsImpl.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsImpl.java
new file mode 100644
index 000000000000..51f43a33bf72
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsImpl.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ *
+ */
+
+package com.microsoft.azure.management.eventgrid.v2020_06_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopics;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopic;
+
+class DomainTopicsImpl extends WrapperImpl implements DomainTopics {
+ private final EventGridManager manager;
+
+ DomainTopicsImpl(EventGridManager manager) {
+ super(manager.inner().domainTopics());
+ this.manager = manager;
+ }
+
+ public EventGridManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public DomainTopicImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private DomainTopicImpl wrapModel(DomainTopicInner inner) {
+ return new DomainTopicImpl(inner, manager());
+ }
+
+ private DomainTopicImpl wrapModel(String name) {
+ return new DomainTopicImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listByDomainAsync(final String resourceGroupName, final String domainName) {
+ DomainTopicsInner client = this.inner();
+ return client.listByDomainAsync(resourceGroupName, domainName)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public DomainTopic call(DomainTopicInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ DomainTopicsInner client = this.inner();
+ return client.getAsync(resourceGroupName, domainName, domainTopicName)
+ .flatMap(new Func1>() {
+ @Override
+ public Observable call(DomainTopicInner inner) {
+ if (inner == null) {
+ return Observable.empty();
+ } else {
+ return Observable.just((DomainTopic)wrapModel(inner));
+ }
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ DomainTopicsInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, domainName, domainTopicName).toCompletable();
+ }
+
+}
diff --git a/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsInner.java b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsInner.java
new file mode 100644
index 000000000000..af23f3f5f0eb
--- /dev/null
+++ b/sdk/eventgrid/mgmt-v2020_06_01/src/main/java/com/microsoft/azure/management/eventgrid/v2020_06_01/implementation/DomainTopicsInner.java
@@ -0,0 +1,919 @@
+/**
+ * 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.eventgrid.v2020_06_01.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.ServiceCallback;
+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.HTTP;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in DomainTopics.
+ */
+public class DomainTopicsInner {
+ /** The Retrofit service to perform REST calls. */
+ private DomainTopicsService service;
+ /** The service client containing this operation class. */
+ private EventGridManagementClientImpl client;
+
+ /**
+ * Initializes an instance of DomainTopicsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public DomainTopicsInner(Retrofit retrofit, EventGridManagementClientImpl client) {
+ this.service = retrofit.create(DomainTopicsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for DomainTopics to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface DomainTopicsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.eventgrid.v2020_06_01.DomainTopics get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Path("domainTopicName") String domainTopicName, @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.eventgrid.v2020_06_01.DomainTopics createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Path("domainTopicName") String domainTopicName, @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.eventgrid.v2020_06_01.DomainTopics beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Path("domainTopicName") String domainTopicName, @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.eventgrid.v2020_06_01.DomainTopics delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Path("domainTopicName") String domainTopicName, @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.eventgrid.v2020_06_01.DomainTopics beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Path("domainTopicName") String domainTopicName, @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.eventgrid.v2020_06_01.DomainTopics listByDomain" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics")
+ Observable> listByDomain(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("domainName") String domainName, @Query("api-version") String apiVersion, @Query("$filter") String filter, @Query("$top") Integer top, @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.eventgrid.v2020_06_01.DomainTopics listByDomainNext" })
+ @GET
+ Observable> listByDomainNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Get a domain topic.
+ * Get properties of a domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the topic.
+ * @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 DomainTopicInner object if successful.
+ */
+ public DomainTopicInner get(String resourceGroupName, String domainName, String domainTopicName) {
+ return getWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).toBlocking().single().body();
+ }
+
+ /**
+ * Get a domain topic.
+ * Get properties of a domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the topic.
+ * @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 getAsync(String resourceGroupName, String domainName, String domainTopicName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName), serviceCallback);
+ }
+
+ /**
+ * Get a domain topic.
+ * Get properties of a domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DomainTopicInner object
+ */
+ public Observable getAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ return getWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).map(new Func1, DomainTopicInner>() {
+ @Override
+ public DomainTopicInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Get a domain topic.
+ * Get properties of a domain topic.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DomainTopicInner object
+ */
+ public Observable> getWithServiceResponseAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (domainName == null) {
+ throw new IllegalArgumentException("Parameter domainName is required and cannot be null.");
+ }
+ if (domainTopicName == null) {
+ throw new IllegalArgumentException("Parameter domainTopicName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.get(this.client.subscriptionId(), resourceGroupName, domainName, domainTopicName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @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 DomainTopicInner object if successful.
+ */
+ public DomainTopicInner createOrUpdate(String resourceGroupName, String domainName, String domainTopicName) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).toBlocking().last().body();
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture createOrUpdateAsync(String resourceGroupName, String domainName, String domainTopicName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName), serviceCallback);
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).map(new Func1, DomainTopicInner>() {
+ @Override
+ public DomainTopicInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (domainName == null) {
+ throw new IllegalArgumentException("Parameter domainName is required and cannot be null.");
+ }
+ if (domainTopicName == null) {
+ throw new IllegalArgumentException("Parameter domainTopicName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Observable> observable = service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, domainName, domainTopicName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @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 DomainTopicInner object if successful.
+ */
+ public DomainTopicInner beginCreateOrUpdate(String resourceGroupName, String domainName, String domainTopicName) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).toBlocking().single().body();
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @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 beginCreateOrUpdateAsync(String resourceGroupName, String domainName, String domainTopicName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName), serviceCallback);
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DomainTopicInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, domainName, domainTopicName).map(new Func1, DomainTopicInner>() {
+ @Override
+ public DomainTopicInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a domain topic.
+ * Asynchronously creates or updates a new domain topic with the specified parameters.
+ *
+ * @param resourceGroupName The name of the resource group within the user's subscription.
+ * @param domainName Name of the domain.
+ * @param domainTopicName Name of the domain topic.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DomainTopicInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String domainName, String domainTopicName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (domainName == null) {
+ throw new IllegalArgumentException("Parameter domainName is required and cannot be null.");
+ }
+ if (domainTopicName == null) {
+ throw new IllegalArgumentException("Parameter domainTopicName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.beginCreateOrUpdate(this.client.subscriptionId(), resourceGroupName, domainName, domainTopicName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse