Skip to content
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

Linter Validation rules #1751

Merged
merged 24 commits into from
Feb 3, 2017
Merged

Linter Validation rules #1751

merged 24 commits into from
Feb 3, 2017

Conversation

sarangan12
Copy link
Member

Rules Added:
Rule #1: Validates the version of the swagger. API version must follow the date pattern yyyy-MM-dd and allowed prefixes are -preview, -alpha, -beta, -rc, -privatepreview.
File Name: APIVersionPattern.cs
Sample Error Message:
WARNING: APIVersionPattern - API Version must be in the format: yyyy-MM-dd, optionally followed by -preview, -alpha, -beta, -rc, -privatepreview.
Path: #/Info/Version

Rule #2: Validates if GUID is used in any of the properties.GUID usage is not recommended in general.
File Name: GuidValidation.cs
Sample Error Message:
WARNING: GuidValidation - Guid used at the #/Definitions/AccessPolicyEntry/.../tenantId. Usage of Guid is not recommanded.
Path: #/Definitions

Rule #3: Validates if the HTTP verb is delete/get/put/patch/head/options/post
File Name: HttpVerbValidation.cs
Sample Error Message:
WARNING: HttpVerbValidation - Permissible values for HTTP Verb are delete,get,put,patch,head,options,post.
Path: #/Paths/1subscriptions1{subscriptionId}1providers1Microsoft.Cdn~1profiles

Rule #4: Validates if the body of the delete operation is empty.
File Name: DeleteMustHaveEmptyBody
Sample Error Message:
WARNING: DeleteMustHaveEmptyBody - 'Delete' operation cannot have parameters in body.
Path: #/Paths/1subscriptions1{subscriptionId}1resourceGroups1{resourceGroupName}1providers1Microsoft.Cdn1profiles1{profileName}

Rule #5: Validates if the resource definition has x-ms-azure-resource extension set to true.
File Name: ResourceIsMsResourceValidation.cs
Sample Error Message:
WARNING: ResourceIsMsResourceValidation - A 'Resource' definition must have x-ms-azure-resource extension enabled and set to true.
Path: #/Definitions

Rule #6: Validates if the name of property and x-ms-client-name(if exists) does not match.
File Name: XmsClientNameValidation.cs
Sample Error Message:
WARNING: XmsClientNameValidation - Value of 'x-ms-client-name' cannot be the same as the property/model name.
Path: #/Definitions/SoaRecord/Properties

Rule #7: Validates if the Operations API has been implemented
File Name: OperationsAPIImplementationValidation.cs
Sample Error Message:
WARNING: OperationsAPIImplementationValidation - Operations API must be implemented for the service.
Path: #/Paths

Rule #8: Validates if the response of Put/Get/Patch are same.
File Name: PutGetPatchResponseValidation
Sample Error Message:
WARNING: PutGetPatchResponseValidation - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsZones/{zoneName}/{recordType}/{relativeRecordSetName} has different responses for PUT/GET/PATCH operations. The PUT/GET/PATCH operations must have same schema response.
Path: #/Paths

Rule #9: Validates the structure of Resource Model that it must contain id, name, type, location, tags with everything as readonly except location
File Name: ResourceModelValidation.cs
Sample Error Message:
WARNING: ResourceModelValidation - The id, name, type, location and tags properties of the Resource must be present with id, name and type as read-only
Path: #/Definitions

Rule #10: Validates if a Tracked Resource has a Get Operation.
File Name: TrackedResourceValidation.cs
Sample Error Message:
WARNING: TrackedResourceValidation - Tracked Resource failing validation is: Zone. Validation Failed: 1.
A Tracked Resource must have:
1. A Get Operation
2. A ListByResourceGroup operation with x-ms-pageable extension and
3. A ListBySubscriptionId operation with x-ms-pageable extension.
4. Type, Location, Tags should not be used in the properties.
Path: #/Definitions

Rule #11: Top level resources should support collection GETs under Resoruce group scope
File Name: TrackedResourceValidation.cs
Sample Error Message:
WARNING: TrackedResourceValidation - Tracked Resource failing validation is: Zone. Validation Failed: 2.
A Tracked Resource must have:
1. A Get Operation
2. A ListByResourceGroup operation with x-ms-pageable extension and
3. A ListBySubscriptionId operation with x-ms-pageable extension.
4. Type, Location, Tags should not be used in the properties.
Path: #/Definitions

Rule #12: Top level resources should support collection GETs under subscription scope
File Name: TrackedResourceValidation.cs
Sample Error Message:
WARNING: TrackedResourceValidation - Tracked Resource failing validation is: Zone. Validation Failed: 3.
A Tracked Resource must have:
1. A Get Operation
2. A ListByResourceGroup operation with x-ms-pageable extension and
3. A ListBySubscriptionId operation with x-ms-pageable extension.
4. Type, Location, Tags should not be used in the properties.
Path: #/Definitions

Rule #13: Top Level Properties should not be repeated inside properties (for tracked resources)
File Name: TrackedResourceValidation.cs
Sample Error Message:
WARNING: TrackedResourceValidation - Tracked Resource failing validation is: Zone. Validation Failed: 4.
A Tracked Resource must have:
1. A Get Operation
2. A ListByResourceGroup operation with x-ms-pageable extension and
3. A ListBySubscriptionId operation with x-ms-pageable extension.
4. Type, Location, Tags should not be used in the properties.
Path: #/Definitions

Rule #14: Validates the SKU Model. A Sku model must have name property. It can also have tier, size, family, capacity as optional properties.
File Name: SkuModelValidation.cs
Sample Error Message:
WARNING: SkuModelValidation - Sku Model is not valid. A Sku model must have name property. It can also have tier, size, family, capacity as optional properties.
Path: #/Definitions

@amarzavery @salameer Please review

@azuresdkci
Copy link

Can one of the admins verify this patch?

/// <summary>
/// Validates if the body of the delete operation is empty.
/// </summary>
public class DeleteMustHaveEmptyBody : TypedRule<Dictionary<string, Operation>>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DeleteMustHaveEmptyBody --> DeleteMustHaveEmptyRequestBody. This makes things clear.
With Delete one can have 204 response which must also have an empty response body. Thus explicitly specifying RequestBody makes it very clear.

Please make this change wherever applicable.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

definitions.Any(definition =>
definition.Key.Equals("sku", System.StringComparison.InvariantCultureIgnoreCase) &&
definition.Value.Properties != null &&
definition.Value.Properties.Count <= 5 &&
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the spec say that all the RPs need to model the above 5 properties atleast? This will fail most of the RPs as they do not describe all the 5 properties "NAME|TIER|SIZE|FAMILY|CAPACITY".
@ravbhatnagar - Please take a look at this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rule does not say atleast 5. It says at the most 5. Anyway, that part is kind of handled at the bottom so this check is not really required. removed it

<data name="OperationsAPINotImplemented" xml:space="preserve">
<value>Operations API must be implemented for the service.</value>
</data>
<data name="TrackedResourceIsNotValid" xml:space="preserve">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rule does not accurately represent whether the tracked resource is valid or not. So the rule name /description can be misleading. Ex- The listByResourceGroup and listBySubscription need not be present for tracked nested resources. So we should Run 2. and 3. checks only for tracked parents.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synched and cleared offline

<data name="OperationsAPINotImplemented" xml:space="preserve">
<value>Operations API must be implemented for the service.</value>
</data>
<data name="TrackedResourceIsNotValid" xml:space="preserve">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rule does not accurately represent whether the tracked resource is valid or not. So the rule name /description can be misleading. Ex- The listByResourceGroup and listBySubscription need not be present for tracked nested resources. So we should Run 2. and 3. checks only for tracked parents.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Synched and cleared offline

@@ -273,6 +308,9 @@
<data name="PathCannotBeNullOrEmpty" xml:space="preserve">
<value>path cannot be null or an empty string or a string with white spaces while getting the parent directory</value>
</data>
<data name="GuidUsageNotValid" xml:space="preserve">

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GuidUsageNotRecommended.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -273,6 +308,9 @@
<data name="PathCannotBeNullOrEmpty" xml:space="preserve">
<value>path cannot be null or an empty string or a string with white spaces while getting the parent directory</value>
</data>
<data name="GuidUsageNotValid" xml:space="preserve">
<value>Guid used at the #/Definitions/{1}/.../{0}. Usage of Guid is not recommanded</value>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets add -"If GUIDs are absolutely required in your service, please get sign off from the Azure API review board."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -273,6 +308,9 @@
<data name="PathCannotBeNullOrEmpty" xml:space="preserve">
<value>path cannot be null or an empty string or a string with white spaces while getting the parent directory</value>
</data>
<data name="GuidUsageNotValid" xml:space="preserve">
<value>Guid used at the #/Definitions/{1}/.../{0}. Usage of Guid is not recommanded</value>
</data>
<data name="OperationNameNotValid" xml:space="preserve">
<value>'GET' operation must use method name 'Get' or Method name start with 'List', 'PUT' operation must use method name 'Create', 'PATCH' operation must use method name 'Update' and 'DELETE' operation must use method name 'Delete'.</value>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add "Operation {0} is called {1}. It should be one of allowed values"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not relevant to the rules in this PR. Please add it to the backlog

/// </summary>
public class APIVersionPattern : TypedRule<string>
{
private static readonly Regex VersionRegex = new Regex(@"^(20\d{2})-(0[1-9]|1[0-2])-((0[1-9])|[12][0-9]|3[01])(-(preview|alpha|beta|rc|privatepreview))?$");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @sarangan12 @ravbhatnagar - Please check this out "version": "2017-01-01.4.0",

The api-version format is a little different. I think the regex will not accommodate that.
Would like to know what is the guidance from ARM team regarding this.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amarzavery @sarangan12 - This is the required pattern for API version - YYYY-MM-DD[-preview|-alpha|-beta|-rc|-privatepreview]
So, above is not a valid API version

@amarzavery
Copy link
Contributor

@sarangan12 - I did not see any tests for the linter rules. Can you add atleast one positive and negative test for each linter rule. This will help us if something breaks in the future.

@amarzavery amarzavery merged commit 9e7956e into Azure:master Feb 3, 2017
fearthecowboy pushed a commit that referenced this pull request Feb 3, 2017
* Ref resolving improvements (#1708)

* composite external resolving revised

* preprocessor (header resolving)

* tmp YAML merging override to unblock arm-recoveryservicesbackup (#1713)

[NOTE] - Admin merging because TravisCI has dishonored itself and should be shamed.

* tmp composite swagger merge override to unblock arm-recoveryservicesbackup

* skip test

* Added code to change the data type of ItemType (#1711)

* Extension proposal (#1638)

[Admin merging  - docs ]
* fixed typo in autorest.json files

* Fixed linefeeds, better c# simplifier

* regenerated python (line endings)

* regenerated ruby (line endings)

* regenerated nodejs (line endings)

* regenerated c# (line endings)

* regenerated samples (line endings)

* merged from master and regenerated

* whitelist assemblies that should be signed

* imported draft document

* [Ruby] Making credentials nil by default (#1677)

* Making credentials nil by default

* Regenerated Samples

* [Linter Rules] M1005, M1006, M1007 & M1009 (#1706)

* Implement OperationNameValidation Rule for M1005, M1006, M1007 & M1009

* Update warning message

* Adding swagger modeler validation tests

* Correcting the clean swagger and improving the rules correctness

* [linter Rules] Swagger rules M2005 - long running operation must have valid terminal status codes (#1707)

* Long running operations must have valid success response codes.

* Adding swagger modeler validation tests for invalid long running reponse codes

* Adding nullable check on response codes before schema resolver

* Adding positive test case for correctly modeled x-ms-long-running

* Correct the merge conflicted resx file syntax

* Add insights swagger spec test, add vm extensions to swagger and schema (#1512)

* Add ServiceBus AzureResourceSchema acceptance test

* Add insights swagger spec test

* Add minLength and maxLength support to schema generator

* Fixing logic to add missing schema resources

* Working on discriminator stuff

* Change schemas that only have an 'object' type definition to be empty

* Add compute test with extension properties

* Add additional enum values for extensionType discriminator

* missing test files

* Update SwaggerSpecHelper.cs

unnecessary file change

* Update SwaggerSpecHelper.cs

unnecessary file change

* [Linter Rules] M2008 for x-ms-mutability extension (#1712)

* x-ms-mutability swagger linter rules

* Removing <<<< characters

* undo unblocking fix (#1718)

* Improvements for Mono & Docker users (#1714)

* Make Docker shell script executable

* Remove unnecessary dependencies

* Update documentation for AutoRest Mono/Docker usage

* Better preprocessor and 3 bugfixes (#1717)

* general $inc handling

* more preproc magic

* move up path params and do cleanup

* fixed Stream.Null codegen

* enum default escaping

* added operationId and title as optional properties of the example schema (#1725)

* Fix NullReferenceException (#1722)

See #1721 for problem and solution.

* minor code cleanup in swagger validation rule file (#1724)

* Generator should not flatten out parameters if they are polymorphic (#1726)

* Changes to markdown file generation in AzureResourceSchema generator. (#1715)

The doc team requested the following changes so they can start consuming
the generated markdown help files.
- generate a separate file for each resource type
- use namespace/type instead of just namespace
- include optional properties in the template sample
- move type into its own column
- remove line-breaks from tables
- re-word some of the boiler-plate text
- don't bold text when listing a type's values

* Relaxing naming rules to accomodate suffix words in names

* [Go] Telemetry tiny detail (#1731)

* Fix for credentials switch (#1728)

* Fix for list and dict serialization (#1727)

* [Java] AutoRest changes by runtime changes (#1703)

* Fix some tests with beta5 snapshot runtime

* Runtime change: mapperAdapter to serializerAdapter

* Runtime change: CollectionFormat moved

* Runtime changes: Use RestClient for generic clients

* Fix paging test

* Get rid of gradle and use maven

* Use pluggable response builder

* Finish up response builder factory

* [Azure/autorest-clientruntime-for-java#119] rename ServiceCall#create()

* [fixes Azure/autorest-clientruntime-for-java#125] remove all references to old callback classes

* Revert to previous next method annotation

* Support fragmented paging

* [#1426] Tests for fragment paging

* Update scripts and docs to use maven

* Support custom logging interceptor

* Remove composite swagger modeler fix

* Remove android footprint

* Reduce complexity on exception construction

* Consistent naming for getters and setters

* Remove duplicate RestClient imports

* Fix maven test runner in gulpfile

* Fix Enum name generation

* Add JsonProperty everywhere

* Regenerate samples

* Fixed AutoRest.Python.Azure.Tests.AcceptanceTests.SampleTestForGeneratingPython (#1759)

* Update AcceptanceTests.cs

* Update SwaggerSpecHelper.cs

* Remove Azure extensions configuration from __init__ in Python (#1745)

* Remove nextLink check in Python

* Remove Azure extensions from __init__ in Python

* Regenerate Python tests

* [Azure.Python] Update setup.py dependency on msrestazure

* [Azure.Python] Regenerate Azure Python tests

* Xml support (#1744)

* Swagger schema adjustment

* wip -1

* removed old xml gen

* xml model

* tests

* real path

* additional test

* test server

* wip 5

* xml wip

* missing files

* fixes

* Tweaked enum serialization

* generic deserialization

* isWrapped serialization support

* rfc date

* niklas

* new properties

* fix response header creation

* refactor and remove custom (de)serialization

* naming

* unnecessary whitespace change

* fixed templates to be non-xml sensitive

* regen

* regen

* fixed nullable dictionary xml deserialization and regened petstoreV2

* cleanup

* xml serialization fix

* fixed testcase

* another special case for list serialization

* Literate File Formats (#1743)

* Drafting Literate docs

* test data format

* updated doc

* more

* literate Swagger

* added literate-metadata

* added literate-metadata

* updated docs

* Got rid of ReadOnly validation (#1749)

* Fixed and improved UniqueResourcePaths linter rule (#1768)

* fixed UniqueResourcePaths

* addressed feedback

* cleaner code gen (less unnecessary code) (#1771)

* Make S.X.X a build-time dependency.

* Fix #1738 (#1772)

* cleaner code gen (less unnecessary code)

* add disambiguation

* fixed test

* regex valitation for dictionary values (#1773)

* Code changes to generate resources/subresources (#1769)

Code changes to generate resources/subresources in ruby based on the standard definitions defined in MSRestAzure

* Removing sanitization for redable output paths

* Eliminate // in the Path output

* Update SwaggerModelerCompareTests

* Fix generation of ARM markdown help files. (#1765)

Include API specific name property instead of the generic one (it provides
better doc text than the generic "name of the resource" one).
Merge AllOf/Properties into a flat list so that AllOf is included.
Removed EnsureUniqueFileName as it's not needed.
Fix unnecessary nesting output directories.
Fixed a silly bug in InlineLink missing a '#' character.

* Adding new property for readable log output

* Linter Validation rules (#1751)

* Adding Validation Rule to check the format for API Version

* Fix the regular expression

* Added validation to check the HTTP Verb

* Added validation to check the properties of resources and their read only preoperties

* Added validation is resource validation must have x-ms-azure-resource extension

* Fixed the condition

* Added Validation to check if the delete operation have empty body

* Added validation to validate x-ms-client-name field

* Fix the signature

* Added validation to check the response of put/get/patch operations

* Fixed the signature

* Added validation to discourage usage of Guid

* Added code to validate if operations API has been implemented

* Added code to validate tracked resources

* Added code to validate properties of tracked resources

* Additional changes

* Fix the Build Issue

* Response to PR comments

* Added Test cases

* Added more test cases

* Fixing test cases

* Removed circular dependency test case

* adjusted master's changes & used new razor tool
fearthecowboy pushed a commit that referenced this pull request Feb 10, 2017
* Ref resolving improvements (#1708)

* composite external resolving revised

* preprocessor (header resolving)

* tmp YAML merging override to unblock arm-recoveryservicesbackup (#1713)

[NOTE] - Admin merging because TravisCI has dishonored itself and should be shamed.

* tmp composite swagger merge override to unblock arm-recoveryservicesbackup

* skip test

* Added code to change the data type of ItemType (#1711)

* Extension proposal (#1638)

[Admin merging  - docs ]
* fixed typo in autorest.json files

* Fixed linefeeds, better c# simplifier

* regenerated python (line endings)

* regenerated ruby (line endings)

* regenerated nodejs (line endings)

* regenerated c# (line endings)

* regenerated samples (line endings)

* merged from master and regenerated

* whitelist assemblies that should be signed

* imported draft document

* [Ruby] Making credentials nil by default (#1677)

* Making credentials nil by default

* Regenerated Samples

* [Linter Rules] M1005, M1006, M1007 & M1009 (#1706)

* Implement OperationNameValidation Rule for M1005, M1006, M1007 & M1009

* Update warning message

* Adding swagger modeler validation tests

* Correcting the clean swagger and improving the rules correctness

* [linter Rules] Swagger rules M2005 - long running operation must have valid terminal status codes (#1707)

* Long running operations must have valid success response codes.

* Adding swagger modeler validation tests for invalid long running reponse codes

* Adding nullable check on response codes before schema resolver

* Adding positive test case for correctly modeled x-ms-long-running

* Correct the merge conflicted resx file syntax

* Add insights swagger spec test, add vm extensions to swagger and schema (#1512)

* Add ServiceBus AzureResourceSchema acceptance test

* Add insights swagger spec test

* Add minLength and maxLength support to schema generator

* Fixing logic to add missing schema resources

* Working on discriminator stuff

* Change schemas that only have an 'object' type definition to be empty

* Add compute test with extension properties

* Add additional enum values for extensionType discriminator

* missing test files

* Update SwaggerSpecHelper.cs

unnecessary file change

* Update SwaggerSpecHelper.cs

unnecessary file change

* [Linter Rules] M2008 for x-ms-mutability extension (#1712)

* x-ms-mutability swagger linter rules

* Removing <<<< characters

* undo unblocking fix (#1718)

* Improvements for Mono & Docker users (#1714)

* Make Docker shell script executable

* Remove unnecessary dependencies

* Update documentation for AutoRest Mono/Docker usage

* Better preprocessor and 3 bugfixes (#1717)

* general $inc handling

* more preproc magic

* move up path params and do cleanup

* fixed Stream.Null codegen

* enum default escaping

* added operationId and title as optional properties of the example schema (#1725)

* Fix NullReferenceException (#1722)

See #1721 for problem and solution.

* minor code cleanup in swagger validation rule file (#1724)

* Generator should not flatten out parameters if they are polymorphic (#1726)

* Changes to markdown file generation in AzureResourceSchema generator. (#1715)

The doc team requested the following changes so they can start consuming
the generated markdown help files.
- generate a separate file for each resource type
- use namespace/type instead of just namespace
- include optional properties in the template sample
- move type into its own column
- remove line-breaks from tables
- re-word some of the boiler-plate text
- don't bold text when listing a type's values

* Relaxing naming rules to accomodate suffix words in names

* [Go] Telemetry tiny detail (#1731)

* Fix for credentials switch (#1728)

* Fix for list and dict serialization (#1727)

* [Java] AutoRest changes by runtime changes (#1703)

* Fix some tests with beta5 snapshot runtime

* Runtime change: mapperAdapter to serializerAdapter

* Runtime change: CollectionFormat moved

* Runtime changes: Use RestClient for generic clients

* Fix paging test

* Get rid of gradle and use maven

* Use pluggable response builder

* Finish up response builder factory

* [Azure/autorest-clientruntime-for-java#119] rename ServiceCall#create()

* [fixes Azure/autorest-clientruntime-for-java#125] remove all references to old callback classes

* Revert to previous next method annotation

* Support fragmented paging

* [#1426] Tests for fragment paging

* Update scripts and docs to use maven

* Support custom logging interceptor

* Remove composite swagger modeler fix

* Remove android footprint

* Reduce complexity on exception construction

* Consistent naming for getters and setters

* Remove duplicate RestClient imports

* Fix maven test runner in gulpfile

* Fix Enum name generation

* Add JsonProperty everywhere

* Regenerate samples

* Fixed AutoRest.Python.Azure.Tests.AcceptanceTests.SampleTestForGeneratingPython (#1759)

* Update AcceptanceTests.cs

* Update SwaggerSpecHelper.cs

* Remove Azure extensions configuration from __init__ in Python (#1745)

* Remove nextLink check in Python

* Remove Azure extensions from __init__ in Python

* Regenerate Python tests

* [Azure.Python] Update setup.py dependency on msrestazure

* [Azure.Python] Regenerate Azure Python tests

* Xml support (#1744)

* Swagger schema adjustment

* wip -1

* removed old xml gen

* xml model

* tests

* real path

* additional test

* test server

* wip 5

* xml wip

* missing files

* fixes

* Tweaked enum serialization

* generic deserialization

* isWrapped serialization support

* rfc date

* niklas

* new properties

* fix response header creation

* refactor and remove custom (de)serialization

* naming

* unnecessary whitespace change

* fixed templates to be non-xml sensitive

* regen

* regen

* fixed nullable dictionary xml deserialization and regened petstoreV2

* cleanup

* xml serialization fix

* fixed testcase

* another special case for list serialization

* Literate File Formats (#1743)

* Drafting Literate docs

* test data format

* updated doc

* more

* literate Swagger

* added literate-metadata

* added literate-metadata

* updated docs

* Got rid of ReadOnly validation (#1749)

* Fixed and improved UniqueResourcePaths linter rule (#1768)

* fixed UniqueResourcePaths

* addressed feedback

* cleaner code gen (less unnecessary code) (#1771)

* Make S.X.X a build-time dependency.

* Fix #1738 (#1772)

* cleaner code gen (less unnecessary code)

* add disambiguation

* fixed test

* regex valitation for dictionary values (#1773)

* Code changes to generate resources/subresources (#1769)

Code changes to generate resources/subresources in ruby based on the standard definitions defined in MSRestAzure

* Removing sanitization for redable output paths

* Eliminate // in the Path output

* Update SwaggerModelerCompareTests

* Fix generation of ARM markdown help files. (#1765)

Include API specific name property instead of the generic one (it provides
better doc text than the generic "name of the resource" one).
Merge AllOf/Properties into a flat list so that AllOf is included.
Removed EnsureUniqueFileName as it's not needed.
Fix unnecessary nesting output directories.
Fixed a silly bug in InlineLink missing a '#' character.

* Adding new property for readable log output

* Linter Validation rules (#1751)

* Adding Validation Rule to check the format for API Version

* Fix the regular expression

* Added validation to check the HTTP Verb

* Added validation to check the properties of resources and their read only preoperties

* Added validation is resource validation must have x-ms-azure-resource extension

* Fixed the condition

* Added Validation to check if the delete operation have empty body

* Added validation to validate x-ms-client-name field

* Fix the signature

* Added validation to check the response of put/get/patch operations

* Fixed the signature

* Added validation to discourage usage of Guid

* Added code to validate if operations API has been implemented

* Added code to validate tracked resources

* Added code to validate properties of tracked resources

* Additional changes

* Fix the Build Issue

* Response to PR comments

* Added Test cases

* Added more test cases

* Fixing test cases

* Removed circular dependency test case

* Cache version strings after first generation. (#1784)

* Cache version strings after first generation.

Also, rewrite CodeNamerGo method to be more readable and have fewer
allocations.

* Responding to PR comments.

* Adding missing package imports to template.

* Reversing change that made two fields static.

* Update readme to reflect requirements of repo build (#1719)

* Update ms_rest and ms_rest_azure version for tests

* Update minimum required runtime version message

* Fix bug in parameter grouping in some languages (#1775)

- The bug was that parameter group "transform" has to happen after the groups are
    processed. In CSharpAzure and CSharpFluent, it was happening too early and so the
    language specific capitalization rules wern't being applied.

* Fix ruby rspec test to deserialize post long-running operation

* fix cross referencing models in relative swagger specs (#1805)

* Fixed constant parameter (#1796)

* Make Python tests less nervous about Exception string content (#1781)

* [Go] Added x-ms-parametrized-host support (#1803)

* wip

* fix dat razor

* [Go] Adding support fo x-ms-parametrized-host

* Fixed bug 1763 and added unit tests (#1800)

* Fixed bug 1763 and added unit tests

* Fixed failing test

* Fixed comments

* Checking files for proper ctor text

* Addressed comment

* Fixing format bug preventing Go gen. (#1795)

* [Linter] Adding rule to warn about boolean type properties (#1783)

* Adding rule to warn about boolean type properties

* Adding test case for rule

* [ReadMe] Change commands to fixed width font (#1774)

* Hotfix after Java runtime beta5 release

* java tests

* regen

* merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants