/**
 * Description of an additional API Management resource location.
 */
export interface AdditionalLocationResponse {
    /**
     * Property only valid for an Api Management service deployed in multiple locations. This can be used to disable the gateway in this additional location.
     */
    disableGateway?: boolean;
    /**
     * Gateway URL of the API Management service in the Region.
     */
    gatewayRegionalUrl: string;
    /**
     * The location name of the additional region among Azure Data center regions.
     */
    location: string;
    /**
     * Property can be used to enable NAT Gateway for this API Management service.
     */
    natGatewayState?: string;
    /**
     * Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available only for Premium SKU on stv2 platform.
     */
    outboundPublicIPAddresses: string[];
    /**
     * Compute Platform Version running the service.
     */
    platformVersion: string;
    /**
     * Private Static Load Balanced IP addresses of the API Management service which is deployed in an Internal Virtual Network in a particular additional location. Available only for Basic, Standard, Premium and Isolated SKU.
     */
    privateIPAddresses: string[];
    /**
     * Public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard, Premium and Isolated SKU.
     */
    publicIPAddresses: string[];
    /**
     * Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in the location. Supported only for Premium SKU being deployed in Virtual Network.
     */
    publicIpAddressId?: string;
    /**
     * SKU properties of the API Management service.
     */
    sku: ApiManagementServiceSkuPropertiesResponse;
    /**
     * Virtual network configuration for the location.
     */
    virtualNetworkConfiguration?: VirtualNetworkConfigurationResponse;
    /**
     * A list of availability zones denoting where the resource needs to come from.
     */
    zones?: string[];
}
/**
 * additionalLocationResponseProvideDefaults sets the appropriate defaults for AdditionalLocationResponse
 */
export declare function additionalLocationResponseProvideDefaults(val: AdditionalLocationResponse): AdditionalLocationResponse;
/**
 * API contact information
 */
export interface ApiContactInformationResponse {
    /**
     * The email address of the contact person/organization. MUST be in the format of an email address
     */
    email?: string;
    /**
     * The identifying name of the contact person/organization
     */
    name?: string;
    /**
     * The URL pointing to the contact information. MUST be in the format of a URL
     */
    url?: string;
}
/**
 * API license information
 */
export interface ApiLicenseInformationResponse {
    /**
     * The license name used for the API
     */
    name?: string;
    /**
     * A URL to the license used for the API. MUST be in the format of a URL
     */
    url?: string;
}
/**
 * Identity properties of the Api Management service resource.
 */
export interface ApiManagementServiceIdentityResponse {
    /**
     * The principal id of the identity.
     */
    principalId: string;
    /**
     * The client tenant id of the identity.
     */
    tenantId: string;
    /**
     * The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the service.
     */
    type: string;
    /**
     * The list of user identities associated with the resource. The user identity
     * dictionary key references will be ARM resource ids in the form:
     * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/
     *     providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
     */
    userAssignedIdentities?: {
        [key: string]: UserIdentityPropertiesResponse;
    };
}
/**
 * API Management service resource SKU properties.
 */
export interface ApiManagementServiceSkuPropertiesResponse {
    /**
     * Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0.
     */
    capacity: number;
    /**
     * Name of the Sku.
     */
    name: string;
}
/**
 * Control Plane Apis version constraint for the API Management service.
 */
export interface ApiVersionConstraintResponse {
    /**
     * Limit control plane API calls to API Management service with version equal to or newer than this value.
     */
    minApiVersion?: string;
}
/**
 * An API Version Set contains the common configuration for a set of API Versions relating
 */
export interface ApiVersionSetContractDetailsResponse {
    /**
     * Description of API Version Set.
     */
    description?: string;
    /**
     * Identifier for existing API Version Set. Omit this value to create a new Version Set.
     */
    id?: string;
    /**
     * The display Name of the API Version Set.
     */
    name?: string;
    /**
     * Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
     */
    versionHeaderName?: string;
    /**
     * Name of query parameter that indicates the API Version if versioningScheme is set to `query`.
     */
    versionQueryName?: string;
    /**
     * An value that determines where the API Version identifier will be located in a HTTP request.
     */
    versioningScheme?: string;
}
/**
 * A wrapper for an ARM resource id
 */
export interface ArmIdWrapperResponse {
    id: string;
}
/**
 * API Authentication Settings.
 */
export interface AuthenticationSettingsContractResponse {
    /**
     * OAuth2 Authentication settings
     */
    oAuth2?: OAuth2AuthenticationSettingsContractResponse;
    /**
     * Collection of OAuth2 authentication settings included into this API.
     */
    oAuth2AuthenticationSettings?: OAuth2AuthenticationSettingsContractResponse[];
    /**
     * OpenID Connect Authentication Settings
     */
    openid?: OpenIdAuthenticationSettingsContractResponse;
    /**
     * Collection of Open ID Connect authentication settings included into this API.
     */
    openidAuthenticationSettings?: OpenIdAuthenticationSettingsContractResponse[];
}
/**
 * Authorization error details.
 */
export interface AuthorizationErrorResponse {
    /**
     * Error code
     */
    code?: string;
    /**
     * Error message
     */
    message?: string;
}
/**
 * Authorization Provider oauth2 grant types settings
 */
export interface AuthorizationProviderOAuth2GrantTypesResponse {
    /**
     * OAuth2 authorization code grant parameters
     */
    authorizationCode?: {
        [key: string]: string;
    };
    /**
     * OAuth2 client credential grant parameters
     */
    clientCredentials?: {
        [key: string]: string;
    };
}
/**
 * OAuth2 settings details
 */
export interface AuthorizationProviderOAuth2SettingsResponse {
    /**
     * OAuth2 settings
     */
    grantTypes?: AuthorizationProviderOAuth2GrantTypesResponse;
    /**
     * Redirect URL to be set in the OAuth application.
     */
    redirectUrl?: string;
}
/**
 * Authorization header information.
 */
export interface BackendAuthorizationHeaderCredentialsResponse {
    /**
     * Authentication Parameter value.
     */
    parameter: string;
    /**
     * Authentication Scheme name.
     */
    scheme: string;
}
/**
 * Details of the Credentials used to connect to Backend.
 */
export interface BackendCredentialsContractResponse {
    /**
     * Authorization header authentication
     */
    authorization?: BackendAuthorizationHeaderCredentialsResponse;
    /**
     * List of Client Certificate Thumbprints. Will be ignored if certificatesIds are provided.
     */
    certificate?: string[];
    /**
     * List of Client Certificate Ids.
     */
    certificateIds?: string[];
    /**
     * Header Parameter description.
     */
    header?: {
        [key: string]: string[];
    };
    /**
     * Query Parameter description.
     */
    query?: {
        [key: string]: string[];
    };
}
/**
 * Properties specific to the Backend Type.
 */
export interface BackendPropertiesResponse {
    /**
     * Backend Service Fabric Cluster Properties
     */
    serviceFabricCluster?: BackendServiceFabricClusterPropertiesResponse;
}
/**
 * Details of the Backend WebProxy Server to use in the Request to Backend.
 */
export interface BackendProxyContractResponse {
    /**
     * Password to connect to the WebProxy Server
     */
    password?: string;
    /**
     * WebProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings.
     */
    url: string;
    /**
     * Username to connect to the WebProxy server
     */
    username?: string;
}
/**
 * Properties of the Service Fabric Type Backend.
 */
export interface BackendServiceFabricClusterPropertiesResponse {
    /**
     * The client certificate id for the management endpoint.
     */
    clientCertificateId?: string;
    /**
     * The client certificate thumbprint for the management endpoint. Will be ignored if certificatesIds are provided
     */
    clientCertificatethumbprint?: string;
    /**
     * The cluster management endpoint.
     */
    managementEndpoints: string[];
    /**
     * Maximum number of retries while attempting resolve the partition.
     */
    maxPartitionResolutionRetries?: number;
    /**
     * Thumbprints of certificates cluster management service uses for tls communication
     */
    serverCertificateThumbprints?: string[];
    /**
     * Server X509 Certificate Names Collection
     */
    serverX509Names?: X509CertificateNameResponse[];
}
/**
 * Properties controlling TLS Certificate Validation.
 */
export interface BackendTlsPropertiesResponse {
    /**
     * Flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host.
     */
    validateCertificateChain?: boolean;
    /**
     * Flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host.
     */
    validateCertificateName?: boolean;
}
/**
 * backendTlsPropertiesResponseProvideDefaults sets the appropriate defaults for BackendTlsPropertiesResponse
 */
export declare function backendTlsPropertiesResponseProvideDefaults(val: BackendTlsPropertiesResponse): BackendTlsPropertiesResponse;
/**
 * Body logging settings.
 */
export interface BodyDiagnosticSettingsResponse {
    /**
     * Number of request body bytes to log.
     */
    bytes?: number;
}
/**
 * Certificate configuration which consist of non-trusted intermediates and root certificates.
 */
export interface CertificateConfigurationResponse {
    /**
     * Certificate information.
     */
    certificate?: CertificateInformationResponse;
    /**
     * Certificate Password.
     */
    certificatePassword?: string;
    /**
     * Base64 Encoded certificate.
     */
    encodedCertificate?: string;
    /**
     * The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and CertificateAuthority are valid locations.
     */
    storeName: string;
}
/**
 * SSL certificate information.
 */
export interface CertificateInformationResponse {
    /**
     * Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
     */
    expiry: string;
    /**
     * Subject of the certificate.
     */
    subject: string;
    /**
     * Thumbprint of the certificate.
     */
    thumbprint: string;
}
export interface DataMaskingEntityResponse {
    /**
     * Data masking mode.
     */
    mode?: string;
    /**
     * The name of an entity to mask (e.g. a name of a header or a query parameter).
     */
    value?: string;
}
export interface DataMaskingResponse {
    /**
     * Masking settings for headers
     */
    headers?: DataMaskingEntityResponse[];
    /**
     * Masking settings for Url query parameters
     */
    queryParams?: DataMaskingEntityResponse[];
}
/**
 * Email Template Parameter contract.
 */
export interface EmailTemplateParametersContractPropertiesResponse {
    /**
     * Template parameter description.
     */
    description?: string;
    /**
     * Template parameter name.
     */
    name?: string;
    /**
     * Template parameter title.
     */
    title?: string;
}
/**
 * Group contract Properties.
 */
export interface GroupContractPropertiesResponse {
    /**
     * true if the group is one of the three system groups (Administrators, Developers, or Guests); otherwise false.
     */
    builtIn: boolean;
    /**
     * Group description. Can contain HTML formatting tags.
     */
    description?: string;
    /**
     * Group name.
     */
    displayName: string;
    /**
     * For external groups, this property contains the id of the group from the external identity provider, e.g. for Azure Active Directory `aad://<tenant>.onmicrosoft.com/groups/<group object id>`; otherwise the value is null.
     */
    externalId?: string;
    /**
     * Group type.
     */
    type?: string;
}
/**
 * Custom hostname configuration.
 */
export interface HostnameConfigurationResponse {
    /**
     * Certificate information.
     */
    certificate?: CertificateInformationResponse;
    /**
     * Certificate Password.
     */
    certificatePassword?: string;
    /**
     * Certificate Source.
     */
    certificateSource?: string;
    /**
     * Certificate Status.
     */
    certificateStatus?: string;
    /**
     * Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The setting only applied to gateway Hostname Type.
     */
    defaultSslBinding?: boolean;
    /**
     * Base64 Encoded certificate.
     */
    encodedCertificate?: string;
    /**
     * Hostname to configure on the Api Management service.
     */
    hostName: string;
    /**
     * System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to the keyVault containing the SSL certificate.
     */
    identityClientId?: string;
    /**
     * Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. The secret should be of type *application/x-pkcs12*
     */
    keyVaultId?: string;
    /**
     * Specify true to always negotiate client certificate on the hostname. Default Value is false.
     */
    negotiateClientCertificate?: boolean;
    /**
     * Hostname type.
     */
    type: string;
}
/**
 * hostnameConfigurationResponseProvideDefaults sets the appropriate defaults for HostnameConfigurationResponse
 */
export declare function hostnameConfigurationResponseProvideDefaults(val: HostnameConfigurationResponse): HostnameConfigurationResponse;
/**
 * Http message diagnostic settings.
 */
export interface HttpMessageDiagnosticResponse {
    /**
     * Body logging settings.
     */
    body?: BodyDiagnosticSettingsResponse;
    /**
     * Data masking settings.
     */
    dataMasking?: DataMaskingResponse;
    /**
     * Array of HTTP Headers to log.
     */
    headers?: string[];
}
/**
 * KeyVault contract details.
 */
export interface KeyVaultContractPropertiesResponse {
    /**
     * Null for SystemAssignedIdentity or Client Id for UserAssignedIdentity , which will be used to access key vault secret.
     */
    identityClientId?: string;
    /**
     * Last time sync and refresh status of secret from key vault.
     */
    lastStatus?: KeyVaultLastAccessStatusContractPropertiesResponse;
    /**
     * Key vault secret identifier for fetching secret. Providing a versioned secret will prevent auto-refresh. This requires API Management service to be configured with aka.ms/apimmsi
     */
    secretIdentifier?: string;
}
/**
 * Issue contract Update Properties.
 */
export interface KeyVaultLastAccessStatusContractPropertiesResponse {
    /**
     * Last status code for sync and refresh of secret from key vault.
     */
    code?: string;
    /**
     * Details of the error else empty.
     */
    message?: string;
    /**
     * Last time secret was accessed. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
     */
    timeStampUtc?: string;
}
/**
 * API OAuth2 Authentication settings details.
 */
export interface OAuth2AuthenticationSettingsContractResponse {
    /**
     * OAuth authorization server identifier.
     */
    authorizationServerId?: string;
    /**
     * operations scope.
     */
    scope?: string;
}
/**
 * API OAuth2 Authentication settings details.
 */
export interface OpenIdAuthenticationSettingsContractResponse {
    /**
     * How to send token to the server.
     */
    bearerTokenSendingMethods?: string[];
    /**
     * OAuth authorization server identifier.
     */
    openidProviderId?: string;
}
/**
 * Operation parameters details.
 */
export interface ParameterContractResponse {
    /**
     * Default parameter value.
     */
    defaultValue?: string;
    /**
     * Parameter description.
     */
    description?: string;
    /**
     * Exampled defined for the parameter.
     */
    examples?: {
        [key: string]: ParameterExampleContractResponse;
    };
    /**
     * Parameter name.
     */
    name: string;
    /**
     * Specifies whether parameter is required or not.
     */
    required?: boolean;
    /**
     * Schema identifier.
     */
    schemaId?: string;
    /**
     * Parameter type.
     */
    type: string;
    /**
     * Type name defined by the schema.
     */
    typeName?: string;
    /**
     * Parameter values.
     */
    values?: string[];
}
/**
 * Parameter example.
 */
export interface ParameterExampleContractResponse {
    /**
     * Long description for the example
     */
    description?: string;
    /**
     * A URL that points to the literal example
     */
    externalValue?: string;
    /**
     * Short description for the example
     */
    summary?: string;
    /**
     * Example value. May be a primitive value, or an object.
     */
    value?: any;
}
/**
 * Diagnostic settings for incoming/outgoing HTTP messages to the Gateway.
 */
export interface PipelineDiagnosticSettingsResponse {
    /**
     * Diagnostic settings for request.
     */
    request?: HttpMessageDiagnosticResponse;
    /**
     * Diagnostic settings for response.
     */
    response?: HttpMessageDiagnosticResponse;
}
/**
 * The Private Endpoint resource.
 */
export interface PrivateEndpointResponse {
    /**
     * The ARM identifier for Private Endpoint
     */
    id: string;
}
/**
 * A collection of information about the state of the connection between service consumer and provider.
 */
export interface PrivateLinkServiceConnectionStateResponse {
    /**
     * A message indicating if changes on the service provider require any updates on the consumer.
     */
    actionsRequired?: string;
    /**
     * The reason for approval/rejection of the connection.
     */
    description?: string;
    /**
     * Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
     */
    status?: string;
}
/**
 * Remote Private Endpoint Connection resource.
 */
export interface RemotePrivateEndpointConnectionWrapperResponse {
    /**
     * All the Group ids.
     */
    groupIds: string[];
    /**
     * Private Endpoint connection resource id
     */
    id?: string;
    /**
     * Private Endpoint Connection Name
     */
    name?: string;
    /**
     * The resource of private end point.
     */
    privateEndpoint?: ArmIdWrapperResponse;
    /**
     * A collection of information about the state of the connection between service consumer and provider.
     */
    privateLinkServiceConnectionState: PrivateLinkServiceConnectionStateResponse;
    /**
     * The provisioning state of the private endpoint connection resource.
     */
    provisioningState: string;
    /**
     * Private Endpoint Connection Resource Type
     */
    type?: string;
}
/**
 * Operation request/response representation details.
 */
export interface RepresentationContractResponse {
    /**
     * Specifies a registered or custom content type for this representation, e.g. application/xml.
     */
    contentType: string;
    /**
     * Exampled defined for the representation.
     */
    examples?: {
        [key: string]: ParameterExampleContractResponse;
    };
    /**
     * Collection of form parameters. Required if 'contentType' value is either 'application/x-www-form-urlencoded' or 'multipart/form-data'..
     */
    formParameters?: ParameterContractResponse[];
    /**
     * Schema identifier. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'.
     */
    schemaId?: string;
    /**
     * Type name defined by the schema. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'.
     */
    typeName?: string;
}
/**
 * Operation request details.
 */
export interface RequestContractResponse {
    /**
     * Operation request description.
     */
    description?: string;
    /**
     * Collection of operation request headers.
     */
    headers?: ParameterContractResponse[];
    /**
     * Collection of operation request query parameters.
     */
    queryParameters?: ParameterContractResponse[];
    /**
     * Collection of operation request representations.
     */
    representations?: RepresentationContractResponse[];
}
export interface ResourceCollectionResponseValue {
    /**
     * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
     */
    id: string;
    /**
     * The name of the resource
     */
    name: string;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    type: string;
}
/**
 * Resource location data properties.
 */
export interface ResourceLocationDataContractResponse {
    /**
     * The city or locality where the resource is located.
     */
    city?: string;
    /**
     * The country or region where the resource is located.
     */
    countryOrRegion?: string;
    /**
     * The district, state, or province where the resource is located.
     */
    district?: string;
    /**
     * A canonical name for the geographic or physical location.
     */
    name: string;
}
/**
 * Operation response details.
 */
export interface ResponseContractResponse {
    /**
     * Operation response description.
     */
    description?: string;
    /**
     * Collection of operation response headers.
     */
    headers?: ParameterContractResponse[];
    /**
     * Collection of operation response representations.
     */
    representations?: RepresentationContractResponse[];
    /**
     * Operation response HTTP status code.
     */
    statusCode: number;
}
/**
 * Sampling settings for Diagnostic.
 */
export interface SamplingSettingsResponse {
    /**
     * Rate of sampling for fixed-rate sampling.
     */
    percentage?: number;
    /**
     * Sampling type.
     */
    samplingType?: string;
}
/**
 * Subscription key parameter names details.
 */
export interface SubscriptionKeyParameterNamesContractResponse {
    /**
     * Subscription key header name.
     */
    header?: string;
    /**
     * Subscription key query string parameter name.
     */
    query?: string;
}
/**
 * Metadata pertaining to creation and last modification of the resource.
 */
export interface SystemDataResponse {
    /**
     * The timestamp of resource creation (UTC).
     */
    createdAt?: string;
    /**
     * The identity that created the resource.
     */
    createdBy?: string;
    /**
     * The type of identity that created the resource.
     */
    createdByType?: string;
    /**
     * The timestamp of resource last modification (UTC)
     */
    lastModifiedAt?: string;
    /**
     * The identity that last modified the resource.
     */
    lastModifiedBy?: string;
    /**
     * The type of identity that last modified the resource.
     */
    lastModifiedByType?: string;
}
/**
 * OAuth acquire token request body parameter (www-url-form-encoded).
 */
export interface TokenBodyParameterContractResponse {
    /**
     * body parameter name.
     */
    name: string;
    /**
     * body parameter value.
     */
    value: string;
}
/**
 * User identity details.
 */
export interface UserIdentityContractResponse {
    /**
     * Identifier value within provider.
     */
    id?: string;
    /**
     * Identity provider name.
     */
    provider?: string;
}
export interface UserIdentityPropertiesResponse {
    /**
     * The client id of user assigned identity.
     */
    clientId?: string;
    /**
     * The principal id of user assigned identity.
     */
    principalId?: string;
}
/**
 * Configuration of a virtual network to which API Management service is deployed.
 */
export interface VirtualNetworkConfigurationResponse {
    /**
     * The full resource ID of a subnet in a virtual network to deploy the API Management service in.
     */
    subnetResourceId?: string;
    /**
     * The name of the subnet.
     */
    subnetname: string;
    /**
     * The virtual network ID. This is typically a GUID. Expect a null GUID by default.
     */
    vnetid: string;
}
/**
 * Wiki documentation details.
 */
export interface WikiDocumentationContractResponse {
    /**
     * Documentation Identifier
     */
    documentationId?: string;
}
/**
 * Properties of server X509Names.
 */
export interface X509CertificateNameResponse {
    /**
     * Thumbprint for the Issuer of the Certificate.
     */
    issuerCertificateThumbprint?: string;
    /**
     * Common Name of the Certificate.
     */
    name?: string;
}
