{
  "description": "Generator information:\n- Generated from: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimdeployment.json\n- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName}",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "properties": {
        "additionalLocations": {
          "description": "AdditionalLocations: Additional datacenter locations of the API Management service.",
          "items": {
            "description": "Description of an additional API Management resource location.",
            "properties": {
              "disableGateway": {
                "description": "DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to\ndisable the gateway in this additional location.",
                "type": "boolean"
              },
              "location": {
                "description": "Location: The location name of the additional region among Azure Data center regions.",
                "type": "string"
              },
              "natGatewayState": {
                "description": "NatGatewayState: Property can be used to enable NAT Gateway for this API Management service.",
                "enum": [
                  "Disabled",
                  "Enabled"
                ],
                "type": "string"
              },
              "publicIpAddressReference": {
                "description": "PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed\nservice in the location. Supported only for Premium SKU being deployed in Virtual Network.",
                "properties": {
                  "armId": {
                    "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                    "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                    "type": "string"
                  },
                  "group": {
                    "description": "Group is the Kubernetes group of the resource.",
                    "type": "string"
                  },
                  "kind": {
                    "description": "Kind is the Kubernetes kind of the resource.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the Kubernetes name of the resource.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "sku": {
                "description": "Sku: SKU properties of the API Management service.",
                "properties": {
                  "capacity": {
                    "description": "Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.",
                    "type": "integer"
                  },
                  "name": {
                    "description": "Name: Name of the Sku.",
                    "enum": [
                      "Basic",
                      "Consumption",
                      "Developer",
                      "Isolated",
                      "Premium",
                      "Standard"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "capacity",
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "virtualNetworkConfiguration": {
                "description": "VirtualNetworkConfiguration: Virtual network configuration for the location.",
                "properties": {
                  "subnetResourceReference": {
                    "description": "SubnetResourceReference: The full resource ID of a subnet in a virtual network to deploy the API Management service in.",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "zones": {
                "description": "Zones: A list of availability zones denoting where the resource needs to come from.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "location",
              "sku"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "apiVersionConstraint": {
          "description": "ApiVersionConstraint: Control Plane Apis version constraint for the API Management service.",
          "properties": {
            "minApiVersion": {
              "description": "MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "azureName": {
          "description": "AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it\ndoesn't have to be.",
          "maxLength": 50,
          "minLength": 1,
          "pattern": "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$",
          "type": "string"
        },
        "certificates": {
          "description": "Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates\nthat can be installed is 10.",
          "items": {
            "description": "Certificate configuration which consist of non-trusted intermediates and root certificates.",
            "properties": {
              "certificate": {
                "description": "Certificate: Certificate information.",
                "properties": {
                  "expiry": {
                    "description": "Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as\nspecified by the ISO 8601 standard.",
                    "type": "string"
                  },
                  "expiryFromConfig": {
                    "description": "ExpiryFromConfig: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ`\nas specified by the ISO 8601 standard.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "subject": {
                    "description": "Subject: Subject of the certificate.",
                    "type": "string"
                  },
                  "subjectFromConfig": {
                    "description": "SubjectFromConfig: Subject of the certificate.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "thumbprint": {
                    "description": "Thumbprint: Thumbprint of the certificate.",
                    "type": "string"
                  },
                  "thumbprintFromConfig": {
                    "description": "ThumbprintFromConfig: Thumbprint of the certificate.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "certificatePassword": {
                "description": "CertificatePassword: Certificate Password.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the Kubernetes secret being referenced",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes secret being referenced.\nThe secret must be in the same namespace as the resource",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "encodedCertificate": {
                "description": "EncodedCertificate: Base64 Encoded certificate.",
                "type": "string"
              },
              "storeName": {
                "description": "StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and\nCertificateAuthority are valid locations.",
                "enum": [
                  "CertificateAuthority",
                  "Root"
                ],
                "type": "string"
              }
            },
            "required": [
              "storeName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "customProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "CustomProperties: Custom properties of the API Management service.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher\nTLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API\nManagement service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be\nused to disable just TLS 1.1 for communications with backends.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for\ncommunications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be\nused to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH\noperation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value\nis `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is\n`False`.</br></br>You can disable any of the following ciphers by using settings\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,\nTLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256,\nTLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example,\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default\nvalue is `true` for them.</br> Note: The following ciphers can't be disabled since they are required by internal\nplatform components:\nTLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
          "type": "object"
        },
        "disableGateway": {
          "description": "DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to\ndisable the gateway in master region.",
          "type": "boolean"
        },
        "enableClientCertificate": {
          "description": "EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate\nto be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the\npolicy on the gateway.",
          "type": "boolean"
        },
        "hostnameConfigurations": {
          "description": "HostnameConfigurations: Custom hostname configuration of the API Management service.",
          "items": {
            "description": "Custom hostname configuration.",
            "properties": {
              "certificate": {
                "description": "Certificate: Certificate information.",
                "properties": {
                  "expiry": {
                    "description": "Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as\nspecified by the ISO 8601 standard.",
                    "type": "string"
                  },
                  "expiryFromConfig": {
                    "description": "ExpiryFromConfig: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ`\nas specified by the ISO 8601 standard.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "subject": {
                    "description": "Subject: Subject of the certificate.",
                    "type": "string"
                  },
                  "subjectFromConfig": {
                    "description": "SubjectFromConfig: Subject of the certificate.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "thumbprint": {
                    "description": "Thumbprint: Thumbprint of the certificate.",
                    "type": "string"
                  },
                  "thumbprintFromConfig": {
                    "description": "ThumbprintFromConfig: Thumbprint of the certificate.",
                    "properties": {
                      "key": {
                        "description": "Key is the key in the Kubernetes configmap being referenced",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "name"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "certificatePassword": {
                "description": "CertificatePassword: Certificate Password.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the Kubernetes secret being referenced",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes secret being referenced.\nThe secret must be in the same namespace as the resource",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "certificateSource": {
                "description": "CertificateSource: Certificate Source.",
                "enum": [
                  "BuiltIn",
                  "Custom",
                  "KeyVault",
                  "Managed"
                ],
                "type": "string"
              },
              "certificateStatus": {
                "description": "CertificateStatus: Certificate Status.",
                "enum": [
                  "Completed",
                  "Failed",
                  "InProgress"
                ],
                "type": "string"
              },
              "defaultSslBinding": {
                "description": "DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate.\nIf a client does not send the SNI header, then this will be the certificate that will be challenged. The property is\nuseful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The\nsetting only applied to gateway Hostname Type.",
                "type": "boolean"
              },
              "encodedCertificate": {
                "description": "EncodedCertificate: Base64 Encoded certificate.",
                "type": "string"
              },
              "hostName": {
                "description": "HostName: Hostname to configure on the Api Management service.",
                "type": "string"
              },
              "identityClientId": {
                "description": "IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to\nthe keyVault containing the SSL certificate.",
                "type": "string"
              },
              "identityClientIdFromConfig": {
                "description": "IdentityClientIdFromConfig: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET\naccess to the keyVault containing the SSL certificate.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the Kubernetes configmap being referenced",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap being referenced.\nThe configmap must be in the same namespace as the resource",
                    "type": "string"
                  }
                },
                "required": [
                  "key",
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "keyVaultId": {
                "description": "KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided,\nauto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi.\nThe secret should be of type *application/x-pkcs12*",
                "type": "string"
              },
              "negotiateClientCertificate": {
                "description": "NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false.",
                "type": "boolean"
              },
              "type": {
                "description": "Type: Hostname type.",
                "enum": [
                  "DeveloperPortal",
                  "Management",
                  "Portal",
                  "Proxy",
                  "Scm"
                ],
                "type": "string"
              }
            },
            "required": [
              "hostName",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "identity": {
          "description": "Identity: Managed service identity of the Api Management service.",
          "properties": {
            "type": {
              "description": "Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly\ncreated identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
              "enum": [
                "None",
                "SystemAssigned",
                "SystemAssigned, UserAssigned",
                "UserAssigned"
              ],
              "type": "string"
            },
            "userAssignedIdentities": {
              "description": "UserAssignedIdentities: The list of user identities associated with the resource. The user identity\ndictionary key references will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/\nproviders/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
              "items": {
                "description": "Information about the user assigned identity for the resource",
                "properties": {
                  "reference": {
                    "description": "ResourceReference represents a resource reference, either to a Kubernetes resource or directly to an Azure resource via ARMID",
                    "properties": {
                      "armId": {
                        "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                        "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                        "type": "string"
                      },
                      "group": {
                        "description": "Group is the Kubernetes group of the resource.",
                        "type": "string"
                      },
                      "kind": {
                        "description": "Kind is the Kubernetes kind of the resource.",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name is the Kubernetes name of the resource.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "required": [
            "type"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "location": {
          "description": "Location: Resource location.",
          "type": "string"
        },
        "natGatewayState": {
          "description": "NatGatewayState: Property can be used to enable NAT Gateway for this API Management service.",
          "enum": [
            "Disabled",
            "Enabled"
          ],
          "type": "string"
        },
        "notificationSenderEmail": {
          "description": "NotificationSenderEmail: Email address from which the notification will be sent.",
          "maxLength": 100,
          "type": "string"
        },
        "operatorSpec": {
          "description": "OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not\npassed directly to Azure",
          "properties": {
            "configMapExpressions": {
              "description": "ConfigMapExpressions: configures where to place operator written dynamic ConfigMaps (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "secretExpressions": {
              "description": "SecretExpressions: configures where to place operator written dynamic secrets (created with CEL expressions).",
              "items": {
                "description": "DestinationExpression is a CEL expression and a destination to store the result in. The destination may\nbe a secret or a configmap. The value of the expression is stored at the specified location in\nthe destination.",
                "properties": {
                  "key": {
                    "description": "Key is the key in the ConfigMap or Secret being written to. If the CEL expression in Value returns a string\nthis is required to identify what key to write to. If the CEL expression in Value returns a map[string]string\nKey must not be set, instead the keys written will be determined dynamically based on the keys of the resulting\nmap[string]string.",
                    "type": "string"
                  },
                  "name": {
                    "description": "Name is the name of the Kubernetes configmap or secret to write to.\nThe configmap or secret will be created in the same namespace as the resource.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value is a CEL expression. The CEL expression may return a string or a map[string]string. For more information\non CEL in ASO see https://azure.github.io/azure-service-operator/guide/expressions/",
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "value"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "owner": {
          "description": "Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also\ncontrols the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a\nreference to a resources.azure.com/ResourceGroup resource",
          "properties": {
            "armId": {
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "name": {
              "description": "This is the name of the Kubernetes resource to reference.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "publicIpAddressReference": {
          "description": "PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed\nservice in the region. Supported only for Developer and Premium SKU being deployed in Virtual Network.",
          "properties": {
            "armId": {
              "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
              "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
              "type": "string"
            },
            "group": {
              "description": "Group is the Kubernetes group of the resource.",
              "type": "string"
            },
            "kind": {
              "description": "Kind is the Kubernetes kind of the resource.",
              "type": "string"
            },
            "name": {
              "description": "Name is the Kubernetes name of the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service.  Value is\noptional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access\nmethod. Default value is 'Enabled'",
          "enum": [
            "Disabled",
            "Enabled"
          ],
          "type": "string"
        },
        "publisherEmail": {
          "description": "PublisherEmail: Publisher email.",
          "maxLength": 100,
          "type": "string"
        },
        "publisherName": {
          "description": "PublisherName: Publisher name.",
          "maxLength": 100,
          "type": "string"
        },
        "restore": {
          "description": "Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True\nall other properties will be ignored.",
          "type": "boolean"
        },
        "sku": {
          "description": "Sku: SKU properties of the API Management service.",
          "properties": {
            "capacity": {
              "description": "Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.",
              "type": "integer"
            },
            "name": {
              "description": "Name: Name of the Sku.",
              "enum": [
                "Basic",
                "Consumption",
                "Developer",
                "Isolated",
                "Premium",
                "Standard"
              ],
              "type": "string"
            }
          },
          "required": [
            "capacity",
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "virtualNetworkConfiguration": {
          "description": "VirtualNetworkConfiguration: Virtual network configuration of the API Management service.",
          "properties": {
            "subnetResourceReference": {
              "description": "SubnetResourceReference: The full resource ID of a subnet in a virtual network to deploy the API Management service in.",
              "properties": {
                "armId": {
                  "description": "ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.\nThe /resourcegroups/{resourceGroupName} bit is optional as some resources are scoped at the subscription level\nARMID is mutually exclusive with Group, Kind, Namespace and Name.",
                  "pattern": "(?i)(^(/subscriptions/([^/]+)(/resourcegroups/([^/]+))?)?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$|^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?$)",
                  "type": "string"
                },
                "group": {
                  "description": "Group is the Kubernetes group of the resource.",
                  "type": "string"
                },
                "kind": {
                  "description": "Kind is the Kubernetes kind of the resource.",
                  "type": "string"
                },
                "name": {
                  "description": "Name is the Kubernetes name of the resource.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "virtualNetworkType": {
          "description": "VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value)\nmeans the API Management service is not part of any Virtual Network, External means the API Management deployment is set\nup inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is\nsetup inside a Virtual Network having an Intranet Facing Endpoint only.",
          "enum": [
            "External",
            "Internal",
            "None"
          ],
          "type": "string"
        },
        "zones": {
          "description": "Zones: A list of availability zones denoting where the resource needs to come from.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "owner",
        "publisherEmail",
        "publisherName",
        "sku"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "additionalLocations": {
          "description": "AdditionalLocations: Additional datacenter locations of the API Management service.",
          "items": {
            "description": "Description of an additional API Management resource location.",
            "properties": {
              "disableGateway": {
                "description": "DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to\ndisable the gateway in this additional location.",
                "type": "boolean"
              },
              "gatewayRegionalUrl": {
                "description": "GatewayRegionalUrl: Gateway URL of the API Management service in the Region.",
                "type": "string"
              },
              "location": {
                "description": "Location: The location name of the additional region among Azure Data center regions.",
                "type": "string"
              },
              "natGatewayState": {
                "description": "NatGatewayState: Property can be used to enable NAT Gateway for this API Management service.",
                "type": "string"
              },
              "outboundPublicIPAddresses": {
                "description": "OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available\nonly for Premium SKU on stv2 platform.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "platformVersion": {
                "description": "PlatformVersion: Compute Platform Version running the service.",
                "type": "string"
              },
              "privateIPAddresses": {
                "description": "PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service which is deployed in an\nInternal Virtual Network in a particular additional location. Available only for Basic, Standard, Premium and Isolated\nSKU.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "publicIPAddresses": {
                "description": "PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in the additional location.\nAvailable only for Basic, Standard, Premium and Isolated SKU.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "publicIpAddressId": {
                "description": "PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in\nthe location. Supported only for Premium SKU being deployed in Virtual Network.",
                "type": "string"
              },
              "sku": {
                "description": "Sku: SKU properties of the API Management service.",
                "properties": {
                  "capacity": {
                    "description": "Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.",
                    "type": "integer"
                  },
                  "name": {
                    "description": "Name: Name of the Sku.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "virtualNetworkConfiguration": {
                "description": "VirtualNetworkConfiguration: Virtual network configuration for the location.",
                "properties": {
                  "subnetResourceId": {
                    "description": "SubnetResourceId: The full resource ID of a subnet in a virtual network to deploy the API Management service in.",
                    "type": "string"
                  },
                  "subnetname": {
                    "description": "Subnetname: The name of the subnet.",
                    "type": "string"
                  },
                  "vnetid": {
                    "description": "Vnetid: The virtual network ID. This is typically a GUID. Expect a null GUID by default.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "zones": {
                "description": "Zones: A list of availability zones denoting where the resource needs to come from.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "apiVersionConstraint": {
          "description": "ApiVersionConstraint: Control Plane Apis version constraint for the API Management service.",
          "properties": {
            "minApiVersion": {
              "description": "MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "certificates": {
          "description": "Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates\nthat can be installed is 10.",
          "items": {
            "description": "Certificate configuration which consist of non-trusted intermediates and root certificates.",
            "properties": {
              "certificate": {
                "description": "Certificate: Certificate information.",
                "properties": {
                  "expiry": {
                    "description": "Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as\nspecified by the ISO 8601 standard.",
                    "type": "string"
                  },
                  "subject": {
                    "description": "Subject: Subject of the certificate.",
                    "type": "string"
                  },
                  "thumbprint": {
                    "description": "Thumbprint: Thumbprint of the certificate.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "encodedCertificate": {
                "description": "EncodedCertificate: Base64 Encoded certificate.",
                "type": "string"
              },
              "storeName": {
                "description": "StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and\nCertificateAuthority are valid locations.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "conditions": {
          "description": "Conditions: The observed state of the resource",
          "items": {
            "description": "Condition defines an extension to status (an observation) of a resource",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "Message is a human readable message indicating details about the transition. This field may be empty.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration is the .metadata.generation that the condition was set based upon. For instance, if\n.metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "Reason for the condition's last transition.\nReasons are upper CamelCase (PascalCase) with no spaces. A reason is always provided, this field will not be empty.",
                "type": "string"
              },
              "severity": {
                "description": "Severity with which to treat failures of this type of condition.\nFor conditions which have positive polarity (Status == True is their normal/healthy state), this will be omitted when Status == True\nFor conditions which have negative polarity (Status == False is their normal/healthy state), this will be omitted when Status == False.\nThis is omitted in all cases when Status == Unknown",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, or Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of condition.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "createdAtUtc": {
          "description": "CreatedAtUtc: Creation UTC date of the API Management service.The date conforms to the following format:\n`yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.",
          "type": "string"
        },
        "customProperties": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "CustomProperties: Custom properties of the API Management service.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher\nTLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API\nManagement service.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be\nused to disable just TLS 1.1 for communications with backends.</br>Setting\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for\ncommunications with backends.</br>Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be\nused to enable HTTP2 protocol on an API Management service.</br>Not specifying any of these properties on PATCH\noperation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value\nis `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is\n`False`.</br></br>You can disable any of the following ciphers by using settings\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,\nTLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256,\nTLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example,\n`Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default\nvalue is `true` for them.</br> Note: The following ciphers can't be disabled since they are required by internal\nplatform components:\nTLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
          "type": "object"
        },
        "developerPortalUrl": {
          "description": "DeveloperPortalUrl: DEveloper Portal endpoint URL of the API Management service.",
          "type": "string"
        },
        "disableGateway": {
          "description": "DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to\ndisable the gateway in master region.",
          "type": "boolean"
        },
        "enableClientCertificate": {
          "description": "EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate\nto be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the\npolicy on the gateway.",
          "type": "boolean"
        },
        "etag": {
          "description": "Etag: ETag of the resource.",
          "type": "string"
        },
        "gatewayRegionalUrl": {
          "description": "GatewayRegionalUrl: Gateway URL of the API Management service in the Default Region.",
          "type": "string"
        },
        "gatewayUrl": {
          "description": "GatewayUrl: Gateway URL of the API Management service.",
          "type": "string"
        },
        "hostnameConfigurations": {
          "description": "HostnameConfigurations: Custom hostname configuration of the API Management service.",
          "items": {
            "description": "Custom hostname configuration.",
            "properties": {
              "certificate": {
                "description": "Certificate: Certificate information.",
                "properties": {
                  "expiry": {
                    "description": "Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as\nspecified by the ISO 8601 standard.",
                    "type": "string"
                  },
                  "subject": {
                    "description": "Subject: Subject of the certificate.",
                    "type": "string"
                  },
                  "thumbprint": {
                    "description": "Thumbprint: Thumbprint of the certificate.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "certificateSource": {
                "description": "CertificateSource: Certificate Source.",
                "type": "string"
              },
              "certificateStatus": {
                "description": "CertificateStatus: Certificate Status.",
                "type": "string"
              },
              "defaultSslBinding": {
                "description": "DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate.\nIf a client does not send the SNI header, then this will be the certificate that will be challenged. The property is\nuseful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The\nsetting only applied to gateway Hostname Type.",
                "type": "boolean"
              },
              "encodedCertificate": {
                "description": "EncodedCertificate: Base64 Encoded certificate.",
                "type": "string"
              },
              "hostName": {
                "description": "HostName: Hostname to configure on the Api Management service.",
                "type": "string"
              },
              "identityClientId": {
                "description": "IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to\nthe keyVault containing the SSL certificate.",
                "type": "string"
              },
              "keyVaultId": {
                "description": "KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided,\nauto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi.\nThe secret should be of type *application/x-pkcs12*",
                "type": "string"
              },
              "negotiateClientCertificate": {
                "description": "NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false.",
                "type": "boolean"
              },
              "type": {
                "description": "Type: Hostname type.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "id": {
          "description": "Id: Resource ID.",
          "type": "string"
        },
        "identity": {
          "description": "Identity: Managed service identity of the Api Management service.",
          "properties": {
            "principalId": {
              "description": "PrincipalId: The principal id of the identity.",
              "type": "string"
            },
            "tenantId": {
              "description": "TenantId: The client tenant id of the identity.",
              "type": "string"
            },
            "type": {
              "description": "Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly\ncreated identity and a set of user assigned identities. The type 'None' will remove any identities from the service.",
              "type": "string"
            },
            "userAssignedIdentities": {
              "additionalProperties": {
                "properties": {
                  "clientId": {
                    "description": "ClientId: The client id of user assigned identity.",
                    "type": "string"
                  },
                  "principalId": {
                    "description": "PrincipalId: The principal id of user assigned identity.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "description": "UserAssignedIdentities: The list of user identities associated with the resource. The user identity\ndictionary key references will be ARM resource ids in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/\nproviders/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.",
              "type": "object"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "location": {
          "description": "Location: Resource location.",
          "type": "string"
        },
        "managementApiUrl": {
          "description": "ManagementApiUrl: Management API endpoint URL of the API Management service.",
          "type": "string"
        },
        "name": {
          "description": "Name: Resource name.",
          "type": "string"
        },
        "natGatewayState": {
          "description": "NatGatewayState: Property can be used to enable NAT Gateway for this API Management service.",
          "type": "string"
        },
        "notificationSenderEmail": {
          "description": "NotificationSenderEmail: Email address from which the notification will be sent.",
          "type": "string"
        },
        "outboundPublicIPAddresses": {
          "description": "OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available\nonly for Premium SKU on stv2 platform.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "platformVersion": {
          "description": "PlatformVersion: Compute Platform Version running the service in this location.",
          "type": "string"
        },
        "portalUrl": {
          "description": "PortalUrl: Publisher portal endpoint Url of the API Management service.",
          "type": "string"
        },
        "privateEndpointConnections": {
          "description": "PrivateEndpointConnections: List of Private Endpoint Connections of this service.",
          "items": {
            "description": "Remote Private Endpoint Connection resource.",
            "properties": {
              "groupIds": {
                "description": "GroupIds: All the Group ids.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "id": {
                "description": "Id: Private Endpoint connection resource id",
                "type": "string"
              },
              "name": {
                "description": "Name: Private Endpoint Connection Name",
                "type": "string"
              },
              "privateEndpoint": {
                "description": "PrivateEndpoint: The resource of private end point.",
                "properties": {
                  "id": {
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "privateLinkServiceConnectionState": {
                "description": "PrivateLinkServiceConnectionState: A collection of information about the state of the connection between service\nconsumer and provider.",
                "properties": {
                  "actionsRequired": {
                    "description": "ActionsRequired: A message indicating if changes on the service provider require any updates on the consumer.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Description: The reason for approval/rejection of the connection.",
                    "type": "string"
                  },
                  "status": {
                    "description": "Status: Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.",
                    "type": "string"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "provisioningState": {
                "description": "ProvisioningState: The provisioning state of the private endpoint connection resource.",
                "type": "string"
              },
              "type": {
                "description": "Type: Private Endpoint Connection Resource Type",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "privateIPAddresses": {
          "description": "PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service in Primary region which is\ndeployed in an Internal Virtual Network. Available only for Basic, Standard, Premium and Isolated SKU.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provisioningState": {
          "description": "ProvisioningState: The current provisioning state of the API Management service which can be one of the following:\nCreated/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.",
          "type": "string"
        },
        "publicIPAddresses": {
          "description": "PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in Primary region. Available\nonly for Basic, Standard, Premium and Isolated SKU.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "publicIpAddressId": {
          "description": "PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in\nthe region. Supported only for Developer and Premium SKU being deployed in Virtual Network.",
          "type": "string"
        },
        "publicNetworkAccess": {
          "description": "PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service.  Value is\noptional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access\nmethod. Default value is 'Enabled'",
          "type": "string"
        },
        "publisherEmail": {
          "description": "PublisherEmail: Publisher email.",
          "type": "string"
        },
        "publisherName": {
          "description": "PublisherName: Publisher name.",
          "type": "string"
        },
        "restore": {
          "description": "Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True\nall other properties will be ignored.",
          "type": "boolean"
        },
        "scmUrl": {
          "description": "ScmUrl: SCM endpoint URL of the API Management service.",
          "type": "string"
        },
        "sku": {
          "description": "Sku: SKU properties of the API Management service.",
          "properties": {
            "capacity": {
              "description": "Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.",
              "type": "integer"
            },
            "name": {
              "description": "Name: Name of the Sku.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "systemData": {
          "description": "SystemData: Metadata pertaining to creation and last modification of the resource.",
          "properties": {
            "createdAt": {
              "description": "CreatedAt: The timestamp of resource creation (UTC).",
              "type": "string"
            },
            "createdBy": {
              "description": "CreatedBy: The identity that created the resource.",
              "type": "string"
            },
            "createdByType": {
              "description": "CreatedByType: The type of identity that created the resource.",
              "type": "string"
            },
            "lastModifiedAt": {
              "description": "LastModifiedAt: The timestamp of resource last modification (UTC)",
              "type": "string"
            },
            "lastModifiedBy": {
              "description": "LastModifiedBy: The identity that last modified the resource.",
              "type": "string"
            },
            "lastModifiedByType": {
              "description": "LastModifiedByType: The type of identity that last modified the resource.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Tags: Resource tags.",
          "type": "object"
        },
        "targetProvisioningState": {
          "description": "TargetProvisioningState: The provisioning state of the API Management service, which is targeted by the long running\noperation started on the service.",
          "type": "string"
        },
        "type": {
          "description": "Type: Resource type for API Management resource is set to Microsoft.ApiManagement.",
          "type": "string"
        },
        "virtualNetworkConfiguration": {
          "description": "VirtualNetworkConfiguration: Virtual network configuration of the API Management service.",
          "properties": {
            "subnetResourceId": {
              "description": "SubnetResourceId: The full resource ID of a subnet in a virtual network to deploy the API Management service in.",
              "type": "string"
            },
            "subnetname": {
              "description": "Subnetname: The name of the subnet.",
              "type": "string"
            },
            "vnetid": {
              "description": "Vnetid: The virtual network ID. This is typically a GUID. Expect a null GUID by default.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "virtualNetworkType": {
          "description": "VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value)\nmeans the API Management service is not part of any Virtual Network, External means the API Management deployment is set\nup inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is\nsetup inside a Virtual Network having an Intranet Facing Endpoint only.",
          "type": "string"
        },
        "zones": {
          "description": "Zones: A list of availability zones denoting where the resource needs to come from.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
