diff --git a/schemas/2020-04-01/Microsoft.DataBox.json b/schemas/2020-04-01/Microsoft.DataBox.json new file mode 100644 index 0000000000..f41366e35b --- /dev/null +++ b/schemas/2020-04-01/Microsoft.DataBox.json @@ -0,0 +1,1035 @@ +{ + "id": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.DataBox.json#", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Microsoft.DataBox", + "description": "Microsoft DataBox Resource Types", + "resourceDefinitions": { + "jobs": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2020-04-01" + ] + }, + "identity": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceIdentity" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Msi identity details of the resource" + }, + "location": { + "type": "string", + "description": "The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w\\.]+$", + "minLength": 3, + "maxLength": 24 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only" + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/JobProperties" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Job Properties" + }, + "sku": { + "oneOf": [ + { + "$ref": "#/definitions/Sku" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The Sku." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups)." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.DataBox/jobs" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "sku", + "type" + ], + "description": "Microsoft.DataBox/jobs" + } + }, + "definitions": { + "AzureFileFilterDetails": { + "type": "object", + "properties": { + "filePathList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of full path of the files to be transferred." + }, + "filePrefixList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Prefix list of the Azure files to be transferred." + }, + "fileShareList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of file shares to be transferred." + } + }, + "description": "Filter details to transfer Azure files" + }, + "BlobFilterDetails": { + "type": "object", + "properties": { + "blobPathList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of full path of the blobs to be transferred." + }, + "blobPrefixList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Prefix list of the Azure blobs to be transferred." + }, + "containerList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of blob containers to be transferred." + } + }, + "description": "Filter details to transfer Azure Blobs" + }, + "ContactDetails": { + "type": "object", + "properties": { + "contactName": { + "type": "string", + "description": "Contact name of the person." + }, + "emailList": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "List of Email-ids to be notified about job progress." + }, + "mobile": { + "type": "string", + "description": "Mobile number of the contact person." + }, + "notificationPreference": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/NotificationPreference" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Notification preference for a job stage." + }, + "phone": { + "type": "string", + "description": "Phone number of the contact person." + }, + "phoneExtension": { + "type": "string", + "description": "Phone extension number of the contact person." + } + }, + "required": [ + "contactName", + "emailList", + "phone" + ], + "description": "Contact Details." + }, + "DataAccountDetails": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/ManagedDiskDetails" + }, + { + "$ref": "#/definitions/StorageAccountDetails" + } + ], + "properties": { + "sharePassword": { + "type": "string", + "description": "Password for all the shares to be created on the device. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+" + } + }, + "description": "Account details of the data to be transferred" + }, + "DataBoxDiskJobDetails": { + "type": "object", + "properties": { + "jobDetailsType": { + "type": "string", + "enum": [ + "DataBoxDisk" + ] + }, + "passkey": { + "type": "string", + "description": "User entered passkey for DataBox Disk job." + }, + "preferredDisks": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "integer" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int." + } + }, + "required": [ + "jobDetailsType" + ], + "description": "DataBox Disk Job Details." + }, + "DataBoxHeavyJobDetails": { + "type": "object", + "properties": { + "devicePassword": { + "type": "string", + "description": "Set Device password for unlocking Databox Heavy. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+" + }, + "jobDetailsType": { + "type": "string", + "enum": [ + "DataBoxHeavy" + ] + } + }, + "required": [ + "jobDetailsType" + ], + "description": "Databox Heavy Device Job Details" + }, + "DataBoxJobDetails": { + "type": "object", + "properties": { + "devicePassword": { + "type": "string", + "description": "Set Device password for unlocking Databox. Should not be passed for TransferType:ExportFromAzure jobs. If this is not passed, the service will generate password itself. This will not be returned in Get Call. Password Requirements : Password must be minimum of 12 and maximum of 64 characters. Password must have at least one uppercase alphabet, one number and one special character. Password cannot have the following characters : IilLoO0 Password can have only alphabets, numbers and these characters : @#\\-$%^!+=;:_()]+" + }, + "jobDetailsType": { + "type": "string", + "enum": [ + "DataBox" + ] + } + }, + "required": [ + "jobDetailsType" + ], + "description": "Databox Job Details" + }, + "DataExportDetails": { + "type": "object", + "properties": { + "accountDetails": { + "oneOf": [ + { + "$ref": "#/definitions/DataAccountDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Account details of the data to be transferred" + }, + "logCollectionLevel": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Error", + "Verbose" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Level of the logs to be collected." + }, + "transferConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/TransferConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Configuration for defining the transfer of data." + } + }, + "required": [ + "accountDetails", + "transferConfiguration" + ], + "description": "Details of the data to be used for exporting data from azure." + }, + "DataImportDetails": { + "type": "object", + "properties": { + "accountDetails": { + "oneOf": [ + { + "$ref": "#/definitions/DataAccountDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Account details of the data to be transferred" + } + }, + "required": [ + "accountDetails" + ], + "description": "Details of the data to be used for importing data to azure." + }, + "FilterFileDetails": { + "type": "object", + "properties": { + "filterFilePath": { + "type": "string", + "description": "Path of the file that contains the details of all items to transfer." + }, + "filterFileType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "AzureBlob", + "AzureFile" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of the filter file." + } + }, + "required": [ + "filterFilePath", + "filterFileType" + ], + "description": "Details of the filter files to be used for data transfer." + }, + "JobDeliveryInfo": { + "type": "object", + "properties": { + "scheduledDateTime": { + "type": "string", + "format": "date-time", + "description": "Scheduled date time." + } + }, + "description": "Additional delivery info." + }, + "JobDetails": { + "type": "object", + "oneOf": [ + { + "$ref": "#/definitions/DataBoxDiskJobDetails" + }, + { + "$ref": "#/definitions/DataBoxHeavyJobDetails" + }, + { + "$ref": "#/definitions/DataBoxJobDetails" + } + ], + "properties": { + "contactDetails": { + "oneOf": [ + { + "$ref": "#/definitions/ContactDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Contact Details." + }, + "dataExportDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DataExportDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of the data to be exported from azure." + }, + "dataImportDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/DataImportDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of the data to be imported into azure." + }, + "expectedDataSizeInTerabytes": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The expected size of the data, which needs to be transferred in this job, in terabytes." + }, + "preferences": { + "oneOf": [ + { + "$ref": "#/definitions/Preferences" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Preferences related to the order" + }, + "shippingAddress": { + "oneOf": [ + { + "$ref": "#/definitions/ShippingAddress" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Shipping address where customer wishes to receive the device." + } + }, + "required": [ + "contactDetails" + ], + "description": "Job details." + }, + "JobProperties": { + "type": "object", + "properties": { + "deliveryInfo": { + "oneOf": [ + { + "$ref": "#/definitions/JobDeliveryInfo" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Additional delivery info." + }, + "deliveryType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "NonScheduled", + "Scheduled" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Delivery type of Job." + }, + "details": { + "oneOf": [ + { + "$ref": "#/definitions/JobDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Job details." + }, + "transferType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "ImportToAzure", + "ExportFromAzure" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of the data transfer." + } + }, + "required": [ + "transferType" + ], + "description": "Job Properties" + }, + "ManagedDiskDetails": { + "type": "object", + "properties": { + "dataAccountType": { + "type": "string", + "enum": [ + "ManagedDisk" + ] + }, + "resourceGroupId": { + "type": "string", + "description": "Resource Group Id of the compute disks." + }, + "stagingStorageAccountId": { + "type": "string", + "description": "Resource Id of the storage account that can be used to copy the vhd for staging." + } + }, + "required": [ + "dataAccountType", + "resourceGroupId", + "stagingStorageAccountId" + ], + "description": "Details of the managed disks." + }, + "NotificationPreference": { + "type": "object", + "properties": { + "sendNotification": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Notification is required or not." + }, + "stageName": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DevicePrepared", + "Dispatched", + "Delivered", + "PickedUp", + "AtAzureDC", + "DataCopy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Name of the stage." + } + }, + "required": [ + "sendNotification", + "stageName" + ], + "description": "Notification preference for a job stage." + }, + "Preferences": { + "type": "object", + "properties": { + "preferredDataCenterRegion": { + "oneOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Preferred data center region." + }, + "transportPreferences": { + "oneOf": [ + { + "$ref": "#/definitions/TransportPreferences" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Preferences related to the shipment logistics of the sku" + } + }, + "description": "Preferences related to the order" + }, + "ResourceIdentity": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Identity type" + } + }, + "description": "Msi identity details of the resource" + }, + "ShippingAddress": { + "type": "object", + "properties": { + "addressType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "None", + "Residential", + "Commercial" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of address." + }, + "city": { + "type": "string", + "description": "Name of the City." + }, + "companyName": { + "type": "string", + "description": "Name of the company." + }, + "country": { + "type": "string", + "description": "Name of the Country." + }, + "postalCode": { + "type": "string", + "description": "Postal code." + }, + "stateOrProvince": { + "type": "string", + "description": "Name of the State or Province." + }, + "streetAddress1": { + "type": "string", + "description": "Street Address line 1." + }, + "streetAddress2": { + "type": "string", + "description": "Street Address line 1." + }, + "streetAddress3": { + "type": "string", + "description": "Street Address line 1." + }, + "zipExtendedCode": { + "type": "string", + "description": "Extended Zip Code." + } + }, + "required": [ + "country", + "postalCode", + "streetAddress1" + ], + "description": "Shipping address where customer wishes to receive the device." + }, + "Sku": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the sku." + }, + "family": { + "type": "string", + "description": "The sku family." + }, + "name": { + "oneOf": [ + { + "type": "string", + "enum": [ + "DataBox", + "DataBoxDisk", + "DataBoxHeavy" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The sku name." + } + }, + "required": [ + "name" + ], + "description": "The Sku." + }, + "StorageAccountDetails": { + "type": "object", + "properties": { + "dataAccountType": { + "type": "string", + "enum": [ + "StorageAccount" + ] + }, + "storageAccountId": { + "type": "string", + "description": "Storage Account Resource Id." + } + }, + "required": [ + "dataAccountType", + "storageAccountId" + ], + "description": "Details for the storage account." + }, + "TransferAllDetails": { + "type": "object", + "properties": { + "dataAccountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StorageAccount", + "ManagedDisk" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of the account of data." + }, + "transferAllBlobs": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To indicate if all Azure blobs have to be transferred" + }, + "transferAllFiles": { + "oneOf": [ + { + "type": "boolean" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "To indicate if all Azure Files have to be transferred" + } + }, + "required": [ + "dataAccountType" + ], + "description": "Details to transfer all data." + }, + "TransferConfiguration": { + "type": "object", + "properties": { + "transferAllDetails": { + "oneOf": [ + { + "$ref": "#/definitions/TransferConfigurationTransferAllDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Map of filter type and the details to transfer all data. This field is required only if the TransferConfigurationType is given as TransferAll" + }, + "transferConfigurationType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "TransferAll", + "TransferUsingFilter" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of the configuration for transfer." + }, + "transferFilterDetails": { + "oneOf": [ + { + "$ref": "#/definitions/TransferConfigurationTransferFilterDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Map of filter type and the details to filter. This field is required only if the TransferConfigurationType is given as TransferUsingFilter." + } + }, + "required": [ + "transferConfigurationType" + ], + "description": "Configuration for defining the transfer of data." + }, + "TransferConfigurationTransferAllDetails": { + "type": "object", + "properties": { + "include": { + "oneOf": [ + { + "$ref": "#/definitions/TransferAllDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details to transfer all data." + } + }, + "description": "Map of filter type and the details to transfer all data. This field is required only if the TransferConfigurationType is given as TransferAll" + }, + "TransferConfigurationTransferFilterDetails": { + "type": "object", + "properties": { + "include": { + "oneOf": [ + { + "$ref": "#/definitions/TransferFilterDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of the filtering the transfer of data." + } + }, + "description": "Map of filter type and the details to filter. This field is required only if the TransferConfigurationType is given as TransferUsingFilter." + }, + "TransferFilterDetails": { + "type": "object", + "properties": { + "azureFileFilterDetails": { + "oneOf": [ + { + "$ref": "#/definitions/AzureFileFilterDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Filter details to transfer Azure files" + }, + "blobFilterDetails": { + "oneOf": [ + { + "$ref": "#/definitions/BlobFilterDetails" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Filter details to transfer Azure Blobs" + }, + "dataAccountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "StorageAccount", + "ManagedDisk" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of the account of data." + }, + "filterFileDetails": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/FilterFileDetails" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of the filter files to be used for data transfer." + } + }, + "required": [ + "dataAccountType" + ], + "description": "Details of the filtering the transfer of data." + }, + "TransportPreferences": { + "type": "object", + "properties": { + "preferredShipmentType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "CustomerManaged", + "MicrosoftManaged" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Indicates Shipment Logistics type that the customer preferred." + } + }, + "required": [ + "preferredShipmentType" + ], + "description": "Preferences related to the shipment logistics of the sku" + } + } +} \ No newline at end of file diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index b24fabf5fe..cf5c46ba60 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -1705,6 +1705,9 @@ { "$ref": "https://schema.management.azure.com/schemas/2019-09-01/Microsoft.DataBox.json#/resourceDefinitions/jobs" }, + { + "$ref": "https://schema.management.azure.com/schemas/2020-04-01/Microsoft.DataBox.json#/resourceDefinitions/jobs" + }, { "$ref": "https://schema.management.azure.com/schemas/2019-03-01/Microsoft.DataBoxEdge.json#/resourceDefinitions/dataBoxEdgeDevices" },