-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor sql readme.md #2640
Refactor sql readme.md #2640
Changes from all commits
9c705de
1711aae
f7be3a9
7c0740c
274ea7f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,42 +4,42 @@ | |
|
||
This is the AutoRest configuration file for Sql. | ||
|
||
|
||
|
||
--- | ||
## Getting Started | ||
|
||
To build the SDK for Sql, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: | ||
|
||
> `autorest` | ||
|
||
To see additional help and options, run: | ||
|
||
> `autorest --help` | ||
--- | ||
|
||
## Configuration | ||
|
||
|
||
|
||
### Basic Information | ||
|
||
These are the global settings for the Sql API. | ||
|
||
``` yaml | ||
title: SqlManagementClient | ||
description: The Azure SQL Database management API provides a RESTful set of web services that interact with Azure SQL Database services to manage your databases. The API enables you to create, retrieve, update, and delete databases. | ||
openapi-type: arm | ||
tag: package-2017-03-preview | ||
tag: package-composite-v1 | ||
``` | ||
|
||
## Configuration for generating client SDKs | ||
## Composite packages | ||
|
||
The following packages may be composed from multiple api-versions. | ||
|
||
### Tag: package-2017-10-preview | ||
### Tag: package-composite-v1 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I love that tag :) |
||
|
||
These settings apply only when `--tag=package-2017-10-preview` is specified on the command line. | ||
These settings apply only when `--tag=package-composite-v1` is specified on the command line. | ||
|
||
This section contains the input swagger files that are used when generating client SDKs up to and including api-version 2017-10-01-preview. APIs should only be added to this section when the API is ready for production and the generated client code has been tested end-to-end. | ||
This section contains the "composite-v1" set of APIs, which is composed from a selection of api-versions that will remain backwards compatible with "v1" clients such as .NET SDK Microsoft.Azure.Management.Sql version 1.x. | ||
|
||
``` yaml $(tag) == 'package-2017-10-preview' | ||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
``` yaml $(tag) == 'package-composite-v1' | ||
input-file: | ||
- Microsoft.Sql/stable/2014-04-01/backupLongTermRetentionPolicies.json | ||
- Microsoft.Sql/stable/2014-04-01/backupLongTermRetentionVaults.json | ||
|
@@ -89,7 +89,9 @@ override-info: | |
|
||
These settings apply only when `--tag=package-2017-03-preview` is specified on the command line. | ||
|
||
This section contains the input swagger files that are used when generating client SDKs up to and including api-version 2017-03-01-preview. APIs should only be added to this section when the API is ready for production and the generated client code has been tested end-to-end. | ||
This section contains the input swagger files that are used when generating client SDKs up to and including api-version 2017-03-01-preview, except databases.json which remains at api-version 2014-04-01 in order to maintain compatibility with clients that have been previously released with this package. To prevent similar confusion moving forward, sections named like `package-20xx-xx(-preview)` will not be used after package-2017-03-preview. Instead, sections named like `package-composite-vx` will be used to compose across api-versions and `package-pure-20xx-xx(-preview)` will be used for single api-versions. | ||
|
||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
``` yaml $(tag) == 'package-2017-03-preview' | ||
input-file: | ||
|
@@ -141,7 +143,9 @@ override-info: | |
|
||
These settings apply only when `--tag=package-2015-05-preview` is specified on the command line. | ||
|
||
This section contains the input swagger files that are used when generating client SDKs up to and including api-version 2015-05-01-preview. APIs should only be added to this section when the API is ready for production and the generated client code has been tested end-to-end. | ||
This section contains the input swagger files that are used when generating client SDKs up to and including api-version 2015-05-01-preview. | ||
|
||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
``` yaml $(tag) == 'package-2015-05-preview' | ||
input-file: | ||
|
@@ -187,6 +191,8 @@ override-info: | |
|
||
These settings apply only when `--tag=package-2014-04` is specified on the command line. | ||
|
||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
``` yaml $(tag) == 'package-2014-04' | ||
input-file: | ||
- Microsoft.Sql/stable/2014-04-01/checkNameAvailability.json | ||
|
@@ -203,17 +209,41 @@ override-info: | |
title: SqlManagementClient | ||
``` | ||
|
||
## Configuration for generating resource manager schemas | ||
## Pure package versions | ||
|
||
The following packages are each composed of all apis from only one api-version. | ||
|
||
### Tag: package-pure-2017-10-preview | ||
|
||
These settings apply only when `--tag=package-pure-2017-10-preview` is specified on the command line. | ||
|
||
This section contains all input swagger files for version 2017-10-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
|
||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
These can be regenerated by running the following PowerShell script from this readme file's folder: `dir .\Microsoft.Sql\2017-03-01-preview\ -File | Resolve-Path -Relative | % { " - $_".Replace("\", "/") }` | ||
|
||
``` yaml $(tag) == 'package-pure-2017-10-preview' | ||
input-file: | ||
- ./Microsoft.Sql/preview/2017-10-01-preview/cancelOperations.json | ||
- ./Microsoft.Sql/preview/2017-10-01-preview/cancelPoolOperations.json | ||
|
||
# Needed when there is more than one input file | ||
override-info: | ||
title: SqlManagementClient | ||
``` | ||
|
||
### Tag: package-pure-2017-03-preview | ||
|
||
### Tag: schema-2017-03-preview | ||
These settings apply only when `--tag=package-pure-2017-03-preview` is specified on the command line. | ||
|
||
These settings apply only when `--tag=schema-2017-03-preview` is specified on the command line. | ||
This section contains all input swagger files for version 2017-03-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
|
||
This section contains the input swagger files that are used when generating resource manager schemas for version 2017-03-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
These can be regenerated by running the following PowerShell script from this readme file's folder: `dir .\Microsoft.Sql\2017-03-01-preview\ -File | Resolve-Path -Relative | % { " - $_".Replace("\", "/") }` | ||
|
||
``` yaml $(tag) == 'schema-2017-03-preview' | ||
``` yaml $(tag) == 'package-pure-2017-03-preview' | ||
input-file: | ||
- ./Microsoft.Sql/preview/2017-03-01-preview/databases.json | ||
- ./Microsoft.Sql/preview/2017-03-01-preview/renameDatabase.json | ||
|
@@ -225,15 +255,17 @@ override-info: | |
title: SqlManagementClient | ||
``` | ||
|
||
### Tag: schema-2015-05-preview | ||
### Tag: package-pure-2015-05-preview | ||
|
||
These settings apply only when `--tag=package-pure-2015-05-preview` is specified on the command line. | ||
|
||
These settings apply only when `--tag=schema-2015-05-preview` is specified on the command line. | ||
This section contains all input swagger files for version 2015-05-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
|
||
This section contains the input swagger files that are used when generating resource manager schemas for version 2015-05-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
These can be regenerated by running the following PowerShell script from this readme file's folder: `dir .\Microsoft.Sql\2015-05-01-preview\ -File | Resolve-Path -Relative | % { " - $_".Replace("\", "/") }` | ||
|
||
``` yaml $(tag) == 'schema-2015-05-preview' | ||
``` yaml $(tag) == 'package-pure-2015-05-preview' | ||
input-file: | ||
- ./Microsoft.Sql/preview/2015-05-01-preview/advisors.json | ||
- ./Microsoft.Sql/preview/2015-05-01-preview/blobAuditingPolicies.json | ||
|
@@ -253,15 +285,17 @@ override-info: | |
title: SqlManagementClient | ||
``` | ||
|
||
### Tag: schema-2014-04 | ||
### Tag: package-pure-2014-04 | ||
|
||
These settings apply only when `--tag=schema-2014-04` is specified on the command line. | ||
These settings apply only when `--tag=package-pure-2014-04` is specified on the command line. | ||
|
||
This section contains the input swagger files that are used when generating resource manager schemas for version 2014-04-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
This section contains all input swagger files for version 2014-04-01-preview. All APIs of that version must be added this section when the API is ready for production. | ||
|
||
APIs must only be added to this section when the API is publicly available in at least 1 production region and at least 1 generated client has been tested end-to-end. | ||
|
||
These can be regenerated by running the following PowerShell script from this readme file's folder: `dir .\Microsoft.Sql\2014-04-01\ -File | Resolve-Path -Relative | % { " - $_".Replace("\", "/") }` | ||
|
||
``` yaml $(tag) == 'schema-2014-04' | ||
``` yaml $(tag) == 'package-pure-2014-04' | ||
input-file: | ||
- ./Microsoft.Sql/stable/2014-04-01/advisors.json | ||
- ./Microsoft.Sql/stable/2014-04-01/backupLongTermRetentionPolicies.json | ||
|
@@ -298,10 +332,9 @@ override-info: | |
``` | ||
|
||
--- | ||
# Code Generation | ||
|
||
## Code Generation | ||
|
||
## Swagger to SDK | ||
### Swagger to SDK | ||
|
||
This section describes what SDK should be generated by the automatic system. | ||
This is not used by Autorest itself. | ||
|
@@ -313,8 +346,7 @@ swagger-to-sdk: | |
- repo: azure-sdk-for-go | ||
``` | ||
|
||
|
||
## C# | ||
### C# | ||
|
||
These settings apply only when `--csharp` is specified on the command line. | ||
Please also specify `--csharp-sdks-folder=<path to "SDKs" directory of your azure-sdk-for-net clone>`. | ||
|
@@ -328,7 +360,7 @@ csharp: | |
clear-output-folder: true | ||
``` | ||
|
||
## Python | ||
### Python | ||
|
||
These settings apply only when `--python` is specified on the command line. | ||
Please also specify `--python-sdks-folder=<path to the root directory of your azure-sdk-for-python clone>`. | ||
|
@@ -345,20 +377,20 @@ python: | |
package-version: 0.9.0 | ||
clear-output-folder: true | ||
``` | ||
|
||
``` yaml $(python) && $(python-mode) == 'update' | ||
python: | ||
no-namespace-folders: true | ||
output-folder: $(python-sdks-folder)/azure-mgmt-sql/azure/mgmt/sql | ||
``` | ||
|
||
``` yaml $(python) && $(python-mode) == 'create' | ||
python: | ||
basic-setup-py: true | ||
output-folder: $(python-sdks-folder)/azure-mgmt-sql | ||
``` | ||
|
||
|
||
|
||
## Go | ||
### Go | ||
|
||
These settings apply only when `--go` is specified on the command line. | ||
|
||
|
@@ -369,16 +401,28 @@ go: | |
clear-output-folder: true | ||
``` | ||
|
||
### Go multi-api | ||
#### Go multi-api | ||
|
||
From api-version 2017-10 and onwards, only pure package versions should be used. Composite package versions are used for earlier api-versions (2017-03 and earlier) in order to ensure backwards compatibility with previously released versions of Go SDK, | ||
|
||
``` yaml $(go) && $(multiapi) | ||
batch: | ||
- tag: package-pure-2017-10-preview | ||
- tag: package-2017-03-preview | ||
- tag: package-2015-05-preview | ||
- tag: package-2014-04 | ||
``` | ||
|
||
### Tag: package-2017-03-preview and go | ||
#### Tag: package-pure-2017-10-preview and go | ||
|
||
These settings apply only when `--tag=package-2017-10-preview --go` is specified on the command line. | ||
Please also specify `--go-sdk-folder=<path to the root directory of your azure-sdk-for-go clone>`. | ||
|
||
``` yaml $(tag) == 'package-pure-2017-10-preview' && $(go) | ||
output-folder: $(go-sdk-folder)/services/sql/mgmt/2017-10-01-preview/sql | ||
``` | ||
|
||
#### Tag: package-2017-03-preview and go | ||
|
||
These settings apply only when `--tag=package-2017-03-preview --go` is specified on the command line. | ||
Please also specify `--go-sdk-folder=<path to the root directory of your azure-sdk-for-go clone>`. | ||
|
@@ -387,7 +431,7 @@ Please also specify `--go-sdk-folder=<path to the root directory of your azure-s | |
output-folder: $(go-sdk-folder)/services/sql/mgmt/2017-03-01-preview/sql | ||
``` | ||
|
||
### Tag: package-2015-05-preview and go | ||
#### Tag: package-2015-05-preview and go | ||
|
||
These settings apply only when `--tag=package-2015-05-preview --go` is specified on the command line. | ||
Please also specify `--go-sdk-folder=<path to the root directory of your azure-sdk-for-go clone>`. | ||
|
@@ -396,7 +440,7 @@ Please also specify `--go-sdk-folder=<path to the root directory of your azure-s | |
output-folder: $(go-sdk-folder)/services/sql/mgmt/2015-05-01-preview/sql | ||
``` | ||
|
||
### Tag: package-2014-04 and go | ||
#### Tag: package-2014-04 and go | ||
|
||
These settings apply only when `--tag=package-2014-04 --go` is specified on the command line. | ||
Please also specify `--go-sdk-folder=<path to the root directory of your azure-sdk-for-go clone>`. | ||
|
@@ -405,22 +449,7 @@ Please also specify `--go-sdk-folder=<path to the root directory of your azure-s | |
output-folder: $(go-sdk-folder)/services/sql/mgmt/2014-04-01/sql | ||
``` | ||
|
||
|
||
## Python | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please remove this Python section, there is currently two Python sections in this file and this one is the bad one. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done, thx |
||
|
||
These settings apply only when `--python` is specified on the command line. | ||
|
||
``` yaml $(python) | ||
python: | ||
# override the default output folder | ||
output-folder: $(output-folder)/python | ||
license-header: MICROSOFT_MIT_NO_VERSION | ||
payload-flattening-threshold: 2 | ||
namespace: azure.mgmt.sql | ||
``` | ||
|
||
|
||
## Java | ||
### Java | ||
|
||
These settings apply only when `--java` is specified on the command line. | ||
Please also specify `--azure-libraries-for-java-folder=<path to the root directory of your azure-libraries-for-java clone>`. | ||
|
@@ -435,7 +464,7 @@ java: | |
output-folder: $(azure-libraries-for-java-folder)/azure-mgmt-sql | ||
``` | ||
|
||
# Validation | ||
## Validation | ||
|
||
``` yaml | ||
directive: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this makes a lot of sense. It makes explicit the composite nature of input-file tags.
To be clear though, the
v1
here isn't something that we expect to be exposed to customers, and is just a hint for the SDK creator, right?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correct