1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
# Azure Blob Storage for Python
> see https://aka.ms/autorest
### Setup
```ps
cd C:\work
git clone --recursive https://github.com/Azure/autorest.python.git
cd autorest.python
git checkout azure-core
npm install
```
### Generation
```ps
cd <swagger-folder>
autorest --use=C:/work/autorest.python --version=2.0.4280
```
### Settings
``` yaml
input-file: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/storage-dataplane-preview/specification/storage/data-plane/Microsoft.BlobStorage/preview/2020-04-08/blob.json
output-folder: ../azure/storage/blob/_generated
namespace: azure.storage.blob
no-namespace-folders: true
license-header: MICROSOFT_MIT_NO_VERSION
enable-xml: true
vanilla: true
clear-output-folder: true
python: true
```
### Remove x-ms-pageable
Currently breaking the latest version of autorest.python
``` yaml
directive:
- from: swagger-document
where: $["x-ms-paths"]..get
transform: >
if ($["x-ms-pageable"]) { delete $["x-ms-pageable"]; }
```
### Use strings for dates when python doesn't have enough precision
``` yaml
directive:
- from: swagger-document
where: $.definitions.AccessPolicy.properties
transform: >
$.Start.format = "str";
$.Expiry.format = "str";
```
### BlobTagFilter
``` yaml
directive:
- from: swagger-document
where: $.parameters.BlobTagFilter
transform: >
$["x-ms-parameter-location"] = "method";
```
### PathRenameMode
``` yaml
directive:
- from: swagger-document
where: $.parameters.PathRenameMode
transform: >
$["x-ms-parameter-location"] = "method";
```
### BlobHierarchyListSegment
``` yaml
directive:
- from: swagger-document
where: $.definitions.BlobHierarchyListSegment
transform: >
$.properties.BlobPrefixes.xml = { "name": "BlobPrefix" };
$.properties.BlobItems.xml = { "name": "Blob" };
```
### SignedIdentifier shouldn't require an AccessPolicy, only ID
``` yaml
directive:
- from: swagger-document
where: $.definitions.SignedIdentifier
transform: >
$.required = [ "Id" ];
```
### Make AccessTier Unique
autorest.python complains that the same enum has different values
``` yaml
directive:
- from: swagger-document
where: $.parameters.AccessTierRequired
transform: >
$["x-ms-enum"].name = "AccessTierRequired";
- from: swagger-document
where: $.parameters.AccessTierOptional
transform: >
$["x-ms-enum"].name = "AccessTierOptional";
```
|