azure-rest-api-specs icon indicating copy to clipboard operation
azure-rest-api-specs copied to clipboard

Add GetLatestVersionName api in Gallery

Open jackyChenAzure opened this issue 2 years ago • 15 comments

ARM API Information (Control Plane)

MSFT employees can try out our new experience at OpenAPI Hub - one location for using our validation tools and finding your workflow. Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo. If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.

Changelog

This Pull Request is to add a new feature

  • Latest Version Name Users can call this endpoint to get the name of the latest version of gallery image in a region. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{galleryImageName}/versionNames/latest" and it will return the region and the name of latest gallery image version. The name is a string.

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
    • [x] 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. [Aug]
  3. When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month. [Aug]
  4. By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

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

ARM API Review Checklist

Applicability: :warning:

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:

  • [x] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review. Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

    • 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. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.
  • [x] 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 you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.

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

NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)

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

jackyChenAzure avatar Apr 19 '23 17:04 jackyChenAzure

Hi, @jackyChenAzure 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. [email protected]

    Swagger Validation Report

    ️️✔️BreakingChange succeeded [Detail] [Expand]
    There are no breaking changes.
    ️❌Breaking Change(Cross-Version): 1 Errors, 18 Warnings failed [Detail]
    compared swaggers (via Oad v0.10.4)] new version base version
    gallery.json 2022-08-03(6a94c39) 2022-03-03(main)
    gallery.json 2022-08-03(6a94c39) 2020-09-30(main)

    The following breaking changes are detected by comparison with the latest stable version:

    Rule Message
    1047 - XmsEnumChanged The new version has a different x-ms-enum 'name' than the previous one.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2615:9
    Old: GalleryRP/stable/2022-03-03/gallery.json#L2560:9


    The following breaking changes are detected by comparison with the latest preview version:

    Rule Message
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L1830:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L1736:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2414:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2106:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2472:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2251:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2775:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2439:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2128:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L1917:9
    :warning: 1017 - ReferenceRedirection The '$ref' property points to different models in the old and new versions.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2775:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2439:9
    :warning: 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1032 - DifferentAllOf The new version has a different 'allOf' property than the previous one.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2865:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2515:9
    :warning: 1033 - RemovedProperty The new version is missing a property found in the old version. Was 'uri' renamed or removed?
    New: GalleryRP/stable/2022-08-03/gallery.json#L2796:7
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2456:7
    :warning: 1033 - RemovedProperty The new version is missing a property found in the old version. Was 'uri' renamed or removed?
    New: GalleryRP/stable/2022-08-03/gallery.json#L2810:7
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2456:7
    :warning: 1048 - AddedXmsEnum The new version adds a x-ms-enum extension.
    New: GalleryRP/stable/2022-08-03/gallery.json#L1830:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L1736:9
    :warning: 1048 - AddedXmsEnum The new version adds a x-ms-enum extension.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2414:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2106:9
    :warning: 1048 - AddedXmsEnum The new version adds a x-ms-enum extension.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2472:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L2251:9
    :warning: 1048 - AddedXmsEnum The new version adds a x-ms-enum extension.
    New: GalleryRP/stable/2022-08-03/gallery.json#L2128:9
    Old: GalleryRP/preview/2020-09-30/gallery.json#L1917:9
    ️❌LintDiff: 2 Errors, 2 Warnings failed [Detail]
    compared tags (via openapi-validator v2.1.3) new version base version
    package-2022-08-03 package-2022-08-03(6a94c39) package-2022-08-03(feature/cplat-2022-08-03)

    [must fix]The following errors/warnings are introduced by current PR:

    Rule Message Related RPC [For API reviewers]
    PathForNestedResource The path for nested resource doest not meet the valid resource pattern.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L848
    RPC-Uri-V1-06,RPC-Put-V1-02
    GetCollectionOnlyHasValueAndNextLink Get endpoints for collections of resources must only have the value and nextLink properties in their model.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L885
    :warning: ParameterNotDefinedInGlobalParameters Parameter 'api-version' is referenced but not defined in the global parameters section of Service Definition
    Location: GalleryRP/stable/2022-08-03/gallery.json#L855
    :warning: ParameterNotUsingCommonTypes Not using the common-types defined parameter 'resourceGroupName'.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L855


    The following errors/warnings exist before current PR submission:

    Only 30 items are listed, please refer to log for more details.

    Rule Message
    ResourceNameRestriction The resource name parameter 'galleryName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L37
    PutResponseSchemaDescription Description of 200 response code of a PUT operation MUST include term 'update'.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L71
    LroLocationHeader A 202 response should include an Location response header.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L84
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L93
    PatchResponseCode LRO PATCH must have 200 and 202 return codes.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L113
    LroPatch202 The async patch operation should return 202.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L146
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L156
    ParametersInPointGet Query parameter $select should be removed. Point Get's MUST not have query parameters other than api version.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L173
    ParametersInPointGet Query parameter $expand should be removed. Point Get's MUST not have query parameters other than api version.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L173
    LroLocationHeader A 202 response should include an Location response header.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L265
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L274
    ResourceNameRestriction The resource name parameter 'galleryName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L286
    ResourceNameRestriction The resource name parameter 'galleryImageName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L286
    PutResponseSchemaDescription Description of 200 response code of a PUT operation MUST include term 'update'.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L327
    LroLocationHeader A 202 response should include an Location response header.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L340
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L349
    PatchResponseCode LRO PATCH must have 200 and 202 return codes.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L360
    LroPatch202 The async patch operation should return 202.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L400
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L410
    LroLocationHeader A 202 response should include an Location response header.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L507
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L516
    ResourceNameRestriction The resource name parameter 'galleryName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L528
    ResourceNameRestriction The resource name parameter 'galleryImageName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L528
    ResourceNameRestriction The resource name parameter 'galleryImageVersionName' should be defined with a 'pattern' restriction.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L528
    PutResponseSchemaDescription Description of 200 response code of a PUT operation MUST include term 'update'.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L576
    LroLocationHeader A 202 response should include an Location response header.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L589
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L598
    PatchResponseCode LRO PATCH must have 200 and 202 return codes.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L633
    LroPatch202 The async patch operation should return 202.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L680
    LroErrorContent Error response content of long running operations must follow the error schema provided in the common types v2 and above.
    Location: GalleryRP/stable/2022-08-03/gallery.json#L690
    ️⚠️Avocado: 1 Warnings warning [Detail]
    Rule Message
    :warning: MULTIPLE_API_VERSION The default tag contains multiple API versions swaggers.
    readme: specification/compute/resource-manager/readme.md
    tag: specification/compute/resource-manager/readme.md#tag-package-2022-08-03
    ️❌SwaggerAPIView: 0 Errors, 0 Warnings failed [Detail]
    ️️✔️CadlAPIView succeeded [Detail] [Expand]
    ️️✔️TypeSpecAPIView succeeded [Detail] [Expand]
    ️❌ModelValidation: 5 Errors, 0 Warnings failed [Detail]
    Rule Message
    LRO_RESPONSE_HEADER Long running operation should return location or azure-AsyncOperation in header but not provided
    Url: GalleryRP/stable/2022-08-03/gallery.json#L261:22
    ExampleUrl: 2022-08-03/examples/galleryExamples/Gallery_Delete.json
    LRO_RESPONSE_HEADER Long running operation should return location or azure-AsyncOperation in header but not provided
    Url: GalleryRP/stable/2022-08-03/gallery.json#L503:22
    ExampleUrl: 2022-08-03/examples/galleryExamples/GalleryImage_Delete.json
    LRO_RESPONSE_HEADER Long running operation should return location or azure-AsyncOperation in header but not provided
    Url: GalleryRP/stable/2022-08-03/gallery.json#L823:22
    ExampleUrl: 2022-08-03/examples/galleryExamples/GalleryImageVersion_Delete.json
    LRO_RESPONSE_HEADER Long running operation should return location or azure-AsyncOperation in header but not provided
    Url: GalleryRP/stable/2022-08-03/gallery.json#L1120:22
    ExampleUrl: 2022-08-03/examples/galleryExamples/GalleryApplication_Delete.json
    LRO_RESPONSE_HEADER Long running operation should return location or azure-AsyncOperation in header but not provided
    Url: GalleryRP/stable/2022-08-03/gallery.json#L1407:22
    ExampleUrl: 2022-08-03/examples/galleryExamples/GalleryApplicationVersion_Delete.json
    ️️✔️SemanticValidation succeeded [Detail] [Expand]
    Validation passes for SemanticValidation.
    ️️✔️PrettierCheck succeeded [Detail] [Expand]
    Validation passes for PrettierCheck.
    ️️✔️SpellCheck succeeded [Detail] [Expand]
    Validation passes for SpellCheck.
    ️️✔️CadlValidation succeeded [Detail] [Expand]
    Validation passes for CadlValidation.
    ️️✔️TypeSpec Validation succeeded [Detail] [Expand]
    Validation passes for TypeSpec Validation.
    ️️✔️PR Summary succeeded [Detail] [Expand]
    Validation passes for Summary.
    Posted by Swagger Pipeline | How to fix these errors?

    Swagger Generation Artifacts

    ️️✔️ApiDocPreview succeeded [Detail] [Expand]

    Only 0 items are rendered, please refer to log for more details.

    ️⚠️SDK Breaking Change Tracking warning [Detail]

    Only 0 items are rendered, please refer to log for more details.

    ️❌ azure-sdk-for-net-track2 failed [Detail]

    Only 0 items are rendered, please refer to log for more details.

    ️⚠️ azure-sdk-for-python-track2 warning [Detail]

    Only 0 items are rendered, please refer to log for more details.

    ️⚠️ azure-sdk-for-java warning [Detail]

    Only 0 items are rendered, please refer to log for more details.

    ️️✔️ azure-sdk-for-js succeeded [Detail] [Expand]

    Only 0 items are rendered, please refer to log for more details.

    ️️✔️ azure-sdk-for-go succeeded [Detail] [Expand]

    Only 0 items are rendered, please refer to log for more details.

    ️❌ azure-resource-manager-schemas failed [Detail]

    Only 0 items are rendered, please refer to log for more details.

    ️❌ azure-powershell failed [Detail]

    Only 0 items are rendered, please refer to log for more details.

    Posted by Swagger Pipeline | How to fix these errors?

    Generated ApiView

    Language Package Name ApiView Link
    Swagger Microsoft.Compute Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    Go sdk/resourcemanager/compute/armcompute Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    Java azure-resourcemanager-compute-generated Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.
    JavaScript @azure/arm-compute Create ApiView failed. Please ensure your github account in Azure/Microsoft is public and add a comment "/azp run" to re-trigger the CI.

    Thank you for your contribution jackyChenAzure! We will review the pull request and get back to you soon.

    ghost avatar Apr 19 '23 17:04 ghost

    Hi @jackyChenAzure, 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.

    Hi, @jackyChenAzure your PR are labelled with WaitForARMFeedback. A notification email will be sent out shortly afterwards to notify ARM review board([email protected]).

    Hi @jackyChenAzure, one or multiple breaking change(s) is detected in your PR. Please check out the breaking change(s), and provide business justification in the PR comment and @ PR assignee why you must have these change(s), and how external customer impact can be mitigated. Please ensure to follow breaking change policy to request breaking change review and approval before proceeding swagger PR review. 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. If you want to know the production traffic statistic, please see ARM Traffic statistic. If you think it is false positive breaking change, please provide the reasons in the PR comment, report to Swagger Tooling Team via https://aka.ms/swaggerfeedback. Note: To avoid breaking change, you can refer to Shift Left Solution for detecting breaking change in early phase at your service code repository.

    There are a bunch of breaking changes reported on this PR. Please get a breaking changes approval from Azure Breaking Changes Reviewers [email protected] and ARM can review the changes afterwards.

    And there're some lint error that you must fix.

    Once you have the approval and address the lint issues, please remove the "ARMChangesRequested" label from the PR to make the PR visible to the ARM reviewers.

    ms-henglu avatar Jun 20 '23 03:06 ms-henglu

    Please ensure to respond feedbacks from the ARM API reviewer. When you are ready to continue the ARM API review, please remove ARMChangesRequested

    There are a bunch of breaking changes reported on this PR. Please get a breaking changes approval from Azure Breaking Changes Reviewers [email protected] and ARM can review the changes afterwards.

    And there're some lint error that you must fix.

    Once you have the approval and address the lint issues, please remove the "ARMChangesRequested" label from the PR to make the PR visible to the ARM reviewers.

    There is only 1 Breaking change the tools picked up, and it is not due to this PR, it is due to an unexpected change to the older version after the feature branch was made. It will be dealt with before release.

    Sandido avatar Jun 20 '23 18:06 Sandido

    Marking as Approved-BreakingChange only to unblock merge to feature branch.

    mikekistler avatar Jun 22 '23 01:06 mikekistler

    @jackyChenAzure I have removed the Approved-BreakingChange label because it is obsolete. Your PR will have to be re-approved. Please follow the instructions at https://aka.ms/brch. If you provide the reason why your PR was approved in the first place, this will speed up the process and help the Breaking Change Review Board apply appropriate new label. Apologies for the inconvenience!

    konrad-jamrozik avatar Mar 12 '24 03:03 konrad-jamrozik

    Next Steps to Merge

    Next steps that must be taken to merge this PR:
    • ❌ Your PR has at least one breaking change (label: BreakingChangeReviewRequired). See the PR description for help.

    @jackyChenAzure please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

    @microsoft-github-policy-service agree [company="{your company}"]
    

    Options:

    • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
    @microsoft-github-policy-service agree
    
    • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
    @microsoft-github-policy-service agree company="Microsoft"
    
    Contributor License Agreement

    Contribution License Agreement

    This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”), and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your contributions to Microsoft open source projects. This Agreement is effective as of the latest signature date below.

    1. Definitions. “Code” means the computer software code, whether in human-readable or machine-executable form, that is delivered by You to Microsoft under this Agreement. “Project” means any of the projects owned or managed by Microsoft and offered under a license approved by the Open Source Initiative (www.opensource.org). “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any Project, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of discussing and improving that Project, but excluding communication that is conspicuously marked or otherwise designated in writing by You as “Not a Submission.” “Submission” means the Code and any other copyrightable material Submitted by You, including any associated comments and documentation.
    2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any Project. This Agreement covers any and all Submissions that You, now or in the future (except as described in Section 4 below), Submit to any Project.
    3. Originality of Work. You represent that each of Your Submissions is entirely Your original work. Should You wish to Submit materials that are not Your original work, You may Submit them separately to the Project if You (a) retain all copyright and license information that was in the materials as You received them, (b) in the description accompanying Your Submission, include the phrase “Submission containing materials of a third party:” followed by the names of the third party and any licenses or other restrictions of which You are aware, and (c) follow any other instructions in the Project’s written guidelines concerning Submissions.
    4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your Submission is made in the course of Your work for an employer or Your employer has intellectual property rights in Your Submission by contract or applicable law, You must secure permission from Your employer to make the Submission before signing this Agreement. In that case, the term “You” in this Agreement will refer to You and the employer collectively. If You change employers in the future and desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement and secure permission from the new employer before Submitting those Submissions.
    5. Licenses.
    • Copyright License. You grant Microsoft, and those who receive the Submission directly or indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third parties.
    • Patent License. You grant Microsoft, and those who receive the Submission directly or indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under Your patent claims that are necessarily infringed by the Submission or the combination of the Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and import or otherwise dispose of the Submission alone or with the Project.
    • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement. No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are granted by implication, exhaustion, estoppel or otherwise.
    1. Representations and Warranties. You represent that You are legally entitled to grant the above licenses. You represent that each of Your Submissions is entirely Your original work (except as You may have disclosed under Section 3). You represent that You have secured permission from Your employer to make the Submission in cases where Your Submission is made in the course of Your work for Your employer or Your employer has intellectual property rights in Your Submission by contract or applicable law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You have the necessary authority to bind the listed employer to the obligations contained in this Agreement. You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
    2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which You later become aware that would make Your representations in this Agreement inaccurate in any respect.
    3. Information about Submissions. You agree that contributions to Projects and information about contributions may be maintained indefinitely and disclosed publicly, including Your name and other information that You submit with Your Submission.
    4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County, Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all defenses of lack of personal jurisdiction and forum non-conveniens.
    5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and supersedes any and all prior agreements, understandings or communications, written or oral, between the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.