Skip to content

Conversation

@wawon-msft
Copy link
Contributor

@wawon-msft wawon-msft commented Jun 16, 2018

There are 7 types of changes in this PR:

  1. Fixing incorrect casing of properties to match the RP
  2. Adding missing valid operation responses to extension operations
  3. Reordered and put common parameters into the top-level parameters property
  4. Removed inappropriate enum constraints for application, extension, and configuration names, which shouldn't originally have been enums
  5. Moved SSH-related properties to the correct file
  6. Removed update configuration API specific for gateway (the generic configuration update API remains)
  7. Removed the capabilities API and added the usages API

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.

PR information

  • The title of the PR is clear and informative.
  • There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
  • Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
  • If applicable, the PR references the bug/issue that it fixes.
  • Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

… in casing, 2. added missing valid response code
…p), 2. Fixed inappropriate enum constraints, 3. Moved property definitions to appropriate file
@AutorestCI
Copy link

AutorestCI commented Jun 16, 2018

Automation for azure-libraries-for-java

Nothing to generate for azure-libraries-for-java

@AutorestCI
Copy link

AutorestCI commented Jun 16, 2018

Automation for azure-sdk-for-ruby

Nothing to generate for azure-sdk-for-ruby

@AutorestCI
Copy link

AutorestCI commented Jun 16, 2018

Automation for azure-sdk-for-python

The initial PR has been merged into your service PR:
Azure/azure-sdk-for-python#1986

@AutorestCI
Copy link

AutorestCI commented Jun 16, 2018

Automation for azure-sdk-for-node

The initial PR has been merged into your service PR:
Azure/azure-sdk-for-node#3070

@AutorestCI
Copy link

AutorestCI commented Jun 16, 2018

Automation for azure-sdk-for-go

The initial PR has been merged into your service PR:
Azure/azure-sdk-for-go#2133

"responses": {
"200": {
"description": "Ok response definition."
},
Copy link
Contributor

Choose a reason for hiding this comment

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

error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE',
  id: 'OAV111',
  message: 'Following response status codes "200" for operation "Extension_EnableMonitoring" were present in the swagger spec, however they were not present in x-ms-examples. Please provide them.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Enable cluster monitoring" in operation "Extension_EnableMonitoring".:

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks. Added to the example.

"responses": {
"200": {
"description": "Ok response definition."
},
Copy link
Contributor

Choose a reason for hiding this comment

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

error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE',
  id: 'OAV111',
  message: 'Following response status codes "200" for operation "Extension_DisableMonitoring" were present in the swagger spec, however they were not present in x-ms-examples. Please provide them.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Enable cluster monitoring" in operation "Extension_DisableMonitoring".:

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks. Added to the example.

},
{
"$ref": "#/parameters/ApplicationNameParameter"
},
Copy link
Contributor

Choose a reason for hiding this comment

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

{
  "id": "1016",
  "code": "ConstantStatusHasChanged",
  "message": "The 'constant' status changed from the old version to the new.",
  "jsonref": "#/paths/~1subscriptions~1{subscriptionId}~1resourceGroups~1{resourceGroupName}~1providers~1Microsoft.HDInsight~1clusters~1{clusterName}~1applications~1{applicationName}/put/applicationName",
  "json-path": "#/paths/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HDInsight/clusters/{clusterName}/applications/{applicationName}/put/applicationName",
  "type": "Error"
}

This is a breaking change in SDKs in each language. The previous version had Enum with a single value "hue". The new one have a free form string. Relates to Put and Delete operations.

Copy link
Contributor Author

@wawon-msft wawon-msft Jun 18, 2018

Choose a reason for hiding this comment

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

This should not have been an enum in the first place. The service accepted values other than "hue" before the enum constraint was introduced, and this would break the existing SDK. Additionally, the values for application name are dynamic, so it wasn't appropriate to use enums for them.

@hovsepm
Copy link
Contributor

hovsepm commented Jun 18, 2018

@wawon-msft please take a look to the breaking changes (they are a few). Do you have plans to upgrade API version in the nearest future?

Ideally all these breaking changes should be parked till the next API version change.

@wawon-msft
Copy link
Contributor Author

wawon-msft commented Jun 18, 2018

@hovsepm These changes are breaking, but all of them are bug fixes to the spec. We have plans to upgrade the API version, but we would like to get the current spec to a good state before the fork.

@hovsepm hovsepm added the DoNotMerge <valid label in PR review process> use to hold merge after approval label Jun 18, 2018
@hovsepm
Copy link
Contributor

hovsepm commented Jun 18, 2018

@wawon-msft please add all bugfixes and changes that you mentioned over IM and ping me directly for the review.

@AutorestCI
Copy link

AutorestCI commented Jun 19, 2018

Automation for azure-sdk-for-java

Encountered a Subprocess error: (azure-sdk-for-java)

Command: ['/usr/local/bin/autorest', '/tmp/tmpwq4fkdu6/rest/specification/hdinsight/resource-manager/readme.md', '--azure-libraries-for-java-folder=/tmp/tmpwq4fkdu6/sdk', '--java', '--multiapi', '[email protected]/[email protected]', '--verbose']
Finished with return code 1
and output:

AutoRest code generation utility [version: 2.0.4280; node: v7.10.1]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest
   Loading AutoRest core      '/root/.autorest/@[email protected]/node_modules/@microsoft.azure/autorest-core/dist' (2.0.4280)
   Loading AutoRest extension '@microsoft.azure/autorest.java' (2.1.71->2.1.71)
   Loading AutoRest extension '@microsoft.azure/autorest.modeler' (2.3.38->2.3.38)
Processing batch task - {"tag":"package-2018-06-preview"} .
FATAL: System.NotImplementedException: Handling return type 'Map<String, String>' for OtherMethod is not implemented
   at AutoRest.Java.Azure.Fluent.Model.OtherMethod.get_InnerReturnType() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/OtherMethods/OtherMethod.cs:line 70
   at AutoRest.Java.Azure.Fluent.Model.OtherMethod.get_ReturnModel() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/OtherMethods/OtherMethod.cs:line 82
   at AutoRest.Java.Azure.Fluent.Model.OtherMethods.<>c.<get_OtherFluentModels>b__12_0(OtherMethod om) in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/OtherMethods/OtherMethods.cs:line 162
   at System.Linq.Enumerable.SelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
   at AutoRest.Java.Azure.Fluent.Model.OtherMethods.get_ImportsForInterface() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/OtherMethods/OtherMethods.cs:line 43
   at AutoRest.Java.Azure.Fluent.Model.FluentMethodGroup.get_ImportsForInterface() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/FluentMethodGroup/FluentMethodGroup.cs:line 316
   at AutoRest.Java.Azure.Fluent.Model.ProxyFluentMethodGroup.get_ImportsForInterface() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/FluentMethodGroup/ProxyFluentMethodGroup.cs:line 135
   at AutoRest.Java.Azure.Fluent.Model.FluentMethodGroupInterfaceModel.get_Imports() in /opt/vsts/work/1/s/src/azurefluent/Model/FluentCommon/FluentMethodGroup/FluentMethodGroupInterfaceModel.cs:line 41
   at AutoRest.Java.azurefluent.Templates.FluentCommon.FluentMethodGroupInterfaceTemplate.<ExecuteAsync>d__1.MoveNext() in /opt/vsts/work/1/s/src/obj/Razor/azurefluent/Templates/FluentCommon/FluentMethodGroupInterfaceTemplate.cshtml:line 21
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AutoRest.Core.CodeGenerator.<Write>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AutoRest.Java.Azure.Fluent.CodeGeneratorJvaf.<Generate>d__6.MoveNext() in /opt/vsts/work/1/s/src/azurefluent/CodeGeneratorJvaf.cs:line 63
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at AutoRest.Java.Program.<ProcessInternal>d__3.MoveNext() in /opt/vsts/work/1/s/src/Program.cs:line 114
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NewPlugin.<Process>d__15.MoveNext()
FATAL: java/generate - FAILED
FATAL: Error: Plugin java reported failure.
Process() cancelled due to exception : Plugin java reported failure.
Failure during batch task - {"tag":"package-2018-06-preview"} -- Error: Plugin java reported failure..
  Error: Plugin java reported failure.

@hovsepm hovsepm added the WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required label Jun 21, 2018
@hovsepm
Copy link
Contributor

hovsepm commented Jun 21, 2018

@ravbhatnagar could you review the new API version 2018-06-01 for HDInsights in this PR?

"tags": [
"Applications"
],
"description": "Lists all of the applications HDInsight cluster.",
Copy link
Contributor

Choose a reason for hiding this comment

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

Lists all of the applications HDInsight cluster. [](start = 32, length = 48)

Could you check this text string? It does not sound right.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed grammar.

"$ref": "#/parameters/ApiVersionParameter"
}
],
"responses": {
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

@wawon-msft wawon-msft Jun 22, 2018

Choose a reason for hiding this comment

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

This is helpful. I'll look into this.

"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/ApplicationGetProperties"
Copy link
Contributor

Choose a reason for hiding this comment

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

ApplicationGetProperties [](start = 51, length = 24)

The name for the object is confusing. I think ApplicationProperties (without Get) should be a better option.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed.

"description": "The name of the cluster."
},
"ConfigurationNameParameter": {
"name": "configurationName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
},
"ResourceGroupNameParameter": {
"name": "resourceGroupName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The name of the resource group."
},
"ClusterNameParameter": {
"name": "clusterName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The name of the cluster."
},
"ExtensionNameParameter": {
"name": "extensionName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

@wawon-msft wawon-msft Jun 22, 2018

Choose a reason for hiding this comment

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

Done.

"description": "The subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
},
"LocationParameter": {
"name": "location",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
},
"ResourceGroupNameParameter": {
"name": "resourceGroupName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The name of the resource group."
},
"ClusterNameParameter": {
"name": "clusterName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The name of the cluster."
},
"ScriptNameParameter": {
"name": "scriptName",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

"description": "The name of the script."
},
"ScriptExecutionIdParameter": {
"name": "scriptExecutionId",
Copy link
Contributor

Choose a reason for hiding this comment

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

please add "x-ms-parameter-location": "method" property.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@hovsepm
Copy link
Contributor

hovsepm commented Jun 21, 2018

Please fix all following discrepancy errors:

[ 'specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/capabilities.json' ]
error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
  id: 'OAV112',
  message: 'Response statusCode "200" for operation "Extension_Create" is provided in exampleResponseValue, however it is not present in the swagger spec.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Create a monitoring extension on Hadoop Linux cluster" in operation "Extension_Create".:
 
{ code: 'RESPONSE_VALIDATION_ERROR',
  id: 'OAV108',
  message: 'Found errors in validating the response with statusCode "200" for x-ms-example "Create a monitoring extension on Hadoop Linux cluster" in operation "Extension_Create".',
  innerErrors: 
   [ { code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
       id: 'OAV112',
       message: 'Response statusCode "200" for operation "Extension_Create" is provided in exampleResponseValue, however it is not present in the swagger spec.',
       innerErrors: undefined } ] }
error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
  id: 'OAV112',
  message: 'Response statusCode "200" for operation "Extension_Delete" is provided in exampleResponseValue, however it is not present in the swagger spec.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Delete an extension" in operation "Extension_Delete".:
 
{ code: 'RESPONSE_VALIDATION_ERROR',
  id: 'OAV108',
  message: 'Found errors in validating the response with statusCode "200" for x-ms-example "Delete an extension" in operation "Extension_Delete".',
  innerErrors: 
   [ { code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
       id: 'OAV112',
       message: 'Response statusCode "200" for operation "Extension_Delete" is provided in exampleResponseValue, however it is not present in the swagger spec.',
       innerErrors: undefined } ] }
{ AssertionError [ERR_ASSERTION]: swagger "specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/extensions.json" contains model validation errors.
    at Context.<anonymous> (/home/travis/build/Azure/azure-rest-api-specs/test/model.js:20:16)
    at <anonymous>
  generatedMessage: false,
  name: 'AssertionError [ERR_ASSERTION]',
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '==' }
error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
  id: 'OAV112',
  message: 'Response statusCode "200" for operation "Extension_Create" is provided in exampleResponseValue, however it is not present in the swagger spec.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Create a monitoring extension on Hadoop Linux cluster" in operation "Extension_Create".:
 
{ code: 'RESPONSE_VALIDATION_ERROR',
  id: 'OAV108',
  message: 'Found errors in validating the response with statusCode "200" for x-ms-example "Create a monitoring extension on Hadoop Linux cluster" in operation "Extension_Create".',
  innerErrors: 
   [ { code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
       id: 'OAV112',
       message: 'Response statusCode "200" for operation "Extension_Create" is provided in exampleResponseValue, however it is not present in the swagger spec.',
       innerErrors: undefined } ] }
error:  
{ code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
  id: 'OAV112',
  message: 'Response statusCode "200" for operation "Extension_Delete" is provided in exampleResponseValue, however it is not present in the swagger spec.',
  innerErrors: undefined }
error: Found errors in validating the response with statusCode "200" for x-ms-example "Delete an extension" in operation "Extension_Delete".:
 
{ code: 'RESPONSE_VALIDATION_ERROR',
  id: 'OAV108',
  message: 'Found errors in validating the response with statusCode "200" for x-ms-example "Delete an extension" in operation "Extension_Delete".',
  innerErrors: 
   [ { code: 'RESPONSE_STATUS_CODE_NOT_IN_SPEC',
       id: 'OAV112',
       message: 'Response statusCode "200" for operation "Extension_Delete" is provided in exampleResponseValue, however it is not present in the swagger spec.',
       innerErrors: undefined } ] }
{ AssertionError [ERR_ASSERTION]: swagger "specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2018-06-01-preview/extensions.json" contains model validation errors.
    at Context.<anonymous> (/home/travis/build/Azure/azure-rest-api-specs/test/model.js:20:16)
    at <anonymous>
  generatedMessage: false,
  name: 'AssertionError [ERR_ASSERTION]',
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '==' }

Copy link
Contributor

@hovsepm hovsepm left a comment

Choose a reason for hiding this comment

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

Please address review comments.

…ed properties, renamed operations, fixed examples, added x-ms-parameter-location to certain parameters, and made usages readonly.
@@ -1,403 +1,408 @@
{
Copy link
Contributor Author

@wawon-msft wawon-msft Jun 22, 2018

Choose a reason for hiding this comment

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

Not quite sure what happened with the diff. The changes here were:

  • Updated version
  • Changed Applications_List to Applications_ListByCluster
  • Changed description of Applications_ListByCluster
  • Changed ApplicationGetProperties to ApplicationProperties
  • Changed casing of Errors
  • Added x-ms-parameter-location to parameters

In another commit:

  • Fixed bug with missing expected response code

@hovsepm
Copy link
Contributor

hovsepm commented Jun 22, 2018

@wawon-msft please fix following linter errors (FYI model names should be PascalCase while property names should be camelCase)

Executing: npx [email protected] --validation --azure-validator --message-format=json specification/hdinsight/resource-manager/readme.md --tag=package-2015-03-preview
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'FilterMode', for definition: 'vmSizeCompatibilityFilter' must follow camelCase style. Example: 'filterMode'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:166:16 ($.definitions.vmSizeCompatibilityFilter.properties.FilterMode)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:166:16 ($.definitions.vmSizeCompatibilityFilter.properties.FilterMode)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:166:16 ($.definitions.vmSizeCompatibilityFilter.properties.FilterMode)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'Regions', for definition: 'vmSizeCompatibilityFilter' must follow camelCase style. Example: 'regions'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:170:16 ($.definitions.vmSizeCompatibilityFilter.properties.Regions)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:170:16 ($.definitions.vmSizeCompatibilityFilter.properties.Regions)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:170:16 ($.definitions.vmSizeCompatibilityFilter.properties.Regions)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'ClusterFlavors', for definition: 'vmSizeCompatibilityFilter' must follow camelCase style. Example: 'clusterFlavors'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:177:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterFlavors)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:177:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterFlavors)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:177:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterFlavors)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'NodeTypes', for definition: 'vmSizeCompatibilityFilter' must follow camelCase style. Example: 'nodeTypes'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:184:16 ($.definitions.vmSizeCompatibilityFilter.properties.NodeTypes)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:184:16 ($.definitions.vmSizeCompatibilityFilter.properties.NodeTypes)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:184:16 ($.definitions.vmSizeCompatibilityFilter.properties.NodeTypes)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'ClusterVersions', for definition: 'vmSizeCompatibilityFilter' must follow camelCase style. Example: 'clusterVersions'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:191:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterVersions)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:191:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterVersions)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:191:16 ($.definitions.vmSizeCompatibilityFilter.properties.ClusterVersions)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'region_name', for definition: 'regionalQuotaCapability' must follow camelCase style. Example: 'region_name'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:210:16 ($.definitions.regionalQuotaCapability.properties.region_name)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:210:16 ($.definitions.regionalQuotaCapability.properties.region_name)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:210:16 ($.definitions.regionalQuotaCapability.properties.region_name)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'cores_used', for definition: 'regionalQuotaCapability' must follow camelCase style. Example: 'cores_used'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:214:16 ($.definitions.regionalQuotaCapability.properties.cores_used)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:214:16 ($.definitions.regionalQuotaCapability.properties.cores_used)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:214:16 ($.definitions.regionalQuotaCapability.properties.cores_used)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'cores_available', for definition: 'regionalQuotaCapability' must follow camelCase style. Example: 'cores_available'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:219:16 ($.definitions.regionalQuotaCapability.properties.cores_available)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:219:16 ($.definitions.regionalQuotaCapability.properties.cores_available)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:219:16 ($.definitions.regionalQuotaCapability.properties.cores_available)"
}
{
  "type": "Error",
  "code": "DefinitionsPropertiesNamesCamelCase",
  "message": "Property named: 'vmSize_filters', for definition: 'capabilitiesResult' must follow camelCase style. Example: 'vmSize_filters'.",
  "id": "R3016",
  "validationCategory": "ARMViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:262:16 ($.definitions.capabilitiesResult.properties.vmSize_filters)"
  ],
  "jsonref": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:262:16 ($.definitions.capabilitiesResult.properties.vmSize_filters)",
  "json-path": "file:///home/travis/build/Azure/azure-rest-api-specs/specification/hdinsight/resource-manager/Microsoft.HDInsight/preview/2015-03-01-preview/locations.json:262:16 ($.definitions.capabilitiesResult.properties.vmSize_filters)"
}

"Extensions"
],
"description": "Creates an HDInsight cluster extension.",
"operationId": "Extensions_Create",
Copy link
Contributor

Choose a reason for hiding this comment

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

"operationId": "Extensions_Create", [](start = 16, length = 35)

if the Update of the extension is allowed and it overwrites the existing one - then this operationId should be Extensions_CreateOrUpdate

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We don't allow updates on the extension.

"tags": [
"Regions"
],
"operationId": "Location_ListUsages",
Copy link
Contributor

Choose a reason for hiding this comment

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

"operationId": "Location_ListUsages [](start = 16, length = 35)

Location should be plural word here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch.

@wawon-msft
Copy link
Contributor Author

@hovsepm: Those linter errors were partially why we introduced the new API version. The property names had underscores in them, which were not camelcase to the linter. I renamed the file to locations.json, which might have raised "new" errors, but these are resolved with the breaking change (by removing the capabilities API).

@hovsepm
Copy link
Contributor

hovsepm commented Jun 25, 2018

@wawon-msft looks good to me. Once ARM team will review and sign-off you PR I'll merge it.

@ravbhatnagar ravbhatnagar added ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review and removed WaitForARMFeedback <valid label in PR review process> add this label when ARM review is required labels Jun 27, 2018
@hovsepm hovsepm merged commit 1cfcde1 into Azure:master Jun 27, 2018
@wawon-msft
Copy link
Contributor Author

@hovsepm @ravbhatnagar Thanks so much, guys!

mccleanp pushed a commit that referenced this pull request Mar 23, 2022
Used inner Error model from Common Types in DeviceUpdate
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ARMSignedOff <valid label in PR review process>add this label when ARM approve updates after review potential-sdk-breaking-change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants