Back to Azure Sdk For

Generated code configuration

sdk/apimanagement/Azure.ResourceManager.ApiManagement/src/autorest.md

2019-05-16T16-5235.4 KB
Original Source

Generated code configuration

Run dotnet build /t:GenerateCode to generate code.

yaml

azure-arm: true
csharp: true
library-name: ApiManagement
namespace: Azure.ResourceManager.ApiManagement
require: https://github.com/Azure/azure-rest-api-specs/blob/86d7e7d7c7ea9428a3a8e983d746a270f0581bc7/specification/apimanagement/resource-manager/readme.md
tag: package-2024-05
output-folder: $(this-folder)/Generated
clear-output-folder: true
sample-gen:
  output-folder: $(this-folder)/../tests/Generated
  clear-output-folder: true
  skipped-operations:
    - ApiProduct_ListByApis
    - UserGroup_List
skip-csproj: true
modelerfour:
  flatten-payloads: false
use-model-reader-writer: true
skip-serialization-format-xml: true
enable-bicep-serialization: true

#mgmt-debug:
#  show-serialized-names: true

list-exception:
- /subscriptions/{subscriptionId}/providers/Microsoft.ApiManagement/locations/{location}/deletedservices/{serviceName}

request-path-is-non-resource:
# The Id of content type does not meet the criteria of ResourceIdentifier (E.g. /contentTypes/page)
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}
# The Id of content item does not meet the criteria of ResourceIdentifier (E.g. /contentTypes/page/contentItems/4e3cf6a5-574a-ba08-1f23-2e7a38faa6d8)
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}

request-path-to-resource-name:
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/diagnostics/{diagnosticId}: ApiDiagnostic
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/issues/{issueId}: ApiIssue
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/policies/{policyId}: ApiPolicy
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/tags/{tagId}: ApiTag
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/policies/{policyId}: ApiOperationPolicy
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}/tags/{tagId}: ApiOperationTag
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/diagnostics/{diagnosticId}: ApiManagementDiagnostic
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/issues/{issueId}: ApiManagementIssue
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/policies/{policyId}: ApiManagementPolicy
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/subscriptions/{sid}: ApiManagementSubscription
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/tags/{tagId}: ApiManagementTag
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}: ApiManagementUser
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/policies/{policyId}: ApiManagementProductPolicy
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/tags/{tagId}: ApiManagementProductTag
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/users/{userId}/subscriptions/{sid}: ApiManagementUserSubscription
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}: ApiManagementProduct
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/policyFragments/{id}: PolicyFragmentContract
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apiVersionSets/{versionSetId}: ApiVersionSet
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/schemas/{schemaId}: ApiSchema
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}: Api
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/releases/{releaseId}: ApiRelease
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/apis/{apiId}/operations/{operationId}: ApiOperation
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/notifications/{notificationName}: ApiManagementNotification
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/namedValues/{namedValueId}: ApiManagementNamedValue
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}: ApiManagementGroup
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/schemas/{schemaId}: ApiManagementGlobalSchema
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/backends/{backendId}: ApiManagementBackend
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/certificates/{certificateId}: ApiManagementCertificate
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/loggers/{loggerId}: ApiManagementLogger
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/gateways/{gatewayName}: ApiGateway
  /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/gateways/{gatewayName}/configConnections/{configConnectionName}: ApiGatewayConfigConnection

format-by-name-rules:
  'tenantId': 'uuid'
  'ETag': 'etag'
  'location': 'azure-location'
  'locations': 'azure-location'
  'locationName': 'azure-location'
  '*Uri': 'Uri'
  '*Uris': 'Uri'
  'ApiVersionSetId': 'arm-id'
  'SourceApiId': 'arm-id'
  'PrivateIPAddresses': 'ip-address'
  'PublicIPAddresses': 'ip-address'

acronym-mapping:
  CPU: Cpu
  CPUs: Cpus
  Os: OS
  Ip: IP
  Ips: IPs|ips
  ID: Id
  IDs: Ids
  VM: Vm
  VMs: Vms
  VMScaleSet: VmScaleSet
  DNS: Dns
  VPN: Vpn
  NAT: Nat
  WAN: Wan
  Ipv4: IPv4|ipv4
  Ipv6: IPv6|ipv6
  Ipsec: IPsec|ipsec
  SSO: Sso
  URI: Uri
  Url: Uri
  Etag: ETag|etag

override-operation-name:
  NetworkStatus_ListByLocation: GetNetworkStatusByLocation
  TenantAccessGit_RegeneratePrimaryKey: RegeneratePrimaryKeyForGit
  TenantAccessGit_RegenerateSecondaryKey: RegenerateSecondaryKeyForGit
  ApiProduct_ListByApis: GetApiProducts
  ApiManagementServiceSkus_ListAvailableServiceSkus: GetAvailableApiManagementServiceSkus
  NetworkStatus_ListByService: GetNetworkStatuses
  OutboundNetworkDependenciesEndpoints_ListByService: GetOutboundNetworkDependenciesEndpoints
  PolicyDescription_ListByService: GetPolicyDescriptions
  PortalSettings_ListByService: GetPortalSettings
  QuotaByCounterKeys_ListByService: GetQuotaByCounterKeys
  Region_ListByService: GetRegions
  TenantConfiguration_GetSyncState: GetTenantConfigurationSyncState
  TagResource_ListByService: GetTagResources
  GatewayApi_GetEntityTag: GetGatewayApiEntityTag
  GroupUser_CheckEntityExists: CheckGroupUserEntityExists
  NotificationRecipientEmail_CheckEntityExists: CheckNotificationRecipientEmailEntityExists
  NotificationRecipientUser_CheckEntityExists: CheckNotificationRecipientUserEntityExists
  ProductApi_CheckEntityExists: CheckProductApiEntityExists
  ProductGroup_CheckEntityExists: CheckProductGroupEntityExists
  ApiManagementService_CheckNameAvailability: CheckApiManagementServiceNameAvailability
  ApiManagementService_GetDomainOwnershipIdentifier: GetApiManagementServiceDomainOwnershipIdentifier
  ContentType_ListByService: GetContentTypes
  ContentItem_ListByService: GetContentItems
  ContentItem_GetEntityTag: GetContentItemEntityTag
  ProductSubscriptions_List: GetAllProductSubscriptionData # temporary - to be removed once the polymorphic resource change is merged.

prepend-rp-prefix:
- ResourceSkuCapacity
- ResourceSkuCapacityScaleType
- AuthorizationType
- AuthorizationError
- NatGatewayState

rename-mapping:
  GatewayHostnameConfigurationContract.properties.negotiateClientCertificate: IsClientCertificateRequired
  SubscriptionsDelegationSettingsProperties.enabled: IsSubscriptionDelegationEnabled
  RegistrationDelegationSettingsProperties.enabled: IsUserRegistrationDelegationEnabled
  BackendTlsProperties.validateCertificateChain: ShouldValidateCertificateChain
  BackendTlsProperties.validateCertificateName: ShouldValidateCertificateName
  HostnameConfiguration.defaultSslBinding: IsDefaultSslBindingEnabled
  HostnameConfiguration.negotiateClientCertificate: IsClientCertificateNegotiationEnabled
  PortalSettingsContract.properties.enabled: IsRedirectEnabled
  TermsOfServiceProperties.enabled: IsDisplayEnabled
  TermsOfServiceProperties.consentRequired: IsConsentRequired
  AccessInformationCreateParameters.properties.enabled: IsDirectAccessEnabled
  TenantConfigurationSyncStateContract.properties.isExport: IsExported
  AccessInformationSecretsContract.enabled: IsDirectAccessEnabled
  AccessInformationUpdateParameters.properties.enabled: IsDirectAccessEnabled
  PortalSigninSettings.properties.enabled: IsRedirectEnabled
  PortalSignupSettings.properties.enabled: IsSignUpDeveloperPortalEnabled
  AccessInformationContract.properties.enabled: IsDirectAccessEnabled
  BackendContract.properties.resourceId: ResourceUri|uri
  BackendUpdateParameters.properties.resourceId: ResourceUri|uri
  RequestReportRecordContract.subscriptionId: SubscriptionResourceId|arm-id
  RequestReportRecordContract.method: -|request-method
  RequestReportRecordContract.ipAddress: -|ip-address
  ReportRecordContract.subscriptionId: SubscriptionResourceId|arm-id
  SubscriptionsDelegationSettingsProperties: SubscriptionDelegationSettingProperties
  RegistrationDelegationSettingsProperties: RegistrationDelegationSettingProperties
  OpenidConnectProviderContract: ApiManagementOpenIdConnectProvider
  OpenidConnectProviderUpdateContract: OpenIdConnectProviderUpdateContract
  VirtualNetworkConfiguration.vnetid: VnetId
  AccessInformationContract: TenantAccessInfo
  AccessInformationContract.properties.id: AccessInfoType
  AccessIdName: AccessName
  AccessIdName.access: TenantAccess
  AccessIdName.gitAccess: TenantGitAccess
  ApiContract: Api
  NetworkStatusContractByLocation: NetworkStatusContractWithLocation
  ApiManagementServiceResource: ApiManagementService
  ApiReleaseContract: ApiRelease
  BackendUpdateParameters: ApiManagementBackendPatch
  CertificateCreateOrUpdateParameters: ApiManagementCertificateCreateOrUpdateContent
  LoggerUpdateContract: ApiManagementLoggerPatch
  OperationContract: ApiOperation
  SchemaContract: ApiSchema
  TagDescriptionContract: ApiTagDescription
  ApiManagementServiceBackupRestoreParameters: ApiManagementServiceBackupRestoreContent
  OperationResultContract: GitOperationResultContractData
  ConfigurationIdName: ConfigurationName
  SaveConfigurationParameter: ConfigurationSaveContent
  SaveConfigurationParameter.properties.force: ForceUpdate
  DeployConfigurationParameters: ConfigurationDeployContent
  DeployConfigurationParameters.properties.force: ForceDelete
  ApiVersionSetContract: ApiVersionSet
  AuthorizationServerContract:  ApiManagementAuthorizationServer
  BackendContract: ApiManagementBackend
  CacheContract: ApiManagementCache
  CertificateContract: ApiManagementCertificate
  CertificateContract.properties.expirationDate: ExpireOn
  CertificateContract.properties.keyVault: KeyVaultDetails
  CertificateCreateOrUpdateParameters.properties.keyVault: KeyVaultDetails
  ContentTypeContract: ApiManagementContentType
  ContentTypeContract.properties.id: ContentTypeIdentifier
  ContentTypeContract.properties.name: ContentTypeName
  EmailTemplateContract: ApiManagementEmailTemplate
  GatewayContract: ApiManagementGateway
  GlobalSchemaContract: ApiManagementGlobalSchema
  GroupContract: ApiManagementGroup
  GroupContract.properties.type: GroupType
  GroupContract.properties.builtIn: IsBuiltIn
  IdentityProviderContract: ApiManagementIdentityProvider
  IdentityProviderContract.properties.type: IdentityProviderType
  LoggerContract: ApiManagementLogger
  NamedValueContract: ApiManagementNamedValue
  NamedValueContract.properties.keyVault: KeyVaultDetails
  NotificationContract: ApiManagementNotification
  PolicyDescriptionContract: PolicyDescriptionContractData
  PortalDelegationSettings: ApiManagementPortalDelegationSettings
  PortalRevisionContract: ApiManagementPortalRevision
  PortalSettingsContract: PortalSettingsContractData
  PortalSigninSettings: ApiManagementPortalSignInSettings
  PortalSignupSettings: ApiManagementPortalSignUpSettings
  ProductContract: ApiManagementProduct
  TenantSettingsContract: ApiManagementTenantSettings
  ConnectivityCheckResponse: ConnectivityCheckResult
  QuotaCounterValueUpdateContract: QuotaCounterValueUpdateContent
  ContentItemContract: ApiManagementContentItem
  DeletedServiceContract: ApiManagementDeletedService
  DeletedServiceContract.properties.deletionDate: DeletedOn
  EmailTemplateUpdateParameters: ApiManagementEmailTemplateCreateOrUpdateContent
  GatewayCertificateAuthorityContract: ApiManagementGatewayCertificateAuthority
  GatewayHostnameConfigurationContract: ApiManagementGatewayHostnameConfiguration
  IssueAttachmentContract: ApiIssueAttachment
  IssueCommentContract: ApiIssueComment
  ProductState: ApiManagementProductState
  UserState: ApiManagementUserState
  TagCreateUpdateParameters: ApiManagementTagCreateOrUpdateContent
  SubscriptionContract.properties.expirationDate: ExpireOn
  SubscriptionContract.properties.notificationDate: NotifiesOn
  UserContract.properties.registrationDate: RegistriesOn
  AccessInformationSecretsContract: TenantAccessInfoSecretsDetails
  AccessInformationSecretsContract.id: AccessInfoType
  ApiManagementServiceCheckNameAvailabilityParameters: ApiManagementServiceNameAvailabilityContent
  ApiManagementServiceNameAvailabilityResult.nameAvailable: IsNameAvailable
  NameAvailabilityReason: ApiManagementServiceNameUnavailableReason
  ApiType.websocket: WebSocket
  ApiType.graphql: GraphQL
  ProvisioningState: AssociationEntityProvisioningState
  AuthenticationSettingsContract.openid: OpenId
  CertificateInformation.expiry: ExpireOn
  Confirmation: ConfirmationEmailType
  Confirmation.signup: SignUp
  ConnectivityCheckProtocol.TCP: Tcp
  ConnectivityStatusContract.lastUpdated: LastUpdatedOn
  ConnectivityStatusContract.lastStatusChange: lastStatusChangedOn
  ContentFormat.openapi: OpenApi
  ContentFormat.openapi+json: OpenApiJson
  ContentFormat.openapi-link: OpenApiLink
  ContentFormat.openapi+json-link: OpenApiJsonLink
  ContentFormat.graphql-link: GraphQLLink
  ConnectivityCheckRequestProtocolConfigurationHttpConfiguration: ConnectivityCheckRequestHttpConfiguration
  Method: HttpMethodConfiguration
  Method.GET: Get
  HttpHeader: HttpHeaderConfiguration
  NotificationName.BCC: Bcc
  OpenIdAuthenticationSettingsContract.openidProviderId: OpenIdProviderId
  OperationResultContract.properties.id: OperationResultIdentifier
  OperationResultContract.properties.started: StartedOn
  OperationResultContract.properties.updated: UpdatedOn
  PolicyContentFormat.rawxml: RawXml
  PolicyContentFormat.rawxml-link: RawXmlLink
  PolicyIdName: PolicyName
  ProductEntityBaseParameters: ProductEntityBaseProperties
  SubscriptionUpdateParameters.properties.expirationDate: ExpireOn
  SettingsTypeName: SettingsType
  TagResourceContract: TagResourceContractDetails
  TagResourceContractProperties: AssociatedTagProperties
  ApiTagResourceContractProperties: AssociatedApiProperties
  OperationTagResourceContractProperties: AssociatedOperationProperties
  ProductTagResourceContractProperties: AssociatedProductProperties
  UserTokenParameters.properties.expiry: ExpireOn
  AuthorizationMethod.GET: Get
  AuthorizationMethod.PUT: Put
  GroupContractProperties.builtIn: IsBuiltIn
  GroupType: ApiManagementGroupType
  AccessType: StorageAccountAccessType
  GatewayKeyRegenerationRequestContract: GatewayKeyRegenerateContent
  KeyType: TokenGenerationUsedKeyType
  Verbosity: TraceVerbosityLevel
  State: IssueState
  Severity: IssueSeverity
  Origin: IssueOrigin
  Protocol: ApiOperationInvokableProtocol
  PolicyExportFormat.rawxml: RawXml
  ResourceSkuResult: AvailableApiManagementServiceSkuResult
  SkuType: ApiManagementServiceSkuType
  PrivateLinkResource: ApiManagementPrivateLinkResource
  HostnameConfiguration.keyVaultId: keyVaultSecretUri
  ParameterContract.required: IsRequired
  SchemaType: ApiSchemaType
  ApiRevisionContract.privateUrl: privateUrlString
  ApiContract.properties.termsOfServiceUrl: termsOfServiceLink
  ApiContract.properties.serviceUrl: serviceLink
  ApiUpdateContract: ApiPatch
  ApiUpdateContract.properties.termsOfServiceUrl: termsOfServiceLink
  ApiUpdateContract.properties.serviceUrl: serviceLink
  ApiCreateOrUpdateParameter: ApiCreateOrUpdateContent
  ApiCreateOrUpdateParameter.properties.termsOfServiceUrl: termsOfServiceLink
  ApiCreateOrUpdateParameter.properties.serviceUrl: serviceLink
  ApiEntityBaseContract.termsOfServiceUrl: termsOfServiceLink
  AuthorizationConfirmConsentCodeRequestContract: AuthorizationConfirmConsentCodeContent
  AuthorizationLoginRequestContract: AuthorizationLoginContent
  AuthorizationLoginResponseContract: AuthorizationLoginResult
  SubscriptionCreateParameters: ApiManagementSubscriptionCreateOrUpdateContent
  SubscriptionUpdateParameters: ApiManagementSubscriptionPatch
  ProductUpdateParameters: ApiManagementProductPatch
  NamedValueUpdateParameters: ApiManagementNamedValuePatch
  GroupCreateParameters: ApiManagementGroupCreateOrUpdateContent
  GroupCreateParameters.properties.type: ApiManagementGroupType
  GroupUpdateParameters: ApiManagementGroupPatch
  GroupUpdateParameters.properties.type: ApiManagementGroupType
  ApiVersionSetUpdateParameters: ApiVersionSetPatch
  OperationUpdateContract: ApiOperationPatch
  NamedValueCreateContract: ApiManagementNamedValueCreateOrUpdateContent
  ApiManagementGatewayConfigConnectionResource: ApiGatewayConfigConnection
  ApiManagementGatewayResource: ApiGateway
  ApiManagementWorkspaceLinksResource: ApiManagementWorkspaceLinks
  SoapApiType.grpc: Grpc
  AllPoliciesContract.properties.referencePolicyId: -|arm-id
  DiagnosticUpdateContract.properties.logClientIp: IsLogClientIPEnabled
  DiagnosticContract.properties.logClientIp: IsLogClientIPEnabled

keep-plural-resource-data:
  - ApiManagementWorkspaceLinks

directive:
  - remove-operation: 'ApiManagementOperations_List'
  - remove-operation: 'OperationStatus_Get'
  - from: definitions.json
    where: $.definitions
    transform: >
      $.AuthorizationServerContractBaseProperties.properties.bearerTokenSendingMethods.items['x-ms-enum']['name'] = 'BearerTokenSendingMethod';
      $.AuthorizationServerContractBaseProperties.properties.clientAuthenticationMethod['x-ms-client-name'] = 'ClientAuthenticationMethods';
      $.BearerTokenSendingMethodsContract['x-ms-enum']['name'] = 'BearerTokenSendingMethod';
      $.ApiEntityBaseContract.properties.subscriptionRequired['x-ms-client-name'] = 'IsSubscriptionRequired';
      $.CacheContractProperties.properties.resourceId['x-ms-client-name'] = 'resourceUri';
      $.CacheUpdateProperties.properties.resourceId['x-ms-client-name'] = 'resourceUri';
      $.IdentityProviderBaseParameters.properties.type['x-ms-client-name'] = 'IdentityProviderType';
      $.IdentityProviderBaseParameters.properties.signinTenant['x-ms-client-name'] = 'SignInTenant';
      $.IdentityProviderBaseParameters.properties.signupPolicyName['x-ms-client-name'] = 'SignUpPolicyName';
      $.IdentityProviderBaseParameters.properties.signinPolicyName['x-ms-client-name'] = 'SignInPolicyName';
      $.IssueContractBaseProperties.properties.apiId['x-ms-format'] = 'arm-id';
      $.IssueContractProperties.properties.userId['x-ms-format'] = 'arm-id';
      $.LoggerContractProperties.properties.resourceId['x-ms-format'] = 'arm-id';
      $.NamedValueEntityBaseParameters.properties.secret['x-ms-client-name'] = 'IsSecret';
      $.ProductEntityBaseParameters.properties.subscriptionRequired['x-ms-client-name'] = 'IsSubscriptionRequired';
      $.ProductEntityBaseParameters.properties.approvalRequired['x-ms-client-name'] = 'IsApprovalRequired';
      $.ApiVersionSetContractDetails.properties.versioningScheme['x-ms-enum'] = {
          "name": "versioningScheme",
          "modelAsString": true
        }
      $.ConnectivityHop.properties.address['x-ms-format'] = 'ip-address';
      $.ConnectivityHop.properties.resourceId['x-ms-format'] = 'arm-id';
      $.RemotePrivateEndpointConnectionWrapper.properties.id['x-ms-format'] = 'arm-id';
      $.RemotePrivateEndpointConnectionWrapper.properties.type['x-ms-format'] = 'resource-type';
      $.ApiReleaseContractProperties.properties.apiId['x-ms-format'] = 'arm-id';
      $.GatewayKeyRegenerationRequestContract.properties.keyType['x-ms-enum']['name'] = 'GatewayRegenerateKeyType';
      for (var key in $) {
          if (key.endsWith('Collection')) {
              for (var property in $[key].properties) {
                  if (property === 'value' && $[key].properties[property].type === 'array') {
                      $[key]['x-ms-client-name'] = key.replace('Collection', 'ListResult');
                  }
              }
          }
        }
      $.IssueCommentContractProperties.properties.userId['x-ms-format'] = 'arm-id';
      $.AuthorizationServerContractBaseProperties.properties.supportState['x-ms-client-name'] = 'DoesSupportState';
      $.DeletedServiceContractProperties.properties.serviceId['x-ms-format'] = 'arm-id';
      $.PortalSettingsContractProperties.properties.subscriptions['x-ms-client-name'] = 'IsSubscriptions';
      $.PortalSettingsContractProperties.properties.userRegistration['x-ms-client-name'] = 'IsUserRegistration';
      $.PrivateEndpointConnectionRequest.properties.id['x-ms-format'] = 'arm-id';
  - from: apimskus.json
    where: $.definitions
    transform: >
      $.ApiManagementSku.properties.locations.items['x-ms-format'] = 'azure-location';
  - from: apimdeployment.json
    where: $.definitions
    transform: >
      delete $.Operation;
      delete $.OperationListResult;
      $.VirtualNetworkConfiguration.properties.vnetid['format'] = 'uuid';
      $.VirtualNetworkConfiguration.properties.subnetResourceId['x-ms-format'] = 'arm-id';
      $.ResourceSkuResult.properties.resourceType['x-ms-format'] = 'resource-type';
      $.ApiManagementServiceBaseProperties.properties.publicIpAddressId['x-ms-format'] = 'arm-id';
      $.AdditionalLocation.properties.publicIpAddressId['x-ms-format'] = 'arm-id';
  - from: apimanagement.json
    where: $.parameters
    transform: >
      $.OpenIdConnectIdParameter['x-ms-client-name'] = 'OpenId';
      $.IfMatchOptionalParameter['x-ms-format'] = 'etag';
      $.IfMatchRequiredParameter['x-ms-format'] = 'etag';
  - from: apimgroups.json
    where: $.paths
    transform: >
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users'].get.responses['200'].schema = {
          "x-ms-client-name": "ApiManagementGroupUserListResult",
          "type": "object",
          "properties": {
              "value": {
                  "type": "array",
                  "items": {
                      "x-ms-client-name": "ApiManagementGroupUserData",
                      "type": "object",
                      "allOf": [
                          {
                              "$ref": "./definitions.json#/definitions/UserContract"
                          }
                      ]
                  },
                  "description": "Page values."
              },
              "count": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Total record count number across all pages."
              },
              "nextLink": {
                  "type": "string",
                  "description": "Next page link if any."
              }
          },
          "description": "Paged Group Users list representation."
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users/{userId}'].put.responses['200'].schema = {
          "x-ms-client-name": "ApiManagementGroupUserData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/UserContract"
              }
          ]
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/groups/{groupId}/users/{userId}'].put.responses['201'].schema = {
          "x-ms-client-name": "ApiManagementGroupUserData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/UserContract"
              }
          ]
        }
    reason: Modify the original swagger since the id in the real response is slightly different from the ApiManagementUserResource.
  - from: apimgateways.json
    where: $.paths
    transform: >
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/apis'].get.responses['200'].schema = {
          "x-ms-client-name": "ApiManagementGatewayApiListResult",
          "type": "object",
          "properties": {
              "value": {
                  "type": "array",
                  "items": {
                      "x-ms-client-name": "GatewayApiData",
                      "type": "object",
                      "allOf": [
                          {
                              "$ref": "./definitions.json#/definitions/ApiContract"
                          }
                      ]
                  },
                  "description": "Page values.",
                  "readOnly": true
              },
              "count": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Total record count number across all pages."
              },
              "nextLink": {
                  "type": "string",
                  "description": "Next page link if any.",
                  "readOnly": true
              }
          },
          "description": "Paged API list representation."
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/apis/{apiId}'].put.responses['200'].schema = {
          "x-ms-client-name": "GatewayApiData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/ApiContract"
              }
          ]
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/gateways/{gatewayId}/apis/{apiId}'].put.responses['201'].schema = {
          "x-ms-client-name": "GatewayApiData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/ApiContract"
              }
          ]
        }
    reason: Modify the original swagger since the id in the real response is slightly different from the ApiResource.
  - from: apimproducts.json
    where: $.paths
    transform: >
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis'].get.responses['200'].schema = {
          "x-ms-client-name": "ApiManagementProductApiListResult",
          "type": "object",
          "properties": {
              "value": {
                  "type": "array",
                  "items": {
                      "x-ms-client-name": "ProductApiData",
                      "type": "object",
                      "allOf": [
                          {
                              "$ref": "./definitions.json#/definitions/ApiContract"
                          }
                      ]
                  },
                  "description": "Page values.",
                  "readOnly": true
              },
              "count": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Total record count number across all pages."
              },
              "nextLink": {
                  "type": "string",
                  "description": "Next page link if any.",
                  "readOnly": true
              }
          },
          "description": "Paged API list representation."
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}'].put.responses['200'].schema = {
          "x-ms-client-name": "ProductApiData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/ApiContract"
              }
          ]
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/apis/{apiId}'].put.responses['201'].schema = {
          "x-ms-client-name": "ProductApiData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/ApiContract"
              }
          ]
        }
    reason: Modify the original swagger since the id in the real response is slightly different from the ApiResource.
  - from: apimproducts.json
    where: $.paths
    transform: >
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups'].get.responses['200'].schema = {
          "x-ms-client-name": "ApiManagementProductGroupListResult",
          "type": "object",
          "properties": {
              "value": {
                  "type": "array",
                  "items": {
                      "x-ms-client-name": "ProductGroupData",
                      "type": "object",
                      "allOf": [
                          {
                              "$ref": "./definitions.json#/definitions/GroupContract"
                          }
                      ]
                  },
                  "description": "Page values.",
                  "readOnly": true
              },
              "count": {
                  "type": "integer",
                  "format": "int64",
                  "description": "Total record count number across all pages."
              },
              "nextLink": {
                  "type": "string",
                  "description": "Next page link if any."
              }
          },
          "description": "Paged Group list representation."
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}'].put.responses['200'].schema = {
          "x-ms-client-name": "ProductGroupData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/GroupContract"
              }
          ]
        }
      $['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/products/{productId}/groups/{groupId}'].put.responses['201'].schema = {
          "x-ms-client-name": "ProductGroupData",
          "type": "object",
          "allOf": [
              {
                  "$ref": "./definitions.json#/definitions/GroupContract"
              }
          ]
        }
    # reason: Modify the original swagger since the id in the real response is slightly different from the ApiManagementGroupResource.
  - from: swagger-document
    where: $..[?(@.name=='$orderby')]
    transform: $['x-ms-client-name'] = 'orderBy'
  - from: apimcontenttypes.json
    where: $.paths.['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}'].put
    transform: >
                $['parameters']=[
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
                      },
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter"
                      },
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter"
                      }
                ]
  - from: apimcontenttypes.json
    where: $.paths.['/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}/contentTypes/{contentTypeId}/contentItems/{contentItemId}'].put
    transform: >
                $['parameters']=[      
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/ServiceNameParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/ContentTypeIdParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/ContentItemIdParameter"
                      },
                      {
                        "$ref": "./apimanagement.json#/parameters/IfMatchOptionalParameter"
                      },
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter"
                      },
                      {
                        "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter"
                      }
                ]