schemes: - https swagger: '2.0' info: title: Microsoft Azure Azure Video Analyzer Resource Provider description: Azure Video Analyzer resource provider API definition. version: 2021-11-01-preview host: management.azure.com consumes: - application/json produces: - application/json securityDefinitions: azure_auth: type: oauth2 authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize flow: implicit description: Azure Active Directory OAuth2 Flow scopes: user_impersonation: Impersonate your user account definitions: VideoContentUrls: properties: downloadUrl: type: string description: >- Video file download URL. This URL can be used in conjunction with the video content authorization token to download the video MP4 file. The resulting MP4 file can be played on any standard media player. It is available when the video type is 'file' and video file is available for consumption. archiveBaseUrl: type: string description: "Video archive streaming base URL. The archived content can be automatically played by the Azure Video Analyzer player widget. Alternatively, this URL can be used in conjunction with the video content authorization token on any compatible DASH or HLS players by appending the following to the base URL:\r\n\r\n - HLSv4: /manifest(format=m3u8-aapl).m3u8\r\n - HLS CMAF: /manifest(format=m3u8-cmaf)\r\n - DASH CMAF: /manifest(format=mpd-time-cmaf)\r\n\r\n Moreover, an ongoing video recording can be played in \"live mode\" with latencies which are approximately double of the chosen video segment length. It is available when the video type is 'archive' and video archiving is enabled." rtspTunnelUrl: type: string description: >- Video low-latency streaming URL. The live content can be automatically played by the Azure Video Analyzer player widget. Alternatively, this URL can be used in conjunction with the video content authorization token to expose a WebSocket tunneled RTSP stream. It is available when the video type is 'archive' and a live, low-latency feed is available from the source. previewImageUrls: $ref: '#/definitions/VideoPreviewImageUrls' description: >- Video preview image URLs. These URLs can be used in conjunction with the video content authorization token to download the most recent still image from the video archive in different resolutions. They are available when the video type is 'archive' and preview images are enabled. type: object description: Set of URLs to the video content. VideoPreviewImageUrls: properties: small: type: string description: Low resolution preview image URL. medium: type: string description: Medium resolution preview image URL. large: type: string description: High resolution preview image URL. type: object description: >- Video preview image URLs. These URLs can be used in conjunction with the video content authorization token to download the most recent still image from the video archive in different resolutions. They are available when the video type is 'archive' and preview images are enabled. VideoFlags: properties: canStream: type: boolean description: >- Value indicating whether or not the video can be streamed. Only "archive" type videos can be streamed. hasData: type: boolean description: >- 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. isInUse: type: boolean description: >- Value indicating whether or not the video is currently being referenced be an active 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. type: object required: - canStream - hasData - isInUse description: >- Video flags contain information about the available video actions and its dynamic properties based on the current video state. VideoMediaInfo: properties: segmentLength: type: string description: >- 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. type: object description: Contains information about the video and audio content. VideoContentToken: properties: expirationDate: type: string format: date-time description: >- The content token expiration date in ISO8601 format (eg. 2021-01-01T00:00:00Z). readOnly: true x-nullable: false token: type: string description: >- The content token value to be added to the video content URL as the value for the "token" query string parameter. The token is specific to a single video. readOnly: true type: object description: '"Video content token grants access to the video content URLs."' VideoProperties: properties: title: type: string description: >- Optional video title provided by the user. Value can be up to 256 characters long. description: type: string description: >- Optional video description provided by the user. Value can be up to 2048 characters long. type: type: string enum: - Archive - File x-ms-enum: name: VideoType values: - value: Archive description: >- Archive is flexible format that represents a video stream associated with wall-clock time. The video archive can either be continuous or discontinuous. An archive is discontinuous when there are gaps in the recording due to various reasons, such as the live pipeline being stopped, camera being disconnected or due to the use of event based recordings through the use of a signal gate. There is no limit to the archive duration and new video data can be appended to the existing archive at any time, as long as the same video codec and codec parameters are being used. Videos of this type are suitable for appending and long term archival. - value: File description: >- File represents a video which is stored as a single media file, such as MP4. Videos of this type are suitable to be downloaded for external consumption. modelAsString: true description: >- Video content type. Different content types are suitable for different applications and scenarios. readOnly: true x-nullable: false flags: $ref: '#/definitions/VideoFlags' description: >- Video flags contain information about the available video actions and its dynamic properties based on the current video state. readOnly: true contentUrls: $ref: '#/definitions/VideoContentUrls' description: Set of URLs to the video content. readOnly: true mediaInfo: $ref: '#/definitions/VideoMediaInfo' description: Contains information about the video and audio content. archival: $ref: '#/definitions/VideoArchival' description: Video archival properties. type: object description: Application level properties for the video resource. VideoArchival: properties: retentionPeriod: type: string description: >- Video retention period indicates the maximum age of the video archive segments which are intended to be kept in storage. It must be provided in the ISO8601 duration format in the granularity of days, up to a maximum of 10 years. For example, if this is set to P30D (30 days), content older than 30 days will be periodically deleted. This value can be updated at any time and the new desired retention period will be effective within 24 hours. type: object description: Video archival properties. AuthenticationBase: discriminator: '@type' properties: '@type': type: string description: The discriminator for derived types. type: object required: - '@type' description: Base class for access policies authentication methods. TokenClaim: properties: name: type: string description: Name of the claim which must be present on the token. value: type: string description: Expected value of the claim to be present on the token. type: object required: - name - value description: Properties for expected token claims. JwtAuthentication: x-ms-discriminator-value: '#Microsoft.VideoAnalyzer.JwtAuthentication' allOf: - $ref: '#/definitions/AuthenticationBase' properties: issuers: type: array items: type: string description: >- List of expected token issuers. Token issuer is valid if it matches at least one of the given values. audiences: type: array items: type: string description: >- List of expected token audiences. Token audience is valid if it matches at least one of the given values. claims: type: array items: $ref: '#/definitions/TokenClaim' x-ms-identifiers: - name - value description: >- List of additional token claims to be validated. Token must contains all claims and respective values for it to be valid. keys: type: array items: $ref: '#/definitions/TokenKey' x-ms-identifiers: - kid description: >- 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. type: object description: Properties for access validation based on JSON Web Tokens (JWT). TokenKey: discriminator: '@type' properties: '@type': type: string description: The discriminator for derived types. kid: type: string description: >- JWT token key id. Validation keys are looked up based on the key id present on the JWT token header. type: object required: - '@type' - kid description: Key properties for JWT token validation. RsaTokenKey: x-ms-discriminator-value: '#Microsoft.VideoAnalyzer.RsaTokenKey' allOf: - $ref: '#/definitions/TokenKey' properties: alg: type: string enum: - RS256 - RS384 - RS512 x-ms-enum: name: AccessPolicyRsaAlgo values: - value: RS256 description: RS256 - value: RS384 description: RS384 - value: RS512 description: RS512 modelAsString: true description: 'RSA algorithm to be used: RS256, RS384 or RS512.' 'n': type: string description: RSA public key modulus. e: type: string description: RSA public key exponent. type: object required: - alg - 'n' - e description: Required validation properties for tokens generated with RSA algorithm. EccTokenKey: x-ms-discriminator-value: '#Microsoft.VideoAnalyzer.EccTokenKey' allOf: - $ref: '#/definitions/TokenKey' properties: alg: type: string enum: - ES256 - ES384 - ES512 x-ms-enum: name: AccessPolicyEccAlgo values: - value: ES256 description: ES265 - value: ES384 description: ES384 - value: ES512 description: ES512 modelAsString: true description: 'Elliptical curve algorithm to be used: ES256, ES384 or ES512.' x: type: string description: X coordinate. 'y': type: string description: Y coordinate. type: object required: - alg - x - 'y' description: >- Required validation properties for tokens generated with Elliptical Curve algorithm. AccessPolicyProperties: properties: role: type: string enum: - Reader x-ms-enum: name: AccessPolicyRole values: - value: Reader description: >- Reader role allows for read-only operations to be performed through the client APIs. modelAsString: true description: Defines the access level granted by this policy. x-nullable: true authentication: $ref: '#/definitions/AuthenticationBase' description: Authentication method to be used when validating client API access. type: object description: Application level properties for the access policy resource. VideoEntity: allOf: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource properties: properties: $ref: '#/definitions/VideoProperties' description: The resource properties. x-ms-client-flatten: true type: object description: >- Represents a video resource within Azure Video Analyzer. Videos can be ingested from RTSP cameras through live pipelines or can be created by exporting sequences from existing captured video through a pipeline job. Videos ingested through live pipelines can be streamed through Azure Video Analyzer Player Widget or compatible players. Exported videos can be downloaded as MP4 files. AccessPolicyEntity: allOf: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource properties: properties: $ref: '#/definitions/AccessPolicyProperties' description: The resource properties. x-ms-client-flatten: true type: object description: >- Access policies help define the authentication rules, and control access to specific video resources. VideoEntityCollection: properties: value: type: array items: $ref: '#/definitions/VideoEntity' description: A collection of VideoEntity items. '@nextLink': type: string description: >- A link to the next page of the collection (when the collection contains too many results to return in one response). type: object description: A collection of VideoEntity items. AccessPolicyEntityCollection: properties: value: type: array items: $ref: '#/definitions/AccessPolicyEntity' description: A collection of AccessPolicyEntity items. '@nextLink': type: string description: >- A link to the next page of the collection (when the collection contains too many results to return in one response). type: object description: A collection of AccessPolicyEntity items. paths: ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos : get: summary: 'Microsoft Azure Retrieves All Existing Video Resources' description: >- Retrieves a list of video resources that have been created, along with their JSON representations. operationId: microsoftAzureVideosList responses: '200': description: OK schema: $ref: '#/definitions/VideoEntityCollection' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter - name: $top in: query required: false type: integer format: int32 description: >- 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. x-ms-pageable: nextLinkName: '@nextLink' x-ms-examples: Lists video entities.: $ref: examples/video-list.json tags: - Subscriptions ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName} : get: summary: 'Microsoft Azure Retrieves An Existing Video Resource' description: Retrieves an existing video resource with the given name. operationId: microsoftAzureVideosGet responses: '200': description: OK schema: $ref: '#/definitions/VideoEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: videoName in: path required: true type: string description: The Video name. - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Gets a video entity.: $ref: examples/video-get.json tags: - Subscriptions put: summary: 'Microsoft Azure Creates A New Video Resource Or Updates An Existing One' description: >- Creates a new video resource or updates an existing video resource with the given name. operationId: microsoftAzureVideosCreateorupdate responses: '200': description: OK schema: $ref: '#/definitions/VideoEntity' '201': description: Created schema: $ref: '#/definitions/VideoEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: videoName in: path required: true type: string description: The Video name. - name: parameters in: body required: true schema: $ref: '#/definitions/VideoEntity' description: The request parameters - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Register video entity.: $ref: examples/video-create.json tags: - Subscriptions delete: summary: 'Microsoft Azure Deletes An Existing Video Resource And Its Underlying Data' description: >- Deletes an existing video resource and its underlying data. This operation is irreversible. operationId: microsoftAzureVideosDelete responses: '200': description: OK '204': description: NoContent default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: videoName in: path required: true type: string description: The Video name. - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Deletes a video entity.: $ref: examples/video-delete.json tags: - Subscriptions patch: summary: 'Microsoft Azure Updates Individual Properties Of An Existing Video Resource' description: >- Updates individual properties of an existing video resource with the given name. operationId: microsoftAzureVideosUpdate responses: '200': description: OK schema: $ref: '#/definitions/VideoEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: videoName in: path required: true type: string description: The Video name. - name: parameters in: body required: true schema: $ref: '#/definitions/VideoEntity' description: The request parameters - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Update video entity.: $ref: examples/video-patch.json tags: - Subscriptions ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/videos/{videoName}/listContentToken : post: summary: >- Microsoft Azure Generates A Streaming Token Which Can Be Used For Accessing Content From Video Content Urls description: >- Generates a streaming token which can be used for accessing content from video content URLs, for a video resource with the given name. operationId: microsoftAzureVideosListcontenttoken responses: '200': description: OK schema: $ref: '#/definitions/VideoContentToken' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: videoName in: path required: true type: string description: The Video name. - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Generate a content token for media endpoint authorization.: $ref: examples/video-listContentToken.json tags: - Subscriptions ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies : get: summary: 'Microsoft Azure List All Existing Access Policy Resources' description: >- Retrieves all existing access policy resources, along with their JSON representations. operationId: microsoftAzureAccesspoliciesList responses: '200': description: OK schema: $ref: '#/definitions/AccessPolicyEntityCollection' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter - name: $top in: query required: false type: integer format: int32 description: >- 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. x-ms-pageable: nextLinkName: '@nextLink' x-ms-examples: Lists access policy entities.: $ref: examples/access-policy-list.json tags: - Subscriptions ? /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/accessPolicies/{accessPolicyName} : get: summary: 'Microsoft Azure Retrieves An Existing Access Policy Resource' description: Retrieves an existing access policy resource with the given name. operationId: microsoftAzureAccesspoliciesGet responses: '200': description: OK schema: $ref: '#/definitions/AccessPolicyEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: accessPolicyName in: path required: true type: string description: The Access Policy name. - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Gets an access policy entity.: $ref: examples/access-policy-get.json tags: - Subscriptions put: summary: 'Microsoft Azure Creates A New Access Policy Resource Or Updates An Existing One' description: >- Creates a new access policy resource or updates an existing one with the given name. operationId: microsoftAzureAccesspoliciesCreateorupdate responses: '200': description: OK schema: $ref: '#/definitions/AccessPolicyEntity' '201': description: Created schema: $ref: '#/definitions/AccessPolicyEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: accessPolicyName in: path required: true type: string description: The Access Policy name. - name: parameters in: body required: true schema: $ref: '#/definitions/AccessPolicyEntity' description: The request parameters - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Register access policy entity.: $ref: examples/access-policy-create.json tags: - Subscriptions delete: summary: 'Microsoft Azure Deletes An Existing Access Policy Resource' description: Deletes an existing access policy resource with the given name. operationId: microsoftAzureAccesspoliciesDelete responses: '200': description: OK '204': description: NoContent default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: accessPolicyName in: path required: true type: string description: The Access Policy name. - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Deletes an access policy entity.: $ref: examples/access-policy-delete.json tags: - Subscriptions patch: summary: 'Microsoft Azure Updates Individual Properties Of An Existing Access Policy Resource' description: >- Updates individual properties of an existing access policy resource with the given name. operationId: microsoftAzureAccesspoliciesUpdate responses: '200': description: OK schema: $ref: '#/definitions/AccessPolicyEntity' default: description: Detailed error information. schema: $ref: >- ../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse parameters: - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter - $ref: '#/parameters/AzureVideoAnalyzerAccountName' - name: accessPolicyName in: path required: true type: string description: The Access Policy name. - name: parameters in: body required: true schema: $ref: '#/definitions/AccessPolicyEntity' description: The request parameters - $ref: >- ../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter x-ms-examples: Update access policy entity.: $ref: examples/access-policy-patch.json tags: - Subscriptions parameters: AzureVideoAnalyzerAccountName: name: accountName in: path required: true type: string description: The Azure Video Analyzer account name. x-ms-parameter-location: method tags: - name: Subscriptions