{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "basePath": "/",
  "info": {
    "description": "A Storage Cache provides scalable caching service for NAS clients, serving data from either NFSv3 or Blob at-rest storage (referred to as \"Storage Targets\"). These operations allow you to manage caches.",
    "title": "Storage Cache Mgmt Client",
    "version": "2019-08-01-preview",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storagecache/resource-manager/Microsoft.StorageCache/preview/2019-08-01-preview/storagecache.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "storagecache",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client Api Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "SubscriptionIdParameter": {
      "description": "Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/providers/Microsoft.StorageCache/operations": {
      "get": {
        "description": "Lists all of the available RP operations.",
        "operationId": "Operations_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded.",
            "schema": {
              "$ref": "#/definitions/ApiOperationListResult"
            }
          },
          "default": {
            "description": "Resource Provider error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Operations"
        ],
        "x-ms-examples": {
          "StorageTargets_List": {
            "parameters": {
              "accept-language": [
                "en-US"
              ],
              "api-version": "2019-08-01-preview",
              "x-ms-client-request-id": [
                "7e655b68-e491-4cb6-90c3-6a5b10b7bd17"
              ]
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "operation": "Create or Update Cache",
                        "provider": "Azure Storage Cache",
                        "resource": "Caches"
                      },
                      "name": "Microsoft.StorageCache/caches/write"
                    },
                    {
                      "display": {
                        "operation": "Delete Cache",
                        "provider": "Azure Storage Cache",
                        "resource": "Caches"
                      },
                      "name": "Microsoft.StorageCache/caches/delete"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/caches": {
      "get": {
        "description": "Returns all Caches the user has access to under a subscription.",
        "operationId": "Caches_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Cache objects.  Note that entity references might replace complete Cache objects, as described in http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html#sec_EntityReference",
            "schema": {
              "$ref": "#/definitions/CachesListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_List": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                      "location": "westus",
                      "name": "sc1",
                      "properties": {
                        "cacheSizeGB": 3072,
                        "health": {
                          "state": "Transitioning",
                          "statusDescription": "Cache is being created."
                        },
                        "mountAddresses": [
                          "192.168.1.1",
                          "192.168.1.2"
                        ],
                        "provisioningState": "Booting",
                        "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                        "upgradeStatus": {
                          "currentFirmwareVersion": "AvereOS V5.1.1.2",
                          "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                          "firmwareUpdateStatus": "available",
                          "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                          "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                        }
                      },
                      "sku": {
                        "name": "Standard_2G"
                      },
                      "tags": {
                        "Dept": "Initech"
                      },
                      "type": "Microsoft.StorageCache/Cache"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc2",
                      "location": "westus",
                      "name": "sc2",
                      "properties": {
                        "cacheSizeGB": 3072,
                        "health": {
                          "state": "Transitioning",
                          "statusDescription": "Cache is being created."
                        },
                        "mountAddresses": [
                          "192.168.1.1",
                          "192.168.1.2"
                        ],
                        "provisioningState": "Configuring",
                        "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub2",
                        "upgradeStatus": {
                          "currentFirmwareVersion": "AvereOS V5.1.1.2",
                          "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                          "firmwareUpdateStatus": "available",
                          "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                          "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                        }
                      },
                      "sku": {
                        "name": "Standard_2G"
                      },
                      "tags": {
                        "Dept": "Intertrode"
                      },
                      "type": "Microsoft.StorageCache/Cache"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/skus": {
      "get": {
        "description": "Get the list of StorageCache.Cache SKUs available to this subscription.",
        "operationId": "Skus_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of SKU descriptors.",
            "schema": {
              "$ref": "#/definitions/ResourceSkusResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "SKUs"
        ],
        "x-ms-examples": {
          "Skus_List": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "capabilities": [
                        {
                          "name": "throughput GB/s",
                          "value": "2"
                        },
                        {
                          "name": "cache sizes(GB)",
                          "value": "3072,6144,12288"
                        }
                      ],
                      "locationInfo": [
                        {
                          "location": "East US",
                          "zones": []
                        }
                      ],
                      "locations": [
                        "East US"
                      ],
                      "name": "Standard_2G",
                      "resourceType": "caches",
                      "restrictions": []
                    },
                    {
                      "capabilities": [
                        {
                          "name": "throughput GB/s",
                          "value": "4"
                        },
                        {
                          "name": "cache sizes(GB)",
                          "value": "6144,12288,24576"
                        }
                      ],
                      "locationInfo": [
                        {
                          "location": "East US",
                          "zones": []
                        }
                      ],
                      "locations": [
                        "East US"
                      ],
                      "name": "Standard_4G",
                      "resourceType": "caches",
                      "restrictions": []
                    },
                    {
                      "capabilities": [
                        {
                          "name": "throughput GB/s",
                          "value": "8"
                        },
                        {
                          "name": "cache sizes(GB)",
                          "value": "12288,24576,49152"
                        }
                      ],
                      "locationInfo": [
                        {
                          "location": "East US",
                          "zones": []
                        }
                      ],
                      "locations": [
                        "East US"
                      ],
                      "name": "Standard_8G",
                      "resourceType": "caches",
                      "restrictions": []
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.StorageCache/usageModels": {
      "get": {
        "description": "Get the list of cache Usage Models available to this subscription.",
        "operationId": "UsageModels_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of UsageModel descriptors.",
            "schema": {
              "$ref": "#/definitions/UsageModelsResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "UsageModels"
        ],
        "x-ms-examples": {
          "UsageModels_List": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "description": "Read heavy, infrequent changes"
                      },
                      "modelName": "READ_HEAVY_INFREQ",
                      "targetType": "nfs3"
                    },
                    {
                      "display": {
                        "description": "Clients write directly to storage"
                      },
                      "modelName": "WRITE_AROUND",
                      "targetType": "nfs3"
                    },
                    {
                      "display": {
                        "description": "Write workload > 15%"
                      },
                      "modelName": "WRITE_WORKLOAD_15",
                      "targetType": "nfs3"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches": {
      "get": {
        "description": "Returns all Caches the user has access to under a resource group and subscription.",
        "operationId": "Caches_ListByResourceGroup",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of Cache objects.  Note that entity references might replace complete Cache objects, as described in http://docs.oasis-open.org/odata/odata-json-format/v4.01/cs01/odata-json-format-v4.01-cs01.html#sec_EntityReference",
            "schema": {
              "$ref": "#/definitions/CachesListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_ListByResourceGroup": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                      "location": "westus",
                      "name": "sc1",
                      "properties": {
                        "cacheSizeGB": 3072,
                        "health": {
                          "state": "Transitioning",
                          "statusDescription": "Cache is being created."
                        },
                        "mountAddresses": [
                          "192.168.1.1",
                          "192.168.1.2"
                        ],
                        "provisioningState": "Booting",
                        "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                        "upgradeStatus": {
                          "currentFirmwareVersion": "AvereOS V5.1.1.2",
                          "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                          "firmwareUpdateStatus": "available",
                          "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                          "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                        }
                      },
                      "sku": {
                        "name": "Standard_2G"
                      },
                      "tags": {
                        "Dept": "Initech"
                      },
                      "type": "Microsoft.StorageCache/Cache"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc2",
                      "location": "westus",
                      "name": "sc2",
                      "properties": {
                        "cacheSizeGB": 3072,
                        "health": {
                          "state": "Transitioning",
                          "statusDescription": "Cache is being created."
                        },
                        "mountAddresses": [
                          "192.168.1.1",
                          "192.168.1.2"
                        ],
                        "provisioningState": "Booting",
                        "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub2",
                        "upgradeStatus": {
                          "currentFirmwareVersion": "AvereOS V5.1.1.2",
                          "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                          "firmwareUpdateStatus": "available",
                          "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                          "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                        }
                      },
                      "sku": {
                        "name": "Standard_2G"
                      },
                      "tags": {
                        "Dept": "Intertrode"
                      },
                      "type": "Microsoft.StorageCache/Cache"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}": {
      "delete": {
        "description": "Schedules a Cache for deletion.",
        "operationId": "Caches_Delete",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Cache deleted.",
            "schema": {}
          },
          "202": {
            "description": "Started the Cache's transition to Deleted state.",
            "schema": {}
          },
          "204": {
            "description": "Cache deleted.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Delete": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": ""
              },
              "202": {
                "body": ""
              },
              "204": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Returns a Cache.",
        "operationId": "Caches_Get",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the Cache object corresponding to cacheId.",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Get": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                  "location": "westus",
                  "name": "sc1",
                  "properties": {
                    "cacheSizeGB": 3072,
                    "health": {
                      "state": "Transitioning",
                      "statusDescription": "Cache is being created."
                    },
                    "mountAddresses": [
                      "192.168.1.1",
                      "192.168.1.2"
                    ],
                    "provisioningState": "Booting",
                    "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                    "upgradeStatus": {
                      "currentFirmwareVersion": "AvereOS V5.1.1.2",
                      "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                      "firmwareUpdateStatus": "available",
                      "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                      "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                    }
                  },
                  "sku": {
                    "name": "Standard_2G"
                  },
                  "tags": {
                    "Dept": "Initech"
                  },
                  "type": "Microsoft.StorageCache/Cache"
                }
              }
            }
          }
        }
      },
      "patch": {
        "description": "Update a Cache instance.",
        "operationId": "Caches_Update",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Object containing the user selectable properties of the new cache.  If read-only properties are included, they must match the existing values of those properties.",
            "in": "body",
            "name": "cache",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Patched the Cache.",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Update": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cache": {
                "location": "westus",
                "properties": {
                  "cacheSizeGB": 3072,
                  "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1"
                },
                "sku": {
                  "name": "Standard_2G"
                },
                "tags": {
                  "Dept": "Initech"
                }
              },
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                  "location": "westus",
                  "name": "sc1",
                  "properties": {
                    "cacheSizeGB": 3072,
                    "health": {
                      "state": "Transitioning",
                      "statusDescription": "Cache is being created."
                    },
                    "mountAddresses": [
                      "192.168.1.1",
                      "192.168.1.2"
                    ],
                    "provisioningState": "Booting",
                    "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                    "upgradeStatus": {
                      "currentFirmwareVersion": "AvereOS V5.1.1.2",
                      "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                      "firmwareUpdateStatus": "available",
                      "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                      "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                    }
                  },
                  "sku": {
                    "name": "Standard_2G"
                  },
                  "tags": {
                    "Dept": "Initech"
                  },
                  "type": "Microsoft.StorageCache/Cache"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create/update a Cache instance.",
        "operationId": "Caches_Create",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Object containing the user selectable properties of the new cache.  If read-only properties are included, they must match the existing values of those properties.",
            "in": "body",
            "name": "cache",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cache created or already exists.",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          },
          "201": {
            "description": "Cache creation has been initiated.  Poll the new Cache's provisioningState property to monitor creation progress.",
            "schema": {
              "$ref": "#/definitions/Cache"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Create": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cache": {
                "location": "westus",
                "properties": {
                  "cacheSizeGB": 3072,
                  "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1"
                },
                "sku": {
                  "name": "Standard_2G"
                },
                "tags": {
                  "Dept": "Initech"
                }
              },
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                  "location": "westus",
                  "name": "sc1",
                  "properties": {
                    "cacheSizeGB": 3072,
                    "health": {
                      "state": "Transitioning",
                      "statusDescription": "Cache is being created."
                    },
                    "mountAddresses": [
                      "192.168.1.1",
                      "192.168.1.2"
                    ],
                    "provisioningState": "Booting",
                    "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                    "upgradeStatus": {
                      "currentFirmwareVersion": "AvereOS V5.1.1.2",
                      "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                      "firmwareUpdateStatus": "available",
                      "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                      "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                    }
                  },
                  "sku": {
                    "name": "Standard_2G"
                  },
                  "tags": {
                    "Dept": "Initech"
                  },
                  "type": "Microsoft.StorageCache/Cache"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1",
                  "location": "westus",
                  "name": "sc1",
                  "properties": {
                    "cacheSizeGB": 3072,
                    "health": {
                      "state": "Transitioning",
                      "statusDescription": "Cache is being created."
                    },
                    "mountAddresses": [
                      "192.168.1.1",
                      "192.168.1.2"
                    ],
                    "provisioningState": "Booting",
                    "subnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.Network/virtualNetworks/scvnet/subnets/sub1",
                    "upgradeStatus": {
                      "currentFirmwareVersion": "AvereOS V5.1.1.2",
                      "firmwareUpdateDeadline": "2019-04-21T18:25:43.511Z",
                      "firmwareUpdateStatus": "available",
                      "lastFirmwareUpdate": "2019-01-21T18:25:43.511Z",
                      "pendingFirmwareVersion": "AvereOS V5.1.1.32"
                    }
                  },
                  "sku": {
                    "name": "Standard_2G"
                  },
                  "tags": {
                    "Dept": "Initech"
                  },
                  "type": "Microsoft.StorageCache/Cache"
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/flush": {
      "post": {
        "description": "Tells a cache to write all dirty data to the StorageTarget(s).  During the flush, clients will see errors returned until the flush is complete.",
        "operationId": "Caches_Flush",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "All cache data is clean.",
            "schema": {}
          },
          "202": {
            "description": "Cache has started flushing.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Flush": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": ""
              },
              "202": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/start": {
      "post": {
        "description": "Tells a Stopped state cache to transition to Active state.",
        "operationId": "Caches_Start",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Cache is Active.",
            "schema": {}
          },
          "202": {
            "description": "Cache has started the transition to Active.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Start": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": ""
              },
              "202": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/stop": {
      "post": {
        "description": "Tells an Active cache to transition to Stopped state.",
        "operationId": "Caches_Stop",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Cache is stopped.",
            "schema": {}
          },
          "202": {
            "description": "Cache has started the transition to Stopped.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_Stop": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": ""
              },
              "202": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets": {
      "get": {
        "description": "Returns the StorageTargets for this cache in the subscription and resource group.",
        "operationId": "StorageTargets_ListByCache",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of storage targets defined by cacheId.",
            "schema": {
              "$ref": "#/definitions/StorageTargetsResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "StorageTargets"
        ],
        "x-ms-examples": {
          "StorageTargets_List": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st1",
                      "name": "st1",
                      "properties": {
                        "junctions": [
                          {
                            "namespacePath": "/path/on/cache",
                            "nfsExport": "exp1",
                            "targetPath": "/path/on/exp1"
                          },
                          {
                            "namespacePath": "/path2/on/cache",
                            "nfsExport": "exp2",
                            "targetPath": "/path2/on/exp2"
                          }
                        ],
                        "nfs3": {
                          "target": "10.0.44.44",
                          "usageModel": "READ_HEAVY_FREQ"
                        },
                        "targetType": "nfs3"
                      },
                      "type": "Microsoft.StorageCache/Cache/StorageTarget"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st2",
                      "name": "st2",
                      "properties": {
                        "clfs": {
                          "target": "https://atj5c2fc9b8c00.blob.core.windows.net/atj5c2fc9b8c01"
                        },
                        "junctions": [
                          {
                            "namespacePath": "/some/crazy/place/on/cache",
                            "targetPath": "/"
                          }
                        ],
                        "targetType": "clfs"
                      },
                      "type": "Microsoft.StorageCache/Cache/StorageTarget"
                    },
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st3",
                      "name": "st3",
                      "properties": {
                        "junctions": [
                          {
                            "namespacePath": "/some/crazier/place/on/cache",
                            "nfsExport": "",
                            "targetPath": "/"
                          }
                        ],
                        "targetType": "unknown",
                        "unknown": {
                          "unknownMap": {
                            "foo": "bar",
                            "foo2": "test"
                          }
                        }
                      },
                      "type": "Microsoft.StorageCache/Cache/StorageTarget"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/storageTargets/{storageTargetName}": {
      "delete": {
        "description": "Removes a storage target from a cache.  This operation is allowed at any time, but if the cache is down or unhealthy, the actual removal of the storage target may be delayed until the cache is healthy again.",
        "operationId": "StorageTargets_Delete",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of storage target.",
            "in": "path",
            "name": "storageTargetName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Storage target deleted.",
            "schema": {}
          },
          "202": {
            "description": "Started the storage target's deletion.",
            "schema": {}
          },
          "204": {
            "description": "Storage target deleted.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "StorageTargets"
        ],
        "x-ms-examples": {
          "StorageTargets_Delete": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "storageTargetName": "st1",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": ""
              },
              "202": {
                "body": ""
              },
              "204": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Returns a storage target from a cache.",
        "operationId": "StorageTargets_Get",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of storage target.",
            "in": "path",
            "name": "storageTargetName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the Storage Target object corresponding to storageTargetName.",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "StorageTargets"
        ],
        "x-ms-examples": {
          "StorageTargets_Get": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "storageTargetName": "st1",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st1",
                  "name": "st1",
                  "properties": {
                    "junctions": [
                      {
                        "namespacePath": "/path/on/cache",
                        "nfsExport": "exp1",
                        "targetPath": "/path/on/exp1"
                      },
                      {
                        "namespacePath": "/path2/on/cache",
                        "nfsExport": "exp2",
                        "targetPath": "/path2/on/exp2"
                      }
                    ],
                    "nfs3": {
                      "target": "10.0.44.44",
                      "usageModel": "READ_HEAVY_FREQ"
                    },
                    "targetType": "nfs3"
                  },
                  "type": "Microsoft.StorageCache/Cache/StorageTarget"
                }
              }
            }
          }
        }
      },
      "patch": {
        "description": "Update a storage target.  This operation is allowed at any time, but if the cache is down or unhealthy, the actual creation/modification of the storage target may be delayed until the cache is healthy again.",
        "operationId": "StorageTargets_Update",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of storage target.",
            "in": "path",
            "name": "storageTargetName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Object containing the definition of a storage target.",
            "in": "body",
            "name": "storagetarget",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Storage Target has been patched.",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "StorageTargets"
        ],
        "x-ms-examples": {
          "StorageTargets_Update": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "storageTargetName": "st1",
              "storagetarget": {
                "properties": {
                  "junctions": [
                    {
                      "namespacePath": "/path/on/cache",
                      "nfsExport": "exp1",
                      "targetPath": "/path/on/exp1"
                    },
                    {
                      "namespacePath": "/path2/on/cache",
                      "nfsExport": "exp2",
                      "targetPath": "/path2/on/exp2"
                    }
                  ],
                  "nfs3": {
                    "target": "10.0.44.44",
                    "usageModel": "READ_HEAVY_FREQ"
                  },
                  "targetType": "nfs3"
                }
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st1",
                  "name": "st1",
                  "properties": {
                    "junctions": [
                      {
                        "namespacePath": "/path/on/cache",
                        "nfsExport": "exp1",
                        "targetPath": "/path/on/exp1"
                      },
                      {
                        "namespacePath": "/path2/on/cache",
                        "nfsExport": "exp2",
                        "targetPath": "/path2/on/exp2"
                      }
                    ],
                    "nfs3": {
                      "target": "10.0.44.44",
                      "usageModel": "READ_HEAVY_FREQ"
                    },
                    "targetType": "nfs3"
                  },
                  "type": "Microsoft.StorageCache/Cache/StorageTarget"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create/update a storage target.  This operation is allowed at any time, but if the cache is down or unhealthy, the actual creation/modification of the storage target may be delayed until the cache is healthy again.",
        "operationId": "StorageTargets_Create",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Name of storage target.",
            "in": "path",
            "name": "storageTargetName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          },
          {
            "description": "Object containing the definition of a storage target.",
            "in": "body",
            "name": "storagetarget",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Storage Target has been created.",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          },
          "201": {
            "description": "Storage Target creation has been initiated.  Poll the new Storage Target's provisioningState property to monitor creation progress.",
            "schema": {
              "$ref": "#/definitions/StorageTarget"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "StorageTargets"
        ],
        "x-ms-examples": {
          "StorageTargets_Create": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "storageTargetName": "st1",
              "storagetarget": {
                "properties": {
                  "junctions": [
                    {
                      "namespacePath": "/path/on/cache",
                      "nfsExport": "exp1",
                      "targetPath": "/path/on/exp1"
                    },
                    {
                      "namespacePath": "/path2/on/cache",
                      "nfsExport": "exp2",
                      "targetPath": "/path2/on/exp2"
                    }
                  ],
                  "nfs3": {
                    "target": "10.0.44.44",
                    "usageModel": "READ_HEAVY_INFREQ"
                  },
                  "targetType": "nfs3"
                }
              },
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st1",
                  "name": "st1",
                  "properties": {
                    "junctions": [
                      {
                        "namespacePath": "/path/on/cache",
                        "nfsExport": "exp1",
                        "targetPath": "/path/on/exp1"
                      },
                      {
                        "namespacePath": "/path2/on/cache",
                        "nfsExport": "exp2",
                        "targetPath": "/path2/on/exp2"
                      }
                    ],
                    "nfs3": {
                      "target": "10.0.44.44",
                      "usageModel": "READ_HEAVY_INFREQ"
                    },
                    "targetType": "nfs3"
                  },
                  "type": "Microsoft.StorageCache/Cache/StorageTarget"
                }
              },
              "201": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/scgroup/providers/Microsoft.StorageCache/caches/sc1/storagetargets/st1",
                  "name": "st1",
                  "properties": {
                    "junctions": [
                      {
                        "namespacePath": "/path/on/cache",
                        "nfsExport": "exp1",
                        "targetPath": "/path/on/exp1"
                      },
                      {
                        "namespacePath": "/path2/on/cache",
                        "nfsExport": "exp2",
                        "targetPath": "/path2/on/exp2"
                      }
                    ],
                    "nfs3": {
                      "target": "10.0.44.44",
                      "usageModel": "READ_HEAVY_INFREQ"
                    },
                    "targetType": "nfs3"
                  },
                  "type": "Microsoft.StorageCache/Cache/StorageTarget"
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.StorageCache/caches/{cacheName}/upgrade": {
      "post": {
        "description": "Tells a cache to upgrade its firmware.",
        "operationId": "Caches_UpgradeFirmware",
        "parameters": [
          {
            "description": "Target resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          },
          {
            "description": "Name of cache.",
            "in": "path",
            "name": "cacheName",
            "pattern": "^[-0-9a-zA-Z_]{1,31}$",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "201": {
            "description": "Cache firmware is up to date.",
            "schema": {}
          },
          "202": {
            "description": "Cache has started the upgrade.",
            "schema": {}
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Caches"
        ],
        "x-ms-examples": {
          "Caches_UpgradeFirmware": {
            "parameters": {
              "api-version": "2019-08-01-preview",
              "cacheName": "sc1",
              "resourceGroupName": "scgroup",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "201": {
                "body": ""
              },
              "202": {
                "body": ""
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "ApiOperation": {
      "description": "REST API operation description: see https://github.com/Azure/azure-rest-api-specs/blob/master/documentation/openapi-authoring-automated-guidelines.md#r3023-operationsapiimplementation",
      "properties": {
        "display": {
          "description": "The object that represents the operation.",
          "properties": {
            "operation": {
              "description": "Operation type: Read, write, delete, etc.",
              "type": "string"
            },
            "provider": {
              "description": "Service provider: Microsoft.StorageCache",
              "type": "string"
            },
            "resource": {
              "description": "Resource on which the operation is performed: cache, etc.",
              "type": "string"
            }
          }
        },
        "name": {
          "description": "Operation name: {provider}/{resource}/{operation}",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ApiOperationListResult": {
      "description": "Result of the request to list Resource Provider operations. It contains a list of operations and a URL link to get the next set of results.",
      "properties": {
        "nextLink": {
          "description": "URL to get the next set of operation list results if there are any.",
          "type": "string"
        },
        "value": {
          "description": "List of Resource Provider operations supported by the Microsoft.StorageCache resource provider.",
          "items": {
            "$ref": "#/definitions/ApiOperation"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Cache": {
      "description": "A cache instance.  Follows Azure Resource Manager standards: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/resource-api-reference.md",
      "properties": {
        "id": {
          "$ref": "#/definitions/URLString",
          "description": "Fully qualified URL of the cache.",
          "readOnly": true
        },
        "location": {
          "description": "Region name string.",
          "type": "string"
        },
        "name": {
          "$ref": "#/definitions/ResourceName",
          "description": "Name of cache.",
          "readOnly": true
        },
        "properties": {
          "description": "Properties for the cache.",
          "properties": {
            "cacheSizeGB": {
              "description": "The size of this cache's cache, in GB.",
              "type": "integer"
            },
            "health": {
              "$ref": "#/definitions/CacheHealth",
              "description": "Health of the cache.",
              "readOnly": true
            },
            "mountAddresses": {
              "description": "Array of IP addresses that can be used by clients mounting this Cache.",
              "items": {
                "type": "string"
              },
              "readOnly": true,
              "type": "array"
            },
            "provisioningState": {
              "description": "ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property",
              "enum": [
                "Succeeded",
                "Failed",
                "Cancelled",
                "Creating",
                "Deleting",
                "Updating"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "ProvisioningStateType"
              }
            },
            "subnet": {
              "$ref": "#/definitions/URLString",
              "description": "Subnet used for the cache."
            },
            "upgradeStatus": {
              "$ref": "#/definitions/CacheUpgradeStatus",
              "description": "Upgrade status of the cache."
            }
          },
          "type": "object",
          "x-ms-client-flatten": true
        },
        "sku": {
          "description": "Sku for the cache.",
          "properties": {
            "name": {
              "description": "Sku name for this cache.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "tags": {
          "description": "ARM tags as name/value pairs.",
          "type": "object"
        },
        "type": {
          "description": "Type for the cache; Microsoft.StorageCache/Cache",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-azure-resource": true
    },
    "CacheHealth": {
      "description": "An indication of cache health.  Gives more information about health than just that related to provisioning.",
      "properties": {
        "state": {
          "description": "List of cache health states.",
          "enum": [
            "Unknown",
            "Healthy",
            "Degraded",
            "Down",
            "Transitioning",
            "Stopping",
            "Stopped",
            "Upgrading",
            "Flushing"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "HealthStateType"
          }
        },
        "statusDescription": {
          "description": "Describes explanation of state.",
          "type": "string"
        }
      }
    },
    "CacheUpgradeStatus": {
      "description": "Properties describing the software upgrade state of the cache",
      "properties": {
        "currentFirmwareVersion": {
          "description": "Version string of the firmware currently installed on this cache.",
          "readOnly": true,
          "type": "string"
        },
        "firmwareUpdateDeadline": {
          "description": "Time at which the pending firmware update will automatically be installed on the cache.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "firmwareUpdateStatus": {
          "description": "True if there is a firmware update ready to install on this cache.  The firmware will automatically be installed after firmwareUpdateDeadline if not triggered earlier via the upgrade operation.",
          "enum": [
            "available",
            "unavailable"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "FirmwareStatusType"
          }
        },
        "lastFirmwareUpdate": {
          "description": "Time of the last successful firmware update.",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "pendingFirmwareVersion": {
          "description": "When firmwareUpdateAvailable is true, this field holds the version string for the update.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "CachesListResult": {
      "description": "Result of the request to list caches. It contains a list of caches and a URL link to get the next set of results.",
      "properties": {
        "nextLink": {
          "description": "URL to get the next set of cache list results if there are any.",
          "type": "string"
        },
        "value": {
          "description": "List of caches.",
          "items": {
            "$ref": "#/definitions/Cache"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ClfsTarget": {
      "description": "Storage container for use as a CLFS StorageTarget.",
      "properties": {
        "target": {
          "$ref": "#/definitions/URLString",
          "description": "URL of storage container."
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "clfs"
    },
    "CloudError": {
      "description": "An error response.",
      "properties": {
        "error": {
          "$ref": "#/definitions/CloudErrorBody",
          "description": "The body of the error."
        }
      },
      "type": "object",
      "x-ms-external": true
    },
    "CloudErrorBody": {
      "description": "An error response.",
      "properties": {
        "code": {
          "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "details": {
          "description": "A list of additional details about the error.",
          "items": {
            "$ref": "#/definitions/CloudErrorBody"
          },
          "type": "array"
        },
        "message": {
          "description": "A message describing the error, intended to be suitable for display in a user interface.",
          "type": "string"
        },
        "target": {
          "description": "The target of the particular error. For example, the name of the property in error.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "NamespaceJunction": {
      "description": "A namespace junction.",
      "properties": {
        "namespacePath": {
          "description": "Namespace path on a cache for a storage target.",
          "type": "string"
        },
        "nfsExport": {
          "description": "NFS export where targetPath exists.",
          "type": "string"
        },
        "targetPath": {
          "description": "Path in storage target to which namespacePath points.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "Nfs3Target": {
      "description": "An NFS mount point for use as a StorageTarget.",
      "properties": {
        "target": {
          "description": "IP or name of an NFS Storage Target host, ie: 10.0.44.44",
          "pattern": "^[-.0-9a-zA-Z]+$",
          "type": "string"
        },
        "usageModel": {
          "description": "Identifies the primary usage model to be used for this storage target.   GET choices from .../usageModels",
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "nfs3"
    },
    "ResourceName": {
      "description": "Schema for the name of resources served by this provider.   Note that objects will contain an odata @id annotation as appropriate, this will contain the complete URL of the object.   These names are case-preserving, but not case sensitive.",
      "pattern": "^[-0-9a-zA-Z_]{1,31}$",
      "type": "string"
    },
    "ResourceSku": {
      "description": "A resource SKU",
      "properties": {
        "capabilities": {
          "description": "A list of capabilities of this SKU, such as throughput or ops/sec",
          "items": {
            "$ref": "#/definitions/ResourceSkuCapabilities"
          },
          "type": "array"
        },
        "locationInfo": {
          "description": "The set of locations that the SKU is available.",
          "items": {
            "$ref": "#/definitions/ResourceSkuLocationInfo"
          },
          "type": "array"
        },
        "locations": {
          "description": "The set of locations that the SKU is available. This will be supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.).",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        },
        "name": {
          "description": "The name of this sku.",
          "type": "string"
        },
        "resourceType": {
          "description": "The type of resource the sku applies to.",
          "readOnly": true,
          "type": "string"
        },
        "restrictions": {
          "description": "The restrictions because of which SKU cannot be used. This is empty if there are no restrictions.",
          "items": {
            "$ref": "#/definitions/Restriction"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ResourceSkuCapabilities": {
      "description": "A resource SKU capability.",
      "properties": {
        "name": {
          "description": "Name of a capability, such as ops/sec",
          "type": "string"
        },
        "value": {
          "description": "Quantity, if the capability is measured by quantity",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ResourceSkuLocationInfo": {
      "description": "Resource SKU location information.",
      "properties": {
        "location": {
          "description": "Location where this Sku is available",
          "type": "string"
        },
        "zones": {
          "description": "Zones if any.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ResourceSkusResult": {
      "description": "The response from the List Cache SKUs operation.",
      "properties": {
        "nextLink": {
          "description": "The uri to fetch the next page of cache Skus.",
          "type": "string"
        },
        "value": {
          "description": "The list of skus available for the subscription.",
          "items": {
            "$ref": "#/definitions/ResourceSku"
          },
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "Restriction": {
      "description": "The restriction because of which SKU cannot be used.",
      "properties": {
        "reasonCode": {
          "description": "The reason for the restriction. As of now this can be \"QuotaId\" or \"NotAvailableForSubscription\". Quota Id is set when the SKU has requiredQuotas parameter as the subscription does not belong to that quota. The \"NotAvailableForSubscription\" is related to capacity at DC.",
          "enum": [
            "QuotaId",
            "NotAvailableForSubscription"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ReasonCode"
          }
        },
        "type": {
          "description": "The type of restrictions. As of now only possible value for this is location.",
          "readOnly": true,
          "type": "string"
        },
        "values": {
          "description": "The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted.",
          "items": {
            "type": "string"
          },
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "StorageTarget": {
      "description": "A storage system being cached by a Cache.",
      "discriminator": "targetType",
      "properties": {
        "id": {
          "description": "Resource Id",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "$ref": "#/definitions/ResourceName",
          "description": "A fully qualified URL.",
          "readOnly": true
        },
        "properties": {
          "description": "Properties of the storage target.",
          "properties": {
            "clfs": {
              "$ref": "#/definitions/ClfsTarget",
              "description": "Properties when clfs target."
            },
            "junctions": {
              "description": "List of cache namespace to target namespace associations.",
              "items": {
                "$ref": "#/definitions/NamespaceJunction"
              },
              "type": "array"
            },
            "nfs3": {
              "$ref": "#/definitions/Nfs3Target",
              "description": "Properties when nfs3 target."
            },
            "provisioningState": {
              "description": "ARM provisioning state, see https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/Addendum.md#provisioningstate-property",
              "enum": [
                "Succeeded",
                "Failed",
                "Cancelled",
                "Creating",
                "Deleting",
                "Updating"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "ProvisioningStateType"
              }
            },
            "targetType": {
              "description": "Type for storage target.",
              "enum": [
                "nfs3",
                "clfs",
                "unknown"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "StorageTargetType"
              }
            },
            "unknown": {
              "$ref": "#/definitions/UnknownTarget",
              "description": "Properties when unknown target."
            }
          },
          "type": "object",
          "x-ms-client-flatten": true
        },
        "type": {
          "description": "Type for the storage target; Microsoft.StorageCache/Cache/StorageTarget",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-azure-resource": true
    },
    "StorageTargetsResult": {
      "description": "A list of storage targets.",
      "properties": {
        "nextLink": {
          "description": "The uri to fetch the next page of storage targets.",
          "type": "string"
        },
        "value": {
          "description": "The list of storage targets defined for the cache.",
          "items": {
            "$ref": "#/definitions/StorageTarget"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "URLString": {
      "description": "A fully qualified URL.",
      "type": "string"
    },
    "UnknownProperties": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Properties of an unknown type of StorageTarget",
      "type": "object"
    },
    "UnknownTarget": {
      "description": "Storage container for use as a Unknown StorageTarget.",
      "properties": {
        "unknownMap": {
          "$ref": "#/definitions/UnknownProperties",
          "description": "Dictionary of string->string pairs containing information about the StorageTarget."
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "unknown"
    },
    "UsageModel": {
      "description": "A usage model.",
      "properties": {
        "display": {
          "description": "Localized information describing this usage model.",
          "properties": {
            "description": {
              "description": "String to display for this usage model.",
              "type": "string"
            }
          },
          "type": "object"
        },
        "modelName": {
          "description": "Non localized keyword naming this usage model.",
          "type": "string"
        },
        "targetType": {
          "description": "The type of Storage Target to which this model is applicable (only nfs for now)",
          "type": "string"
        }
      },
      "type": "object"
    },
    "UsageModelsResult": {
      "description": "A list of cache usage models.",
      "properties": {
        "nextLink": {
          "description": "The uri to fetch the next page of cache usage models.",
          "type": "string"
        },
        "value": {
          "description": "The list of usage models available for the subscription.",
          "items": {
            "$ref": "#/definitions/UsageModel"
          },
          "type": "array"
        }
      },
      "type": "object"
    }
  }
}