diff --git a/sdk/videoanalyzer/arm-videoanalyzer/LICENSE.txt b/sdk/videoanalyzer/arm-videoanalyzer/LICENSE.txt
new file mode 100644
index 000000000000..2d3163745319
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/LICENSE.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2021 Microsoft
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/README.md b/sdk/videoanalyzer/arm-videoanalyzer/README.md
new file mode 100644
index 000000000000..17eb7ba3b25e
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/README.md
@@ -0,0 +1,98 @@
+## Azure VideoAnalyzer SDK for JavaScript
+
+This package contains an isomorphic SDK for VideoAnalyzer.
+
+### Currently supported environments
+
+- Node.js version 6.x.x or higher
+- Browser JavaScript
+
+### How to Install
+
+```bash
+npm install @azure/arm-videoanalyzer
+```
+
+### How to use
+
+#### nodejs - client creation and list operations as an example written in TypeScript.
+
+##### Install @azure/ms-rest-nodeauth
+
+- Please install minimum version of `"@azure/ms-rest-nodeauth": "^3.0.0"`.
+```bash
+npm install @azure/ms-rest-nodeauth@"^3.0.0"
+```
+
+##### Sample code
+
+While the below sample uses the interactive login, other authentication options can be found in the [README.md file of @azure/ms-rest-nodeauth](https://www.npmjs.com/package/@azure/ms-rest-nodeauth) package
+```typescript
+const msRestNodeAuth = require("@azure/ms-rest-nodeauth");
+const { VideoAnalyzer } = require("@azure/arm-videoanalyzer");
+const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"];
+
+msRestNodeAuth.interactiveLogin().then((creds) => {
+ const client = new VideoAnalyzer(creds, subscriptionId);
+ client.operations.list().then((result) => {
+ console.log("The result is:");
+ console.log(result);
+ });
+}).catch((err) => {
+ console.error(err);
+});
+```
+
+#### browser - Authentication, client creation and list operations as an example written in JavaScript.
+
+##### Install @azure/ms-rest-browserauth
+
+```bash
+npm install @azure/ms-rest-browserauth
+```
+
+##### Sample code
+
+See https://github.com/Azure/ms-rest-browserauth to learn how to authenticate to Azure in the browser.
+
+- index.html
+```html
+
+
+
+ @azure/arm-videoanalyzer sample
+
+
+
+
+
+
+
+
+```
+
+## Related projects
+
+- [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js)
+
+
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/package.json b/sdk/videoanalyzer/arm-videoanalyzer/package.json
new file mode 100644
index 000000000000..5d725b6a84ea
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "@azure/arm-videoanalyzer",
+ "author": "Microsoft Corporation",
+ "description": "VideoAnalyzer Library with typescript type definitions for node.js and browser.",
+ "version": "1.0.0",
+ "dependencies": {
+ "@azure/ms-rest-azure-js": "^2.0.1",
+ "@azure/ms-rest-js": "^2.0.4",
+ "tslib": "^1.10.0"
+ },
+ "keywords": [
+ "node",
+ "azure",
+ "typescript",
+ "browser",
+ "isomorphic"
+ ],
+ "license": "MIT",
+ "main": "./dist/arm-videoanalyzer.js",
+ "module": "./esm/videoAnalyzer.js",
+ "types": "./esm/videoAnalyzer.d.ts",
+ "devDependencies": {
+ "typescript": "^3.5.3",
+ "rollup": "^1.18.0",
+ "rollup-plugin-node-resolve": "^5.2.0",
+ "rollup-plugin-sourcemaps": "^0.4.2",
+ "uglify-js": "^3.6.0"
+ },
+ "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/videoanalyzer/arm-videoanalyzer",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/Azure/azure-sdk-for-js.git"
+ },
+ "bugs": {
+ "url": "https://github.com/Azure/azure-sdk-for-js/issues"
+ },
+ "files": [
+ "dist/**/*.js",
+ "dist/**/*.js.map",
+ "dist/**/*.d.ts",
+ "dist/**/*.d.ts.map",
+ "esm/**/*.js",
+ "esm/**/*.js.map",
+ "esm/**/*.d.ts",
+ "esm/**/*.d.ts.map",
+ "src/**/*.ts",
+ "README.md",
+ "rollup.config.js",
+ "tsconfig.json"
+ ],
+ "scripts": {
+ "build": "tsc && rollup -c rollup.config.js && npm run minify",
+ "minify": "uglifyjs -c -m --comments --source-map \"content='./dist/arm-videoanalyzer.js.map'\" -o ./dist/arm-videoanalyzer.min.js ./dist/arm-videoanalyzer.js",
+ "prepack": "npm install && npm run build"
+ },
+ "sideEffects": false,
+ "autoPublish": true
+}
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/rollup.config.js b/sdk/videoanalyzer/arm-videoanalyzer/rollup.config.js
new file mode 100644
index 000000000000..28befda8a68b
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/rollup.config.js
@@ -0,0 +1,37 @@
+import rollup from "rollup";
+import nodeResolve from "rollup-plugin-node-resolve";
+import sourcemaps from "rollup-plugin-sourcemaps";
+
+/**
+ * @type {rollup.RollupFileOptions}
+ */
+const config = {
+ input: "./esm/videoAnalyzer.js",
+ external: [
+ "@azure/ms-rest-js",
+ "@azure/ms-rest-azure-js"
+ ],
+ output: {
+ file: "./dist/arm-videoanalyzer.js",
+ format: "umd",
+ name: "Azure.ArmVideoanalyzer",
+ sourcemap: true,
+ globals: {
+ "@azure/ms-rest-js": "msRest",
+ "@azure/ms-rest-azure-js": "msRestAzure"
+ },
+ banner: `/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */`
+ },
+ plugins: [
+ nodeResolve({ mainFields: ['module', 'main'] }),
+ sourcemaps()
+ ]
+};
+
+export default config;
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/accessPoliciesMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/accessPoliciesMappers.ts
new file mode 100644
index 000000000000..8b3cb7f02c55
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/accessPoliciesMappers.ts
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ AccessPolicyEntity,
+ AccessPolicyEntityCollection,
+ AccountEncryption,
+ AuthenticationBase,
+ AzureEntityResource,
+ BaseResource,
+ EccTokenKey,
+ EdgeModuleEntity,
+ Endpoint,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ JwtAuthentication,
+ KeyVaultProperties,
+ ProxyResource,
+ Resource,
+ ResourceIdentity,
+ RsaTokenKey,
+ StorageAccount,
+ SystemData,
+ TokenClaim,
+ TokenKey,
+ TrackedResource,
+ UserAssignedManagedIdentity,
+ VideoAnalyzerIdentity,
+ VideoAnalyzerModel,
+ VideoEntity,
+ VideoFlags,
+ VideoMediaInfo,
+ VideoStreaming
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/edgeModulesMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/edgeModulesMappers.ts
new file mode 100644
index 000000000000..f8f1697acf09
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/edgeModulesMappers.ts
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ AccessPolicyEntity,
+ AccountEncryption,
+ AuthenticationBase,
+ AzureEntityResource,
+ BaseResource,
+ EccTokenKey,
+ EdgeModuleEntity,
+ EdgeModuleEntityCollection,
+ EdgeModuleProvisioningToken,
+ Endpoint,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ JwtAuthentication,
+ KeyVaultProperties,
+ ListProvisioningTokenInput,
+ ProxyResource,
+ Resource,
+ ResourceIdentity,
+ RsaTokenKey,
+ StorageAccount,
+ SystemData,
+ TokenClaim,
+ TokenKey,
+ TrackedResource,
+ UserAssignedManagedIdentity,
+ VideoAnalyzerIdentity,
+ VideoAnalyzerModel,
+ VideoEntity,
+ VideoFlags,
+ VideoMediaInfo,
+ VideoStreaming
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/index.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/index.ts
new file mode 100644
index 000000000000..32064d5a999a
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/index.ts
@@ -0,0 +1,1587 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+import { BaseResource, CloudError, AzureServiceClientOptions } from "@azure/ms-rest-azure-js";
+import * as msRest from "@azure/ms-rest-js";
+
+export { BaseResource, CloudError };
+
+/**
+ * Operation details.
+ */
+export interface OperationDisplay {
+ /**
+ * The service provider.
+ */
+ provider?: string;
+ /**
+ * Resource on which the operation is performed.
+ */
+ resource?: string;
+ /**
+ * The operation type.
+ */
+ operation?: string;
+ /**
+ * The operation description.
+ */
+ description?: string;
+}
+
+/**
+ * A metric dimension.
+ */
+export interface MetricDimension {
+ /**
+ * The metric dimension name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * The display name for the dimension.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayName?: string;
+ /**
+ * Whether to export metric to shoebox.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly toBeExportedForShoebox?: boolean;
+}
+
+/**
+ * A metric emitted by service.
+ */
+export interface MetricSpecification {
+ /**
+ * The metric name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * The metric display name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayName?: string;
+ /**
+ * The metric display description.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayDescription?: string;
+ /**
+ * The metric unit. Possible values include: 'Bytes', 'Count', 'Milliseconds'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly unit?: MetricUnit;
+ /**
+ * The metric aggregation type. Possible values include: 'Average', 'Count', 'Total'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly aggregationType?: MetricAggregationType;
+ /**
+ * The metric lock aggregation type. Possible values include: 'Average', 'Count', 'Total'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly lockAggregationType?: MetricAggregationType;
+ /**
+ * Supported aggregation types.
+ */
+ supportedAggregationTypes?: string[];
+ /**
+ * The metric dimensions.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly dimensions?: MetricDimension[];
+ /**
+ * Indicates whether regional MDM account is enabled.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly enableRegionalMdmAccount?: boolean;
+ /**
+ * The source MDM account.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly sourceMdmAccount?: string;
+ /**
+ * The source MDM namespace.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly sourceMdmNamespace?: string;
+ /**
+ * The supported time grain types.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly supportedTimeGrainTypes?: string[];
+}
+
+/**
+ * A diagnostic log emitted by service.
+ */
+export interface LogSpecification {
+ /**
+ * The diagnostic log category name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * The diagnostic log category display name.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly displayName?: string;
+ /**
+ * The time range for requests in each blob.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly blobDuration?: string;
+}
+
+/**
+ * The service metric specifications.
+ */
+export interface ServiceSpecification {
+ /**
+ * List of log specifications.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly logSpecifications?: LogSpecification[];
+ /**
+ * List of metric specifications.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly metricSpecifications?: MetricSpecification[];
+}
+
+/**
+ * Metric properties.
+ */
+export interface Properties {
+ /**
+ * The service specifications.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly serviceSpecification?: ServiceSpecification;
+}
+
+/**
+ * An operation.
+ */
+export interface Operation {
+ /**
+ * The operation name.
+ */
+ name: string;
+ /**
+ * The operation display name.
+ */
+ display?: OperationDisplay;
+ /**
+ * Origin of the operation.
+ */
+ origin?: string;
+ /**
+ * Operation properties format.
+ */
+ properties?: Properties;
+ /**
+ * Whether the operation applies to data-plane.
+ */
+ isDataAction?: boolean;
+ /**
+ * Indicates the action type. Possible values include: 'Internal'
+ */
+ actionType?: ActionType;
+}
+
+/**
+ * The user assigned managed identity to use when accessing a resource.
+ */
+export interface ResourceIdentity {
+ /**
+ * The user assigned managed identity's resource identifier to use when accessing a resource.
+ */
+ userAssignedIdentity: string;
+}
+
+/**
+ * The details about the associated storage account.
+ */
+export interface StorageAccount {
+ /**
+ * The ID of the storage account resource. Video Analyzer relies on tables, queues, and blobs.
+ * The primary storage account must be a Standard Storage account (either
+ * Microsoft.ClassicStorage or Microsoft.Storage).
+ */
+ id?: string;
+ /**
+ * A managed identity that Video Analyzer will use to access the storage account.
+ */
+ identity?: ResourceIdentity;
+ /**
+ * The current status of the storage account mapping.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly status?: string;
+}
+
+/**
+ * The input to the sync storage keys request.
+ */
+export interface SyncStorageKeysInput {
+ /**
+ * The ID of the storage account resource.
+ */
+ id?: string;
+}
+
+/**
+ * The endpoint details.
+ */
+export interface Endpoint {
+ /**
+ * The URL of the endpoint.
+ */
+ endpointUrl?: string;
+}
+
+/**
+ * The details for accessing the encryption keys in Key Vault.
+ */
+export interface KeyVaultProperties {
+ /**
+ * The URL of the Key Vault key used to encrypt the account. The key may either be versioned (for
+ * example https://vault/keys/mykey/version1) or reference a key without a version (for example
+ * https://vault/keys/mykey).
+ */
+ keyIdentifier: string;
+ /**
+ * The current key used to encrypt Video Analyzer account, including the key version.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly currentKeyIdentifier?: string;
+}
+
+/**
+ * Defines how the Video Analyzer account is (optionally) encrypted.
+ */
+export interface AccountEncryption {
+ /**
+ * The type of key used to encrypt the Account Key. Possible values include: 'SystemKey',
+ * 'CustomerKey'
+ */
+ type: AccountEncryptionKeyType;
+ /**
+ * The properties of the key used to encrypt the account.
+ */
+ keyVaultProperties?: KeyVaultProperties;
+ /**
+ * The Key Vault identity.
+ */
+ identity?: ResourceIdentity;
+ /**
+ * The current status of the Key Vault mapping.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly status?: string;
+}
+
+/**
+ * Metadata pertaining to creation and last modification of the resource.
+ */
+export interface SystemData {
+ /**
+ * The identity that created the resource.
+ */
+ createdBy?: string;
+ /**
+ * The type of identity that created the resource. Possible values include: 'User',
+ * 'Application', 'ManagedIdentity', 'Key'
+ */
+ createdByType?: CreatedByType;
+ /**
+ * The timestamp of resource creation (UTC).
+ */
+ createdAt?: Date;
+ /**
+ * The identity that last modified the resource.
+ */
+ lastModifiedBy?: string;
+ /**
+ * The type of identity that last modified the resource. Possible values include: 'User',
+ * 'Application', 'ManagedIdentity', 'Key'
+ */
+ lastModifiedByType?: CreatedByType;
+ /**
+ * The timestamp of resource last modification (UTC)
+ */
+ lastModifiedAt?: Date;
+}
+
+/**
+ * The details of the user assigned managed identity used by the Video Analyzer resource.
+ */
+export interface UserAssignedManagedIdentity {
+ /**
+ * The client ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly clientId?: string;
+ /**
+ * The principal ID.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly principalId?: string;
+}
+
+/**
+ * The managed identity for the Video Analyzer resource.
+ */
+export interface VideoAnalyzerIdentity {
+ /**
+ * The identity type.
+ */
+ type: string;
+ /**
+ * The User Assigned Managed Identities.
+ */
+ userAssignedIdentities?: { [propertyName: string]: UserAssignedManagedIdentity };
+}
+
+/**
+ * Common fields that are returned in the response for all Azure Resource Manager resources
+ * @summary Resource
+ */
+export interface Resource extends BaseResource {
+ /**
+ * Fully qualified resource ID for the resource. Ex -
+ * /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly id?: string;
+ /**
+ * The name of the resource
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly name?: string;
+ /**
+ * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ * "Microsoft.Storage/storageAccounts"
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly type?: string;
+}
+
+/**
+ * The resource model definition for an Azure Resource Manager tracked top level resource which has
+ * 'tags' and a 'location'
+ * @summary Tracked Resource
+ */
+export interface TrackedResource extends Resource {
+ /**
+ * Resource tags.
+ */
+ tags?: { [propertyName: string]: string };
+ /**
+ * The geo-location where the resource lives
+ */
+ location: string;
+}
+
+/**
+ * A Video Analyzer account.
+ */
+export interface VideoAnalyzerModel extends TrackedResource {
+ /**
+ * The storage accounts for this resource.
+ */
+ storageAccounts?: StorageAccount[];
+ /**
+ * The list of endpoints associated with this resource.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly endpoints?: Endpoint[];
+ /**
+ * The account encryption properties.
+ */
+ encryption?: AccountEncryption;
+ /**
+ * The system data of the Video Analyzer account.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly systemData?: SystemData;
+ /**
+ * The set of managed identities associated with the Video Analyzer resource.
+ */
+ identity?: VideoAnalyzerIdentity;
+}
+
+/**
+ * The update operation for a Video Analyzer account.
+ */
+export interface VideoAnalyzerUpdate {
+ /**
+ * Resource tags.
+ */
+ tags?: { [propertyName: string]: string };
+ /**
+ * The storage accounts for this resource.
+ */
+ storageAccounts?: StorageAccount[];
+ /**
+ * The list of endpoints associated with this resource.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly endpoints?: Endpoint[];
+ /**
+ * The account encryption properties.
+ */
+ encryption?: AccountEncryption;
+ /**
+ * The identities associated to the Video Analyzer resource.
+ */
+ identity?: VideoAnalyzerIdentity;
+}
+
+/**
+ * A collection of Operation items.
+ */
+export interface OperationCollection {
+ /**
+ * A collection of Operation items.
+ */
+ value?: Operation[];
+}
+
+/**
+ * A collection of VideoAnalyzer items.
+ */
+export interface VideoAnalyzerCollection {
+ /**
+ * A collection of VideoAnalyzer items.
+ */
+ value?: VideoAnalyzerModel[];
+}
+
+/**
+ * The resource management error additional info.
+ */
+export interface ErrorAdditionalInfo {
+ /**
+ * The additional info type.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly type?: string;
+ /**
+ * The additional info.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly info?: any;
+}
+
+/**
+ * The error detail.
+ */
+export interface ErrorDetail {
+ /**
+ * The error code.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly code?: string;
+ /**
+ * The error message.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly message?: string;
+ /**
+ * The error target.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly target?: string;
+ /**
+ * The error details.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly details?: ErrorDetail[];
+ /**
+ * The error additional info.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly additionalInfo?: ErrorAdditionalInfo[];
+}
+
+/**
+ * Common error response for all Azure Resource Manager APIs to return error details for failed
+ * operations. (This also follows the OData error response format.).
+ * @summary Error response
+ */
+export interface ErrorResponse {
+ /**
+ * The error object.
+ */
+ error?: ErrorDetail;
+}
+
+/**
+ * The check availability request body.
+ */
+export interface CheckNameAvailabilityRequest {
+ /**
+ * The name of the resource for which availability needs to be checked.
+ */
+ name?: string;
+ /**
+ * The resource type.
+ */
+ type?: string;
+}
+
+/**
+ * The check availability result.
+ */
+export interface CheckNameAvailabilityResponse {
+ /**
+ * Indicates if the resource name is available.
+ */
+ nameAvailable?: boolean;
+ /**
+ * The reason why the given name is not available. Possible values include: 'Invalid',
+ * 'AlreadyExists'
+ */
+ reason?: CheckNameAvailabilityReason;
+ /**
+ * Detailed reason why the given name is available.
+ */
+ message?: string;
+}
+
+/**
+ * The resource model definition for a Azure Resource Manager proxy resource. It will not have tags
+ * and a location
+ * @summary Proxy Resource
+ */
+export interface ProxyResource extends Resource {
+}
+
+/**
+ * The resource model definition for an Azure Resource Manager resource with an etag.
+ * @summary Entity Resource
+ */
+export interface AzureEntityResource extends Resource {
+ /**
+ * Resource Etag.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly etag?: string;
+}
+
+/**
+ * The input parameters to generate registration token for the Azure Video Analyzer IoT edge
+ * module.
+ */
+export interface ListProvisioningTokenInput {
+ /**
+ * The desired expiration date of the registration token. The Azure Video Analyzer IoT edge
+ * module must be initialized and connected to the Internet prior to the token expiration date.
+ */
+ expirationDate: Date;
+}
+
+/**
+ * Provisioning token properties. A provisioning token allows for a single instance of Azure Video
+ * analyzer IoT edge module to be initialized and authorized to the cloud account. The provisioning
+ * token itself is short lived and it is only used for the initial handshake between IoT edge
+ * module and the cloud. After the initial handshake, the IoT edge module will agree on a set of
+ * authentication keys which will be auto-rotated as long as the module is able to periodically
+ * connect to the cloud. A new provisioning token can be generated for the same IoT edge module in
+ * case the module state lost or reset.
+ */
+export interface EdgeModuleProvisioningToken {
+ /**
+ * The expiration date of the registration token. The Azure Video Analyzer IoT edge module must
+ * be initialized and connected to the Internet prior to the token expiration date.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly expirationDate?: Date;
+ /**
+ * The token blob to be provided to the Azure Video Analyzer IoT edge module through the Azure
+ * IoT Edge module twin properties.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly token?: string;
+}
+
+/**
+ * The representation of an edge module.
+ */
+export interface EdgeModuleEntity extends ProxyResource {
+ /**
+ * Internal ID generated for the instance of the Video Analyzer edge module.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly edgeModuleId?: string;
+ /**
+ * The system metadata relating to this resource.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly systemData?: SystemData;
+}
+
+/**
+ * Video streaming holds information about video streaming URLs.
+ */
+export interface VideoStreaming {
+ /**
+ * Video streaming base URL for the video archive. When present, archived video can be played
+ * through the Azure Video Analyzer player. Alternatively, this URL can be used with compatible
+ * DASH or HLS players by appending the following to the base URL:
+ *
+ * - HLSv4: /manifest(format=m3u8-aapl).m3u8
+ * - HLS CMAF: /manifest(format=m3u8-cmaf)
+ * - DASH CMAF: /manifest(format=mpd-time-cmaf)
+ *
+ * Moreover, an ongoing video recording can be played in "live mode" with latencies which are
+ * approximately double of the chosen video segment length.
+ */
+ archiveBaseUrl?: string;
+}
+
+/**
+ * Video flags contain information about the available video actions and its dynamic properties
+ * based on the current video state.
+ */
+export interface VideoFlags {
+ /**
+ * Value indicating whether or not the video can be streamed. Only "archive" type videos can be
+ * streamed.
+ */
+ canStream: boolean;
+ /**
+ * Value indicating whether or not there has ever been data recorded or uploaded into the video.
+ * Newly created videos have this value set to false.
+ */
+ hasData: boolean;
+ /**
+ * Value indicating whether or not the video is currently being referenced be an active live
+ * pipeline. The fact that is being referenced, doesn't necessarily indicate that data is being
+ * received. For example, video recording may be gated on events or camera may not be accessible
+ * at the time.
+ */
+ isRecording: boolean;
+}
+
+/**
+ * Contains information about the video and audio content.
+ */
+export interface VideoMediaInfo {
+ /**
+ * Video segment length indicates the length of individual video files (segments) which are
+ * persisted to storage. Smaller segments provide lower archive playback latency but generate
+ * larger volume of storage transactions. Larger segments reduce the amount of storage
+ * transactions while increasing the archive playback latency. Value must be specified in ISO8601
+ * duration format (i.e. "PT30S" equals 30 seconds) and can vary between 30 seconds to 5 minutes,
+ * in 30 seconds increments.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly segmentLength?: string;
+}
+
+/**
+ * Video streaming token grants access to the video streaming URLs which can be used by an
+ * compatible HLS or DASH player.
+ */
+export interface VideoStreamingToken {
+ /**
+ * The streaming token expiration date in ISO8601 format (eg. 2021-01-01T00:00:00Z).
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly expirationDate?: Date;
+ /**
+ * 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.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly token?: string;
+}
+
+/**
+ * Contains the possible cases for AuthenticationBase.
+ */
+export type AuthenticationBaseUnion = AuthenticationBase | JwtAuthentication;
+
+/**
+ * Base class for access policies authentication methods.
+ */
+export interface AuthenticationBase {
+ /**
+ * Polymorphic Discriminator
+ */
+ type: "AuthenticationBase";
+}
+
+/**
+ * Properties for expected token claims.
+ */
+export interface TokenClaim {
+ /**
+ * Name of the claim which must be present on the token.
+ */
+ name: string;
+ /**
+ * Expected value of the claim to be present on the token.
+ */
+ value: string;
+}
+
+/**
+ * Contains the possible cases for TokenKey.
+ */
+export type TokenKeyUnion = TokenKey | RsaTokenKey | EccTokenKey;
+
+/**
+ * Key properties for JWT token validation.
+ */
+export interface TokenKey {
+ /**
+ * Polymorphic Discriminator
+ */
+ type: "TokenKey";
+ /**
+ * JWT token key id. Validation keys are looked up based on the key id present on the JWT token
+ * header.
+ */
+ kid: string;
+}
+
+/**
+ * Properties for access validation based on JSON Web Tokens (JWT).
+ */
+export interface JwtAuthentication {
+ /**
+ * Polymorphic Discriminator
+ */
+ type: "#Microsoft.VideoAnalyzer.JwtAuthentication";
+ /**
+ * List of expected token issuers. Token issuer is valid if it matches at least one of the given
+ * values.
+ */
+ issuers?: string[];
+ /**
+ * List of expected token audiences. Token audience is valid if it matches at least one of the
+ * given values.
+ */
+ audiences?: string[];
+ /**
+ * List of additional token claims to be validated. Token must contains all claims and respective
+ * values for it to be valid.
+ */
+ claims?: TokenClaim[];
+ /**
+ * List of keys which can be used to validate access tokens. Having multiple keys allow for
+ * seamless key rotation of the token signing key. Token signature must match exactly one key.
+ */
+ keys?: TokenKeyUnion[];
+}
+
+/**
+ * Required validation properties for tokens generated with RSA algorithm.
+ */
+export interface RsaTokenKey {
+ /**
+ * Polymorphic Discriminator
+ */
+ type: "#Microsoft.VideoAnalyzer.RsaTokenKey";
+ /**
+ * JWT token key id. Validation keys are looked up based on the key id present on the JWT token
+ * header.
+ */
+ kid: string;
+ /**
+ * RSA algorithm to be used: RS256, RS384 or RS512. Possible values include: 'RS256', 'RS384',
+ * 'RS512'
+ */
+ alg: AccessPolicyRsaAlgo;
+ /**
+ * RSA public key modulus.
+ */
+ n: string;
+ /**
+ * RSA public key exponent.
+ */
+ e: string;
+}
+
+/**
+ * Required validation properties for tokens generated with Elliptical Curve algorithm.
+ */
+export interface EccTokenKey {
+ /**
+ * Polymorphic Discriminator
+ */
+ type: "#Microsoft.VideoAnalyzer.EccTokenKey";
+ /**
+ * JWT token key id. Validation keys are looked up based on the key id present on the JWT token
+ * header.
+ */
+ kid: string;
+ /**
+ * Elliptical curve algorithm to be used: ES256, ES384 or ES512. Possible values include:
+ * 'ES256', 'ES384', 'ES512'
+ */
+ alg: AccessPolicyEccAlgo;
+ /**
+ * X coordinate.
+ */
+ x: string;
+ /**
+ * Y coordinate.
+ */
+ y: string;
+}
+
+/**
+ * The representation of a single video in a Video Analyzer account.
+ */
+export interface VideoEntity extends ProxyResource {
+ /**
+ * Optional video title provided by the user. Value can be up to 256 characters long.
+ */
+ title?: string;
+ /**
+ * Optional video description provided by the user. Value can be up to 2048 characters long.
+ */
+ description?: string;
+ /**
+ * Type of the video archive. Different archive formats provide different capabilities. Possible
+ * values include: 'Archive'
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly videoEntityType?: VideoType;
+ /**
+ * Video flags contain information about the available video actions and its dynamic properties
+ * based on the current video state.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly flags?: VideoFlags;
+ /**
+ * Video streaming holds information about video streaming URLs.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly streaming?: VideoStreaming;
+ /**
+ * Contains information about the video and audio content.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly mediaInfo?: VideoMediaInfo;
+ /**
+ * The system metadata relating to this resource.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly systemData?: SystemData;
+}
+
+/**
+ * Policy that determines how a video can be accessed.
+ */
+export interface AccessPolicyEntity extends ProxyResource {
+ /**
+ * Defines the access level granted by this policy. Possible values include: 'Reader'
+ */
+ role?: AccessPolicyRole;
+ /**
+ * Authentication method to be used when validating client API access.
+ */
+ authentication?: AuthenticationBaseUnion;
+ /**
+ * The system metadata relating to this resource.
+ * **NOTE: This property will not be serialized. It can only be populated by the server.**
+ */
+ readonly systemData?: SystemData;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface VideoAnalyzersSyncStorageKeysOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * The ID of the storage account resource.
+ */
+ id?: string;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface EdgeModulesListOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * Restricts the set of items returned.
+ */
+ filter?: string;
+ /**
+ * 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.
+ */
+ top?: number;
+ /**
+ * Specifies the key by which the result collection should be ordered.
+ */
+ orderby?: string;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface EdgeModulesListNextOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * Restricts the set of items returned.
+ */
+ filter?: string;
+ /**
+ * 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.
+ */
+ top?: number;
+ /**
+ * Specifies the key by which the result collection should be ordered.
+ */
+ orderby?: string;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface VideosListOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * 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.
+ */
+ top?: number;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface VideosListNextOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * 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.
+ */
+ top?: number;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface AccessPoliciesListOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * 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.
+ */
+ top?: number;
+}
+
+/**
+ * Optional Parameters.
+ */
+export interface AccessPoliciesListNextOptionalParams extends msRest.RequestOptionsBase {
+ /**
+ * 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.
+ */
+ top?: number;
+}
+
+/**
+ * An interface representing VideoAnalyzerOptions.
+ */
+export interface VideoAnalyzerOptions extends AzureServiceClientOptions {
+ baseUri?: string;
+}
+
+/**
+ * @interface
+ * A collection of EdgeModuleEntity items.
+ * @extends Array
+ */
+export interface EdgeModuleEntityCollection extends Array {
+ /**
+ * A link to the next page of the collection (when the collection contains too many results to
+ * return in one response).
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * A collection of VideoEntity items.
+ * @extends Array
+ */
+export interface VideoEntityCollection extends Array {
+ /**
+ * A link to the next page of the collection (when the collection contains too many results to
+ * return in one response).
+ */
+ nextLink?: string;
+}
+
+/**
+ * @interface
+ * A collection of AccessPolicyEntity items.
+ * @extends Array
+ */
+export interface AccessPolicyEntityCollection extends Array {
+ /**
+ * A link to the next page of the collection (when the collection contains too many results to
+ * return in one response).
+ */
+ nextLink?: string;
+}
+
+/**
+ * Defines values for MetricUnit.
+ * Possible values include: 'Bytes', 'Count', 'Milliseconds'
+ * @readonly
+ * @enum {string}
+ */
+export type MetricUnit = 'Bytes' | 'Count' | 'Milliseconds';
+
+/**
+ * Defines values for MetricAggregationType.
+ * Possible values include: 'Average', 'Count', 'Total'
+ * @readonly
+ * @enum {string}
+ */
+export type MetricAggregationType = 'Average' | 'Count' | 'Total';
+
+/**
+ * Defines values for ActionType.
+ * Possible values include: 'Internal'
+ * @readonly
+ * @enum {string}
+ */
+export type ActionType = 'Internal';
+
+/**
+ * Defines values for AccountEncryptionKeyType.
+ * Possible values include: 'SystemKey', 'CustomerKey'
+ * @readonly
+ * @enum {string}
+ */
+export type AccountEncryptionKeyType = 'SystemKey' | 'CustomerKey';
+
+/**
+ * Defines values for CreatedByType.
+ * Possible values include: 'User', 'Application', 'ManagedIdentity', 'Key'
+ * @readonly
+ * @enum {string}
+ */
+export type CreatedByType = 'User' | 'Application' | 'ManagedIdentity' | 'Key';
+
+/**
+ * Defines values for CheckNameAvailabilityReason.
+ * Possible values include: 'Invalid', 'AlreadyExists'
+ * @readonly
+ * @enum {string}
+ */
+export type CheckNameAvailabilityReason = 'Invalid' | 'AlreadyExists';
+
+/**
+ * Defines values for VideoType.
+ * Possible values include: 'Archive'
+ * @readonly
+ * @enum {string}
+ */
+export type VideoType = 'Archive';
+
+/**
+ * Defines values for AccessPolicyRsaAlgo.
+ * Possible values include: 'RS256', 'RS384', 'RS512'
+ * @readonly
+ * @enum {string}
+ */
+export type AccessPolicyRsaAlgo = 'RS256' | 'RS384' | 'RS512';
+
+/**
+ * Defines values for AccessPolicyEccAlgo.
+ * Possible values include: 'ES256', 'ES384', 'ES512'
+ * @readonly
+ * @enum {string}
+ */
+export type AccessPolicyEccAlgo = 'ES256' | 'ES384' | 'ES512';
+
+/**
+ * Defines values for AccessPolicyRole.
+ * Possible values include: 'Reader'
+ * @readonly
+ * @enum {string}
+ */
+export type AccessPolicyRole = 'Reader';
+
+/**
+ * Contains response data for the list operation.
+ */
+export type OperationsListResponse = OperationCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: OperationCollection;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type VideoAnalyzersListResponse = VideoAnalyzerCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoAnalyzerCollection;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type VideoAnalyzersGetResponse = VideoAnalyzerModel & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoAnalyzerModel;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type VideoAnalyzersCreateOrUpdateResponse = VideoAnalyzerModel & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoAnalyzerModel;
+ };
+};
+
+/**
+ * Contains response data for the update operation.
+ */
+export type VideoAnalyzersUpdateResponse = VideoAnalyzerModel & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoAnalyzerModel;
+ };
+};
+
+/**
+ * Contains response data for the listBySubscription operation.
+ */
+export type VideoAnalyzersListBySubscriptionResponse = VideoAnalyzerCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoAnalyzerCollection;
+ };
+};
+
+/**
+ * Contains response data for the checkNameAvailability operation.
+ */
+export type LocationsCheckNameAvailabilityResponse = CheckNameAvailabilityResponse & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: CheckNameAvailabilityResponse;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type EdgeModulesListResponse = EdgeModuleEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: EdgeModuleEntityCollection;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type EdgeModulesGetResponse = EdgeModuleEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: EdgeModuleEntity;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type EdgeModulesCreateOrUpdateResponse = EdgeModuleEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: EdgeModuleEntity;
+ };
+};
+
+/**
+ * Contains response data for the listProvisioningToken operation.
+ */
+export type EdgeModulesListProvisioningTokenResponse = EdgeModuleProvisioningToken & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: EdgeModuleProvisioningToken;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type EdgeModulesListNextResponse = EdgeModuleEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: EdgeModuleEntityCollection;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type VideosListResponse = VideoEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoEntityCollection;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type VideosGetResponse = VideoEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoEntity;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type VideosCreateOrUpdateResponse = VideoEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoEntity;
+ };
+};
+
+/**
+ * Contains response data for the update operation.
+ */
+export type VideosUpdateResponse = VideoEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoEntity;
+ };
+};
+
+/**
+ * Contains response data for the listStreamingToken operation.
+ */
+export type VideosListStreamingTokenResponse = VideoStreamingToken & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoStreamingToken;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type VideosListNextResponse = VideoEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: VideoEntityCollection;
+ };
+};
+
+/**
+ * Contains response data for the list operation.
+ */
+export type AccessPoliciesListResponse = AccessPolicyEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AccessPolicyEntityCollection;
+ };
+};
+
+/**
+ * Contains response data for the get operation.
+ */
+export type AccessPoliciesGetResponse = AccessPolicyEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AccessPolicyEntity;
+ };
+};
+
+/**
+ * Contains response data for the createOrUpdate operation.
+ */
+export type AccessPoliciesCreateOrUpdateResponse = AccessPolicyEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AccessPolicyEntity;
+ };
+};
+
+/**
+ * Contains response data for the update operation.
+ */
+export type AccessPoliciesUpdateResponse = AccessPolicyEntity & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AccessPolicyEntity;
+ };
+};
+
+/**
+ * Contains response data for the listNext operation.
+ */
+export type AccessPoliciesListNextResponse = AccessPolicyEntityCollection & {
+ /**
+ * The underlying HTTP response.
+ */
+ _response: msRest.HttpResponse & {
+ /**
+ * The response body as text (string format)
+ */
+ bodyAsText: string;
+
+ /**
+ * The response body as parsed JSON or XML
+ */
+ parsedBody: AccessPolicyEntityCollection;
+ };
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/locationsMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/locationsMappers.ts
new file mode 100644
index 000000000000..2e6b25ad20cf
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/locationsMappers.ts
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ CheckNameAvailabilityRequest,
+ CheckNameAvailabilityResponse,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/mappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/mappers.ts
new file mode 100644
index 000000000000..07fc60974682
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/mappers.ts
@@ -0,0 +1,1525 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+import { CloudErrorMapper, BaseResourceMapper } from "@azure/ms-rest-azure-js";
+import * as msRest from "@azure/ms-rest-js";
+
+export const CloudError = CloudErrorMapper;
+export const BaseResource = BaseResourceMapper;
+
+export const OperationDisplay: msRest.CompositeMapper = {
+ serializedName: "OperationDisplay",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay",
+ modelProperties: {
+ provider: {
+ serializedName: "provider",
+ type: {
+ name: "String"
+ }
+ },
+ resource: {
+ serializedName: "resource",
+ type: {
+ name: "String"
+ }
+ },
+ operation: {
+ serializedName: "operation",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ serializedName: "description",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const MetricDimension: msRest.CompositeMapper = {
+ serializedName: "MetricDimension",
+ type: {
+ name: "Composite",
+ className: "MetricDimension",
+ modelProperties: {
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ displayName: {
+ readOnly: true,
+ serializedName: "displayName",
+ type: {
+ name: "String"
+ }
+ },
+ toBeExportedForShoebox: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "toBeExportedForShoebox",
+ type: {
+ name: "Boolean"
+ }
+ }
+ }
+ }
+};
+
+export const MetricSpecification: msRest.CompositeMapper = {
+ serializedName: "MetricSpecification",
+ type: {
+ name: "Composite",
+ className: "MetricSpecification",
+ modelProperties: {
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ displayName: {
+ readOnly: true,
+ serializedName: "displayName",
+ type: {
+ name: "String"
+ }
+ },
+ displayDescription: {
+ readOnly: true,
+ serializedName: "displayDescription",
+ type: {
+ name: "String"
+ }
+ },
+ unit: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "unit",
+ type: {
+ name: "String"
+ }
+ },
+ aggregationType: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "aggregationType",
+ type: {
+ name: "String"
+ }
+ },
+ lockAggregationType: {
+ nullable: true,
+ readOnly: true,
+ serializedName: "lockAggregationType",
+ type: {
+ name: "String"
+ }
+ },
+ supportedAggregationTypes: {
+ serializedName: "supportedAggregationTypes",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ dimensions: {
+ readOnly: true,
+ serializedName: "dimensions",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "MetricDimension"
+ }
+ }
+ }
+ },
+ enableRegionalMdmAccount: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "enableRegionalMdmAccount",
+ type: {
+ name: "Boolean"
+ }
+ },
+ sourceMdmAccount: {
+ readOnly: true,
+ serializedName: "sourceMdmAccount",
+ type: {
+ name: "String"
+ }
+ },
+ sourceMdmNamespace: {
+ readOnly: true,
+ serializedName: "sourceMdmNamespace",
+ type: {
+ name: "String"
+ }
+ },
+ supportedTimeGrainTypes: {
+ readOnly: true,
+ serializedName: "supportedTimeGrainTypes",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const LogSpecification: msRest.CompositeMapper = {
+ serializedName: "LogSpecification",
+ type: {
+ name: "Composite",
+ className: "LogSpecification",
+ modelProperties: {
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ displayName: {
+ readOnly: true,
+ serializedName: "displayName",
+ type: {
+ name: "String"
+ }
+ },
+ blobDuration: {
+ readOnly: true,
+ serializedName: "blobDuration",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ServiceSpecification: msRest.CompositeMapper = {
+ serializedName: "ServiceSpecification",
+ type: {
+ name: "Composite",
+ className: "ServiceSpecification",
+ modelProperties: {
+ logSpecifications: {
+ readOnly: true,
+ serializedName: "logSpecifications",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "LogSpecification"
+ }
+ }
+ }
+ },
+ metricSpecifications: {
+ readOnly: true,
+ serializedName: "metricSpecifications",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "MetricSpecification"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const Properties: msRest.CompositeMapper = {
+ serializedName: "Properties",
+ type: {
+ name: "Composite",
+ className: "Properties",
+ modelProperties: {
+ serviceSpecification: {
+ readOnly: true,
+ serializedName: "serviceSpecification",
+ type: {
+ name: "Composite",
+ className: "ServiceSpecification"
+ }
+ }
+ }
+ }
+};
+
+export const Operation: msRest.CompositeMapper = {
+ serializedName: "Operation",
+ type: {
+ name: "Composite",
+ className: "Operation",
+ modelProperties: {
+ name: {
+ required: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ display: {
+ serializedName: "display",
+ type: {
+ name: "Composite",
+ className: "OperationDisplay"
+ }
+ },
+ origin: {
+ serializedName: "origin",
+ type: {
+ name: "String"
+ }
+ },
+ properties: {
+ serializedName: "properties",
+ type: {
+ name: "Composite",
+ className: "Properties"
+ }
+ },
+ isDataAction: {
+ nullable: true,
+ serializedName: "isDataAction",
+ type: {
+ name: "Boolean"
+ }
+ },
+ actionType: {
+ nullable: true,
+ serializedName: "actionType",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ResourceIdentity: msRest.CompositeMapper = {
+ serializedName: "ResourceIdentity",
+ type: {
+ name: "Composite",
+ className: "ResourceIdentity",
+ modelProperties: {
+ userAssignedIdentity: {
+ required: true,
+ serializedName: "userAssignedIdentity",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const StorageAccount: msRest.CompositeMapper = {
+ serializedName: "StorageAccount",
+ type: {
+ name: "Composite",
+ className: "StorageAccount",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ identity: {
+ serializedName: "identity",
+ type: {
+ name: "Composite",
+ className: "ResourceIdentity"
+ }
+ },
+ status: {
+ readOnly: true,
+ serializedName: "status",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const SyncStorageKeysInput: msRest.CompositeMapper = {
+ serializedName: "SyncStorageKeysInput",
+ type: {
+ name: "Composite",
+ className: "SyncStorageKeysInput",
+ modelProperties: {
+ id: {
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const Endpoint: msRest.CompositeMapper = {
+ serializedName: "Endpoint",
+ type: {
+ name: "Composite",
+ className: "Endpoint",
+ modelProperties: {
+ endpointUrl: {
+ serializedName: "endpointUrl",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ required: true,
+ isConstant: true,
+ serializedName: "type",
+ defaultValue: 'ClientApi',
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const KeyVaultProperties: msRest.CompositeMapper = {
+ serializedName: "KeyVaultProperties",
+ type: {
+ name: "Composite",
+ className: "KeyVaultProperties",
+ modelProperties: {
+ keyIdentifier: {
+ required: true,
+ serializedName: "keyIdentifier",
+ type: {
+ name: "String"
+ }
+ },
+ currentKeyIdentifier: {
+ readOnly: true,
+ serializedName: "currentKeyIdentifier",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const AccountEncryption: msRest.CompositeMapper = {
+ serializedName: "AccountEncryption",
+ type: {
+ name: "Composite",
+ className: "AccountEncryption",
+ modelProperties: {
+ type: {
+ required: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ },
+ keyVaultProperties: {
+ serializedName: "keyVaultProperties",
+ type: {
+ name: "Composite",
+ className: "KeyVaultProperties"
+ }
+ },
+ identity: {
+ serializedName: "identity",
+ type: {
+ name: "Composite",
+ className: "ResourceIdentity"
+ }
+ },
+ status: {
+ readOnly: true,
+ serializedName: "status",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const SystemData: msRest.CompositeMapper = {
+ serializedName: "systemData",
+ type: {
+ name: "Composite",
+ className: "SystemData",
+ modelProperties: {
+ createdBy: {
+ serializedName: "createdBy",
+ type: {
+ name: "String"
+ }
+ },
+ createdByType: {
+ serializedName: "createdByType",
+ type: {
+ name: "String"
+ }
+ },
+ createdAt: {
+ serializedName: "createdAt",
+ type: {
+ name: "DateTime"
+ }
+ },
+ lastModifiedBy: {
+ serializedName: "lastModifiedBy",
+ type: {
+ name: "String"
+ }
+ },
+ lastModifiedByType: {
+ serializedName: "lastModifiedByType",
+ type: {
+ name: "String"
+ }
+ },
+ lastModifiedAt: {
+ serializedName: "lastModifiedAt",
+ type: {
+ name: "DateTime"
+ }
+ }
+ }
+ }
+};
+
+export const UserAssignedManagedIdentity: msRest.CompositeMapper = {
+ serializedName: "UserAssignedManagedIdentity",
+ type: {
+ name: "Composite",
+ className: "UserAssignedManagedIdentity",
+ modelProperties: {
+ clientId: {
+ readOnly: true,
+ serializedName: "clientId",
+ type: {
+ name: "String"
+ }
+ },
+ principalId: {
+ readOnly: true,
+ serializedName: "principalId",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoAnalyzerIdentity: msRest.CompositeMapper = {
+ serializedName: "VideoAnalyzerIdentity",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerIdentity",
+ modelProperties: {
+ type: {
+ required: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ },
+ userAssignedIdentities: {
+ serializedName: "userAssignedIdentities",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "Composite",
+ className: "UserAssignedManagedIdentity"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const Resource: msRest.CompositeMapper = {
+ serializedName: "Resource",
+ type: {
+ name: "Composite",
+ className: "Resource",
+ modelProperties: {
+ id: {
+ readOnly: true,
+ serializedName: "id",
+ type: {
+ name: "String"
+ }
+ },
+ name: {
+ readOnly: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TrackedResource: msRest.CompositeMapper = {
+ serializedName: "TrackedResource",
+ type: {
+ name: "Composite",
+ className: "TrackedResource",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ tags: {
+ serializedName: "tags",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ location: {
+ required: true,
+ serializedName: "location",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoAnalyzerModel: msRest.CompositeMapper = {
+ serializedName: "VideoAnalyzer",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerModel",
+ modelProperties: {
+ ...TrackedResource.type.modelProperties,
+ storageAccounts: {
+ serializedName: "properties.storageAccounts",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "StorageAccount"
+ }
+ }
+ }
+ },
+ endpoints: {
+ readOnly: true,
+ serializedName: "properties.endpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Endpoint"
+ }
+ }
+ }
+ },
+ encryption: {
+ serializedName: "properties.encryption",
+ type: {
+ name: "Composite",
+ className: "AccountEncryption"
+ }
+ },
+ systemData: {
+ readOnly: true,
+ serializedName: "systemData",
+ type: {
+ name: "Composite",
+ className: "SystemData"
+ }
+ },
+ identity: {
+ serializedName: "identity",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerIdentity"
+ }
+ }
+ }
+ }
+};
+
+export const VideoAnalyzerUpdate: msRest.CompositeMapper = {
+ serializedName: "VideoAnalyzerUpdate",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerUpdate",
+ modelProperties: {
+ tags: {
+ serializedName: "tags",
+ type: {
+ name: "Dictionary",
+ value: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ storageAccounts: {
+ serializedName: "properties.storageAccounts",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "StorageAccount"
+ }
+ }
+ }
+ },
+ endpoints: {
+ readOnly: true,
+ serializedName: "properties.endpoints",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Endpoint"
+ }
+ }
+ }
+ },
+ encryption: {
+ serializedName: "properties.encryption",
+ type: {
+ name: "Composite",
+ className: "AccountEncryption"
+ }
+ },
+ identity: {
+ serializedName: "identity",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerIdentity"
+ }
+ }
+ }
+ }
+};
+
+export const OperationCollection: msRest.CompositeMapper = {
+ serializedName: "OperationCollection",
+ type: {
+ name: "Composite",
+ className: "OperationCollection",
+ modelProperties: {
+ value: {
+ serializedName: "value",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "Operation"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const VideoAnalyzerCollection: msRest.CompositeMapper = {
+ serializedName: "VideoAnalyzerCollection",
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerCollection",
+ modelProperties: {
+ value: {
+ serializedName: "value",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "VideoAnalyzerModel"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ErrorAdditionalInfo: msRest.CompositeMapper = {
+ serializedName: "ErrorAdditionalInfo",
+ type: {
+ name: "Composite",
+ className: "ErrorAdditionalInfo",
+ modelProperties: {
+ type: {
+ readOnly: true,
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ },
+ info: {
+ readOnly: true,
+ serializedName: "info",
+ type: {
+ name: "Object"
+ }
+ }
+ }
+ }
+};
+
+export const ErrorDetail: msRest.CompositeMapper = {
+ serializedName: "ErrorDetail",
+ type: {
+ name: "Composite",
+ className: "ErrorDetail",
+ modelProperties: {
+ code: {
+ readOnly: true,
+ serializedName: "code",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ readOnly: true,
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ },
+ target: {
+ readOnly: true,
+ serializedName: "target",
+ type: {
+ name: "String"
+ }
+ },
+ details: {
+ readOnly: true,
+ serializedName: "details",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ErrorDetail"
+ }
+ }
+ }
+ },
+ additionalInfo: {
+ readOnly: true,
+ serializedName: "additionalInfo",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "ErrorAdditionalInfo"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const ErrorResponse: msRest.CompositeMapper = {
+ serializedName: "ErrorResponse",
+ type: {
+ name: "Composite",
+ className: "ErrorResponse",
+ modelProperties: {
+ error: {
+ serializedName: "error",
+ type: {
+ name: "Composite",
+ className: "ErrorDetail"
+ }
+ }
+ }
+ }
+};
+
+export const CheckNameAvailabilityRequest: msRest.CompositeMapper = {
+ serializedName: "CheckNameAvailabilityRequest",
+ type: {
+ name: "Composite",
+ className: "CheckNameAvailabilityRequest",
+ modelProperties: {
+ name: {
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ serializedName: "type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const CheckNameAvailabilityResponse: msRest.CompositeMapper = {
+ serializedName: "CheckNameAvailabilityResponse",
+ type: {
+ name: "Composite",
+ className: "CheckNameAvailabilityResponse",
+ modelProperties: {
+ nameAvailable: {
+ serializedName: "nameAvailable",
+ type: {
+ name: "Boolean"
+ }
+ },
+ reason: {
+ serializedName: "reason",
+ type: {
+ name: "String"
+ }
+ },
+ message: {
+ serializedName: "message",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ProxyResource: msRest.CompositeMapper = {
+ serializedName: "ProxyResource",
+ type: {
+ name: "Composite",
+ className: "ProxyResource",
+ modelProperties: {
+ ...Resource.type.modelProperties
+ }
+ }
+};
+
+export const AzureEntityResource: msRest.CompositeMapper = {
+ serializedName: "AzureEntityResource",
+ type: {
+ name: "Composite",
+ className: "AzureEntityResource",
+ modelProperties: {
+ ...Resource.type.modelProperties,
+ etag: {
+ readOnly: true,
+ serializedName: "etag",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const ListProvisioningTokenInput: msRest.CompositeMapper = {
+ serializedName: "ListProvisioningTokenInput",
+ type: {
+ name: "Composite",
+ className: "ListProvisioningTokenInput",
+ modelProperties: {
+ expirationDate: {
+ required: true,
+ serializedName: "expirationDate",
+ type: {
+ name: "DateTime"
+ }
+ }
+ }
+ }
+};
+
+export const EdgeModuleProvisioningToken: msRest.CompositeMapper = {
+ serializedName: "EdgeModuleProvisioningToken",
+ type: {
+ name: "Composite",
+ className: "EdgeModuleProvisioningToken",
+ modelProperties: {
+ expirationDate: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "expirationDate",
+ type: {
+ name: "DateTime"
+ }
+ },
+ token: {
+ readOnly: true,
+ serializedName: "token",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const EdgeModuleEntity: msRest.CompositeMapper = {
+ serializedName: "EdgeModuleEntity",
+ type: {
+ name: "Composite",
+ className: "EdgeModuleEntity",
+ modelProperties: {
+ ...ProxyResource.type.modelProperties,
+ edgeModuleId: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "properties.edgeModuleId",
+ type: {
+ name: "Uuid"
+ }
+ },
+ systemData: {
+ readOnly: true,
+ serializedName: "systemData",
+ type: {
+ name: "Composite",
+ className: "SystemData"
+ }
+ }
+ }
+ }
+};
+
+export const VideoStreaming: msRest.CompositeMapper = {
+ serializedName: "VideoStreaming",
+ type: {
+ name: "Composite",
+ className: "VideoStreaming",
+ modelProperties: {
+ archiveBaseUrl: {
+ serializedName: "archiveBaseUrl",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoFlags: msRest.CompositeMapper = {
+ serializedName: "VideoFlags",
+ type: {
+ name: "Composite",
+ className: "VideoFlags",
+ modelProperties: {
+ canStream: {
+ required: true,
+ serializedName: "canStream",
+ type: {
+ name: "Boolean"
+ }
+ },
+ hasData: {
+ required: true,
+ serializedName: "hasData",
+ type: {
+ name: "Boolean"
+ }
+ },
+ isRecording: {
+ required: true,
+ serializedName: "isRecording",
+ type: {
+ name: "Boolean"
+ }
+ }
+ }
+ }
+};
+
+export const VideoMediaInfo: msRest.CompositeMapper = {
+ serializedName: "VideoMediaInfo",
+ type: {
+ name: "Composite",
+ className: "VideoMediaInfo",
+ modelProperties: {
+ segmentLength: {
+ readOnly: true,
+ serializedName: "segmentLength",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoStreamingToken: msRest.CompositeMapper = {
+ serializedName: "VideoStreamingToken",
+ type: {
+ name: "Composite",
+ className: "VideoStreamingToken",
+ modelProperties: {
+ expirationDate: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "expirationDate",
+ type: {
+ name: "DateTime"
+ }
+ },
+ token: {
+ readOnly: true,
+ serializedName: "token",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const AuthenticationBase: msRest.CompositeMapper = {
+ serializedName: "AuthenticationBase",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: {
+ serializedName: "@type",
+ clientName: "type"
+ },
+ uberParent: "AuthenticationBase",
+ className: "AuthenticationBase",
+ modelProperties: {
+ type: {
+ required: true,
+ serializedName: "@type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TokenClaim: msRest.CompositeMapper = {
+ serializedName: "TokenClaim",
+ type: {
+ name: "Composite",
+ className: "TokenClaim",
+ modelProperties: {
+ name: {
+ required: true,
+ serializedName: "name",
+ type: {
+ name: "String"
+ }
+ },
+ value: {
+ required: true,
+ serializedName: "value",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const TokenKey: msRest.CompositeMapper = {
+ serializedName: "TokenKey",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: {
+ serializedName: "@type",
+ clientName: "type"
+ },
+ uberParent: "TokenKey",
+ className: "TokenKey",
+ modelProperties: {
+ kid: {
+ required: true,
+ serializedName: "kid",
+ type: {
+ name: "String"
+ }
+ },
+ type: {
+ required: true,
+ serializedName: "@type",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const JwtAuthentication: msRest.CompositeMapper = {
+ serializedName: "#Microsoft.VideoAnalyzer.JwtAuthentication",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: AuthenticationBase.type.polymorphicDiscriminator,
+ uberParent: "AuthenticationBase",
+ className: "JwtAuthentication",
+ modelProperties: {
+ ...AuthenticationBase.type.modelProperties,
+ issuers: {
+ serializedName: "issuers",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ audiences: {
+ serializedName: "audiences",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "String"
+ }
+ }
+ }
+ },
+ claims: {
+ serializedName: "claims",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "TokenClaim"
+ }
+ }
+ }
+ },
+ keys: {
+ serializedName: "keys",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "TokenKey"
+ }
+ }
+ }
+ }
+ }
+ }
+};
+
+export const RsaTokenKey: msRest.CompositeMapper = {
+ serializedName: "#Microsoft.VideoAnalyzer.RsaTokenKey",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: TokenKey.type.polymorphicDiscriminator,
+ uberParent: "TokenKey",
+ className: "RsaTokenKey",
+ modelProperties: {
+ ...TokenKey.type.modelProperties,
+ alg: {
+ required: true,
+ serializedName: "alg",
+ type: {
+ name: "String"
+ }
+ },
+ n: {
+ required: true,
+ serializedName: "n",
+ type: {
+ name: "String"
+ }
+ },
+ e: {
+ required: true,
+ serializedName: "e",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const EccTokenKey: msRest.CompositeMapper = {
+ serializedName: "#Microsoft.VideoAnalyzer.EccTokenKey",
+ type: {
+ name: "Composite",
+ polymorphicDiscriminator: TokenKey.type.polymorphicDiscriminator,
+ uberParent: "TokenKey",
+ className: "EccTokenKey",
+ modelProperties: {
+ ...TokenKey.type.modelProperties,
+ alg: {
+ required: true,
+ serializedName: "alg",
+ type: {
+ name: "String"
+ }
+ },
+ x: {
+ required: true,
+ serializedName: "x",
+ type: {
+ name: "String"
+ }
+ },
+ y: {
+ required: true,
+ serializedName: "y",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoEntity: msRest.CompositeMapper = {
+ serializedName: "VideoEntity",
+ type: {
+ name: "Composite",
+ className: "VideoEntity",
+ modelProperties: {
+ ...ProxyResource.type.modelProperties,
+ title: {
+ serializedName: "properties.title",
+ type: {
+ name: "String"
+ }
+ },
+ description: {
+ serializedName: "properties.description",
+ type: {
+ name: "String"
+ }
+ },
+ videoEntityType: {
+ nullable: false,
+ readOnly: true,
+ serializedName: "properties.type",
+ type: {
+ name: "String"
+ }
+ },
+ flags: {
+ readOnly: true,
+ serializedName: "properties.flags",
+ type: {
+ name: "Composite",
+ className: "VideoFlags"
+ }
+ },
+ streaming: {
+ readOnly: true,
+ serializedName: "properties.streaming",
+ type: {
+ name: "Composite",
+ className: "VideoStreaming"
+ }
+ },
+ mediaInfo: {
+ readOnly: true,
+ serializedName: "properties.mediaInfo",
+ type: {
+ name: "Composite",
+ className: "VideoMediaInfo"
+ }
+ },
+ systemData: {
+ readOnly: true,
+ serializedName: "systemData",
+ type: {
+ name: "Composite",
+ className: "SystemData"
+ }
+ }
+ }
+ }
+};
+
+export const AccessPolicyEntity: msRest.CompositeMapper = {
+ serializedName: "AccessPolicyEntity",
+ type: {
+ name: "Composite",
+ className: "AccessPolicyEntity",
+ modelProperties: {
+ ...ProxyResource.type.modelProperties,
+ role: {
+ nullable: true,
+ serializedName: "properties.role",
+ type: {
+ name: "String"
+ }
+ },
+ authentication: {
+ serializedName: "properties.authentication",
+ type: {
+ name: "Composite",
+ className: "AuthenticationBase"
+ }
+ },
+ systemData: {
+ readOnly: true,
+ serializedName: "systemData",
+ type: {
+ name: "Composite",
+ className: "SystemData"
+ }
+ }
+ }
+ }
+};
+
+export const EdgeModuleEntityCollection: msRest.CompositeMapper = {
+ serializedName: "EdgeModuleEntityCollection",
+ type: {
+ name: "Composite",
+ className: "EdgeModuleEntityCollection",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "EdgeModuleEntity"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "@nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const VideoEntityCollection: msRest.CompositeMapper = {
+ serializedName: "VideoEntityCollection",
+ type: {
+ name: "Composite",
+ className: "VideoEntityCollection",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "VideoEntity"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "@nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const AccessPolicyEntityCollection: msRest.CompositeMapper = {
+ serializedName: "AccessPolicyEntityCollection",
+ type: {
+ name: "Composite",
+ className: "AccessPolicyEntityCollection",
+ modelProperties: {
+ value: {
+ serializedName: "",
+ type: {
+ name: "Sequence",
+ element: {
+ type: {
+ name: "Composite",
+ className: "AccessPolicyEntity"
+ }
+ }
+ }
+ },
+ nextLink: {
+ serializedName: "@nextLink",
+ type: {
+ name: "String"
+ }
+ }
+ }
+ }
+};
+
+export const discriminators = {
+ 'AuthenticationBase' : AuthenticationBase,
+ 'TokenKey' : TokenKey,
+ 'AuthenticationBase.#Microsoft.VideoAnalyzer.JwtAuthentication' : JwtAuthentication,
+ 'TokenKey.#Microsoft.VideoAnalyzer.RsaTokenKey' : RsaTokenKey,
+ 'TokenKey.#Microsoft.VideoAnalyzer.EccTokenKey' : EccTokenKey
+
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/operationsMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/operationsMappers.ts
new file mode 100644
index 000000000000..580ccfeafd49
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/operationsMappers.ts
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ LogSpecification,
+ MetricDimension,
+ MetricSpecification,
+ Operation,
+ OperationCollection,
+ OperationDisplay,
+ Properties,
+ ServiceSpecification
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/parameters.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/parameters.ts
new file mode 100644
index 000000000000..0f5006ddda4e
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/parameters.ts
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+
+export const acceptLanguage: msRest.OperationParameter = {
+ parameterPath: "acceptLanguage",
+ mapper: {
+ serializedName: "accept-language",
+ defaultValue: 'en-US',
+ type: {
+ name: "String"
+ }
+ }
+};
+export const accessPolicyName: msRest.OperationURLParameter = {
+ parameterPath: "accessPolicyName",
+ mapper: {
+ required: true,
+ serializedName: "accessPolicyName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const accountName: msRest.OperationURLParameter = {
+ parameterPath: "accountName",
+ mapper: {
+ required: true,
+ serializedName: "accountName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const apiVersion: msRest.OperationQueryParameter = {
+ parameterPath: "apiVersion",
+ mapper: {
+ required: true,
+ serializedName: "api-version",
+ constraints: {
+ MinLength: 1
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const edgeModuleName: msRest.OperationURLParameter = {
+ parameterPath: "edgeModuleName",
+ mapper: {
+ required: true,
+ serializedName: "edgeModuleName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const filter: msRest.OperationQueryParameter = {
+ parameterPath: [
+ "options",
+ "filter"
+ ],
+ mapper: {
+ serializedName: "$filter",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const locationName: msRest.OperationURLParameter = {
+ parameterPath: "locationName",
+ mapper: {
+ required: true,
+ serializedName: "locationName",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const nextPageLink: msRest.OperationURLParameter = {
+ parameterPath: "nextPageLink",
+ mapper: {
+ required: true,
+ serializedName: "nextLink",
+ type: {
+ name: "String"
+ }
+ },
+ skipEncoding: true
+};
+export const orderby: msRest.OperationQueryParameter = {
+ parameterPath: [
+ "options",
+ "orderby"
+ ],
+ mapper: {
+ serializedName: "$orderby",
+ type: {
+ name: "String"
+ }
+ }
+};
+export const resourceGroupName: msRest.OperationURLParameter = {
+ parameterPath: "resourceGroupName",
+ mapper: {
+ required: true,
+ serializedName: "resourceGroupName",
+ constraints: {
+ MaxLength: 90,
+ MinLength: 1,
+ Pattern: /^[-\w\._\(\)]+$/
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const subscriptionId: msRest.OperationURLParameter = {
+ parameterPath: "subscriptionId",
+ mapper: {
+ required: true,
+ serializedName: "subscriptionId",
+ constraints: {
+ MinLength: 1
+ },
+ type: {
+ name: "String"
+ }
+ }
+};
+export const top: msRest.OperationQueryParameter = {
+ parameterPath: [
+ "options",
+ "top"
+ ],
+ mapper: {
+ serializedName: "$top",
+ type: {
+ name: "Number"
+ }
+ }
+};
+export const videoName: msRest.OperationURLParameter = {
+ parameterPath: "videoName",
+ mapper: {
+ required: true,
+ serializedName: "videoName",
+ type: {
+ name: "String"
+ }
+ }
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/videoAnalyzersMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/videoAnalyzersMappers.ts
new file mode 100644
index 000000000000..1f3f39670b5b
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/videoAnalyzersMappers.ts
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ AccessPolicyEntity,
+ AccountEncryption,
+ AuthenticationBase,
+ AzureEntityResource,
+ BaseResource,
+ EccTokenKey,
+ EdgeModuleEntity,
+ Endpoint,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ JwtAuthentication,
+ KeyVaultProperties,
+ ProxyResource,
+ Resource,
+ ResourceIdentity,
+ RsaTokenKey,
+ StorageAccount,
+ SyncStorageKeysInput,
+ SystemData,
+ TokenClaim,
+ TokenKey,
+ TrackedResource,
+ UserAssignedManagedIdentity,
+ VideoAnalyzerCollection,
+ VideoAnalyzerIdentity,
+ VideoAnalyzerModel,
+ VideoAnalyzerUpdate,
+ VideoEntity,
+ VideoFlags,
+ VideoMediaInfo,
+ VideoStreaming
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/models/videosMappers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/models/videosMappers.ts
new file mode 100644
index 000000000000..7e7b65f8929d
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/models/videosMappers.ts
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
+ */
+
+export {
+ discriminators,
+ AccessPolicyEntity,
+ AccountEncryption,
+ AuthenticationBase,
+ AzureEntityResource,
+ BaseResource,
+ EccTokenKey,
+ EdgeModuleEntity,
+ Endpoint,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ JwtAuthentication,
+ KeyVaultProperties,
+ ProxyResource,
+ Resource,
+ ResourceIdentity,
+ RsaTokenKey,
+ StorageAccount,
+ SystemData,
+ TokenClaim,
+ TokenKey,
+ TrackedResource,
+ UserAssignedManagedIdentity,
+ VideoAnalyzerIdentity,
+ VideoAnalyzerModel,
+ VideoEntity,
+ VideoEntityCollection,
+ VideoFlags,
+ VideoMediaInfo,
+ VideoStreaming,
+ VideoStreamingToken
+} from "../models/mappers";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/accessPolicies.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/accessPolicies.ts
new file mode 100644
index 000000000000..c9d038ad339b
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/accessPolicies.ts
@@ -0,0 +1,418 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/accessPoliciesMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a AccessPolicies. */
+export class AccessPolicies {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a AccessPolicies.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * List all existing access policy resources for the specified account.
+ * @summary List access policy resources.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, accountName: string, options?: Models.AccessPoliciesListOptionalParams): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, options: Models.AccessPoliciesListOptionalParams, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, accountName: string, options?: Models.AccessPoliciesListOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Retrieves an existing access policy resource from an account by name.
+ * @summary Retrieves an access policy resource.
+ * @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 [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, accountName: string, accessPolicyName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, accessPolicyName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, accessPolicyName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, accountName: string, accessPolicyName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ accessPolicyName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new access policy resource or updates an existing one.
+ * @summary Creates or updates an access policy.
+ * @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 parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 parameters The request parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ createOrUpdate(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ accessPolicyName,
+ parameters,
+ options
+ },
+ createOrUpdateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Deletes an existing access policy resource.
+ * @summary Deletes an access policy.
+ * @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 [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, accessPolicyName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, accessPolicyName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 options The optional parameters
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, accessPolicyName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ deleteMethod(resourceGroupName: string, accountName: string, accessPolicyName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ accessPolicyName,
+ options
+ },
+ deleteMethodOperationSpec,
+ callback);
+ }
+
+ /**
+ * Updates individual properties of an existing access policy resource.
+ * @summary Updates an existing access policy.
+ * @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 parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ update(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 parameters The request parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ update(resourceGroupName: string, accountName: string, accessPolicyName: string, parameters: Models.AccessPolicyEntity, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ accessPolicyName,
+ parameters,
+ options
+ },
+ updateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * List all existing access policy resources for the specified account.
+ * @summary List access policy resources.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: Models.AccessPoliciesListNextOptionalParams): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: Models.AccessPoliciesListNextOptionalParams, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: Models.AccessPoliciesListNextOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.top
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AccessPolicyEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies/{accessPolicyName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.accessPolicyName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AccessPolicyEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const createOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies/{accessPolicyName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.accessPolicyName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.AccessPolicyEntity,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AccessPolicyEntity
+ },
+ 201: {
+ bodyMapper: Mappers.AccessPolicyEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const deleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies/{accessPolicyName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.accessPolicyName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const updateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PATCH",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies/{accessPolicyName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.accessPolicyName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.AccessPolicyEntity,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AccessPolicyEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.top
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.AccessPolicyEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/edgeModules.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/edgeModules.ts
new file mode 100644
index 000000000000..50fe6b17caed
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/edgeModules.ts
@@ -0,0 +1,440 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/edgeModulesMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a EdgeModules. */
+export class EdgeModules {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a EdgeModules.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * List all of the existing edge module resources for a given Video Analyzer account.
+ * @summary List edge module resources.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, accountName: string, options?: Models.EdgeModulesListOptionalParams): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, options: Models.EdgeModulesListOptionalParams, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, accountName: string, options?: Models.EdgeModulesListOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Retrieves a specific existing edge module resource in the given Video Analyzer account.
+ * @summary Retrieves an existing edge module resource.
+ * @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 [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, edgeModuleName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, edgeModuleName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ edgeModuleName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new edge module or updates an existing one. An edge module resource enables a single
+ * instance of an Azure Video Analyzer IoT edge module to interact with the Video Analyzer Account.
+ * This is used for authorization and also to make sure that the particular edge module instance
+ * only has access to the data it requires from the Azure Video Analyzer service. A new edge module
+ * resource should be created for every new instance of an Azure Video Analyzer edge module
+ * deployed to you Azure IoT edge environment. Edge module resources can be deleted if the specific
+ * module is not in use anymore.
+ * @summary Creates a new edge module or updates an existing one.
+ * @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 [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, edgeModuleName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 options The optional parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, edgeModuleName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ createOrUpdate(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ edgeModuleName,
+ options
+ },
+ createOrUpdateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Deletes an existing edge module resource. Deleting the edge module resource will prevent an
+ * Azure Video Analyzer IoT edge module which was previously initiated with the module provisioning
+ * token from communicating with the cloud.
+ * @summary Deletes an existing edge module resource.
+ * @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 [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, edgeModuleName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 options The optional parameters
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, edgeModuleName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ deleteMethod(resourceGroupName: string, accountName: string, edgeModuleName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ edgeModuleName,
+ options
+ },
+ deleteMethodOperationSpec,
+ callback);
+ }
+
+ /**
+ * Creates a new provisioning token. A provisioning token allows for a single instance of Azure
+ * Video analyzer IoT edge module to be initialized and authorized to the cloud account. The
+ * provisioning token itself is short lived and it is only used for the initial handshake between
+ * IoT edge module and the cloud. After the initial handshake, the IoT edge module will agree on a
+ * set of authentication keys which will be auto-rotated as long as the module is able to
+ * periodically connect to the cloud. A new provisioning token can be generated for the same IoT
+ * edge module in case the module state lost or reset.
+ * @summary Creates a new provisioning token.
+ * @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 expirationDate The desired expiration date of the registration token. The Azure Video
+ * Analyzer IoT edge module must be initialized and connected to the Internet prior to the token
+ * expiration date.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listProvisioningToken(resourceGroupName: string, accountName: string, edgeModuleName: string, expirationDate: Date | string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @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 expirationDate The desired expiration date of the registration token. The Azure Video
+ * Analyzer IoT edge module must be initialized and connected to the Internet prior to the token
+ * expiration date.
+ * @param callback The callback
+ */
+ listProvisioningToken(resourceGroupName: string, accountName: string, edgeModuleName: string, expirationDate: Date | string, callback: msRest.ServiceCallback): void;
+ /**
+ * @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 expirationDate The desired expiration date of the registration token. The Azure Video
+ * Analyzer IoT edge module must be initialized and connected to the Internet prior to the token
+ * expiration date.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listProvisioningToken(resourceGroupName: string, accountName: string, edgeModuleName: string, expirationDate: Date | string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listProvisioningToken(resourceGroupName: string, accountName: string, edgeModuleName: string, expirationDate: Date | string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ edgeModuleName,
+ expirationDate,
+ options
+ },
+ listProvisioningTokenOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * List all of the existing edge module resources for a given Video Analyzer account.
+ * @summary List edge module resources.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: Models.EdgeModulesListNextOptionalParams): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: Models.EdgeModulesListNextOptionalParams, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: Models.EdgeModulesListNextOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/edgeModules",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.filter,
+ Parameters.top,
+ Parameters.orderby
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.EdgeModuleEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/edgeModules/{edgeModuleName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.edgeModuleName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.EdgeModuleEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const createOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/edgeModules/{edgeModuleName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.edgeModuleName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.EdgeModuleEntity,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.EdgeModuleEntity
+ },
+ 201: {
+ bodyMapper: Mappers.EdgeModuleEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const deleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/edgeModules/{edgeModuleName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.edgeModuleName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listProvisioningTokenOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/edgeModules/{edgeModuleName}/listProvisioningToken",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.edgeModuleName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: {
+ expirationDate: "expirationDate"
+ },
+ mapper: {
+ ...Mappers.ListProvisioningTokenInput,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.EdgeModuleProvisioningToken
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.filter,
+ Parameters.top,
+ Parameters.orderby
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.EdgeModuleEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/index.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/index.ts
new file mode 100644
index 000000000000..10913f03caea
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/index.ts
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+export * from "./operations";
+export * from "./videoAnalyzers";
+export * from "./locations";
+export * from "./edgeModules";
+export * from "./videos";
+export * from "./accessPolicies";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/locations.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/locations.ts
new file mode 100644
index 000000000000..c0f9d75181a3
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/locations.ts
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/locationsMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a Locations. */
+export class Locations {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a Locations.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * Checks whether the Video Analyzer resource name is available.
+ * @summary Check Name Availability
+ * @param locationName The name of the location.
+ * @param parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ checkNameAvailability(locationName: string, parameters: Models.CheckNameAvailabilityRequest, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param locationName The name of the location.
+ * @param parameters The request parameters
+ * @param callback The callback
+ */
+ checkNameAvailability(locationName: string, parameters: Models.CheckNameAvailabilityRequest, callback: msRest.ServiceCallback): void;
+ /**
+ * @param locationName The name of the location.
+ * @param parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ checkNameAvailability(locationName: string, parameters: Models.CheckNameAvailabilityRequest, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ checkNameAvailability(locationName: string, parameters: Models.CheckNameAvailabilityRequest, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ locationName,
+ parameters,
+ options
+ },
+ checkNameAvailabilityOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const checkNameAvailabilityOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.Media/locations/{locationName}/checkNameAvailability",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.locationName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.CheckNameAvailabilityRequest,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.CheckNameAvailabilityResponse
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/operations.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/operations.ts
new file mode 100644
index 000000000000..b0a68fdac111
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/operations.ts
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/operationsMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a Operations. */
+export class Operations {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a Operations.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists all the Media operations.
+ * @summary List Operations
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param callback The callback
+ */
+ list(callback: msRest.ServiceCallback): void;
+ /**
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ list(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "providers/Microsoft.Media/operations",
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.OperationCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videoAnalyzers.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videoAnalyzers.ts
new file mode 100644
index 000000000000..36709c3aa1a4
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videoAnalyzers.ts
@@ -0,0 +1,455 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/videoAnalyzersMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a VideoAnalyzers. */
+export class VideoAnalyzers {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a VideoAnalyzers.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * Lists the Video Analyzer accounts in the specified resource group.
+ * @summary List Video Analyzer accounts
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Get the details of the specified Video Analyzer account
+ * @summary Get a Video Analyzer account
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, accountName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, accountName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Create or update an instance of a Video Analyzer account
+ * @summary Create or update a Video Analyzer account
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerModel, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerModel, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerModel, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ createOrUpdate(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerModel, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ parameters,
+ options
+ },
+ createOrUpdateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Delete the specified Video Analyzer account
+ * @summary Delete a Video Analyzer account.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ deleteMethod(resourceGroupName: string, accountName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ deleteMethodOperationSpec,
+ callback);
+ }
+
+ /**
+ * Updates an existing instance of Video Analyzer account
+ * @summary Update a Video Analyzer account
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ update(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerUpdate, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerUpdate, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerUpdate, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ update(resourceGroupName: string, accountName: string, parameters: Models.VideoAnalyzerUpdate, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ parameters,
+ options
+ },
+ updateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Synchronizes storage account keys for a storage account associated with the Video Analyzer
+ * account.
+ * @summary Synchronizes Storage Account Keys
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ syncStorageKeys(resourceGroupName: string, accountName: string, options?: Models.VideoAnalyzersSyncStorageKeysOptionalParams): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param callback The callback
+ */
+ syncStorageKeys(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ syncStorageKeys(resourceGroupName: string, accountName: string, options: Models.VideoAnalyzersSyncStorageKeysOptionalParams, callback: msRest.ServiceCallback): void;
+ syncStorageKeys(resourceGroupName: string, accountName: string, options?: Models.VideoAnalyzersSyncStorageKeysOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ syncStorageKeysOperationSpec,
+ callback);
+ }
+
+ /**
+ * Lists the Video Analyzer accounts in the specific subscription.
+ * @summary List Video Analyzer accounts
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listBySubscription(options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param callback The callback
+ */
+ listBySubscription(callback: msRest.ServiceCallback): void;
+ /**
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listBySubscription(options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listBySubscription(options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ options
+ },
+ listBySubscriptionOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoAnalyzerCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoAnalyzerModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const createOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.VideoAnalyzerModel,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoAnalyzerModel
+ },
+ 201: {
+ bodyMapper: Mappers.VideoAnalyzerModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const deleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const updateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PATCH",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.VideoAnalyzerUpdate,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoAnalyzerModel
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const syncStorageKeysOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/syncStorageKeys",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: {
+ id: [
+ "options",
+ "id"
+ ]
+ },
+ mapper: {
+ ...Mappers.SyncStorageKeysInput,
+ required: true
+ }
+ },
+ responses: {
+ 200: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listBySubscriptionOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/providers/Microsoft.Media/videoAnalyzers",
+ urlParameters: [
+ Parameters.subscriptionId
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoAnalyzerCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videos.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videos.ts
new file mode 100644
index 000000000000..814b7285809a
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/operations/videos.ts
@@ -0,0 +1,481 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "../models";
+import * as Mappers from "../models/videosMappers";
+import * as Parameters from "../models/parameters";
+import { VideoAnalyzerContext } from "../videoAnalyzerContext";
+
+/** Class representing a Videos. */
+export class Videos {
+ private readonly client: VideoAnalyzerContext;
+
+ /**
+ * Create a Videos.
+ * @param {VideoAnalyzerContext} client Reference to the service client.
+ */
+ constructor(client: VideoAnalyzerContext) {
+ this.client = client;
+ }
+
+ /**
+ * List all existing video resources in the specified account.
+ * @summary List all existing video resources.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ list(resourceGroupName: string, accountName: string, options?: Models.VideosListOptionalParams): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ list(resourceGroupName: string, accountName: string, options: Models.VideosListOptionalParams, callback: msRest.ServiceCallback): void;
+ list(resourceGroupName: string, accountName: string, options?: Models.VideosListOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ options
+ },
+ listOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Retrieves an existing video resource within an account with a given name.
+ * @summary Retrieves a video resource.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to retrieve.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ get(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to retrieve.
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, videoName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to retrieve.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ get(resourceGroupName: string, accountName: string, videoName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ get(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ videoName,
+ options
+ },
+ getOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Creates a new video resource or updates an existing one in an account.
+ * @summary Create or updates a video resource.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to create or update.
+ * @param parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to create or update.
+ * @param parameters The request parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to create or update.
+ * @param parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ createOrUpdate(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ createOrUpdate(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ videoName,
+ parameters,
+ options
+ },
+ createOrUpdateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Deletes an existing video resource and its underlying data. This operation is irreversible.
+ * @summary Deletes a video resource.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to delete.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to delete.
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, videoName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to delete.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ deleteMethod(resourceGroupName: string, accountName: string, videoName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ deleteMethod(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ videoName,
+ options
+ },
+ deleteMethodOperationSpec,
+ callback);
+ }
+
+ /**
+ * Updates individual properties of an existing video resource.
+ * @summary Updates the properties of a video resource.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to update.
+ * @param parameters The request parameters
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ update(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to update.
+ * @param parameters The request parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to update.
+ * @param parameters The request parameters
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ update(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ update(resourceGroupName: string, accountName: string, videoName: string, parameters: Models.VideoEntity, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ videoName,
+ parameters,
+ options
+ },
+ updateOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * Generates a streaming token used for authenticating video playback.
+ * @summary Generates a streaming token for video playback.
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to generate a token for playback.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listStreamingToken(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase): Promise;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to generate a token for playback.
+ * @param callback The callback
+ */
+ listStreamingToken(resourceGroupName: string, accountName: string, videoName: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param accountName The Azure Video Analyzer account name.
+ * @param videoName The name of the video to generate a token for playback.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listStreamingToken(resourceGroupName: string, accountName: string, videoName: string, options: msRest.RequestOptionsBase, callback: msRest.ServiceCallback): void;
+ listStreamingToken(resourceGroupName: string, accountName: string, videoName: string, options?: msRest.RequestOptionsBase | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ resourceGroupName,
+ accountName,
+ videoName,
+ options
+ },
+ listStreamingTokenOperationSpec,
+ callback) as Promise;
+ }
+
+ /**
+ * List all existing video resources in the specified account.
+ * @summary List all existing video resources.
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param [options] The optional parameters
+ * @returns Promise
+ */
+ listNext(nextPageLink: string, options?: Models.VideosListNextOptionalParams): Promise;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, callback: msRest.ServiceCallback): void;
+ /**
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param options The optional parameters
+ * @param callback The callback
+ */
+ listNext(nextPageLink: string, options: Models.VideosListNextOptionalParams, callback: msRest.ServiceCallback): void;
+ listNext(nextPageLink: string, options?: Models.VideosListNextOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise {
+ return this.client.sendOperationRequest(
+ {
+ nextPageLink,
+ options
+ },
+ listNextOperationSpec,
+ callback) as Promise;
+ }
+}
+
+// Operation Specifications
+const serializer = new msRest.Serializer(Mappers);
+const listOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.top
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const getOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.videoName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const createOrUpdateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PUT",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.videoName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.VideoEntity,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoEntity
+ },
+ 201: {
+ bodyMapper: Mappers.VideoEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const deleteMethodOperationSpec: msRest.OperationSpec = {
+ httpMethod: "DELETE",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.videoName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {},
+ 204: {},
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const updateOperationSpec: msRest.OperationSpec = {
+ httpMethod: "PATCH",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.videoName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ requestBody: {
+ parameterPath: "parameters",
+ mapper: {
+ ...Mappers.VideoEntity,
+ required: true
+ }
+ },
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoEntity
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listStreamingTokenOperationSpec: msRest.OperationSpec = {
+ httpMethod: "POST",
+ path: "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}/listStreamingToken",
+ urlParameters: [
+ Parameters.subscriptionId,
+ Parameters.resourceGroupName,
+ Parameters.accountName,
+ Parameters.videoName
+ ],
+ queryParameters: [
+ Parameters.apiVersion
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoStreamingToken
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
+
+const listNextOperationSpec: msRest.OperationSpec = {
+ httpMethod: "GET",
+ baseUrl: "https://management.azure.com",
+ path: "{nextLink}",
+ urlParameters: [
+ Parameters.nextPageLink
+ ],
+ queryParameters: [
+ Parameters.apiVersion,
+ Parameters.top
+ ],
+ headerParameters: [
+ Parameters.acceptLanguage
+ ],
+ responses: {
+ 200: {
+ bodyMapper: Mappers.VideoEntityCollection
+ },
+ default: {
+ bodyMapper: Mappers.ErrorResponse
+ }
+ },
+ serializer
+};
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzer.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzer.ts
new file mode 100644
index 000000000000..f04ece43fda7
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzer.ts
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as msRest from "@azure/ms-rest-js";
+import * as Models from "./models";
+import * as Mappers from "./models/mappers";
+import * as operations from "./operations";
+import { VideoAnalyzerContext } from "./videoAnalyzerContext";
+
+
+class VideoAnalyzer extends VideoAnalyzerContext {
+ // Operation groups
+ operations: operations.Operations;
+ videoAnalyzers: operations.VideoAnalyzers;
+ locations: operations.Locations;
+ edgeModules: operations.EdgeModules;
+ videos: operations.Videos;
+ accessPolicies: operations.AccessPolicies;
+
+ /**
+ * Initializes a new instance of the VideoAnalyzer class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId The ID of the target subscription.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.VideoAnalyzerOptions) {
+ super(credentials, subscriptionId, options);
+ this.operations = new operations.Operations(this);
+ this.videoAnalyzers = new operations.VideoAnalyzers(this);
+ this.locations = new operations.Locations(this);
+ this.edgeModules = new operations.EdgeModules(this);
+ this.videos = new operations.Videos(this);
+ this.accessPolicies = new operations.AccessPolicies(this);
+ }
+}
+
+// Operation Specifications
+
+export {
+ VideoAnalyzer,
+ VideoAnalyzerContext,
+ Models as VideoAnalyzerModels,
+ Mappers as VideoAnalyzerMappers
+};
+export * from "./operations";
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzerContext.ts b/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzerContext.ts
new file mode 100644
index 000000000000..ebb13d1fe9a5
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/src/videoAnalyzerContext.ts
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) Microsoft Corporation.
+ * Licensed under the MIT License.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * Changes may cause incorrect behavior and will be lost if the code is
+ * regenerated.
+ */
+
+import * as Models from "./models";
+import * as msRest from "@azure/ms-rest-js";
+import * as msRestAzure from "@azure/ms-rest-azure-js";
+
+const packageName = "@azure/arm-videoanalyzer";
+const packageVersion = "1.0.0";
+
+export class VideoAnalyzerContext extends msRestAzure.AzureServiceClient {
+ credentials: msRest.ServiceClientCredentials;
+ apiVersion?: string;
+ subscriptionId: string;
+
+ /**
+ * Initializes a new instance of the VideoAnalyzer class.
+ * @param credentials Credentials needed for the client to connect to Azure.
+ * @param subscriptionId The ID of the target subscription.
+ * @param [options] The parameter options
+ */
+ constructor(credentials: msRest.ServiceClientCredentials, subscriptionId: string, options?: Models.VideoAnalyzerOptions) {
+ if (credentials == undefined) {
+ throw new Error('\'credentials\' cannot be null.');
+ }
+ if (subscriptionId == undefined) {
+ throw new Error('\'subscriptionId\' cannot be null.');
+ }
+
+ if (!options) {
+ options = {};
+ }
+ if(!options.userAgent) {
+ const defaultUserAgent = msRestAzure.getDefaultUserAgentValue();
+ options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;
+ }
+
+ super(credentials, options);
+
+ this.apiVersion = '2021-05-01-preview';
+ this.acceptLanguage = 'en-US';
+ this.longRunningOperationRetryTimeout = 30;
+ this.baseUri = options.baseUri || this.baseUri || "https://management.azure.com";
+ this.requestContentType = "application/json; charset=utf-8";
+ this.credentials = credentials;
+ this.subscriptionId = subscriptionId;
+
+ if(options.acceptLanguage !== null && options.acceptLanguage !== undefined) {
+ this.acceptLanguage = options.acceptLanguage;
+ }
+ if(options.longRunningOperationRetryTimeout !== null && options.longRunningOperationRetryTimeout !== undefined) {
+ this.longRunningOperationRetryTimeout = options.longRunningOperationRetryTimeout;
+ }
+ }
+}
diff --git a/sdk/videoanalyzer/arm-videoanalyzer/tsconfig.json b/sdk/videoanalyzer/arm-videoanalyzer/tsconfig.json
new file mode 100644
index 000000000000..422b584abd5e
--- /dev/null
+++ b/sdk/videoanalyzer/arm-videoanalyzer/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "module": "es6",
+ "moduleResolution": "node",
+ "strict": true,
+ "target": "es5",
+ "sourceMap": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "forceConsistentCasingInFileNames": true,
+ "lib": ["es6", "dom"],
+ "declaration": true,
+ "outDir": "./esm",
+ "importHelpers": true
+ },
+ "include": ["./src/**/*.ts"],
+ "exclude": ["node_modules"]
+}