Skip to content

Latest commit

 

History

History
788 lines (598 loc) · 24.5 KB

File metadata and controls

788 lines (598 loc) · 24.5 KB

Resource

see https://aka.ms/autorest

This is the AutoRest configuration file for Resource.


Getting Started

To build the SDK for Resource, simply Install AutoRest 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 Resource API.

openapi-type: arm
tag: package-features-2015-12
tag: package-locks-2016-09
tag: package-policy-2020-09
tag: package-resources-2020-10
tag: package-subscriptions-2019-11
tag: package-links-2016-09
tag: package-managedapplications-2018-06
tag: package-deploymentscripts-2020-10
tag: package-templatespecs-2019-06-preview

Tag: package-resources-2020-10

These settings apply only when --tag=package-resources-2020-10 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2020-10-01/resources.json

Tag: package-policy-2020-09

These settings apply only when --tag=package-policy-2020-09 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2020-09-01/dataPolicyManifests.json
- Microsoft.Authorization/stable/2020-09-01/policyAssignments.json
- Microsoft.Authorization/stable/2020-09-01/policyDefinitions.json
- Microsoft.Authorization/stable/2020-09-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-preview-2020-08

These settings apply only when --tag=package-preview-2020-08 is specified on the command line.

input-file:
  - Microsoft.Solutions/preview/2020-08-21-preview/managedapplications.json

Tag: package-resources-2020-08

These settings apply only when --tag=package-resources-2020-08 is specified on the command line.

input-file:
  - Microsoft.Resources/stable/2020-08-01/resources.json

Tag: package-subscriptions-2020-01

These settings apply only when --tag=package-subscriptions-2020-01 is specified on the command line.

input-file:
  - Microsoft.Resources/stable/2020-01-01/subscriptions.json

Tag: package-deploymentscripts-2020-10

These settings apply only when --tag=package-deploymentscripts-2020-10 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2020-10-01/deploymentScripts.json

Tag: package-deploymentscripts-2019-10-preview

These settings apply only when --tag=package-deploymentscripts-2019-10-preview is specified on the command line.

input-file:
- Microsoft.Resources/preview/2019-10-01-preview/deploymentScripts.json

Tag: package-features-2015-12

These settings apply only when --tag=package-features-2015-12 is specified on the command line.

input-file:
- Microsoft.Features/stable/2015-12-01/features.json

Tag: package-locks-2016-09

These settings apply only when --tag=package-locks-2016-09 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2016-09-01/locks.json

Tag: package-locks-2015-01

These settings apply only when --tag=package-locks-2015-01 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2015-01-01/locks.json

Tag: package-policy-2020-03

These settings apply only when --tag=package-policy-2020-03 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2020-03-01/policyAssignments.json
- Microsoft.Authorization/stable/2020-03-01/policyDefinitions.json
- Microsoft.Authorization/stable/2020-03-01/policySetDefinitions.json
- Microsoft.Authorization/preview/2020-07-01-preview/policyExemptions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2019-09

These settings apply only when --tag=package-policy-2019-09 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2019-09-01/policyAssignments.json
- Microsoft.Authorization/stable/2019-09-01/policyDefinitions.json
- Microsoft.Authorization/stable/2019-09-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2019-06

These settings apply only when --tag=package-policy-2019-06 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2019-06-01/policyAssignments.json
- Microsoft.Authorization/stable/2019-06-01/policyDefinitions.json
- Microsoft.Authorization/stable/2019-06-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2019-01

These settings apply only when --tag=package-policy-2019-01 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2019-01-01/policyAssignments.json
- Microsoft.Authorization/stable/2019-01-01/policyDefinitions.json
- Microsoft.Authorization/stable/2019-01-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2018-05

These settings apply only when --tag=package-policy-2018-05 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2018-05-01/policyAssignments.json
- Microsoft.Authorization/stable/2018-05-01/policyDefinitions.json
- Microsoft.Authorization/stable/2018-05-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2018-03

These settings apply only when --tag=package-policy-2018-03 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2018-03-01/policyAssignments.json
- Microsoft.Authorization/stable/2018-03-01/policyDefinitions.json
- Microsoft.Authorization/stable/2018-03-01/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2017-06

These settings apply only when --tag=package-policy-2017-06 is specified on the command line.

input-file:
- Microsoft.Authorization/preview/2017-06-01-preview/policyAssignments.json
- Microsoft.Authorization/preview/2017-06-01-preview/policySetDefinitions.json
- Microsoft.Authorization/stable/2016-12-01/policyDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-pure-policy-2017-06

These settings apply only when --tag=package-pure-policy-2017-06 is specified on the command line.

input-file:
- Microsoft.Authorization/preview/2017-06-01-preview/policyAssignments.json
- Microsoft.Authorization/preview/2017-06-01-preview/policySetDefinitions.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-templatespecs-2019-06-preview

These settings apply only when --tag=package-templatespecs-2019-06-preview is specified on the command line.

input-file:
- Microsoft.Resources/preview/2019-06-01-preview/templateSpecs.json

Tag: package-policy-2016-12

These settings apply only when --tag=package-policy-2016-12 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2016-12-01/policyDefinitions.json
- Microsoft.Authorization/stable/2016-12-01/policyAssignments.json

# Needed when there is more than one input file
override-info:
  title: PolicyClient

Tag: package-policy-2016-04

These settings apply only when --tag=package-policy-2016-04 is specified on the command line.

input-file:
- Microsoft.Authorization/stable/2016-04-01/policy.json

Tag: package-policy-2015-10

These settings apply only when --tag=package-policy-2015-10 is specified on the command line.

input-file:
- Microsoft.Authorization/preview/2015-10-01-preview/policy.json

Tag: package-resources-2020-06

These settings apply only when --tag=package-resources-2020-06 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2020-06-01/resources.json

Tag: package-resources-2019-10

These settings apply only when --tag=package-resources-2019-10 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-10-01/resources.json

Tag: package-resources-2019-08

These settings apply only when --tag=package-resources-2019-08 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-08-01/resources.json

Tag: package-resources-2019-07

These settings apply only when --tag=package-resources-2019-07 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-07-01/resources.json

Tag: package-resources-2019-0510

These settings apply only when --tag=package-resources-2019-0510 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-05-10/resources.json

Tag: package-resources-2019-05

These settings apply only when --tag=package-resources-2019-05 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-05-01/resources.json

Tag: package-resources-2019-03

These settings apply only when --tag=package-resources-2019-03 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-03-01/resources.json

Tag: package-resources-2018-05

These settings apply only when --tag=package-resources-2018-05 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2018-05-01/resources.json

Tag: package-resources-2018-02

These settings apply only when --tag=package-resources-2018-02 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2018-02-01/resources.json

Tag: package-resources-2017-05

These settings apply only when --tag=package-resources-2017-05 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2017-05-10/resources.json

Tag: package-resources-2016-09

These settings apply only when --tag=package-resources-2016-09 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2016-09-01/resources.json

Tag: package-resources-2016-07

These settings apply only when --tag=package-resources-2016-07 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2016-07-01/resources.json

Tag: package-resources-2016-02

These settings apply only when --tag=package-resources-2016-02 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2016-02-01/resources.json

Tag: package-resources-2015-11

These settings apply only when --tag=package-resources-2015-11 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2015-11-01/resources.json

Tag: package-subscriptions-2019-11

These settings apply only when --tag=package-subscriptions-2019-11 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-11-01/subscriptions.json

Tag: package-subscriptions-2019-06

These settings apply only when --tag=package-subscriptions-2019-06 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2019-06-01/subscriptions.json

Tag: package-subscriptions-2018-06

These settings apply only when --tag=package-subscriptions-2018-06 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2018-06-01/subscriptions.json

Tag: package-subscriptions-2016-06

These settings apply only when --tag=package-subscriptions-2016-06 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2016-06-01/subscriptions.json

Tag: package-subscriptions-2015-11

These settings apply only when --tag=package-subscriptions-2015-11 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2015-11-01/subscriptions.json

Tag: package-links-2016-09

These settings apply only when --tag=package-links-2016-09 is specified on the command line.

input-file:
- Microsoft.Resources/stable/2016-09-01/links.json

Tag: package-managedapplications-2019-07

These settings apply only when --tag=package-managedapplications-2019-07 is specified on the command line.

input-file:
- Microsoft.Solutions/stable/2019-07-01/managedapplications.json

Tag: package-managedapplications-2018-06

These settings apply only when --tag=package-managedapplications-2018-06 is specified on the command line.

input-file:
- Microsoft.Solutions/stable/2018-06-01/managedapplications.json

Tag: package-managedapplications-2017-09

These settings apply only when --tag=package-managedapplications-2017-09 is specified on the command line.

input-file:
- Microsoft.Solutions/stable/2017-09-01/managedapplications.json

Tag: package-managedapplications-2016-09

These settings apply only when --tag=package-managedapplications-2016-09 is specified on the command line.

input-file:
- Microsoft.Solutions/preview/2016-09-01-preview/managedapplications.json

Suppression

directive:
  - suppress: UniqueResourcePaths
    from: policySetDefinitions.json
    where: $.paths
    reason: policy set definition under an extension resource with Microsoft.Management
  - suppress: UniqueResourcePaths
    from: resources.json
    where: $.paths
    reason: route definitions under an extension resource with Microsoft.Management
  - suppress: UniqueResourcePaths
    from: policyDefinitions.json
    where: $.paths
    reason: policy definition under an extension resource with Microsoft.Management
  - suppress: UniqueResourcePaths
    from: policyAssignments.json
    where: $.paths
    reason: policy assignment under an extension resource with Microsoft.Management
  - suppress: UniqueResourcePaths
    from: policyExemptions.json
    where: $.paths
    reason: policy exemption under an extension resource with Microsoft.Management
  - suppress: OperationsAPIImplementation
    from: policyAssignments.json
    where: $.paths
    reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
  - suppress: OperationsAPIImplementation
    from: policyDefinitions.json
    where: $.paths
    reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
  - suppress: OperationsAPIImplementation
    from: policySetDefinitions.json
    where: $.paths
    reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
  - suppress: OperationsAPIImplementation
    from: policyExemptions.json
    where: $.paths
    reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
  - suppress: BodyTopLevelProperties
    from: policyExemptions.json
    where: $.definitions.PolicyExemption.properties
    reason: Currently systemData is not allowed
  - suppress: BodyTopLevelProperties
    from: resources.json
    where: $.definitions.ResourceGroup.properties
    reason: managedBy is a top level property
  - suppress: BodyTopLevelProperties
    from: resources.json
    where: $.definitions.GenericResource.properties
    reason: managedBy is a top level property
  - suppress: BodyTopLevelProperties
    from: resources.json
    where: $.definitions.GenericResourceExpanded.properties
    reason: 'createdTime,changedTime & provisioningState are top-level properties'
  - suppress: BodyTopLevelProperties
    from: resources.json
    where: $.definitions.TagDetails.properties
    reason: TagDetails is a top level property
  - suppress: BodyTopLevelProperties
    from: resources.json
    where: $.definitions.TagValue.properties
    reason: TagValue is a top level property
  - suppress: RequiredPropertiesMissingInResourceModel
    from: resources.json
    where: $.definitions.TagValue
    reason: TagValue will be deprecated soon
  - suppress: RequiredPropertiesMissingInResourceModel
    from: resources.json
    where: $.definitions.TagDetails
    reason: TagDetails will be deprecated soon
  - suppress: XmsResourceInPutResponse
    from: resources.json
    where: '$.paths["/subscriptions/{subscriptionId}/tagNames/{tagName}"].put'
    reason: TagDetails is not an Azure resource
  - suppress: BodyTopLevelProperties
    from: managedapplications.json
    where: $.definitions.Appliance.properties
    reason: managedBy is a top level property
  - suppress: BodyTopLevelProperties
    from: managedapplications.json
    where: $.definitions.ApplianceDefinition.properties
    reason: managedBy is a top level property
  - suppress: BodyTopLevelProperties
    from: managedapplications.json
    where: $.definitions.AppliancePatchable.properties
    reason: managedBy is a top level property
  - suppress: BodyTopLevelProperties
    from: managedapplications.json
    where: $.definitions.GenericResource.properties
    reason: managedBy is a top level property
  - from: deploymentScripts.json
    suppress: TrackedResourceGetOperation
    where: $.definitions.AzureCliScript
    reason: Tooling issue.
  - from: deploymentScripts.json
    suppress: TrackedResourcePatchOperation
    where: $.definitions.AzureCliScript
    reason: Tooling issue.
  - from: deploymentScripts.json
    suppress: TrackedResourceGetOperation
    where: $.definitions.AzurePowerShellScript
    reason: Tooling issue
  - from: deploymentScripts.json
    suppress: TrackedResourcePatchOperation
    where: $.definitions.AzurePowerShellScript
    reason: Tooling issue
  - from: deploymentScripts.json
    suppress: OperationsAPIImplementation
    where: $.paths
    reason: OperationsAPI will come from Resources
  - from: deploymentScripts.json
    suppress: R3006
    where:
      - $.definitions.DeploymentScript.properties
      - $.definitions.AzureCliScript.properties
      - $.definitions.AzurePowerShellScript.properties
    reason: Currently systemData is not allowed
  - suppress: OperationsAPIImplementation
    from: templateSpecs.json
    where: $.paths
    reason: OperationsAPI will come from Resources
  - suppress: R3006
    from: templateSpecs.json
    where:
      - $.definitions.TemplateSpec.properties
      - $.definitions.TemplateSpecVersion.properties
      - $.definitions.TemplateSpecUpdateModel.properties
      - $.definitions.TemplateSpecVersionUpdateModel.properties
    reason: Currently systemData is not allowed
  - suppress: TrackedResourceListByImmediateParent
    from: templateSpecs.json
    where: $.definitions
    reason: Tooling issue
  - suppress: TrackedResourceListByResourceGroup
    from: templateSpecs.json
    where: $.definitions.TemplateSpecVersion
    reason: Tooling issue
  - suppress: OperationsAPIImplementation
    where: $.paths
    from: dataPolicyManifests.json
    reason: operation APIs for Microsoft.Authorization are to be defined in RBAC swagger
  - suppress: EnumInsteadOfBoolean
    where: $.definitions.DataManifestCustomResourceFunctionDefinition.properties.allowCustomProperties
    from: dataPolicyManifests.json
    reason: 'This property can only have two values. '
  - suppress: EnumInsteadOfBoolean
    where: $.definitions.DataPolicyManifestProperties.properties.isBuiltInOnly
    from: dataPolicyManifests.json
    reason: 'This property can only have two values. '
  - suppress: PageableOperation
    where: '$.paths["/providers/Microsoft.Authorization/dataPolicyManifests"].get'
    from: dataPolicyManifests.json
    reason: Pagination not supported. The size of the result list is pretty limited
  - suppress: DescriptionAndTitleMissing
    where: $.definitions.AliasPathMetadata
    from: resources.json
    reason: This was already checked in - not my code
  - suppress: XmsExamplesRequired
    where: $.paths
    from: resources.json
    reason: Pre-existing lint error. Not related to this version release.
  - suppress: TopLevelResourcesListByResourceGroup
    from: policyDefinitions.json
    reason: Policy definitions are a proxy resource that is only usable on subscriptions or management groups
  - suppress: TopLevelResourcesListByResourceGroup
    from: policySetDefinitions.json
    reason: Policy set definitions are a proxy resource that is only usable on subscriptions or management groups

Code Generation

Swagger to SDK

This section describes what SDK should be generated by the automatic system. This is not used by Autorest itself.

swagger-to-sdk:
  - repo: azure-sdk-for-net
  - repo: azure-sdk-for-python
    after_scripts:
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#features
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#locks
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#policy
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#resources
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#subscriptions
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#links
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#templatespecs
      - python ./scripts/multiapi_init_gen.py azure-mgmt-resource#deploymentscripts
  - repo: azure-sdk-for-python-track2
  - repo: azure-sdk-for-java
  - repo: azure-sdk-for-go
  - repo: azure-sdk-for-node
  - repo: azure-sdk-for-js
  - repo: azure-resource-manager-schemas
    after_scripts:
      - node sdkauto_afterscript.js resources/resource-manager

Go

See configuration in readme.go.md

Java

See configuration in readme.java.md

Validation

Since this RP has no unique default package, iterate over all of them for validation:

batch:
  - package-features: true
  - package-locks: true
  - package-policy: true
  - package-resources: true
  - package-subscriptions: true
  - package-links: true
  - package-managedapplications: true
  - package-deploymentscripts: true
  - package-templatespecs: true

Tag: profile-hybrid-2019-03-01

These settings apply only when --tag=profile-hybrid-2019-03-01 is specified on the command line. Creating this tag to pick proper resources from the hybrid profile.

input-file:
- Microsoft.Authorization/stable/2016-09-01/locks.json
- Microsoft.Authorization/stable/2016-12-01/policyDefinitions.json
- Microsoft.Authorization/stable/2016-12-01/policyAssignments.json
- Microsoft.Resources/stable/2016-06-01/subscriptions.json
- Microsoft.Resources/stable/2018-05-01/resources.json

override-info:
  title: PolicyClient

AzureResourceSchema

See configuration in readme.azureresourceschema.md