GithubHelp home page GithubHelp logo

isabella232 / azure-resource-manager-schemas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azure/azure-resource-manager-schemas

0.0 0.0 0.0 11.74 MB

Schemas used to author and validate Resource Manager Templates

License: MIT License

TypeScript 99.42% JavaScript 0.58%

azure-resource-manager-schemas's Introduction

azure-resource-manager-schemas

This is the repo for template deployment schemas hosted under https://schema.management.azure.com/schemas. Please see below for information on contributing and publishing updated schemas.

Updating Schemas

There are two processes for updating schemas:

  1. Daily autogeneration: Schemas are automatically generated from definitions in the azure-rest-api-specs repo. This requires onboarding on a per-provider basis.
  2. Manually: Schemas are manually authored and committed via PR.

Has my team been onboarded for daily autogeneration?

Please see generator/autogenlist.ts for the list of teams which have been onboarded. basePath refers to the path in the azure-rest-api-specs repo, and namespace is the Resource Provider namespace.

If your team has been onboarded, we do not require any manual contributions to this repo and your schemas will automatically be kept up to date by the pipeline.

Authoring Schemas and submitting a PR

Please ensure you have read Updating Schemas before continuing with this step, and only continue if this applies to your team.

Authoring

You can use the generator in this repo to automatically generate a schema from a swagger spec checked into the azure-rest-api-specs repo.

Generating locally

  1. Fork this repo, and clone it locally.
  2. Run the following commands (replace the base path accordingly - valid paths can be disovered with npm run list-basepaths):
cd generator
npm install
npm run generate-single myprovider/resource-manager
  1. Review the generator logs to ensure no errors, and review the changes generated.
  2. Ensure that you have reviewed the guidelines under Submitting a PR.
  3. Generate a commit and push it to your fork.
  4. Submit a pull request to this repo. Please include the full command output in a PR comment.

Alternatively, you can hand-author your schema, but please note that this process is error-prone, and ARM will not be responsible for reviewing for accuracy when validating your PR.

Submitting a PR

  • Ensure that any $refs to resource types that you are adding has been added to the following top-level template schema: schemas/2019-04-01/deploymentTemplate.json
  • If your schema has been manually generated, please ensure you include appropriate tests in tests
  • If adding a new resource type, please add examples to the templates in tools/templateTests
  • Ensure that the test suite passes (see Tests)

NOTE: We will no longer be taking any updates to the 2015-01-01 or 2014-04-01-preview root schemas. If you are authoring a template which references one of these schemas, please upgrade it to use the 2019-04-01 root schema by setting the $schema property to https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#".

Runing Unit Tests

Use the following commands to execute the test suite locally:

cd tools
npm install
npm test

Manual testing with a local schema server

This repo contains a command to run a schema web server which will host files directly from your local repo. This can be useful if you want to validate schemas against a particular tool - for example if you want to verify VSCode autocompletion and syntax highlighting. By default this will listen on port 3000, but this can be modified by editing tools/server.ts. To start an instance you can use the following commands:

cd tools
npm install
npm run serve

Once this is running, you can create a basic template with the following structure (replacing the sections between < and > as appropriate for your scenario):

{
  "$schema": "http://<hostname>:<port>/schemas/2019-04-01/deploymentTemplate.json",
  "resources": [
    {
      "type": "<providerNamespace>/<resourceType>",
      "apiVersion": "<apiVersion>",
      "properties": {
      }
    }
  ]
}

NOTE Many client tools will cache responses from schema servers, so you may need to clear this cache if you are testing modifications, or alternatively, change the port between retries.

RP Schemas Repo Issues Bot Notifications

To get quickly notified on GitHub issues for your RP's schema, please update the rp-label-to-contact.md by submitting a PR with the desired GitHub handle(s) and label for your RP.


This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-resource-manager-schemas's People

Contributors

anthony-c-martin avatar anton-evseev avatar astauben avatar azcloudfarmer avatar blocphan avatar blueww avatar descatles avatar docohe avatar evgenyagafonchikov avatar gbowerman avatar haitsongmsft avatar hunmix avatar jaredmoo avatar jorgecotillo avatar kvish avatar leni-msft avatar mabhard avatar pilor avatar quasarse avatar radennis avatar rileymckenna avatar rkmanda avatar solankisamir avatar swylezol avatar t-robalt avatar thbagley avatar tiano2017 avatar waynekuo avatar wenwu449 avatar yangl900 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.