parameters) {
+        this.parameters = parameters;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (error() != null) {
+            error().validate();
+        }
+        if (parameters() != null) {
+            parameters().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyInner.java
new file mode 100644
index 000000000000..23edc6c61565
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyInner.java
@@ -0,0 +1,269 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.Kind;
+import com.azure.resourcemanager.videoanalyzer.models.ParameterDeclaration;
+import com.azure.resourcemanager.videoanalyzer.models.ProcessorNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.SinkNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.Sku;
+import com.azure.resourcemanager.videoanalyzer.models.SourceNodeBase;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/**
+ * Pipeline topology describes the processing steps to be applied when processing content for a particular outcome. The
+ * topology should be defined according to the scenario to be achieved and can be reused across many pipeline instances
+ * which share the same processing characteristics. For instance, a pipeline topology which captures content from a RTSP
+ * camera and archives the content can be reused across many different cameras, as long as the same processing is to be
+ * applied across all the cameras. Individual instance properties can be defined through the use of user-defined
+ * parameters, which allow for a topology to be parameterized. This allows individual pipelines refer to different
+ * values, such as individual cameras' RTSP endpoints and credentials. Overall a topology is composed of the following:
+ *
+ * - Parameters: list of user defined parameters that can be references across the topology nodes. - Sources: list of
+ * one or more data sources nodes such as an RTSP source which allows for content to be ingested from cameras. -
+ * Processors: list of nodes which perform data analysis or transformations. - Sinks: list of one or more data sinks
+ * which allow for data to be stored or exported to other destinations.
+ */
+@Fluent
+public final class PipelineTopologyInner extends ProxyResource {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PipelineTopologyInner.class);
+
+    /*
+     * The resource properties.
+     */
+    @JsonProperty(value = "properties")
+    private PipelineTopologyProperties innerProperties;
+
+    /*
+     * Topology kind.
+     */
+    @JsonProperty(value = "kind", required = true)
+    private Kind kind;
+
+    /*
+     * Describes the properties of a SKU.
+     */
+    @JsonProperty(value = "sku", required = true)
+    private Sku sku;
+
+    /*
+     * Azure Resource Manager metadata containing createdBy and modifiedBy
+     * information.
+     */
+    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+    private SystemData systemData;
+
+    /**
+     * Get the innerProperties property: The resource properties.
+     *
+     * @return the innerProperties value.
+     */
+    private PipelineTopologyProperties innerProperties() {
+        return this.innerProperties;
+    }
+
+    /**
+     * Get the kind property: Topology kind.
+     *
+     * @return the kind value.
+     */
+    public Kind kind() {
+        return this.kind;
+    }
+
+    /**
+     * Set the kind property: Topology kind.
+     *
+     * @param kind the kind value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withKind(Kind kind) {
+        this.kind = kind;
+        return this;
+    }
+
+    /**
+     * Get the sku property: Describes the properties of a SKU.
+     *
+     * @return the sku value.
+     */
+    public Sku sku() {
+        return this.sku;
+    }
+
+    /**
+     * Set the sku property: Describes the properties of a SKU.
+     *
+     * @param sku the sku value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withSku(Sku sku) {
+        this.sku = sku;
+        return this;
+    }
+
+    /**
+     * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+     *
+     * @return the systemData value.
+     */
+    public SystemData systemData() {
+        return this.systemData;
+    }
+
+    /**
+     * Get the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @return the description value.
+     */
+    public String description() {
+        return this.innerProperties() == null ? null : this.innerProperties().description();
+    }
+
+    /**
+     * Set the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @param description the description value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withDescription(String description) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PipelineTopologyProperties();
+        }
+        this.innerProperties().withDescription(description);
+        return this;
+    }
+
+    /**
+     * Get the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @return the parameters value.
+     */
+    public List parameters() {
+        return this.innerProperties() == null ? null : this.innerProperties().parameters();
+    }
+
+    /**
+     * Set the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @param parameters the parameters value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withParameters(List parameters) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PipelineTopologyProperties();
+        }
+        this.innerProperties().withParameters(parameters);
+        return this;
+    }
+
+    /**
+     * Get the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @return the sources value.
+     */
+    public List sources() {
+        return this.innerProperties() == null ? null : this.innerProperties().sources();
+    }
+
+    /**
+     * Set the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @param sources the sources value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withSources(List sources) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PipelineTopologyProperties();
+        }
+        this.innerProperties().withSources(sources);
+        return this;
+    }
+
+    /**
+     * Get the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @return the processors value.
+     */
+    public List processors() {
+        return this.innerProperties() == null ? null : this.innerProperties().processors();
+    }
+
+    /**
+     * Set the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @param processors the processors value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withProcessors(List processors) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PipelineTopologyProperties();
+        }
+        this.innerProperties().withProcessors(processors);
+        return this;
+    }
+
+    /**
+     * Get the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @return the sinks value.
+     */
+    public List sinks() {
+        return this.innerProperties() == null ? null : this.innerProperties().sinks();
+    }
+
+    /**
+     * Set the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @param sinks the sinks value to set.
+     * @return the PipelineTopologyInner object itself.
+     */
+    public PipelineTopologyInner withSinks(List sinks) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PipelineTopologyProperties();
+        }
+        this.innerProperties().withSinks(sinks);
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (innerProperties() != null) {
+            innerProperties().validate();
+        }
+        if (kind() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException("Missing required property kind in model PipelineTopologyInner"));
+        }
+        if (sku() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException("Missing required property sku in model PipelineTopologyInner"));
+        } else {
+            sku().validate();
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyProperties.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyProperties.java
new file mode 100644
index 000000000000..1ca68c24c197
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyProperties.java
@@ -0,0 +1,198 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.ParameterDeclaration;
+import com.azure.resourcemanager.videoanalyzer.models.ProcessorNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.SinkNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.SourceNodeBase;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes the properties of a pipeline topology. */
+@Fluent
+public final class PipelineTopologyProperties {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PipelineTopologyProperties.class);
+
+    /*
+     * An optional description of the pipeline topology. It is recommended that
+     * the expected use of the topology to be described here.
+     */
+    @JsonProperty(value = "description")
+    private String description;
+
+    /*
+     * List of the topology parameter declarations. Parameters declared here
+     * can be referenced throughout the topology nodes through the use of
+     * "${PARAMETER_NAME}" string pattern. Parameters can have optional default
+     * values and can later be defined in individual instances of the pipeline.
+     */
+    @JsonProperty(value = "parameters")
+    private List parameters;
+
+    /*
+     * List of the topology source nodes. Source nodes enable external data to
+     * be ingested by the pipeline.
+     */
+    @JsonProperty(value = "sources", required = true)
+    private List sources;
+
+    /*
+     * List of the topology processor nodes. Processor nodes enable pipeline
+     * data to be analyzed, processed or transformed.
+     */
+    @JsonProperty(value = "processors")
+    private List processors;
+
+    /*
+     * List of the topology sink nodes. Sink nodes allow pipeline data to be
+     * stored or exported.
+     */
+    @JsonProperty(value = "sinks", required = true)
+    private List sinks;
+
+    /**
+     * Get the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @return the description value.
+     */
+    public String description() {
+        return this.description;
+    }
+
+    /**
+     * Set the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @param description the description value to set.
+     * @return the PipelineTopologyProperties object itself.
+     */
+    public PipelineTopologyProperties withDescription(String description) {
+        this.description = description;
+        return this;
+    }
+
+    /**
+     * Get the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @return the parameters value.
+     */
+    public List parameters() {
+        return this.parameters;
+    }
+
+    /**
+     * Set the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @param parameters the parameters value to set.
+     * @return the PipelineTopologyProperties object itself.
+     */
+    public PipelineTopologyProperties withParameters(List parameters) {
+        this.parameters = parameters;
+        return this;
+    }
+
+    /**
+     * Get the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @return the sources value.
+     */
+    public List sources() {
+        return this.sources;
+    }
+
+    /**
+     * Set the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @param sources the sources value to set.
+     * @return the PipelineTopologyProperties object itself.
+     */
+    public PipelineTopologyProperties withSources(List sources) {
+        this.sources = sources;
+        return this;
+    }
+
+    /**
+     * Get the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @return the processors value.
+     */
+    public List processors() {
+        return this.processors;
+    }
+
+    /**
+     * Set the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @param processors the processors value to set.
+     * @return the PipelineTopologyProperties object itself.
+     */
+    public PipelineTopologyProperties withProcessors(List processors) {
+        this.processors = processors;
+        return this;
+    }
+
+    /**
+     * Get the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @return the sinks value.
+     */
+    public List sinks() {
+        return this.sinks;
+    }
+
+    /**
+     * Set the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @param sinks the sinks value to set.
+     * @return the PipelineTopologyProperties object itself.
+     */
+    public PipelineTopologyProperties withSinks(List sinks) {
+        this.sinks = sinks;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (parameters() != null) {
+            parameters().forEach(e -> e.validate());
+        }
+        if (sources() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property sources in model PipelineTopologyProperties"));
+        } else {
+            sources().forEach(e -> e.validate());
+        }
+        if (processors() != null) {
+            processors().forEach(e -> e.validate());
+        }
+        if (sinks() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property sinks in model PipelineTopologyProperties"));
+        } else {
+            sinks().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyPropertiesUpdate.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyPropertiesUpdate.java
new file mode 100644
index 000000000000..80449e636ad0
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PipelineTopologyPropertiesUpdate.java
@@ -0,0 +1,188 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.ParameterDeclaration;
+import com.azure.resourcemanager.videoanalyzer.models.ProcessorNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.SinkNodeBase;
+import com.azure.resourcemanager.videoanalyzer.models.SourceNodeBase;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Describes the properties of a pipeline topology. */
+@Fluent
+public final class PipelineTopologyPropertiesUpdate {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PipelineTopologyPropertiesUpdate.class);
+
+    /*
+     * An optional description of the pipeline topology. It is recommended that
+     * the expected use of the topology to be described here.
+     */
+    @JsonProperty(value = "description")
+    private String description;
+
+    /*
+     * List of the topology parameter declarations. Parameters declared here
+     * can be referenced throughout the topology nodes through the use of
+     * "${PARAMETER_NAME}" string pattern. Parameters can have optional default
+     * values and can later be defined in individual instances of the pipeline.
+     */
+    @JsonProperty(value = "parameters")
+    private List parameters;
+
+    /*
+     * List of the topology source nodes. Source nodes enable external data to
+     * be ingested by the pipeline.
+     */
+    @JsonProperty(value = "sources")
+    private List sources;
+
+    /*
+     * List of the topology processor nodes. Processor nodes enable pipeline
+     * data to be analyzed, processed or transformed.
+     */
+    @JsonProperty(value = "processors")
+    private List processors;
+
+    /*
+     * List of the topology sink nodes. Sink nodes allow pipeline data to be
+     * stored or exported.
+     */
+    @JsonProperty(value = "sinks")
+    private List sinks;
+
+    /**
+     * Get the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @return the description value.
+     */
+    public String description() {
+        return this.description;
+    }
+
+    /**
+     * Set the description property: An optional description of the pipeline topology. It is recommended that the
+     * expected use of the topology to be described here.
+     *
+     * @param description the description value to set.
+     * @return the PipelineTopologyPropertiesUpdate object itself.
+     */
+    public PipelineTopologyPropertiesUpdate withDescription(String description) {
+        this.description = description;
+        return this;
+    }
+
+    /**
+     * Get the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @return the parameters value.
+     */
+    public List parameters() {
+        return this.parameters;
+    }
+
+    /**
+     * Set the parameters property: List of the topology parameter declarations. Parameters declared here can be
+     * referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can
+     * have optional default values and can later be defined in individual instances of the pipeline.
+     *
+     * @param parameters the parameters value to set.
+     * @return the PipelineTopologyPropertiesUpdate object itself.
+     */
+    public PipelineTopologyPropertiesUpdate withParameters(List parameters) {
+        this.parameters = parameters;
+        return this;
+    }
+
+    /**
+     * Get the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @return the sources value.
+     */
+    public List sources() {
+        return this.sources;
+    }
+
+    /**
+     * Set the sources property: List of the topology source nodes. Source nodes enable external data to be ingested by
+     * the pipeline.
+     *
+     * @param sources the sources value to set.
+     * @return the PipelineTopologyPropertiesUpdate object itself.
+     */
+    public PipelineTopologyPropertiesUpdate withSources(List sources) {
+        this.sources = sources;
+        return this;
+    }
+
+    /**
+     * Get the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @return the processors value.
+     */
+    public List processors() {
+        return this.processors;
+    }
+
+    /**
+     * Set the processors property: List of the topology processor nodes. Processor nodes enable pipeline data to be
+     * analyzed, processed or transformed.
+     *
+     * @param processors the processors value to set.
+     * @return the PipelineTopologyPropertiesUpdate object itself.
+     */
+    public PipelineTopologyPropertiesUpdate withProcessors(List processors) {
+        this.processors = processors;
+        return this;
+    }
+
+    /**
+     * Get the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @return the sinks value.
+     */
+    public List sinks() {
+        return this.sinks;
+    }
+
+    /**
+     * Set the sinks property: List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
+     *
+     * @param sinks the sinks value to set.
+     * @return the PipelineTopologyPropertiesUpdate object itself.
+     */
+    public PipelineTopologyPropertiesUpdate withSinks(List sinks) {
+        this.sinks = sinks;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (parameters() != null) {
+            parameters().forEach(e -> e.validate());
+        }
+        if (sources() != null) {
+            sources().forEach(e -> e.validate());
+        }
+        if (processors() != null) {
+            processors().forEach(e -> e.validate());
+        }
+        if (sinks() != null) {
+            sinks().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionInner.java
new file mode 100644
index 000000000000..bfa2d89c3acc
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionInner.java
@@ -0,0 +1,121 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateEndpoint;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** The Private Endpoint Connection resource. */
+@Fluent
+public final class PrivateEndpointConnectionInner extends ProxyResource {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionInner.class);
+
+    /*
+     * Resource properties.
+     */
+    @JsonProperty(value = "properties")
+    private PrivateEndpointConnectionProperties innerProperties;
+
+    /*
+     * Azure Resource Manager metadata containing createdBy and modifiedBy
+     * information.
+     */
+    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+    private SystemData systemData;
+
+    /**
+     * Get the innerProperties property: Resource properties.
+     *
+     * @return the innerProperties value.
+     */
+    private PrivateEndpointConnectionProperties innerProperties() {
+        return this.innerProperties;
+    }
+
+    /**
+     * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+     *
+     * @return the systemData value.
+     */
+    public SystemData systemData() {
+        return this.systemData;
+    }
+
+    /**
+     * Get the privateEndpoint property: The resource of private end point.
+     *
+     * @return the privateEndpoint value.
+     */
+    public PrivateEndpoint privateEndpoint() {
+        return this.innerProperties() == null ? null : this.innerProperties().privateEndpoint();
+    }
+
+    /**
+     * Set the privateEndpoint property: The resource of private end point.
+     *
+     * @param privateEndpoint the privateEndpoint value to set.
+     * @return the PrivateEndpointConnectionInner object itself.
+     */
+    public PrivateEndpointConnectionInner withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PrivateEndpointConnectionProperties();
+        }
+        this.innerProperties().withPrivateEndpoint(privateEndpoint);
+        return this;
+    }
+
+    /**
+     * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+     * between service consumer and provider.
+     *
+     * @return the privateLinkServiceConnectionState value.
+     */
+    public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+        return this.innerProperties() == null ? null : this.innerProperties().privateLinkServiceConnectionState();
+    }
+
+    /**
+     * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+     * between service consumer and provider.
+     *
+     * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+     * @return the PrivateEndpointConnectionInner object itself.
+     */
+    public PrivateEndpointConnectionInner withPrivateLinkServiceConnectionState(
+        PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PrivateEndpointConnectionProperties();
+        }
+        this.innerProperties().withPrivateLinkServiceConnectionState(privateLinkServiceConnectionState);
+        return this;
+    }
+
+    /**
+     * Get the provisioningState property: The provisioning state of the private endpoint connection resource.
+     *
+     * @return the provisioningState value.
+     */
+    public PrivateEndpointConnectionProvisioningState provisioningState() {
+        return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (innerProperties() != null) {
+            innerProperties().validate();
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionListResultInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionListResultInner.java
new file mode 100644
index 000000000000..5d0c9ae4b56e
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionListResultInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** List of private endpoint connection associated with the specified storage account. */
+@Fluent
+public final class PrivateEndpointConnectionListResultInner {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionListResultInner.class);
+
+    /*
+     * Array of private endpoint connections
+     */
+    @JsonProperty(value = "value")
+    private List value;
+
+    /**
+     * Get the value property: Array of private endpoint connections.
+     *
+     * @return the value value.
+     */
+    public List value() {
+        return this.value;
+    }
+
+    /**
+     * Set the value property: Array of private endpoint connections.
+     *
+     * @param value the value value to set.
+     * @return the PrivateEndpointConnectionListResultInner object itself.
+     */
+    public PrivateEndpointConnectionListResultInner withValue(List value) {
+        this.value = value;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (value() != null) {
+            value().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionProperties.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionProperties.java
new file mode 100644
index 000000000000..5d6417bb85ca
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateEndpointConnectionProperties.java
@@ -0,0 +1,110 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateEndpoint;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateEndpointConnectionProvisioningState;
+import com.azure.resourcemanager.videoanalyzer.models.PrivateLinkServiceConnectionState;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Properties of the PrivateEndpointConnectProperties. */
+@Fluent
+public final class PrivateEndpointConnectionProperties {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateEndpointConnectionProperties.class);
+
+    /*
+     * The resource of private end point.
+     */
+    @JsonProperty(value = "privateEndpoint")
+    private PrivateEndpoint privateEndpoint;
+
+    /*
+     * A collection of information about the state of the connection between
+     * service consumer and provider.
+     */
+    @JsonProperty(value = "privateLinkServiceConnectionState", required = true)
+    private PrivateLinkServiceConnectionState privateLinkServiceConnectionState;
+
+    /*
+     * The provisioning state of the private endpoint connection resource.
+     */
+    @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+    private PrivateEndpointConnectionProvisioningState provisioningState;
+
+    /**
+     * Get the privateEndpoint property: The resource of private end point.
+     *
+     * @return the privateEndpoint value.
+     */
+    public PrivateEndpoint privateEndpoint() {
+        return this.privateEndpoint;
+    }
+
+    /**
+     * Set the privateEndpoint property: The resource of private end point.
+     *
+     * @param privateEndpoint the privateEndpoint value to set.
+     * @return the PrivateEndpointConnectionProperties object itself.
+     */
+    public PrivateEndpointConnectionProperties withPrivateEndpoint(PrivateEndpoint privateEndpoint) {
+        this.privateEndpoint = privateEndpoint;
+        return this;
+    }
+
+    /**
+     * Get the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+     * between service consumer and provider.
+     *
+     * @return the privateLinkServiceConnectionState value.
+     */
+    public PrivateLinkServiceConnectionState privateLinkServiceConnectionState() {
+        return this.privateLinkServiceConnectionState;
+    }
+
+    /**
+     * Set the privateLinkServiceConnectionState property: A collection of information about the state of the connection
+     * between service consumer and provider.
+     *
+     * @param privateLinkServiceConnectionState the privateLinkServiceConnectionState value to set.
+     * @return the PrivateEndpointConnectionProperties object itself.
+     */
+    public PrivateEndpointConnectionProperties withPrivateLinkServiceConnectionState(
+        PrivateLinkServiceConnectionState privateLinkServiceConnectionState) {
+        this.privateLinkServiceConnectionState = privateLinkServiceConnectionState;
+        return this;
+    }
+
+    /**
+     * Get the provisioningState property: The provisioning state of the private endpoint connection resource.
+     *
+     * @return the provisioningState value.
+     */
+    public PrivateEndpointConnectionProvisioningState provisioningState() {
+        return this.provisioningState;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (privateEndpoint() != null) {
+            privateEndpoint().validate();
+        }
+        if (privateLinkServiceConnectionState() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property privateLinkServiceConnectionState in model"
+                            + " PrivateEndpointConnectionProperties"));
+        } else {
+            privateLinkServiceConnectionState().validate();
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceInner.java
new file mode 100644
index 000000000000..f812ee6b775a
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceInner.java
@@ -0,0 +1,102 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A private link resource. */
+@Fluent
+public final class PrivateLinkResourceInner extends ProxyResource {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourceInner.class);
+
+    /*
+     * Resource properties.
+     */
+    @JsonProperty(value = "properties")
+    private PrivateLinkResourceProperties innerProperties;
+
+    /*
+     * Azure Resource Manager metadata containing createdBy and modifiedBy
+     * information.
+     */
+    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+    private SystemData systemData;
+
+    /**
+     * Get the innerProperties property: Resource properties.
+     *
+     * @return the innerProperties value.
+     */
+    private PrivateLinkResourceProperties innerProperties() {
+        return this.innerProperties;
+    }
+
+    /**
+     * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
+     *
+     * @return the systemData value.
+     */
+    public SystemData systemData() {
+        return this.systemData;
+    }
+
+    /**
+     * Get the groupId property: The private link resource group id.
+     *
+     * @return the groupId value.
+     */
+    public String groupId() {
+        return this.innerProperties() == null ? null : this.innerProperties().groupId();
+    }
+
+    /**
+     * Get the requiredMembers property: The private link resource required member names.
+     *
+     * @return the requiredMembers value.
+     */
+    public List requiredMembers() {
+        return this.innerProperties() == null ? null : this.innerProperties().requiredMembers();
+    }
+
+    /**
+     * Get the requiredZoneNames property: The private link resource Private link DNS zone name.
+     *
+     * @return the requiredZoneNames value.
+     */
+    public List requiredZoneNames() {
+        return this.innerProperties() == null ? null : this.innerProperties().requiredZoneNames();
+    }
+
+    /**
+     * Set the requiredZoneNames property: The private link resource Private link DNS zone name.
+     *
+     * @param requiredZoneNames the requiredZoneNames value to set.
+     * @return the PrivateLinkResourceInner object itself.
+     */
+    public PrivateLinkResourceInner withRequiredZoneNames(List requiredZoneNames) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new PrivateLinkResourceProperties();
+        }
+        this.innerProperties().withRequiredZoneNames(requiredZoneNames);
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (innerProperties() != null) {
+            innerProperties().validate();
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceListResultInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceListResultInner.java
new file mode 100644
index 000000000000..40685bdb2510
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceListResultInner.java
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** A list of private link resources. */
+@Fluent
+public final class PrivateLinkResourceListResultInner {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourceListResultInner.class);
+
+    /*
+     * Array of private link resources
+     */
+    @JsonProperty(value = "value")
+    private List value;
+
+    /**
+     * Get the value property: Array of private link resources.
+     *
+     * @return the value value.
+     */
+    public List value() {
+        return this.value;
+    }
+
+    /**
+     * Set the value property: Array of private link resources.
+     *
+     * @param value the value value to set.
+     * @return the PrivateLinkResourceListResultInner object itself.
+     */
+    public PrivateLinkResourceListResultInner withValue(List value) {
+        this.value = value;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (value() != null) {
+            value().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceProperties.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceProperties.java
new file mode 100644
index 000000000000..81db547bb4b2
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/PrivateLinkResourceProperties.java
@@ -0,0 +1,81 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** Properties of a private link resource. */
+@Fluent
+public final class PrivateLinkResourceProperties {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(PrivateLinkResourceProperties.class);
+
+    /*
+     * The private link resource group id.
+     */
+    @JsonProperty(value = "groupId", access = JsonProperty.Access.WRITE_ONLY)
+    private String groupId;
+
+    /*
+     * The private link resource required member names.
+     */
+    @JsonProperty(value = "requiredMembers", access = JsonProperty.Access.WRITE_ONLY)
+    private List requiredMembers;
+
+    /*
+     * The private link resource Private link DNS zone name.
+     */
+    @JsonProperty(value = "requiredZoneNames")
+    private List requiredZoneNames;
+
+    /**
+     * Get the groupId property: The private link resource group id.
+     *
+     * @return the groupId value.
+     */
+    public String groupId() {
+        return this.groupId;
+    }
+
+    /**
+     * Get the requiredMembers property: The private link resource required member names.
+     *
+     * @return the requiredMembers value.
+     */
+    public List requiredMembers() {
+        return this.requiredMembers;
+    }
+
+    /**
+     * Get the requiredZoneNames property: The private link resource Private link DNS zone name.
+     *
+     * @return the requiredZoneNames value.
+     */
+    public List requiredZoneNames() {
+        return this.requiredZoneNames;
+    }
+
+    /**
+     * Set the requiredZoneNames property: The private link resource Private link DNS zone name.
+     *
+     * @param requiredZoneNames the requiredZoneNames value to set.
+     * @return the PrivateLinkResourceProperties object itself.
+     */
+    public PrivateLinkResourceProperties withRequiredZoneNames(List requiredZoneNames) {
+        this.requiredZoneNames = requiredZoneNames;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerInner.java
index 7c26bb5db0fd..4108787c58f5 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerInner.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerInner.java
@@ -5,12 +5,14 @@
 package com.azure.resourcemanager.videoanalyzer.fluent.models;
 
 import com.azure.core.annotation.Fluent;
-import com.azure.core.annotation.JsonFlatten;
 import com.azure.core.management.Resource;
-import com.azure.core.management.SystemData;
 import com.azure.core.util.logging.ClientLogger;
 import com.azure.resourcemanager.videoanalyzer.models.AccountEncryption;
 import com.azure.resourcemanager.videoanalyzer.models.Endpoint;
+import com.azure.resourcemanager.videoanalyzer.models.IotHub;
+import com.azure.resourcemanager.videoanalyzer.models.NetworkAccessControl;
+import com.azure.resourcemanager.videoanalyzer.models.ProvisioningState;
+import com.azure.resourcemanager.videoanalyzer.models.PublicNetworkAccess;
 import com.azure.resourcemanager.videoanalyzer.models.StorageAccount;
 import com.azure.resourcemanager.videoanalyzer.models.VideoAnalyzerIdentity;
 import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -18,54 +20,34 @@
 import java.util.List;
 import java.util.Map;
 
-/** A Video Analyzer account. */
-@JsonFlatten
+/** The Video Analyzer account. */
 @Fluent
-public class VideoAnalyzerInner extends Resource {
+public final class VideoAnalyzerInner extends Resource {
     @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoAnalyzerInner.class);
 
     /*
-     * The system data of the Video Analyzer account.
+     * The resource properties.
      */
-    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
-    private SystemData systemData;
+    @JsonProperty(value = "properties")
+    private VideoAnalyzerProperties innerProperties;
 
     /*
-     * The set of managed identities associated with the Video Analyzer
-     * resource.
+     * The identities associated to the Video Analyzer resource.
      */
     @JsonProperty(value = "identity")
     private VideoAnalyzerIdentity identity;
 
-    /*
-     * The storage accounts for this resource.
-     */
-    @JsonProperty(value = "properties.storageAccounts")
-    private List storageAccounts;
-
-    /*
-     * The list of endpoints associated with this resource.
-     */
-    @JsonProperty(value = "properties.endpoints", access = JsonProperty.Access.WRITE_ONLY)
-    private List endpoints;
-
-    /*
-     * The account encryption properties.
-     */
-    @JsonProperty(value = "properties.encryption")
-    private AccountEncryption encryption;
-
     /**
-     * Get the systemData property: The system data of the Video Analyzer account.
+     * Get the innerProperties property: The resource properties.
      *
-     * @return the systemData value.
+     * @return the innerProperties value.
      */
-    public SystemData systemData() {
-        return this.systemData;
+    private VideoAnalyzerProperties innerProperties() {
+        return this.innerProperties;
     }
 
     /**
-     * Get the identity property: The set of managed identities associated with the Video Analyzer resource.
+     * Get the identity property: The identities associated to the Video Analyzer resource.
      *
      * @return the identity value.
      */
@@ -74,7 +56,7 @@ public VideoAnalyzerIdentity identity() {
     }
 
     /**
-     * Set the identity property: The set of managed identities associated with the Video Analyzer resource.
+     * Set the identity property: The identities associated to the Video Analyzer resource.
      *
      * @param identity the identity value to set.
      * @return the VideoAnalyzerInner object itself.
@@ -84,13 +66,27 @@ public VideoAnalyzerInner withIdentity(VideoAnalyzerIdentity identity) {
         return this;
     }
 
+    /** {@inheritDoc} */
+    @Override
+    public VideoAnalyzerInner withLocation(String location) {
+        super.withLocation(location);
+        return this;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public VideoAnalyzerInner withTags(Map tags) {
+        super.withTags(tags);
+        return this;
+    }
+
     /**
      * Get the storageAccounts property: The storage accounts for this resource.
      *
      * @return the storageAccounts value.
      */
     public List storageAccounts() {
-        return this.storageAccounts;
+        return this.innerProperties() == null ? null : this.innerProperties().storageAccounts();
     }
 
     /**
@@ -100,17 +96,20 @@ public List storageAccounts() {
      * @return the VideoAnalyzerInner object itself.
      */
     public VideoAnalyzerInner withStorageAccounts(List storageAccounts) {
-        this.storageAccounts = storageAccounts;
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoAnalyzerProperties();
+        }
+        this.innerProperties().withStorageAccounts(storageAccounts);
         return this;
     }
 
     /**
-     * Get the endpoints property: The list of endpoints associated with this resource.
+     * Get the endpoints property: The endpoints associated with this resource.
      *
      * @return the endpoints value.
      */
     public List endpoints() {
-        return this.endpoints;
+        return this.innerProperties() == null ? null : this.innerProperties().endpoints();
     }
 
     /**
@@ -119,7 +118,7 @@ public List endpoints() {
      * @return the encryption value.
      */
     public AccountEncryption encryption() {
-        return this.encryption;
+        return this.innerProperties() == null ? null : this.innerProperties().encryption();
     }
 
     /**
@@ -129,41 +128,113 @@ public AccountEncryption encryption() {
      * @return the VideoAnalyzerInner object itself.
      */
     public VideoAnalyzerInner withEncryption(AccountEncryption encryption) {
-        this.encryption = encryption;
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoAnalyzerProperties();
+        }
+        this.innerProperties().withEncryption(encryption);
         return this;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public VideoAnalyzerInner withLocation(String location) {
-        super.withLocation(location);
+    /**
+     * Get the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @return the iotHubs value.
+     */
+    public List iotHubs() {
+        return this.innerProperties() == null ? null : this.innerProperties().iotHubs();
+    }
+
+    /**
+     * Set the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @param iotHubs the iotHubs value to set.
+     * @return the VideoAnalyzerInner object itself.
+     */
+    public VideoAnalyzerInner withIotHubs(List iotHubs) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoAnalyzerProperties();
+        }
+        this.innerProperties().withIotHubs(iotHubs);
         return this;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    public VideoAnalyzerInner withTags(Map tags) {
-        super.withTags(tags);
+    /**
+     * Get the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @return the publicNetworkAccess value.
+     */
+    public PublicNetworkAccess publicNetworkAccess() {
+        return this.innerProperties() == null ? null : this.innerProperties().publicNetworkAccess();
+    }
+
+    /**
+     * Set the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @param publicNetworkAccess the publicNetworkAccess value to set.
+     * @return the VideoAnalyzerInner object itself.
+     */
+    public VideoAnalyzerInner withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoAnalyzerProperties();
+        }
+        this.innerProperties().withPublicNetworkAccess(publicNetworkAccess);
+        return this;
+    }
+
+    /**
+     * Get the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @return the networkAccessControl value.
+     */
+    public NetworkAccessControl networkAccessControl() {
+        return this.innerProperties() == null ? null : this.innerProperties().networkAccessControl();
+    }
+
+    /**
+     * Set the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @param networkAccessControl the networkAccessControl value to set.
+     * @return the VideoAnalyzerInner object itself.
+     */
+    public VideoAnalyzerInner withNetworkAccessControl(NetworkAccessControl networkAccessControl) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoAnalyzerProperties();
+        }
+        this.innerProperties().withNetworkAccessControl(networkAccessControl);
         return this;
     }
 
+    /**
+     * Get the provisioningState property: Provisioning state of the Video Analyzer account.
+     *
+     * @return the provisioningState value.
+     */
+    public ProvisioningState provisioningState() {
+        return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+    }
+
+    /**
+     * Get the privateEndpointConnections property: Private Endpoint Connections created under Video Analyzer account.
+     *
+     * @return the privateEndpointConnections value.
+     */
+    public List privateEndpointConnections() {
+        return this.innerProperties() == null ? null : this.innerProperties().privateEndpointConnections();
+    }
+
     /**
      * Validates the instance.
      *
      * @throws IllegalArgumentException thrown if the instance is not valid.
      */
     public void validate() {
+        if (innerProperties() != null) {
+            innerProperties().validate();
+        }
         if (identity() != null) {
             identity().validate();
         }
-        if (storageAccounts() != null) {
-            storageAccounts().forEach(e -> e.validate());
-        }
-        if (endpoints() != null) {
-            endpoints().forEach(e -> e.validate());
-        }
-        if (encryption() != null) {
-            encryption().validate();
-        }
     }
 }
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerOperationStatusInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerOperationStatusInner.java
new file mode 100644
index 000000000000..7f75a724d8e3
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerOperationStatusInner.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Status of video analyzer operation. */
+@Fluent
+public final class VideoAnalyzerOperationStatusInner {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoAnalyzerOperationStatusInner.class);
+
+    /*
+     * Operation identifier.
+     */
+    @JsonProperty(value = "name", required = true)
+    private String name;
+
+    /*
+     * Operation resource ID.
+     */
+    @JsonProperty(value = "id")
+    private String id;
+
+    /*
+     * Operation start time.
+     */
+    @JsonProperty(value = "startTime")
+    private String startTime;
+
+    /*
+     * Operation end time.
+     */
+    @JsonProperty(value = "endTime")
+    private String endTime;
+
+    /*
+     * Operation status.
+     */
+    @JsonProperty(value = "status")
+    private String status;
+
+    /*
+     * The error detail.
+     */
+    @JsonProperty(value = "error")
+    private ManagementError error;
+
+    /**
+     * Get the name property: Operation identifier.
+     *
+     * @return the name value.
+     */
+    public String name() {
+        return this.name;
+    }
+
+    /**
+     * Set the name property: Operation identifier.
+     *
+     * @param name the name value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withName(String name) {
+        this.name = name;
+        return this;
+    }
+
+    /**
+     * Get the id property: Operation resource ID.
+     *
+     * @return the id value.
+     */
+    public String id() {
+        return this.id;
+    }
+
+    /**
+     * Set the id property: Operation resource ID.
+     *
+     * @param id the id value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withId(String id) {
+        this.id = id;
+        return this;
+    }
+
+    /**
+     * Get the startTime property: Operation start time.
+     *
+     * @return the startTime value.
+     */
+    public String startTime() {
+        return this.startTime;
+    }
+
+    /**
+     * Set the startTime property: Operation start time.
+     *
+     * @param startTime the startTime value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withStartTime(String startTime) {
+        this.startTime = startTime;
+        return this;
+    }
+
+    /**
+     * Get the endTime property: Operation end time.
+     *
+     * @return the endTime value.
+     */
+    public String endTime() {
+        return this.endTime;
+    }
+
+    /**
+     * Set the endTime property: Operation end time.
+     *
+     * @param endTime the endTime value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withEndTime(String endTime) {
+        this.endTime = endTime;
+        return this;
+    }
+
+    /**
+     * Get the status property: Operation status.
+     *
+     * @return the status value.
+     */
+    public String status() {
+        return this.status;
+    }
+
+    /**
+     * Set the status property: Operation status.
+     *
+     * @param status the status value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withStatus(String status) {
+        this.status = status;
+        return this;
+    }
+
+    /**
+     * Get the error property: The error detail.
+     *
+     * @return the error value.
+     */
+    public ManagementError error() {
+        return this.error;
+    }
+
+    /**
+     * Set the error property: The error detail.
+     *
+     * @param error the error value to set.
+     * @return the VideoAnalyzerOperationStatusInner object itself.
+     */
+    public VideoAnalyzerOperationStatusInner withError(ManagementError error) {
+        this.error = error;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (name() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property name in model VideoAnalyzerOperationStatusInner"));
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPrivateEndpointConnectionOperationStatusInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPrivateEndpointConnectionOperationStatusInner.java
new file mode 100644
index 000000000000..ceebb00e93f0
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPrivateEndpointConnectionOperationStatusInner.java
@@ -0,0 +1,190 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.exception.ManagementError;
+import com.azure.core.util.logging.ClientLogger;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Status of private endpoint connection operation. */
+@Fluent
+public final class VideoAnalyzerPrivateEndpointConnectionOperationStatusInner {
+    @JsonIgnore
+    private final ClientLogger logger =
+        new ClientLogger(VideoAnalyzerPrivateEndpointConnectionOperationStatusInner.class);
+
+    /*
+     * Operation identifier.
+     */
+    @JsonProperty(value = "name", required = true)
+    private String name;
+
+    /*
+     * Operation resource ID.
+     */
+    @JsonProperty(value = "id")
+    private String id;
+
+    /*
+     * Operation start time.
+     */
+    @JsonProperty(value = "startTime")
+    private String startTime;
+
+    /*
+     * Operation end time.
+     */
+    @JsonProperty(value = "endTime")
+    private String endTime;
+
+    /*
+     * Operation status.
+     */
+    @JsonProperty(value = "status")
+    private String status;
+
+    /*
+     * The error detail.
+     */
+    @JsonProperty(value = "error")
+    private ManagementError error;
+
+    /**
+     * Get the name property: Operation identifier.
+     *
+     * @return the name value.
+     */
+    public String name() {
+        return this.name;
+    }
+
+    /**
+     * Set the name property: Operation identifier.
+     *
+     * @param name the name value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withName(String name) {
+        this.name = name;
+        return this;
+    }
+
+    /**
+     * Get the id property: Operation resource ID.
+     *
+     * @return the id value.
+     */
+    public String id() {
+        return this.id;
+    }
+
+    /**
+     * Set the id property: Operation resource ID.
+     *
+     * @param id the id value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withId(String id) {
+        this.id = id;
+        return this;
+    }
+
+    /**
+     * Get the startTime property: Operation start time.
+     *
+     * @return the startTime value.
+     */
+    public String startTime() {
+        return this.startTime;
+    }
+
+    /**
+     * Set the startTime property: Operation start time.
+     *
+     * @param startTime the startTime value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withStartTime(String startTime) {
+        this.startTime = startTime;
+        return this;
+    }
+
+    /**
+     * Get the endTime property: Operation end time.
+     *
+     * @return the endTime value.
+     */
+    public String endTime() {
+        return this.endTime;
+    }
+
+    /**
+     * Set the endTime property: Operation end time.
+     *
+     * @param endTime the endTime value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withEndTime(String endTime) {
+        this.endTime = endTime;
+        return this;
+    }
+
+    /**
+     * Get the status property: Operation status.
+     *
+     * @return the status value.
+     */
+    public String status() {
+        return this.status;
+    }
+
+    /**
+     * Set the status property: Operation status.
+     *
+     * @param status the status value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withStatus(String status) {
+        this.status = status;
+        return this;
+    }
+
+    /**
+     * Get the error property: The error detail.
+     *
+     * @return the error value.
+     */
+    public ManagementError error() {
+        return this.error;
+    }
+
+    /**
+     * Set the error property: The error detail.
+     *
+     * @param error the error value to set.
+     * @return the VideoAnalyzerPrivateEndpointConnectionOperationStatusInner object itself.
+     */
+    public VideoAnalyzerPrivateEndpointConnectionOperationStatusInner withError(ManagementError error) {
+        this.error = error;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (name() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property name in model"
+                            + " VideoAnalyzerPrivateEndpointConnectionOperationStatusInner"));
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerProperties.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerProperties.java
new file mode 100644
index 000000000000..652e1d8d1dcb
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerProperties.java
@@ -0,0 +1,233 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.AccountEncryption;
+import com.azure.resourcemanager.videoanalyzer.models.Endpoint;
+import com.azure.resourcemanager.videoanalyzer.models.IotHub;
+import com.azure.resourcemanager.videoanalyzer.models.NetworkAccessControl;
+import com.azure.resourcemanager.videoanalyzer.models.ProvisioningState;
+import com.azure.resourcemanager.videoanalyzer.models.PublicNetworkAccess;
+import com.azure.resourcemanager.videoanalyzer.models.StorageAccount;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The properties of the Video Analyzer account. */
+@Fluent
+public final class VideoAnalyzerProperties {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoAnalyzerProperties.class);
+
+    /*
+     * The storage accounts for this resource.
+     */
+    @JsonProperty(value = "storageAccounts", required = true)
+    private List storageAccounts;
+
+    /*
+     * The endpoints associated with this resource.
+     */
+    @JsonProperty(value = "endpoints", access = JsonProperty.Access.WRITE_ONLY)
+    private List endpoints;
+
+    /*
+     * The account encryption properties.
+     */
+    @JsonProperty(value = "encryption")
+    private AccountEncryption encryption;
+
+    /*
+     * The IoT Hubs for this resource.
+     */
+    @JsonProperty(value = "iotHubs")
+    private List iotHubs;
+
+    /*
+     * Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     */
+    @JsonProperty(value = "publicNetworkAccess")
+    private PublicNetworkAccess publicNetworkAccess;
+
+    /*
+     * Network access control for Video Analyzer.
+     */
+    @JsonProperty(value = "networkAccessControl")
+    private NetworkAccessControl networkAccessControl;
+
+    /*
+     * Provisioning state of the Video Analyzer account.
+     */
+    @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+    private ProvisioningState provisioningState;
+
+    /*
+     * Private Endpoint Connections created under Video Analyzer account.
+     */
+    @JsonProperty(value = "privateEndpointConnections", access = JsonProperty.Access.WRITE_ONLY)
+    private List privateEndpointConnections;
+
+    /**
+     * Get the storageAccounts property: The storage accounts for this resource.
+     *
+     * @return the storageAccounts value.
+     */
+    public List storageAccounts() {
+        return this.storageAccounts;
+    }
+
+    /**
+     * Set the storageAccounts property: The storage accounts for this resource.
+     *
+     * @param storageAccounts the storageAccounts value to set.
+     * @return the VideoAnalyzerProperties object itself.
+     */
+    public VideoAnalyzerProperties withStorageAccounts(List storageAccounts) {
+        this.storageAccounts = storageAccounts;
+        return this;
+    }
+
+    /**
+     * Get the endpoints property: The endpoints associated with this resource.
+     *
+     * @return the endpoints value.
+     */
+    public List endpoints() {
+        return this.endpoints;
+    }
+
+    /**
+     * Get the encryption property: The account encryption properties.
+     *
+     * @return the encryption value.
+     */
+    public AccountEncryption encryption() {
+        return this.encryption;
+    }
+
+    /**
+     * Set the encryption property: The account encryption properties.
+     *
+     * @param encryption the encryption value to set.
+     * @return the VideoAnalyzerProperties object itself.
+     */
+    public VideoAnalyzerProperties withEncryption(AccountEncryption encryption) {
+        this.encryption = encryption;
+        return this;
+    }
+
+    /**
+     * Get the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @return the iotHubs value.
+     */
+    public List iotHubs() {
+        return this.iotHubs;
+    }
+
+    /**
+     * Set the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @param iotHubs the iotHubs value to set.
+     * @return the VideoAnalyzerProperties object itself.
+     */
+    public VideoAnalyzerProperties withIotHubs(List iotHubs) {
+        this.iotHubs = iotHubs;
+        return this;
+    }
+
+    /**
+     * Get the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @return the publicNetworkAccess value.
+     */
+    public PublicNetworkAccess publicNetworkAccess() {
+        return this.publicNetworkAccess;
+    }
+
+    /**
+     * Set the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @param publicNetworkAccess the publicNetworkAccess value to set.
+     * @return the VideoAnalyzerProperties object itself.
+     */
+    public VideoAnalyzerProperties withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+        this.publicNetworkAccess = publicNetworkAccess;
+        return this;
+    }
+
+    /**
+     * Get the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @return the networkAccessControl value.
+     */
+    public NetworkAccessControl networkAccessControl() {
+        return this.networkAccessControl;
+    }
+
+    /**
+     * Set the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @param networkAccessControl the networkAccessControl value to set.
+     * @return the VideoAnalyzerProperties object itself.
+     */
+    public VideoAnalyzerProperties withNetworkAccessControl(NetworkAccessControl networkAccessControl) {
+        this.networkAccessControl = networkAccessControl;
+        return this;
+    }
+
+    /**
+     * Get the provisioningState property: Provisioning state of the Video Analyzer account.
+     *
+     * @return the provisioningState value.
+     */
+    public ProvisioningState provisioningState() {
+        return this.provisioningState;
+    }
+
+    /**
+     * Get the privateEndpointConnections property: Private Endpoint Connections created under Video Analyzer account.
+     *
+     * @return the privateEndpointConnections value.
+     */
+    public List privateEndpointConnections() {
+        return this.privateEndpointConnections;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (storageAccounts() == null) {
+            throw logger
+                .logExceptionAsError(
+                    new IllegalArgumentException(
+                        "Missing required property storageAccounts in model VideoAnalyzerProperties"));
+        } else {
+            storageAccounts().forEach(e -> e.validate());
+        }
+        if (endpoints() != null) {
+            endpoints().forEach(e -> e.validate());
+        }
+        if (encryption() != null) {
+            encryption().validate();
+        }
+        if (iotHubs() != null) {
+            iotHubs().forEach(e -> e.validate());
+        }
+        if (networkAccessControl() != null) {
+            networkAccessControl().validate();
+        }
+        if (privateEndpointConnections() != null) {
+            privateEndpointConnections().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPropertiesUpdate.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPropertiesUpdate.java
new file mode 100644
index 000000000000..2b4e2ed97ade
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoAnalyzerPropertiesUpdate.java
@@ -0,0 +1,228 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.AccountEncryption;
+import com.azure.resourcemanager.videoanalyzer.models.Endpoint;
+import com.azure.resourcemanager.videoanalyzer.models.IotHub;
+import com.azure.resourcemanager.videoanalyzer.models.NetworkAccessControl;
+import com.azure.resourcemanager.videoanalyzer.models.ProvisioningState;
+import com.azure.resourcemanager.videoanalyzer.models.PublicNetworkAccess;
+import com.azure.resourcemanager.videoanalyzer.models.StorageAccount;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.List;
+
+/** The properties of the Video Analyzer account. */
+@Fluent
+public final class VideoAnalyzerPropertiesUpdate {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoAnalyzerPropertiesUpdate.class);
+
+    /*
+     * The storage accounts for this resource.
+     */
+    @JsonProperty(value = "storageAccounts")
+    private List storageAccounts;
+
+    /*
+     * The endpoints associated with this resource.
+     */
+    @JsonProperty(value = "endpoints", access = JsonProperty.Access.WRITE_ONLY)
+    private List endpoints;
+
+    /*
+     * The account encryption properties.
+     */
+    @JsonProperty(value = "encryption")
+    private AccountEncryption encryption;
+
+    /*
+     * The IoT Hubs for this resource.
+     */
+    @JsonProperty(value = "iotHubs")
+    private List iotHubs;
+
+    /*
+     * Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     */
+    @JsonProperty(value = "publicNetworkAccess")
+    private PublicNetworkAccess publicNetworkAccess;
+
+    /*
+     * Network access control for Video Analyzer.
+     */
+    @JsonProperty(value = "networkAccessControl")
+    private NetworkAccessControl networkAccessControl;
+
+    /*
+     * Provisioning state of the Video Analyzer account.
+     */
+    @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+    private ProvisioningState provisioningState;
+
+    /*
+     * Private Endpoint Connections created under Video Analyzer account.
+     */
+    @JsonProperty(value = "privateEndpointConnections", access = JsonProperty.Access.WRITE_ONLY)
+    private List privateEndpointConnections;
+
+    /**
+     * Get the storageAccounts property: The storage accounts for this resource.
+     *
+     * @return the storageAccounts value.
+     */
+    public List storageAccounts() {
+        return this.storageAccounts;
+    }
+
+    /**
+     * Set the storageAccounts property: The storage accounts for this resource.
+     *
+     * @param storageAccounts the storageAccounts value to set.
+     * @return the VideoAnalyzerPropertiesUpdate object itself.
+     */
+    public VideoAnalyzerPropertiesUpdate withStorageAccounts(List storageAccounts) {
+        this.storageAccounts = storageAccounts;
+        return this;
+    }
+
+    /**
+     * Get the endpoints property: The endpoints associated with this resource.
+     *
+     * @return the endpoints value.
+     */
+    public List endpoints() {
+        return this.endpoints;
+    }
+
+    /**
+     * Get the encryption property: The account encryption properties.
+     *
+     * @return the encryption value.
+     */
+    public AccountEncryption encryption() {
+        return this.encryption;
+    }
+
+    /**
+     * Set the encryption property: The account encryption properties.
+     *
+     * @param encryption the encryption value to set.
+     * @return the VideoAnalyzerPropertiesUpdate object itself.
+     */
+    public VideoAnalyzerPropertiesUpdate withEncryption(AccountEncryption encryption) {
+        this.encryption = encryption;
+        return this;
+    }
+
+    /**
+     * Get the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @return the iotHubs value.
+     */
+    public List iotHubs() {
+        return this.iotHubs;
+    }
+
+    /**
+     * Set the iotHubs property: The IoT Hubs for this resource.
+     *
+     * @param iotHubs the iotHubs value to set.
+     * @return the VideoAnalyzerPropertiesUpdate object itself.
+     */
+    public VideoAnalyzerPropertiesUpdate withIotHubs(List iotHubs) {
+        this.iotHubs = iotHubs;
+        return this;
+    }
+
+    /**
+     * Get the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @return the publicNetworkAccess value.
+     */
+    public PublicNetworkAccess publicNetworkAccess() {
+        return this.publicNetworkAccess;
+    }
+
+    /**
+     * Set the publicNetworkAccess property: Whether or not public network access is allowed for resources under the
+     * Video Analyzer account.
+     *
+     * @param publicNetworkAccess the publicNetworkAccess value to set.
+     * @return the VideoAnalyzerPropertiesUpdate object itself.
+     */
+    public VideoAnalyzerPropertiesUpdate withPublicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
+        this.publicNetworkAccess = publicNetworkAccess;
+        return this;
+    }
+
+    /**
+     * Get the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @return the networkAccessControl value.
+     */
+    public NetworkAccessControl networkAccessControl() {
+        return this.networkAccessControl;
+    }
+
+    /**
+     * Set the networkAccessControl property: Network access control for Video Analyzer.
+     *
+     * @param networkAccessControl the networkAccessControl value to set.
+     * @return the VideoAnalyzerPropertiesUpdate object itself.
+     */
+    public VideoAnalyzerPropertiesUpdate withNetworkAccessControl(NetworkAccessControl networkAccessControl) {
+        this.networkAccessControl = networkAccessControl;
+        return this;
+    }
+
+    /**
+     * Get the provisioningState property: Provisioning state of the Video Analyzer account.
+     *
+     * @return the provisioningState value.
+     */
+    public ProvisioningState provisioningState() {
+        return this.provisioningState;
+    }
+
+    /**
+     * Get the privateEndpointConnections property: Private Endpoint Connections created under Video Analyzer account.
+     *
+     * @return the privateEndpointConnections value.
+     */
+    public List privateEndpointConnections() {
+        return this.privateEndpointConnections;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (storageAccounts() != null) {
+            storageAccounts().forEach(e -> e.validate());
+        }
+        if (endpoints() != null) {
+            endpoints().forEach(e -> e.validate());
+        }
+        if (encryption() != null) {
+            encryption().validate();
+        }
+        if (iotHubs() != null) {
+            iotHubs().forEach(e -> e.validate());
+        }
+        if (networkAccessControl() != null) {
+            networkAccessControl().validate();
+        }
+        if (privateEndpointConnections() != null) {
+            privateEndpointConnections().forEach(e -> e.validate());
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoStreamingTokenInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoContentTokenInner.java
similarity index 62%
rename from sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoStreamingTokenInner.java
rename to sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoContentTokenInner.java
index 65dccf47fd0d..2fa78d10fb2d 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoStreamingTokenInner.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoContentTokenInner.java
@@ -10,32 +10,28 @@
 import com.fasterxml.jackson.annotation.JsonProperty;
 import java.time.OffsetDateTime;
 
-/**
- * Video streaming token grants access to the video streaming URLs which can be used by an compatible HLS or DASH
- * player.
- */
+/** "Video content token grants access to the video content URLs.". */
 @Immutable
-public final class VideoStreamingTokenInner {
-    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoStreamingTokenInner.class);
+public final class VideoContentTokenInner {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoContentTokenInner.class);
 
     /*
-     * The streaming token expiration date in ISO8601 format (eg.
+     * The content token expiration date in ISO8601 format (eg.
      * 2021-01-01T00:00:00Z).
      */
     @JsonProperty(value = "expirationDate", access = JsonProperty.Access.WRITE_ONLY)
     private OffsetDateTime expirationDate;
 
     /*
-     * The streaming token value to be added to the video streaming URL as the
-     * value for a "token" query string parameter. The token is specific to a
+     * The content token value to be added to the video content URL as the
+     * value for the "token" query string parameter. The token is specific to a
      * single video.
      */
     @JsonProperty(value = "token", access = JsonProperty.Access.WRITE_ONLY)
     private String token;
 
     /**
-     * Get the expirationDate property: The streaming token expiration date in ISO8601 format (eg.
-     * 2021-01-01T00:00:00Z).
+     * Get the expirationDate property: The content token expiration date in ISO8601 format (eg. 2021-01-01T00:00:00Z).
      *
      * @return the expirationDate value.
      */
@@ -44,8 +40,8 @@ public OffsetDateTime expirationDate() {
     }
 
     /**
-     * Get the token property: The streaming token value to be added to the video streaming URL as the value for a
-     * "token" query string parameter. The token is specific to a single video.
+     * Get the token property: The content token value to be added to the video content URL as the value for the "token"
+     * query string parameter. The token is specific to a single video.
      *
      * @return the token value.
      */
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoEntityInner.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoEntityInner.java
index f7b6ad736ba4..bc34dfd1a272 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoEntityInner.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoEntityInner.java
@@ -5,71 +5,51 @@
 package com.azure.resourcemanager.videoanalyzer.fluent.models;
 
 import com.azure.core.annotation.Fluent;
-import com.azure.core.annotation.JsonFlatten;
 import com.azure.core.management.ProxyResource;
 import com.azure.core.management.SystemData;
 import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.VideoArchival;
+import com.azure.resourcemanager.videoanalyzer.models.VideoContentUrls;
 import com.azure.resourcemanager.videoanalyzer.models.VideoFlags;
 import com.azure.resourcemanager.videoanalyzer.models.VideoMediaInfo;
-import com.azure.resourcemanager.videoanalyzer.models.VideoStreaming;
 import com.azure.resourcemanager.videoanalyzer.models.VideoType;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-/** The representation of a single video in a Video Analyzer account. */
-@JsonFlatten
+/**
+ * Represents a video resource within Azure Video Analyzer. Videos can be ingested from RTSP cameras through live
+ * pipelines or can be created by exporting sequences from existing captured video through a pipeline job. Videos
+ * ingested through live pipelines can be streamed through Azure Video Analyzer Player Widget or compatible players.
+ * Exported videos can be downloaded as MP4 files.
+ */
 @Fluent
-public class VideoEntityInner extends ProxyResource {
+public final class VideoEntityInner extends ProxyResource {
     @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoEntityInner.class);
 
     /*
-     * The system metadata relating to this resource.
+     * The resource properties.
      */
-    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
-    private SystemData systemData;
-
-    /*
-     * Optional video title provided by the user. Value can be up to 256
-     * characters long.
-     */
-    @JsonProperty(value = "properties.title")
-    private String title;
+    @JsonProperty(value = "properties")
+    private VideoProperties innerProperties;
 
     /*
-     * Optional video description provided by the user. Value can be up to 2048
-     * characters long.
+     * Azure Resource Manager metadata containing createdBy and modifiedBy
+     * information.
      */
-    @JsonProperty(value = "properties.description")
-    private String description;
-
-    /*
-     * Type of the video archive. Different archive formats provide different
-     * capabilities.
-     */
-    @JsonProperty(value = "properties.type", access = JsonProperty.Access.WRITE_ONLY)
-    private VideoType typePropertiesType;
-
-    /*
-     * Video flags contain information about the available video actions and
-     * its dynamic properties based on the current video state.
-     */
-    @JsonProperty(value = "properties.flags", access = JsonProperty.Access.WRITE_ONLY)
-    private VideoFlags flags;
-
-    /*
-     * Video streaming holds information about video streaming URLs.
-     */
-    @JsonProperty(value = "properties.streaming", access = JsonProperty.Access.WRITE_ONLY)
-    private VideoStreaming streaming;
+    @JsonProperty(value = "systemData", access = JsonProperty.Access.WRITE_ONLY)
+    private SystemData systemData;
 
-    /*
-     * Contains information about the video and audio content.
+    /**
+     * Get the innerProperties property: The resource properties.
+     *
+     * @return the innerProperties value.
      */
-    @JsonProperty(value = "properties.mediaInfo", access = JsonProperty.Access.WRITE_ONLY)
-    private VideoMediaInfo mediaInfo;
+    private VideoProperties innerProperties() {
+        return this.innerProperties;
+    }
 
     /**
-     * Get the systemData property: The system metadata relating to this resource.
+     * Get the systemData property: Azure Resource Manager metadata containing createdBy and modifiedBy information.
      *
      * @return the systemData value.
      */
@@ -83,7 +63,7 @@ public SystemData systemData() {
      * @return the title value.
      */
     public String title() {
-        return this.title;
+        return this.innerProperties() == null ? null : this.innerProperties().title();
     }
 
     /**
@@ -93,7 +73,10 @@ public String title() {
      * @return the VideoEntityInner object itself.
      */
     public VideoEntityInner withTitle(String title) {
-        this.title = title;
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoProperties();
+        }
+        this.innerProperties().withTitle(title);
         return this;
     }
 
@@ -104,7 +87,7 @@ public VideoEntityInner withTitle(String title) {
      * @return the description value.
      */
     public String description() {
-        return this.description;
+        return this.innerProperties() == null ? null : this.innerProperties().description();
     }
 
     /**
@@ -115,18 +98,21 @@ public String description() {
      * @return the VideoEntityInner object itself.
      */
     public VideoEntityInner withDescription(String description) {
-        this.description = description;
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoProperties();
+        }
+        this.innerProperties().withDescription(description);
         return this;
     }
 
     /**
-     * Get the typePropertiesType property: Type of the video archive. Different archive formats provide different
-     * capabilities.
+     * Get the type property: Video content type. Different content types are suitable for different applications and
+     * scenarios.
      *
-     * @return the typePropertiesType value.
+     * @return the type value.
      */
     public VideoType typePropertiesType() {
-        return this.typePropertiesType;
+        return this.innerProperties() == null ? null : this.innerProperties().type();
     }
 
     /**
@@ -136,16 +122,16 @@ public VideoType typePropertiesType() {
      * @return the flags value.
      */
     public VideoFlags flags() {
-        return this.flags;
+        return this.innerProperties() == null ? null : this.innerProperties().flags();
     }
 
     /**
-     * Get the streaming property: Video streaming holds information about video streaming URLs.
+     * Get the contentUrls property: Set of URLs to the video content.
      *
-     * @return the streaming value.
+     * @return the contentUrls value.
      */
-    public VideoStreaming streaming() {
-        return this.streaming;
+    public VideoContentUrls contentUrls() {
+        return this.innerProperties() == null ? null : this.innerProperties().contentUrls();
     }
 
     /**
@@ -154,7 +140,30 @@ public VideoStreaming streaming() {
      * @return the mediaInfo value.
      */
     public VideoMediaInfo mediaInfo() {
-        return this.mediaInfo;
+        return this.innerProperties() == null ? null : this.innerProperties().mediaInfo();
+    }
+
+    /**
+     * Get the archival property: Video archival properties.
+     *
+     * @return the archival value.
+     */
+    public VideoArchival archival() {
+        return this.innerProperties() == null ? null : this.innerProperties().archival();
+    }
+
+    /**
+     * Set the archival property: Video archival properties.
+     *
+     * @param archival the archival value to set.
+     * @return the VideoEntityInner object itself.
+     */
+    public VideoEntityInner withArchival(VideoArchival archival) {
+        if (this.innerProperties() == null) {
+            this.innerProperties = new VideoProperties();
+        }
+        this.innerProperties().withArchival(archival);
+        return this;
     }
 
     /**
@@ -163,14 +172,8 @@ public VideoMediaInfo mediaInfo() {
      * @throws IllegalArgumentException thrown if the instance is not valid.
      */
     public void validate() {
-        if (flags() != null) {
-            flags().validate();
-        }
-        if (streaming() != null) {
-            streaming().validate();
-        }
-        if (mediaInfo() != null) {
-            mediaInfo().validate();
+        if (innerProperties() != null) {
+            innerProperties().validate();
         }
     }
 }
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoProperties.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoProperties.java
new file mode 100644
index 000000000000..036ef0608473
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/fluent/models/VideoProperties.java
@@ -0,0 +1,187 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.resourcemanager.videoanalyzer.models.VideoArchival;
+import com.azure.resourcemanager.videoanalyzer.models.VideoContentUrls;
+import com.azure.resourcemanager.videoanalyzer.models.VideoFlags;
+import com.azure.resourcemanager.videoanalyzer.models.VideoMediaInfo;
+import com.azure.resourcemanager.videoanalyzer.models.VideoType;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/** Application level properties for the video resource. */
+@Fluent
+public final class VideoProperties {
+    @JsonIgnore private final ClientLogger logger = new ClientLogger(VideoProperties.class);
+
+    /*
+     * Optional video title provided by the user. Value can be up to 256
+     * characters long.
+     */
+    @JsonProperty(value = "title")
+    private String title;
+
+    /*
+     * Optional video description provided by the user. Value can be up to 2048
+     * characters long.
+     */
+    @JsonProperty(value = "description")
+    private String description;
+
+    /*
+     * Video content type. Different content types are suitable for different
+     * applications and scenarios.
+     */
+    @JsonProperty(value = "type", access = JsonProperty.Access.WRITE_ONLY)
+    private VideoType type;
+
+    /*
+     * Video flags contain information about the available video actions and
+     * its dynamic properties based on the current video state.
+     */
+    @JsonProperty(value = "flags", access = JsonProperty.Access.WRITE_ONLY)
+    private VideoFlags flags;
+
+    /*
+     * Set of URLs to the video content.
+     */
+    @JsonProperty(value = "contentUrls", access = JsonProperty.Access.WRITE_ONLY)
+    private VideoContentUrls contentUrls;
+
+    /*
+     * Contains information about the video and audio content.
+     */
+    @JsonProperty(value = "mediaInfo", access = JsonProperty.Access.WRITE_ONLY)
+    private VideoMediaInfo mediaInfo;
+
+    /*
+     * Video archival properties.
+     */
+    @JsonProperty(value = "archival")
+    private VideoArchival archival;
+
+    /**
+     * Get the title property: Optional video title provided by the user. Value can be up to 256 characters long.
+     *
+     * @return the title value.
+     */
+    public String title() {
+        return this.title;
+    }
+
+    /**
+     * Set the title property: Optional video title provided by the user. Value can be up to 256 characters long.
+     *
+     * @param title the title value to set.
+     * @return the VideoProperties object itself.
+     */
+    public VideoProperties withTitle(String title) {
+        this.title = title;
+        return this;
+    }
+
+    /**
+     * Get the description property: Optional video description provided by the user. Value can be up to 2048 characters
+     * long.
+     *
+     * @return the description value.
+     */
+    public String description() {
+        return this.description;
+    }
+
+    /**
+     * Set the description property: Optional video description provided by the user. Value can be up to 2048 characters
+     * long.
+     *
+     * @param description the description value to set.
+     * @return the VideoProperties object itself.
+     */
+    public VideoProperties withDescription(String description) {
+        this.description = description;
+        return this;
+    }
+
+    /**
+     * Get the type property: Video content type. Different content types are suitable for different applications and
+     * scenarios.
+     *
+     * @return the type value.
+     */
+    public VideoType type() {
+        return this.type;
+    }
+
+    /**
+     * Get the flags property: Video flags contain information about the available video actions and its dynamic
+     * properties based on the current video state.
+     *
+     * @return the flags value.
+     */
+    public VideoFlags flags() {
+        return this.flags;
+    }
+
+    /**
+     * Get the contentUrls property: Set of URLs to the video content.
+     *
+     * @return the contentUrls value.
+     */
+    public VideoContentUrls contentUrls() {
+        return this.contentUrls;
+    }
+
+    /**
+     * Get the mediaInfo property: Contains information about the video and audio content.
+     *
+     * @return the mediaInfo value.
+     */
+    public VideoMediaInfo mediaInfo() {
+        return this.mediaInfo;
+    }
+
+    /**
+     * Get the archival property: Video archival properties.
+     *
+     * @return the archival value.
+     */
+    public VideoArchival archival() {
+        return this.archival;
+    }
+
+    /**
+     * Set the archival property: Video archival properties.
+     *
+     * @param archival the archival value to set.
+     * @return the VideoProperties object itself.
+     */
+    public VideoProperties withArchival(VideoArchival archival) {
+        this.archival = archival;
+        return this;
+    }
+
+    /**
+     * Validates the instance.
+     *
+     * @throws IllegalArgumentException thrown if the instance is not valid.
+     */
+    public void validate() {
+        if (flags() != null) {
+            flags().validate();
+        }
+        if (contentUrls() != null) {
+            contentUrls().validate();
+        }
+        if (mediaInfo() != null) {
+            mediaInfo().validate();
+        }
+        if (archival() != null) {
+            archival().validate();
+        }
+    }
+}
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/AccessPoliciesClientImpl.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/AccessPoliciesClientImpl.java
index 5e2e4a13ff08..43dd333acf1b 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/AccessPoliciesClientImpl.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/AccessPoliciesClientImpl.java
@@ -157,7 +157,7 @@ Mono> listNext(
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -217,7 +217,7 @@ private Mono> listSinglePageAsync(
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -275,7 +275,7 @@ private Mono> listSinglePageAsync(
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -294,7 +294,7 @@ private PagedFlux listAsync(String resourceGroupName, S
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -312,7 +312,7 @@ private PagedFlux listAsync(String resourceGroupName, S
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -333,7 +333,7 @@ private PagedFlux listAsync(
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -349,7 +349,7 @@ public PagedIterable list(String resourceGroupName, Str
     }
 
     /**
-     * List all existing access policy resources for the specified account.
+     * Retrieves all existing access policy resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -368,15 +368,15 @@ public PagedIterable list(
     }
 
     /**
-     * Retrieves an existing access policy resource from an account by name.
+     * Retrieves an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to retrieve.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> getWithResponseAsync(
@@ -422,16 +422,16 @@ private Mono> getWithResponseAsync(
     }
 
     /**
-     * Retrieves an existing access policy resource from an account by name.
+     * Retrieves an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to retrieve.
+     * @param accessPolicyName The Access Policy name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> getWithResponseAsync(
@@ -474,15 +474,15 @@ private Mono> getWithResponseAsync(
     }
 
     /**
-     * Retrieves an existing access policy resource from an account by name.
+     * Retrieves an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to retrieve.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono getAsync(
@@ -499,15 +499,15 @@ private Mono getAsync(
     }
 
     /**
-     * Retrieves an existing access policy resource from an account by name.
+     * Retrieves an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to retrieve.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public AccessPolicyEntityInner get(String resourceGroupName, String accountName, String accessPolicyName) {
@@ -515,16 +515,16 @@ public AccessPolicyEntityInner get(String resourceGroupName, String accountName,
     }
 
     /**
-     * Retrieves an existing access policy resource from an account by name.
+     * Retrieves an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to retrieve.
+     * @param accessPolicyName The Access Policy name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public Response getWithResponse(
@@ -533,16 +533,16 @@ public Response getWithResponse(
     }
 
     /**
-     * Creates a new access policy resource or updates an existing one.
+     * Creates a new access policy resource or updates an existing one with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to create or update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> createOrUpdateWithResponseAsync(
@@ -594,17 +594,17 @@ private Mono> createOrUpdateWithResponseAsync(
     }
 
     /**
-     * Creates a new access policy resource or updates an existing one.
+     * Creates a new access policy resource or updates an existing one with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to create or update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> createOrUpdateWithResponseAsync(
@@ -657,16 +657,16 @@ private Mono> createOrUpdateWithResponseAsync(
     }
 
     /**
-     * Creates a new access policy resource or updates an existing one.
+     * Creates a new access policy resource or updates an existing one with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to create or update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono createOrUpdateAsync(
@@ -683,16 +683,16 @@ private Mono createOrUpdateAsync(
     }
 
     /**
-     * Creates a new access policy resource or updates an existing one.
+     * Creates a new access policy resource or updates an existing one with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to create or update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public AccessPolicyEntityInner createOrUpdate(
@@ -701,17 +701,17 @@ public AccessPolicyEntityInner createOrUpdate(
     }
 
     /**
-     * Creates a new access policy resource or updates an existing one.
+     * Creates a new access policy resource or updates an existing one with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to create or update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public Response createOrUpdateWithResponse(
@@ -725,11 +725,11 @@ public Response createOrUpdateWithResponse(
     }
 
     /**
-     * Deletes an existing access policy resource.
+     * Deletes an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to delete.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -779,11 +779,11 @@ private Mono> deleteWithResponseAsync(
     }
 
     /**
-     * Deletes an existing access policy resource.
+     * Deletes an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to delete.
+     * @param accessPolicyName The Access Policy name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -831,11 +831,11 @@ private Mono> deleteWithResponseAsync(
     }
 
     /**
-     * Deletes an existing access policy resource.
+     * Deletes an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to delete.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -848,11 +848,11 @@ private Mono deleteAsync(String resourceGroupName, String accountName, Str
     }
 
     /**
-     * Deletes an existing access policy resource.
+     * Deletes an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to delete.
+     * @param accessPolicyName The Access Policy name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -863,11 +863,11 @@ public void delete(String resourceGroupName, String accountName, String accessPo
     }
 
     /**
-     * Deletes an existing access policy resource.
+     * Deletes an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to delete.
+     * @param accessPolicyName The Access Policy name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -881,16 +881,16 @@ public Response deleteWithResponse(
     }
 
     /**
-     * Updates individual properties of an existing access policy resource.
+     * Updates individual properties of an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> updateWithResponseAsync(
@@ -942,17 +942,17 @@ private Mono> updateWithResponseAsync(
     }
 
     /**
-     * Updates individual properties of an existing access policy resource.
+     * Updates individual properties of an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> updateWithResponseAsync(
@@ -1005,16 +1005,16 @@ private Mono> updateWithResponseAsync(
     }
 
     /**
-     * Updates individual properties of an existing access policy resource.
+     * Updates individual properties of an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono updateAsync(
@@ -1031,16 +1031,16 @@ private Mono updateAsync(
     }
 
     /**
-     * Updates individual properties of an existing access policy resource.
+     * Updates individual properties of an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public AccessPolicyEntityInner update(
@@ -1049,17 +1049,17 @@ public AccessPolicyEntityInner update(
     }
 
     /**
-     * Updates individual properties of an existing access policy resource.
+     * Updates individual properties of an existing access policy resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param accessPolicyName The name of the access policy to update.
+     * @param accessPolicyName The Access Policy name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return policy that determines how a video can be accessed.
+     * @return access policies help define the authentication rules, and control access to specific video resources.
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     public Response updateWithResponse(
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModuleEntityImpl.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModuleEntityImpl.java
index 8c1f1c93cc3a..e1a60d59f254 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModuleEntityImpl.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModuleEntityImpl.java
@@ -5,7 +5,6 @@
 package com.azure.resourcemanager.videoanalyzer.implementation;
 
 import com.azure.core.http.rest.Response;
-import com.azure.core.management.SystemData;
 import com.azure.core.util.Context;
 import com.azure.resourcemanager.videoanalyzer.fluent.models.EdgeModuleEntityInner;
 import com.azure.resourcemanager.videoanalyzer.models.EdgeModuleEntity;
@@ -31,10 +30,6 @@ public String type() {
         return this.innerModel().type();
     }
 
-    public SystemData systemData() {
-        return this.innerModel().systemData();
-    }
-
     public UUID edgeModuleId() {
         return this.innerModel().edgeModuleId();
     }
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesClientImpl.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesClientImpl.java
index 365236138976..f0f37d9a3aa3 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesClientImpl.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesClientImpl.java
@@ -77,9 +77,7 @@ Mono> list(
             @PathParam("resourceGroupName") String resourceGroupName,
             @PathParam("accountName") String accountName,
             @QueryParam("api-version") String apiVersion,
-            @QueryParam("$filter") String filter,
             @QueryParam("$top") Integer top,
-            @QueryParam("$orderby") String orderby,
             @HeaderParam("Accept") String accept,
             Context context);
 
@@ -161,14 +159,12 @@ Mono> listNext(
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param filter Restricts the set of items returned.
      * @param top Specifies a non-negative integer n that limits the number of items returned from a collection. The
      *     service returns the number of available items up to but not greater than the specified value n.
-     * @param orderby Specifies the key by which the result collection should be ordered.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -176,7 +172,7 @@ Mono> listNext(
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> listSinglePageAsync(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby) {
+        String resourceGroupName, String accountName, Integer top) {
         if (this.client.getEndpoint() == null) {
             return Mono
                 .error(
@@ -207,9 +203,7 @@ private Mono> listSinglePageAsync(
                             resourceGroupName,
                             accountName,
                             this.client.getApiVersion(),
-                            filter,
                             top,
-                            orderby,
                             accept,
                             context))
             .>map(
@@ -225,14 +219,12 @@ private Mono> listSinglePageAsync(
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param filter Restricts the set of items returned.
      * @param top Specifies a non-negative integer n that limits the number of items returned from a collection. The
      *     service returns the number of available items up to but not greater than the specified value n.
-     * @param orderby Specifies the key by which the result collection should be ordered.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -241,7 +233,7 @@ private Mono> listSinglePageAsync(
      */
     @ServiceMethod(returns = ReturnType.SINGLE)
     private Mono> listSinglePageAsync(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby, Context context) {
+        String resourceGroupName, String accountName, Integer top, Context context) {
         if (this.client.getEndpoint() == null) {
             return Mono
                 .error(
@@ -270,9 +262,7 @@ private Mono> listSinglePageAsync(
                 resourceGroupName,
                 accountName,
                 this.client.getApiVersion(),
-                filter,
                 top,
-                orderby,
                 accept,
                 context)
             .map(
@@ -287,29 +277,26 @@ private Mono> listSinglePageAsync(
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param filter Restricts the set of items returned.
      * @param top Specifies a non-negative integer n that limits the number of items returned from a collection. The
      *     service returns the number of available items up to but not greater than the specified value n.
-     * @param orderby Specifies the key by which the result collection should be ordered.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
      * @return a collection of EdgeModuleEntity items.
      */
     @ServiceMethod(returns = ReturnType.COLLECTION)
-    private PagedFlux listAsync(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby) {
+    private PagedFlux listAsync(String resourceGroupName, String accountName, Integer top) {
         return new PagedFlux<>(
-            () -> listSinglePageAsync(resourceGroupName, accountName, filter, top, orderby),
+            () -> listSinglePageAsync(resourceGroupName, accountName, top),
             nextLink -> listNextSinglePageAsync(nextLink));
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -320,23 +307,19 @@ private PagedFlux listAsync(
      */
     @ServiceMethod(returns = ReturnType.COLLECTION)
     private PagedFlux listAsync(String resourceGroupName, String accountName) {
-        final String filter = null;
         final Integer top = null;
-        final String orderby = null;
         return new PagedFlux<>(
-            () -> listSinglePageAsync(resourceGroupName, accountName, filter, top, orderby),
+            () -> listSinglePageAsync(resourceGroupName, accountName, top),
             nextLink -> listNextSinglePageAsync(nextLink));
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param filter Restricts the set of items returned.
      * @param top Specifies a non-negative integer n that limits the number of items returned from a collection. The
      *     service returns the number of available items up to but not greater than the specified value n.
-     * @param orderby Specifies the key by which the result collection should be ordered.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -345,14 +328,14 @@ private PagedFlux listAsync(String resourceGroupName, Str
      */
     @ServiceMethod(returns = ReturnType.COLLECTION)
     private PagedFlux listAsync(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby, Context context) {
+        String resourceGroupName, String accountName, Integer top, Context context) {
         return new PagedFlux<>(
-            () -> listSinglePageAsync(resourceGroupName, accountName, filter, top, orderby, context),
+            () -> listSinglePageAsync(resourceGroupName, accountName, top, context),
             nextLink -> listNextSinglePageAsync(nextLink, context));
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
@@ -363,21 +346,17 @@ private PagedFlux listAsync(
      */
     @ServiceMethod(returns = ReturnType.COLLECTION)
     public PagedIterable list(String resourceGroupName, String accountName) {
-        final String filter = null;
         final Integer top = null;
-        final String orderby = null;
-        return new PagedIterable<>(listAsync(resourceGroupName, accountName, filter, top, orderby));
+        return new PagedIterable<>(listAsync(resourceGroupName, accountName, top));
     }
 
     /**
-     * List all of the existing edge module resources for a given Video Analyzer account.
+     * List all existing edge module resources, along with their JSON representations.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param filter Restricts the set of items returned.
      * @param top Specifies a non-negative integer n that limits the number of items returned from a collection. The
      *     service returns the number of available items up to but not greater than the specified value n.
-     * @param orderby Specifies the key by which the result collection should be ordered.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -386,16 +365,16 @@ public PagedIterable list(String resourceGroupName, Strin
      */
     @ServiceMethod(returns = ReturnType.COLLECTION)
     public PagedIterable list(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby, Context context) {
-        return new PagedIterable<>(listAsync(resourceGroupName, accountName, filter, top, orderby, context));
+        String resourceGroupName, String accountName, Integer top, Context context) {
+        return new PagedIterable<>(listAsync(resourceGroupName, accountName, top, context));
     }
 
     /**
-     * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+     * Retrieves an existing edge module resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to retrieve.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -444,11 +423,11 @@ private Mono> getWithResponseAsync(
     }
 
     /**
-     * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+     * Retrieves an existing edge module resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to retrieve.
+     * @param edgeModuleName The Edge Module name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -495,11 +474,11 @@ private Mono> getWithResponseAsync(
     }
 
     /**
-     * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+     * Retrieves an existing edge module resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to retrieve.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -519,11 +498,11 @@ private Mono getAsync(String resourceGroupName, String ac
     }
 
     /**
-     * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+     * Retrieves an existing edge module resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to retrieve.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -535,11 +514,11 @@ public EdgeModuleEntityInner get(String resourceGroupName, String accountName, S
     }
 
     /**
-     * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+     * Retrieves an existing edge module resource with the given name.
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to retrieve.
+     * @param edgeModuleName The Edge Module name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -562,7 +541,7 @@ public Response getWithResponse(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to create or update.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -627,7 +606,7 @@ private Mono> createOrUpdateWithResponseAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to create or update.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
@@ -694,7 +673,7 @@ private Mono> createOrUpdateWithResponseAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to create or update.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -725,7 +704,7 @@ private Mono createOrUpdateAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to create or update.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -748,7 +727,7 @@ public EdgeModuleEntityInner createOrUpdate(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to create or update.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
@@ -774,7 +753,7 @@ public Response createOrUpdateWithResponse(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to be deleted.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -829,7 +808,7 @@ private Mono> deleteWithResponseAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to be deleted.
+     * @param edgeModuleName The Edge Module name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -882,7 +861,7 @@ private Mono> deleteWithResponseAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to be deleted.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -901,7 +880,7 @@ private Mono deleteAsync(String resourceGroupName, String accountName, Str
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to be deleted.
+     * @param edgeModuleName The Edge Module name.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
      * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
@@ -918,7 +897,7 @@ public void delete(String resourceGroupName, String accountName, String edgeModu
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module to be deleted.
+     * @param edgeModuleName The Edge Module name.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -941,7 +920,7 @@ public Response deleteWithResponse(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module used to create a new provisioning token.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -1006,7 +985,7 @@ private Mono> listProvisioningTokenWi
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module used to create a new provisioning token.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
@@ -1073,7 +1052,7 @@ private Mono> listProvisioningTokenWi
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module used to create a new provisioning token.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -1104,7 +1083,7 @@ private Mono listProvisioningTokenAsync(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module used to create a new provisioning token.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws ManagementException thrown if the request is rejected by server.
@@ -1127,7 +1106,7 @@ public EdgeModuleProvisioningTokenInner listProvisioningToken(
      *
      * @param resourceGroupName The name of the resource group. The name is case insensitive.
      * @param accountName The Azure Video Analyzer account name.
-     * @param edgeModuleName The name of the edge module used to create a new provisioning token.
+     * @param edgeModuleName The Edge Module name.
      * @param parameters The request parameters.
      * @param context The context to associate with this operation.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesImpl.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesImpl.java
index 6996efd199ee..36f3c273d999 100644
--- a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesImpl.java
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/EdgeModulesImpl.java
@@ -37,9 +37,9 @@ public PagedIterable list(String resourceGroupName, String acc
     }
 
     public PagedIterable list(
-        String resourceGroupName, String accountName, String filter, Integer top, String orderby, Context context) {
+        String resourceGroupName, String accountName, Integer top, Context context) {
         PagedIterable inner =
-            this.serviceClient().list(resourceGroupName, accountName, filter, top, orderby, context);
+            this.serviceClient().list(resourceGroupName, accountName, top, context);
         return Utils.mapPage(inner, inner1 -> new EdgeModuleEntityImpl(inner1, this.manager()));
     }
 
diff --git a/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/LivePipelineImpl.java b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/LivePipelineImpl.java
new file mode 100644
index 000000000000..b2c235f7e243
--- /dev/null
+++ b/sdk/videoanalyzer/azure-resourcemanager-videoanalyzer/src/main/java/com/azure/resourcemanager/videoanalyzer/implementation/LivePipelineImpl.java
@@ -0,0 +1,226 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.videoanalyzer.implementation;
+
+import com.azure.core.management.SystemData;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.videoanalyzer.fluent.models.LivePipelineInner;
+import com.azure.resourcemanager.videoanalyzer.models.LivePipeline;
+import com.azure.resourcemanager.videoanalyzer.models.LivePipelineState;
+import com.azure.resourcemanager.videoanalyzer.models.LivePipelineUpdate;
+import com.azure.resourcemanager.videoanalyzer.models.ParameterDefinition;
+import java.util.Collections;
+import java.util.List;
+
+public final class LivePipelineImpl implements LivePipeline, LivePipeline.Definition, LivePipeline.Update {
+    private LivePipelineInner innerObject;
+
+    private final com.azure.resourcemanager.videoanalyzer.VideoAnalyzerManager serviceManager;
+
+    public String id() {
+        return this.innerModel().id();
+    }
+
+    public String name() {
+        return this.innerModel().name();
+    }
+
+    public String type() {
+        return this.innerModel().type();
+    }
+
+    public SystemData systemData() {
+        return this.innerModel().systemData();
+    }
+
+    public String topologyName() {
+        return this.innerModel().topologyName();
+    }
+
+    public String description() {
+        return this.innerModel().description();
+    }
+
+    public int bitrateKbps() {
+        return this.innerModel().bitrateKbps();
+    }
+
+    public LivePipelineState state() {
+        return this.innerModel().state();
+    }
+
+    public List parameters() {
+        List