Azure / autorest.az

Azure CLI Code Generator
MIT License
22 stars 20 forks source link

[MarketPlaceOrdering] Single value enum modelAsString set as true in query will not generate code correctlly #808

Closed qiaozha closed 3 years ago

qiaozha commented 3 years ago

If a parameter is single value enum and modelAsString : true

    "OfferTypeParameter": {
      "name": "offerType",
      "in": "path",
      "required": true,
      "description": "Offer Type, currently only virtualmachine type is supported.",
      "x-ms-parameter-location": "method",
      "enum": [
        "virtualmachine"
      ],
      "type": "string",
      "x-ms-enum": {
        "name": "OfferType",
        "modelAsString": true
      }
    },

we will add hide and default value automatically because of avoiding m4 historic breaking change.

but since this parameter is in query, our build value logic only in body parameter, this will cause problem

def MarketplaceOrdering_marketplaceagreement_create(client,
                                                    publisher,
                                                    offer,
                                                    plan,
                                                    product=None,
                                                    license_text_link=None,
                                                    privacy_policy_link=None,
                                                    marketplace_terms_link=None,
                                                    retrieve_datetime=None,
                                                    signature=None,
                                                    accepted=None):
    parameters = {}
    parameters['publisher'] = publisher
    parameters['product'] = product
    parameters['plan'] = plan
    parameters['license_text_link'] = license_text_link
    parameters['privacy_policy_link'] = privacy_policy_link
    parameters['marketplace_terms_link'] = marketplace_terms_link
    parameters['retrieve_datetime'] = retrieve_datetime
    parameters['signature'] = signature
    parameters['accepted'] = accepted
    return client.create(publisher_id=publisher,
                         offer_id=offer,
                         plan_id=plan,
                         parameters=parameters)

But the actually operation signature is looking like this image

changlong-liu commented 3 years ago

merged