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

2021/11/18 Add AirQuality, Historical, and Tropical API #16802

Merged
merged 30 commits into from
Jan 19, 2022

Conversation

john35452
Copy link
Contributor

@john35452 john35452 commented Nov 18, 2021

This PR is the combination of following PRs.
AirQuality:
#16352
Historical:
#16486
Tropical:
#15532

MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow.

Changelog

Add a changelog entry for this PR by answering the following questions:

  1. What's the purpose of the update?
    • new service onboarding
    • new API version
    • update existing version for new feature
    • update existing version to fix swagger quality issue in s360
    • Other, please clarify
  2. When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
  3. When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
  4. If updating an existing version, please select the specific langauge SDKs and CLIs that must be refreshed after the swagger is published.
    • SDK of .NET (need service team to ensure code readiness)
    • SDK of Python
    • SDK of Java
    • SDK of Js
    • SDK of Go
    • PowerShell
    • CLI
    • Terraform
    • No refresh required for updates in this PR

Contribution checklist:

If any further question about AME onboarding or validation tools, please view the FAQ.

ARM API Review Checklist

Applicability: ⚠️

If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

  • Change to data plane APIs
  • Adding new properties
  • All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

  • Check this box if any of the following apply to the PR so that label “WaitForARMFeedback” will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

    • Adding a new service
    • Adding new API(s)
    • Adding a new API version
      -[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits.
  • Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

  • If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist

If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

  • Removing API(s) in a stable version
  • Removing properties in a stable version
  • Removing API version(s) in a stable version
  • Updating API in a stable or public preview version with Breaking Change Validation errors
  • Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.

Please follow the link to find more details on PR review process.

@openapi-workflow-bot
Copy link

Hi, @john35452 Thanks for your PR. I am workflow bot for review process. Here are some small tips.

  • Please ensure to do self-check against checklists in first PR comment.
  • PR assignee is the person auto-assigned and responsible for your current PR reviewing and merging.
  • For specs comparison cross API versions, Use API Specs Comparison Report Generator
  • If there is CI failure(s), to fix CI error(s) is mandatory for PR merging; or you need to provide justification in PR comment for explanation. How to fix?

  • Any feedback about review process or workflow bot, pls contact swagger and tools team. vsswagger@microsoft.com

    @openapi-workflow-bot
    Copy link

    [Call for Action] To better understand Azure service dev/test scenario, and support Azure service developer better on Swagger and REST API related tests in early phase, please help to fill in with this survey https://aka.ms/SurveyForEarlyPhase. It will take 5 to 10 minutes. If you already complete survey, please neglect this comment. Thanks.

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Nov 18, 2021

    Swagger Validation Report

    ️️✔️BreakingChange succeeded [Detail] [Expand]
    There are no breaking changes.
    ️️✔️LintDiff succeeded [Detail] [Expand]
    Validation passes for LintDiff.

    ️️✔️Avocado succeeded [Detail] [Expand]
    Validation passes for Avocado.
    ️️✔️~[Staging] ApiReadinessCheck succeeded [Detail] [Expand]
    ️️✔️ModelValidation succeeded [Detail] [Expand]
    Validation passes for ModelValidation.
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️⚠️Cross-Version Breaking Changes: 9 Warnings warning [Detail]
    The following breaking changes are detected by comparison with latest preview version:
    Rule Message
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L269:9
    Old: Weather/preview/1.0/weather.json#L98:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L317:9
    Old: Weather/preview/1.0/weather.json#L159:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L362:9
    Old: Weather/preview/1.0/weather.json#L217:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L410:9
    Old: Weather/preview/1.0/weather.json#L278:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L464:9
    Old: Weather/preview/1.0/weather.json#L345:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L512:9
    Old: Weather/preview/1.0/weather.json#L406:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L555:9
    Old: Weather/preview/1.0/weather.json#L449:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L600:9
    Old: Weather/preview/1.0/weather.json#L507:9
    ⚠️ 1027 - DefaultValueChanged The new version has a different default value than the previous one.
    New: Weather/stable/1.1/weather.json#L62:5
    Old: Weather/preview/1.0/weather.json#L53:5
    ️️✔️CredScan succeeded [Detail] [Expand]
    There is no credential detected.
    ️️✔️SDK Track2 Validation succeeded [Detail] [Expand]
    Validation passes for SDKTrack2Validation

    ️️✔️PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️️✔️SpellCheck succeeded [Detail] [Expand]
    Validation passes for SpellCheck.
    ️️✔️Lint(RPaaS) succeeded [Detail] [Expand]
    Validation passes for Lint(RPaaS).
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-pipeline-app
    Copy link

    openapi-pipeline-app bot commented Nov 18, 2021

    Swagger Generation Artifacts

    ️️✔️ApiDocPreview succeeded [Detail] [Expand]
     Please click here to preview with your @microsoft account. 
    ️️✔️SDK Breaking Change Tracking succeeded [Detail] [Expand]

    Breaking Changes Tracking

    ️⚠️ azure-sdk-for-python-track2 warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from 7e3958a. SDK Automation 14.0.0
      command	sh scripts/automation_init.sh ../azure-sdk-for-python_tmp/initInput.json ../azure-sdk-for-python_tmp/initOutput.json
      cmderr	[automation_init.sh] WARNING: Skipping azure-nspkg as it is not installed.
      command	sh scripts/automation_generate.sh ../azure-sdk-for-python_tmp/generateInput.json ../azure-sdk-for-python_tmp/generateOutput.json
      cmderr	[automation_generate.sh] npm notice
      cmderr	[automation_generate.sh] npm notice New minor version of npm available! 8.1.2 -> 8.3.1
      cmderr	[automation_generate.sh] npm notice Changelog: <https://github.com/npm/cli/releases/tag/v8.3.1>
      cmderr	[automation_generate.sh] npm notice Run `npm install -g npm@8.3.1` to update!
      cmderr	[automation_generate.sh] npm notice
      warn	No file changes detected after generation
      warn	No package detected after generation
    ️⚠️ azure-sdk-for-java warning [Detail]
    • ⚠️Warning [Logs]Release - Generate from 7e3958a. SDK Automation 14.0.0
      command	./eng/mgmt/automation/init.sh ../azure-sdk-for-java_tmp/initInput.json ../azure-sdk-for-java_tmp/initOutput.json
      command	./eng/mgmt/automation/generate.py ../azure-sdk-for-java_tmp/generateInput.json ../azure-sdk-for-java_tmp/generateOutput.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] readme path does not format as specification/*/resource-manager/readme.md
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/readme.md
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetActiveStorms.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetCurrentAirQuality.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetCurrentConditions.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyAirQuality.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyForecast.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyHistoricalActuals.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyHistoricalNormals.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyHistoricalRecords.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetDailyIndices.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetFullStormSearch.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetHourlyAirQuality.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetHourlyForecast.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetMinuteForecast.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetQuarterDayForecast.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetSevereWeatherAlerts.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetStormCurrentLocation.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetStormForecast.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetStormLocations.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetStormSearch.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [Skip] changed file specification/maps/data-plane/Weather/stable/1.1/examples/GetWeatherAlongRoute.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO [GENERATE] Autorest from JSON ../azure-rest-api-specs/specification/maps/data-plane/Weather/stable/1.1/weather.json
      cmderr	[generate.py] 2022-01-19 16:19:12 INFO autorest --version=3.6.6 --use=@autorest/java@4.0.47 --java.azure-libraries-for-java-folder=/home/vsts/work/1/s/azure-sdk-for-java --java.output-folder=/home/vsts/work/1/s/azure-sdk-for-java/sdk/maps/azure-maps-weather --java.namespace=com.azure.maps.weather --java --low-level-client --sdk-integration --generate-samples --input-file=../azure-rest-api-specs/specification/maps/data-plane/Weather/stable/1.1/weather.json --java.credential-types=tokencredential --java.credential-scopes=https://maps.azure.com/.default --artifact-id=azure-maps-weather
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [VERSION][Not Found] cannot find version for "com.azure:azure-maps-weather"
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [CI][Success] Write to ci.yml
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [POM][Process] dealing with pom.xml
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [POM][Success] Write to pom.xml
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [POM][Process] dealing with root pom
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [POM][Skip] pom already has module sdk/maps
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO [POM][Success] Write to root pom
      cmderr	[generate.py] 2022-01-19 16:19:43 INFO mvn --no-transfer-progress clean verify package -f /home/vsts/work/1/s/azure-sdk-for-java/pom.xml -Dmaven.javadoc.skip -Dgpg.skip -Drevapi.skip -pl com.azure:azure-maps-weather -am
      cmderr	[generate.py] 2022-01-19 16:21:00 ERROR [COMPILE] Maven build fail
    • ️✔️azure-maps-weather [View full logs]  [Release SDK Changes]
      cmderr	[Inst] 2022-01-19 16:21:02 DEBUG Got artifact_id: azure-maps-weather
      cmderr	[Inst] 2022-01-19 16:21:02 DEBUG Got artifact: pom.xml
      cmderr	[Inst] 2022-01-19 16:21:02 ERROR Unmatch any jar in artifacts
    ️️✔️ azure-sdk-for-net succeeded [Detail] [Expand]
    • ️✔️Succeeded [Logs]Release - Generate from 7e3958a. SDK Automation 14.0.0
      warn	Skip initScript due to not configured
      command	sudo apt-get install -y dotnet-sdk-6.0
      command	autorest --version=V2 --csharp --reflect-api-versions --license-header=MICROSOFT_MIT_NO_VERSION --use=@microsoft.azure/autorest.csharp@2.3.82 --csharp-sdks-folder=/home/vsts/work/1/s/azure-sdk-for-net/sdk ../azure-rest-api-specs/specification/maps/data-plane/Weather/readme.md
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
      cmderr	[Autorest] realpath(): Permission denied
    • ️✔️Azure.Maps.Weather [View full logs]  [Release SDK Changes]
    Posted by Swagger Pipeline | How to fix these errors?

    @openapi-workflow-bot
    Copy link

    NewApiVersionRequired reason:

    A service’s API is a contract with customers and is represented by using the api-version query parameter. Changes such as adding an optional property to a request/response or introducing a new operation is a change to the service’s contract and therefore requires a new api-version value. This is critically important for documentation, client libraries, and customer support.

    EXAMPLE: if a customer calls a service in the public cloud using api-version=2020-07-27, the new property or operation may exist but if they call the service in a government cloud, air-gapped cloud, or Azure Stack Hub cloud using the same api-version, the property or operation may not exist. Because there is no clear relationship between the service api-version and the new property/operation, customers can’t trust the documentation and Azure customer have difficulty helping customers diagnose issues. In addition, each client library version documents the service version it supports. When an optional property or new operation is added to a service and its Swagger, new client libraries must be produced to expose this functionality to customers. Without updating the api-version, it is unclear to customers which version of a client library supports these new features.

    Copy link
    Member

    @tjprescott tjprescott left a comment

    Choose a reason for hiding this comment

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

    Partial review.

    Comment on lines 104 to 106
    "RequiredWeatherBasinId": {
    "name": "basinId",
    Copy link
    Member

    Choose a reason for hiding this comment

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

    You should be able to omit required here and set it elsewhere so you don't have essentially two nearly identical definitions that create a maintenance burden.

    Copy link
    Contributor Author

    Choose a reason for hiding this comment

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

    I totally am agree with you, and I tried with this for several time.
    But I keep running in to below problems.
    An error happens when I add the line to set the parameter to required.
    Do you have any suggestion for this?
    image

    },
    "x-ms-parameter-location": "method"
    },
    "RequiredWeatherGovernmentId": {
    Copy link
    Member

    Choose a reason for hiding this comment

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

    Same comment here. You should be able to omit required here and set it elsewhere so you don't have essentially two nearly identical definitions that create a maintenance burden.

    Copy link

    @eriklindeman eriklindeman left a comment

    Choose a reason for hiding this comment

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

    A couple of minor wording change requests for Forecast and Locations.

    @openapi-workflow-bot
    Copy link

    Hi @john35452, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff.

    TaskHow to fixPrioritySupport (Microsoft alias)
    AvocadoFix-AvocadoHighruowan
    Semantic validationFix-SemanticValidation-ErrorHighraychen, jianyxi
    Model validationFix-ModelValidation-ErrorHighraychen,jianyxi
    LintDiffFix-LintDiffhighjianyxi, ruoxuan
    If you need further help, please feedback via swagger feedback."

    @john35452 john35452 requested a review from tjprescott November 25, 2021 07:45
    @john35452
    Copy link
    Contributor Author

    @tjprescott
    Please help me to review again, and don't merge it before 12/1.
    Really appreciate for your help!

    @tjprescott
    Copy link
    Member

    I created a Python APIView of the diff to better comment on the resulting API:
    https://apiview.dev/Assemblies/Review/5664808ac3ec49f3ab287f3c9e85f55b?diffRevisionId=d8863f36a80549228fb1df22a3932a76&doc=False&diffOnly=True

    Copy link
    Member

    @tjprescott tjprescott left a comment

    Choose a reason for hiding this comment

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

    Several more comments direclty in the accompanying APIView:
    https://apiview.dev/Assemblies/Conversation/5664808ac3ec49f3ab287f3c9e85f55b

    @tjprescott
    Copy link
    Member

    @john35452 I completed a full review of the changes via APIView. There are comments in this review but many more comments in the APIView. Feel free to reach out if you have questions/concerns.

    @john35452
    Copy link
    Contributor Author

    @tjprescott Really appreciate for all the comments. I have updated my code. Please help me to review them again.
    If they are good enough, please help me to merge since we are going to release this documentation next Monday.

    Copy link
    Member

    @tjprescott tjprescott left a comment

    Choose a reason for hiding this comment

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

    There are also still comments unaddressed in APIView.

    Copy link
    Member

    @tjprescott tjprescott left a comment

    Choose a reason for hiding this comment

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

    I've moved all remaining comments over from APIView so there are no open threads there. Once these issues are resolved we can merge.

    @ghost ghost added the no-recent-activity label Jan 2, 2022
    custom-words.txt Outdated
    servermetrics
    Obuscated
    Copy link
    Member

    Choose a reason for hiding this comment

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

    I don't believe "Obuscated" is a word. You probably want "Obfuscated".

    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!
    I also notice this is not used any more, so I remove this term from the custom-words list.

    Copy link
    Member

    @mikekistler mikekistler left a comment

    Choose a reason for hiding this comment

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

    I left a number of questions/suggestions that I hope you will give proper consideration.

    "type": "string",
    "in": "query",
    "required": true,
    "default": "2.0",
    Copy link
    Member

    Choose a reason for hiding this comment

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

    A required parameter should not specify a default value.

    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 a lot! I have removed the default value here.

    "type": "integer"
    },
    {
    "$ref": "../../../Common/preview/1.0/common.json#/parameters/Language"
    Copy link
    Member

    Choose a reason for hiding this comment

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

    If this is a "stable" (i.e. GA) API version, shouldn't you be using a stable version of this common type?

    Copy link
    Contributor Author

    @john35452 john35452 Jan 7, 2022

    Choose a reason for hiding this comment

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

    Yes. Ideally it should be like that.
    However, currently there is no stable version of common library and this common library is used in other stable api documentation as well.
    https://github.com/Azure/azure-rest-api-specs/tree/main/specification/maps/data-plane/Common

    Copy link
    Member

    Choose a reason for hiding this comment

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

    There are at least two ways to deal with this:

    1. Copy the schemas you need from the Common file into your API, or
    2. Create a "stable" version of the Common file.

    Leaving it as is is highly not recommended.

    Copy link
    Member

    Choose a reason for hiding this comment

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

    After consulting SDK members, they will move the related files to stable version once the SDKs are launched.

    "name": "duration",
    "description": "Specifies for how many days the daily forecast responses are returned. Available values are\n * `1` - Return forecast data for the next day. Returned by default.\n * `5` - Return forecast data for the next 5 days.\n * `10` - Return forecast data for the next 10 days.\n * `25` - Return forecast data for the next 25 days. Only available in S1 SKU.\n * `45` - Return forecast data for the next 45 days. Only available in S1 SKU.",
    "in": "query",
    "type": "integer"
    Copy link
    Member

    Choose a reason for hiding this comment

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

    Should this be an "enum"?

    Copy link
    Contributor Author

    @john35452 john35452 Jan 7, 2022

    Choose a reason for hiding this comment

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

    Thanks for the suggestion!
    This is not the new weather api which is out of scope of this time.

    "name": "details",
    "description": "Return full details for the severe weather alerts. Available values are\n * `true` - Returns full details. By default all details are returned.\n * `false` - Returns a truncated version of the alerts data, which excludes the area-specific full description of alert details (`alertDetails`).",
    "in": "query",
    "type": "string"
    Copy link
    Member

    Choose a reason for hiding this comment

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

    Here too -- this should be "type: boolean".

    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 for the suggestion!
    This is not the new weather api which is out of scope of this time.

    "name": "duration",
    "description": "Specifies for how many days the daily indices are returned. By default, the indices data for the current day will be returned. When requesting future indices data, the current day is included in the response as day 1. Available values are\n * `1` - Return daily index data for the current day. Default value.\n * `5` - Return 5 days of daily index data starting from the current day.\n * `10` - Return 10 days of daily index data starting from the current day.\n * `15` - Return 15 days of daily index data starting from the current day.",
    "in": "query",
    "type": "integer"
    Copy link
    Member

    Choose a reason for hiding this comment

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

    Should this be an "enum"?

    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 for the suggestion!
    This is not the new weather api which is out of scope of this time.

    }
    },
    "WeatherWaypoint": {
    "x-ms-client-name": "WaypointForecast",
    Copy link
    Member

    Choose a reason for hiding this comment

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

    Recommend just changing the schema name rather than using x-ms-client-name here.

    Copy link
    Contributor Author

    @john35452 john35452 Jan 7, 2022

    Choose a reason for hiding this comment

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

    Thanks for the suggestion!
    This is not the new weather api which is out of scope of this time.

    @@ -1,6 +1,6 @@
    {
    "parameters": {
    "api-version": "2.0",
    "api-version": "1.1",
    Copy link
    Member

    Choose a reason for hiding this comment

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

    I thought the discussion at the meeting was for date-based versions since that's what other services with an API version query parameter do?

    Copy link
    Member

    Choose a reason for hiding this comment

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

    Per the discussion and conclusion in the 2nd weather api review session, we would apply api version 1.1 and I've shared the related recording with Travis.

    @openapi-workflow-bot
    Copy link

    Hi @john35452, Your PR has some issues. Please fix the CI sequentially by following the order of Avocado, semantic validation, model validation, breaking change, lintDiff. If you have any questions, please post your questions in this channel https://aka.ms/swaggersupport.

    TaskHow to fixPriority
    AvocadoFix-AvocadoHigh
    Semantic validationFix-SemanticValidation-ErrorHigh
    Model validationFix-ModelValidation-ErrorHigh
    LintDiffFix-LintDiffhigh
    If you need further help, please feedback via swagger feedback.

    @john35452 john35452 requested a review from markweitzel January 12, 2022 03:09
    Copy link
    Member

    @mikekistler mikekistler left a comment

    Choose a reason for hiding this comment

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

    Looks good. Thanks for addressing my comments.

    @tjprescott
    Copy link
    Member

    tjprescott commented Jan 14, 2022

    @markwietzel have the comments from #16993 been addressed? If so, could someone from the API stewardship board update the label from APIStewardship-ChangesRequested to APIStewardship-Approved?

    @john35452
    Copy link
    Contributor Author

    john35452 commented Jan 18, 2022

    @john35452 A couple of questions on the overall design of the API...

    Looking at /weather/tropical/storms/active/{format} was there a consideration to have storms be the primary collection? So this would look like, /weather/storms/tropical/active/{format} ? This would allow you to have different kinds of stormsin the future, e.g./weather/storms/cyclones/...or/weather/storms/tornadoes/...`

    Following this pattern may also simplify the shape of the other APIs. For example... /weather/storms/tropical/forecasts/{}.

    Also... it seems like there is the concept of a stormId, e.g. goveId. Would you ever have anything like... /weather/storms/{govId}/forecast ? This might be more simple and straight forward for developers to consume.

    I've got a similar question on /weather/severe/alerts/{format} -- This feels like alerts should be the primary collection, e.g. /weather/alerts/severe/... (This would also be similar to how weather.gov models their alerts.

    Lastly, you put this file in stable/2.0 -- This is likely something you want to preview first, so I'd consider moving it to \preview\preview-1.1

    Hi @markweitzel ,

    Thanks for noting the conclusion of discussion here.
    Here comes the reply or status for the question you mentioned here.
    Different type of storm:
    As the discussion in the meeting, we decide to follow the AccuWeather to keep the term tropical storm.

    API path pattern:
    We also have unified those patterns like airquality/hourly/forecast -> airquality/hourly/forecasts.

    Severe alert:
    This api is not one of our new weather api.

    API-version:
    We are going to GA the new api, and we have change the new version from 2.0 to 1.1.
    So I moved new files under stable/1.1 directory.

    Really appreciate for your review comment!
    We have updated our PR.
    Please help us to review again.

    Copy link
    Member

    @markweitzel markweitzel left a comment

    Choose a reason for hiding this comment

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

    Thank you for updating this and incorporating the changes.

    @markweitzel markweitzel added APIStewardshipBoard-SignedOff The Azure API Stewardship team has reviewed and approved the changes. and removed APIStewardship-ChangesRequested <valid label in PR review process>add this label when assignee request changes after review labels Jan 19, 2022
    @tjprescott tjprescott merged commit 7e3958a into Azure:main Jan 19, 2022
    mstrisoline pushed a commit to mstrisoline/azure-rest-api-specs that referenced this pull request Feb 1, 2022
    * 2021/08/05 Add Tropical api
    
    * 2021/11/18 Add air quality api
    
    * 2021/11/18 Add Historical api
    
    * 2021/11/22 Update enum and add x-ms-client-name
    
    * 2021/11/23 Update examples
    
    * 2021/11/23 Update naming
    
    * 2021/11/23 Create parameter for Position
    
    * 2021/11/23 Update active storm
    
    * 2021/11/30 Change reponse to result
    
    * 2021/11/30 Add x-ms-client-name
    
    * 2021/11/30 Update timestamp, coordinate, and radius naming in SDK
    
    * 2021/11/30 Use WeatherUnit for Concentration
    
    * 2021/11/30 Update Daily Air quality dominantPollutant
    
    * 2021/11/30 Unify response format
    
    * 2021/11/30 Unify CurrentAirQuality and HourlyAirQualityForecast
    
    * 2021/12/01 Update window and weatherValue SDK name
    
    * 2021/12/02 Update coordinate and left, right SDK name
    
    * 2021/12/03 Add SDK name for results
    
    * 2021/12/03 Improve Object name
    
    * 2021/12/03 Update ActiveStorm
    
    * 2021/12/03 Remove needless object and update name
    
    * 2021/12/06 Add weather 2.0 directory
    
    * 2021/12/06 Recover Weather 1.0 Swagger file
    
    * 2021/12/07 Remove v2 from operationId
    
    * 2021/12/08 Update readme.md
    
    * Set default API version as 2.0
    
    * 2022/01/07 Remove default value for api-version
    
    * 2022/01/07 Remove needless custom-words
    
    * 2022/01/11 Update api-version and add nextLink
    
    * 2022/01/11 Update api-version in readme.md
    
    Co-authored-by: John Lai <tingchiehlai@microsoft.com>
    Co-authored-by: evaou <speeder528@gmail.com>
    LeiWang3 pushed a commit to LeiWang3/azure-rest-api-specs that referenced this pull request Mar 31, 2022
    * 2021/08/05 Add Tropical api
    
    * 2021/11/18 Add air quality api
    
    * 2021/11/18 Add Historical api
    
    * 2021/11/22 Update enum and add x-ms-client-name
    
    * 2021/11/23 Update examples
    
    * 2021/11/23 Update naming
    
    * 2021/11/23 Create parameter for Position
    
    * 2021/11/23 Update active storm
    
    * 2021/11/30 Change reponse to result
    
    * 2021/11/30 Add x-ms-client-name
    
    * 2021/11/30 Update timestamp, coordinate, and radius naming in SDK
    
    * 2021/11/30 Use WeatherUnit for Concentration
    
    * 2021/11/30 Update Daily Air quality dominantPollutant
    
    * 2021/11/30 Unify response format
    
    * 2021/11/30 Unify CurrentAirQuality and HourlyAirQualityForecast
    
    * 2021/12/01 Update window and weatherValue SDK name
    
    * 2021/12/02 Update coordinate and left, right SDK name
    
    * 2021/12/03 Add SDK name for results
    
    * 2021/12/03 Improve Object name
    
    * 2021/12/03 Update ActiveStorm
    
    * 2021/12/03 Remove needless object and update name
    
    * 2021/12/06 Add weather 2.0 directory
    
    * 2021/12/06 Recover Weather 1.0 Swagger file
    
    * 2021/12/07 Remove v2 from operationId
    
    * 2021/12/08 Update readme.md
    
    * Set default API version as 2.0
    
    * 2022/01/07 Remove default value for api-version
    
    * 2022/01/07 Remove needless custom-words
    
    * 2022/01/11 Update api-version and add nextLink
    
    * 2022/01/11 Update api-version in readme.md
    
    Co-authored-by: John Lai <tingchiehlai@microsoft.com>
    Co-authored-by: evaou <speeder528@gmail.com>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    APIStewardshipBoard-SignedOff The Azure API Stewardship team has reviewed and approved the changes. Approved-SdkBreakingChange-Python CI-FixRequiredOnFailure
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    [Azure Maps] REST API reveiw for Azure Maps Weather - AirQuality, Historical, and Tropical
    9 participants