Definitions for @turbot/azure-recoveryservice

backup

{
"type": "object",
"properties": {
"id": {
"$ref": "#/definitions/recoveryServiceBackupId"
},
"name": {
"$ref": "#/definitions/recoveryServiceBackupName"
},
"properties": {
"type": "object"
},
"turbot": {
"type": "object",
"properties": {
"title": {
"$ref": "#/definitions/recoveryServiceBackupName"
},
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/recoveryServiceBackupAka"
}
},
"custom": {
"type": "object",
"properties": {
"vaultName": {
"$ref": "#/definitions/recoveryServiceVaultName"
},
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"azure": {
"$ref": "azure#/definitions/azureMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties given",
"input": {
"id": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fullaccess;testsubhajitvm/protectedItems/VM;iaasvmcontainerv2;fullaccess;testsubhajitvm",
"name": "VM;iaasvmcontainerv2;fullaccess;testsubhajitvm",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
"properties": {
"friendlyName": "testSubhajitVM",
"virtualMachineId": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.Compute/virtualMachines/testSubhajitVM",
"protectionStatus": "Healthy",
"protectionState": "IRPending",
"healthStatus": "Passed",
"lastBackupStatus": "",
"lastBackupTime": "2001-01-01T00:00:00Z",
"protectedItemDataId": "932913626549752638",
"protectedItemType": "Microsoft.Compute/virtualMachines",
"backupManagementType": "AzureIaasVM",
"workloadType": "VM",
"containerName": "iaasvmcontainerv2;fullaccess;testsubhajitvm",
"sourceResourceId": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.Compute/virtualMachines/testSubhajitVM",
"policyId": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupPolicies/DefaultPolicy",
"policyName": "DefaultPolicy"
},
"turbot": {
"title": "VM;iaasvmcontainerv2;fullaccess;testsubhajitvm",
"akas": [
"azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fullaccess;testsubhajitvm/protectedItems/VM;iaasvmcontainerv2;fullaccess;testsubhajitvm"
],
"custom": {
"azure": {
"subscriptionId": "fe74354d-5266-46c0-80b9-8ad4e3c20174",
"regionName": "eastus",
"resourceGroupName": "fullAccess"
}
}
}
}
},
{
"description": "Valid - All properties given",
"input": {
"id": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare",
"name": "AzureFileShare;subhajitshare",
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
"properties": {
"friendlyName": "subhajitshare",
"protectionStatus": "Healthy",
"protectionState": "Protected",
"lastBackupStatus": "Completed",
"lastBackupTime": "2020-03-19T11:57:48.3885928Z",
"protectedItemType": "AzureFileShareProtectedItem",
"backupManagementType": "AzureStorage",
"workloadType": "AzureFileShare",
"containerName": "StorageContainer;storage;fullaccess;testsd",
"sourceResourceId": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullaccess/providers/Microsoft.storage/storageAccounts/testsd",
"policyId": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupPolicies/backupat12"
},
"turbot": {
"title": "AzureFileShare;subhajitshare",
"akas": [
"azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare"
],
"custom": {
"azure": {
"subscriptionId": "fe74354d-5266-46c0-80b9-8ad4e3c20174",
"regionName": "eastus",
"resourceGroupName": "fullAccess"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/backup",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryService

{
"allOf": [
{
"$ref": "turbot#/definitions/service"
},
{
"type": "object",
"properties": {
"name": {
"const": "Recovery Service"
},
"turbot": {
"type": "object",
"properties": {
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/recoveryServiceAka"
}
},
"title": {
"const": "Recovery Service"
},
"custom": {
"type": "object",
"properties": {
"azure": {
"$ref": "azure#/definitions/azureMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "base",
"input": {
"turbot": {
"akas": [
"azure:///subscriptions/ec7a5a3a-4225-474f-9dbe-bf477c8ea51b/providers/Microsoft.RecoveryServices/services/recoveryService"
],
"title": "Recovery Service",
"custom": {
"azure": {
"subscriptionId": "ec7a5a3a-4225-474f-9dbe-bf477c8ea51b"
}
}
}
}
}
]
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryService",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceAka

{
"type": "string",
"pattern": "^azure:///subscriptions/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/providers/Microsoft.RecoveryServices/services/recoveryService",
"tests": [
{
"descritpion": "base case",
"input": "azure:///subscriptions/9e3548cf-17e2-4751-b87e-b72bdd2c77f7/providers/Microsoft.RecoveryServices/services/recoveryService"
},
{
"description": "invalid - account ID too long",
"input": "azure:///subscriptions/9e3548cf-17e2-4751-b87e-b72bdd2c77f7jfhsjkds/search/services/appService",
"expected": false
},
{
"description": "invalid - name of the service",
"input": "azure:///subscriptions/9e3548cf-17e2-4751-b87e-b72bdd2c77f7jfhsjkds/search/services/frontdoorservice",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceAka",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceBackupAka

{
"type": "string",
"pattern": "^azure:///subscriptions/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/resource(?:Groups|groups)/[A-Za-z0-9_.-]{0,89}[A-Za-z0-9_-]/providers/(?:M|m)icrosoft.(?:R|r)ecovery(?:S|s)ervices/vaults/([a-zA-z][a-zA-Z0-9-]{0,48}[a-zA-Z0-9])/backup(?:F|f)abrics/(?:A|a)zure/protection(?:C|c)ontainers/([a-zA-Z0-9;_-]+)/protected(?:I|i)tems/([a-zA-Z0-9;_-]+)$",
"tests": [
{
"description": "base",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fullaccess;testsubhajitvm/protectedItems/VM;iaasvmcontainerv2;fullaccess;testsubhajitvm"
},
{
"description": "base",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare"
},
{
"description": "invalid subscription",
"input": "azure:///subscriptions/fe7435gfd4d-5266-46c0-80b9-8a5636d4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare",
"expected": false
},
{
"description": "invalid resource group",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/full*$@)Access/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceBackupAka",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceBackupId

{
"type": "string",
"pattern": "^/Subscriptions/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/resource(?:Groups|groups)/[A-Za-z0-9_.-]{0,89}[A-Za-z0-9_-]/providers/(?:M|m)icrosoft.(?:R|r)ecovery(?:S|s)ervices/vaults/([a-zA-z][a-zA-Z0-9-]{0,48}[a-zA-Z0-9])/backup(?:F|f)abrics/(?:A|a)zure/protection(?:C|c)ontainers/([a-zA-Z0-9;_-]+)/protected(?:I|i)tems/([a-zA-Z0-9;_-]+)$",
"tests": [
{
"description": "base",
"input": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fullaccess;testsubhajitvm/protectedItems/VM;iaasvmcontainerv2;fullaccess;testsubhajitvm"
},
{
"description": "base",
"input": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare"
},
{
"description": "invalid subscription",
"input": "/Subscriptions/fe7435gfd4d-5266-46c0-80b9-8a5636d4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare",
"expected": false
},
{
"description": "invalid resource group",
"input": "/Subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/full*$@)Access/providers/Microsoft.RecoveryServices/vaults/testSubhajit/backupFabrics/Azure/protectionContainers/StorageContainer;storage;fullaccess;testsd/protectedItems/AzureFileShare;subhajitshare",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceBackupId",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceBackupName

{
"type": "string",
"pattern": "^([a-zA-Z0-9;_-]+)$",
"tests": [
{
"input": "VM;iaasvmcontainerv2;fullaccess;testsubhajitvm"
},
{
"input": "AzureFileShare;subhajitshare"
},
{
"description": "invalid - no name",
"input": "",
"expected": false
},
{
"description": "invalid - characters",
"input": "test21421-==;%#@%sdturbot",
"expected": false
},
{
"description": "invalid - no spaces",
"input": "Test me please",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceBackupName",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceVaultAka

{
"type": "string",
"pattern": "^azure:///subscriptions/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/resourceGroups/[A-Za-z0-9_.-]{0,89}[A-Za-z0-9_-]/providers/(Microsoft|microsoft).(RecoveryServices|recoveryservices)/vaults/([a-zA-z][a-zA-Z0-9-]{0,48}[a-zA-Z0-9])$",
"tests": [
{
"description": "base",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault"
},
{
"description": "base",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/microsoft.recoveryservices/vaults/testSubhajitVault"
},
{
"description": "invalid service name",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/test-",
"expected": false
},
{
"description": "invalid subscription",
"input": "azure:///subscriptions/fe7435gfd4d-5266-46c0-80b9-8a5636d4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/test",
"expected": false
},
{
"description": "invalid resource group",
"input": "azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/full*$@)Access/providers/Microsoft.RecoveryServices/vaults/test-",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceVaultAka",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceVaultId

{
"type": "string",
"pattern": "^/subscriptions/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/resourceGroups/[A-Za-z0-9_.-]{0,89}[A-Za-z0-9_-]/providers/Microsoft.RecoveryServices/vaults/([a-zA-z][a-zA-Z0-9-]{0,48}[a-zA-Z0-9])$",
"tests": [
{
"description": "base",
"input": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault"
},
{
"description": "invalid service name",
"input": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/test-",
"expected": false
},
{
"description": "invalid subscription",
"input": "/subscriptions/fe7435gfd4d-5266-46c0-80b9-8a5636d4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/test",
"expected": false
},
{
"description": "invalid resource group",
"input": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/full*$@)Access/providers/Microsoft.RecoveryServices/vaults/test-",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceVaultId",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

recoveryServiceVaultName

{
"type": "string",
"pattern": "^([a-zA-z][a-zA-Z0-9-]{0,48}[a-zA-Z0-9])$",
"tests": [
{
"input": "testingTurbot"
},
{
"input": "A-a"
},
{
"input": "helloWorld-1234"
},
{
"description": "invalid - no name",
"input": "",
"expected": false
},
{
"description": "invalid - too short",
"input": "t",
"expected": false
},
{
"description": "invalid - no spaces",
"input": "Test me please",
"expected": false
},
{
"description": "invalid - cannot end with hyphen",
"input": "helloWorld-",
"expected": false
},
{
"description": "invalid - cannot start with hyphen",
"input": "-helloWorld",
"expected": false
},
{
"description": "invalid - cannot start with number",
"input": "123helloWorld",
"expected": false
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/recoveryServiceVaultName",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}

vault

{
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/recoveryServiceVaultName"
},
"id": {
"$ref": "#/definitions/recoveryServiceVaultId"
},
"location": {
"type": "string"
},
"sku": {
"type": "object"
},
"etag": {
"type": "string"
},
"properties": {
"type": "object"
},
"turbot": {
"type": "object",
"properties": {
"title": {
"$ref": "#/definitions/recoveryServiceVaultName"
},
"tags": {
"$ref": "azure#/definitions/tags"
},
"akas": {
"type": "array",
"items": {
"$ref": "#/definitions/recoveryServiceVaultAka"
}
},
"custom": {
"type": "object",
"properties": {
"createTimestamp": {
"$ref": "turbot#/definitions/isoTimestamp"
},
"azure": {
"$ref": "azure#/definitions/azureMetadata"
}
}
}
}
}
},
"additionalProperties": true,
"tests": [
{
"description": "Valid - All properties given",
"input": {
"location": "eastus",
"name": "testSubhajitVault",
"etag": "W/\"datetime'2020-03-17T08%3A30%3A01.1400551Z'\"",
"properties": {
"provisioningState": "Succeeded",
"privateEndpointStateForBackup": "None",
"privateEndpointStateForSiteRecovery": "None"
},
"id": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault",
"type": "Microsoft.RecoveryServices/vaults",
"sku": {
"name": "RS0",
"tier": "Standard"
},
"turbot": {
"title": "testSubhajitVault",
"tags": {
"hello": "world"
},
"akas": [
"azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault"
],
"custom": {
"azure": {
"subscriptionId": "fe74354d-5266-46c0-80b9-8ad4e3c20174",
"regionName": "eastus",
"resourceGroupName": "fullAccess"
}
}
}
}
},
{
"description": "Invalid - name missing",
"input": {
"id": "/subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault",
"turbot": {
"title": "testSubhajitVault",
"akas": [
"azure:///subscriptions/fe74354d-5266-46c0-80b9-8ad4e3c20174/resourceGroups/fullAccess/providers/Microsoft.RecoveryServices/vaults/testSubhajitVault"
],
"custom": {
"azure": {
"subscriptionId": "fe74354d-5266-46c0-80b9-8ad4e3c20174",
"regionName": "eastus",
"resourceGroupName": "fullAccess"
}
}
}
}
}
],
".turbot": {
"uri": "tmod:@turbot/azure-recoveryservice#/definitions/vault",
"modUri": "tmod:@turbot/azure-recoveryservice"
}
}