UNPKG

@kengachu-pulumi/azure-native-apimanagement

Version:

Pulumi Azure Native package for apimanagement

830 lines (829 loc) 25.2 kB
import * as enums from "./enums"; import * as pulumi from "@pulumi/pulumi"; /** * Description of an additional API Management resource location. */ export interface AdditionalLocationArgs { /** * 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?: pulumi.Input<boolean>; /** * The location name of the additional region among Azure Data center regions. */ location: pulumi.Input<string>; /** * Property can be used to enable NAT Gateway for this API Management service. */ natGatewayState?: pulumi.Input<string | enums.NatGatewayState>; /** * 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?: pulumi.Input<string>; /** * SKU properties of the API Management service. */ sku: pulumi.Input<ApiManagementServiceSkuPropertiesArgs>; /** * Virtual network configuration for the location. */ virtualNetworkConfiguration?: pulumi.Input<VirtualNetworkConfigurationArgs>; /** * A list of availability zones denoting where the resource needs to come from. */ zones?: pulumi.Input<pulumi.Input<string>[]>; } /** * additionalLocationArgsProvideDefaults sets the appropriate defaults for AdditionalLocationArgs */ export declare function additionalLocationArgsProvideDefaults(val: AdditionalLocationArgs): AdditionalLocationArgs; /** * API contact information */ export interface ApiContactInformationArgs { /** * The email address of the contact person/organization. MUST be in the format of an email address */ email?: pulumi.Input<string>; /** * The identifying name of the contact person/organization */ name?: pulumi.Input<string>; /** * The URL pointing to the contact information. MUST be in the format of a URL */ url?: pulumi.Input<string>; } /** * Criteria to limit import of WSDL to a subset of the document. */ export interface ApiCreateOrUpdatePropertiesWsdlSelectorArgs { /** * Name of endpoint(port) to import from WSDL */ wsdlEndpointName?: pulumi.Input<string>; /** * Name of service to import from WSDL */ wsdlServiceName?: pulumi.Input<string>; } /** * API license information */ export interface ApiLicenseInformationArgs { /** * The license name used for the API */ name?: pulumi.Input<string>; /** * A URL to the license used for the API. MUST be in the format of a URL */ url?: pulumi.Input<string>; } /** * Identity properties of the Api Management service resource. */ export interface ApiManagementServiceIdentityArgs { /** * 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: pulumi.Input<string | enums.ApimIdentityType>; /** * 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?: pulumi.Input<{ [key: string]: pulumi.Input<UserIdentityPropertiesArgs>; }>; } /** * API Management service resource SKU properties. */ export interface ApiManagementServiceSkuPropertiesArgs { /** * Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. */ capacity: pulumi.Input<number>; /** * Name of the Sku. */ name: pulumi.Input<string | enums.SkuType>; } /** * Control Plane Apis version constraint for the API Management service. */ export interface ApiVersionConstraintArgs { /** * Limit control plane API calls to API Management service with version equal to or newer than this value. */ minApiVersion?: pulumi.Input<string>; } /** * An API Version Set contains the common configuration for a set of API Versions relating */ export interface ApiVersionSetContractDetailsArgs { /** * Description of API Version Set. */ description?: pulumi.Input<string>; /** * Identifier for existing API Version Set. Omit this value to create a new Version Set. */ id?: pulumi.Input<string>; /** * The display Name of the API Version Set. */ name?: pulumi.Input<string>; /** * Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`. */ versionHeaderName?: pulumi.Input<string>; /** * Name of query parameter that indicates the API Version if versioningScheme is set to `query`. */ versionQueryName?: pulumi.Input<string>; /** * An value that determines where the API Version identifier will be located in a HTTP request. */ versioningScheme?: pulumi.Input<string | enums.VersioningScheme>; } /** * API Authentication Settings. */ export interface AuthenticationSettingsContractArgs { /** * OAuth2 Authentication settings */ oAuth2?: pulumi.Input<OAuth2AuthenticationSettingsContractArgs>; /** * Collection of OAuth2 authentication settings included into this API. */ oAuth2AuthenticationSettings?: pulumi.Input<pulumi.Input<OAuth2AuthenticationSettingsContractArgs>[]>; /** * OpenID Connect Authentication Settings */ openid?: pulumi.Input<OpenIdAuthenticationSettingsContractArgs>; /** * Collection of Open ID Connect authentication settings included into this API. */ openidAuthenticationSettings?: pulumi.Input<pulumi.Input<OpenIdAuthenticationSettingsContractArgs>[]>; } /** * Authorization error details. */ export interface AuthorizationErrorArgs { /** * Error code */ code?: pulumi.Input<string>; /** * Error message */ message?: pulumi.Input<string>; } /** * Authorization Provider oauth2 grant types settings */ export interface AuthorizationProviderOAuth2GrantTypesArgs { /** * OAuth2 authorization code grant parameters */ authorizationCode?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * OAuth2 client credential grant parameters */ clientCredentials?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; } /** * OAuth2 settings details */ export interface AuthorizationProviderOAuth2SettingsArgs { /** * OAuth2 settings */ grantTypes?: pulumi.Input<AuthorizationProviderOAuth2GrantTypesArgs>; /** * Redirect URL to be set in the OAuth application. */ redirectUrl?: pulumi.Input<string>; } /** * Authorization header information. */ export interface BackendAuthorizationHeaderCredentialsArgs { /** * Authentication Parameter value. */ parameter: pulumi.Input<string>; /** * Authentication Scheme name. */ scheme: pulumi.Input<string>; } /** * Details of the Credentials used to connect to Backend. */ export interface BackendCredentialsContractArgs { /** * Authorization header authentication */ authorization?: pulumi.Input<BackendAuthorizationHeaderCredentialsArgs>; /** * List of Client Certificate Thumbprints. Will be ignored if certificatesIds are provided. */ certificate?: pulumi.Input<pulumi.Input<string>[]>; /** * List of Client Certificate Ids. */ certificateIds?: pulumi.Input<pulumi.Input<string>[]>; /** * Header Parameter description. */ header?: pulumi.Input<{ [key: string]: pulumi.Input<pulumi.Input<string>[]>; }>; /** * Query Parameter description. */ query?: pulumi.Input<{ [key: string]: pulumi.Input<pulumi.Input<string>[]>; }>; } /** * Properties specific to the Backend Type. */ export interface BackendPropertiesArgs { /** * Backend Service Fabric Cluster Properties */ serviceFabricCluster?: pulumi.Input<BackendServiceFabricClusterPropertiesArgs>; } /** * Details of the Backend WebProxy Server to use in the Request to Backend. */ export interface BackendProxyContractArgs { /** * Password to connect to the WebProxy Server */ password?: pulumi.Input<string>; /** * WebProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings. */ url: pulumi.Input<string>; /** * Username to connect to the WebProxy server */ username?: pulumi.Input<string>; } /** * Properties of the Service Fabric Type Backend. */ export interface BackendServiceFabricClusterPropertiesArgs { /** * The client certificate id for the management endpoint. */ clientCertificateId?: pulumi.Input<string>; /** * The client certificate thumbprint for the management endpoint. Will be ignored if certificatesIds are provided */ clientCertificatethumbprint?: pulumi.Input<string>; /** * The cluster management endpoint. */ managementEndpoints: pulumi.Input<pulumi.Input<string>[]>; /** * Maximum number of retries while attempting resolve the partition. */ maxPartitionResolutionRetries?: pulumi.Input<number>; /** * Thumbprints of certificates cluster management service uses for tls communication */ serverCertificateThumbprints?: pulumi.Input<pulumi.Input<string>[]>; /** * Server X509 Certificate Names Collection */ serverX509Names?: pulumi.Input<pulumi.Input<X509CertificateNameArgs>[]>; } /** * Properties controlling TLS Certificate Validation. */ export interface BackendTlsPropertiesArgs { /** * Flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host. */ validateCertificateChain?: pulumi.Input<boolean>; /** * Flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host. */ validateCertificateName?: pulumi.Input<boolean>; } /** * backendTlsPropertiesArgsProvideDefaults sets the appropriate defaults for BackendTlsPropertiesArgs */ export declare function backendTlsPropertiesArgsProvideDefaults(val: BackendTlsPropertiesArgs): BackendTlsPropertiesArgs; /** * Body logging settings. */ export interface BodyDiagnosticSettingsArgs { /** * Number of request body bytes to log. */ bytes?: pulumi.Input<number>; } /** * Certificate configuration which consist of non-trusted intermediates and root certificates. */ export interface CertificateConfigurationArgs { /** * Certificate information. */ certificate?: pulumi.Input<CertificateInformationArgs>; /** * Certificate Password. */ certificatePassword?: pulumi.Input<string>; /** * Base64 Encoded certificate. */ encodedCertificate?: pulumi.Input<string>; /** * The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and CertificateAuthority are valid locations. */ storeName: pulumi.Input<string>; } /** * SSL certificate information. */ export interface CertificateInformationArgs { /** * 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: pulumi.Input<string>; /** * Subject of the certificate. */ subject: pulumi.Input<string>; /** * Thumbprint of the certificate. */ thumbprint: pulumi.Input<string>; } export interface DataMaskingArgs { /** * Masking settings for headers */ headers?: pulumi.Input<pulumi.Input<DataMaskingEntityArgs>[]>; /** * Masking settings for Url query parameters */ queryParams?: pulumi.Input<pulumi.Input<DataMaskingEntityArgs>[]>; } export interface DataMaskingEntityArgs { /** * Data masking mode. */ mode?: pulumi.Input<string | enums.DataMaskingMode>; /** * The name of an entity to mask (e.g. a name of a header or a query parameter). */ value?: pulumi.Input<string>; } /** * Email Template Parameter contract. */ export interface EmailTemplateParametersContractPropertiesArgs { /** * Template parameter description. */ description?: pulumi.Input<string>; /** * Template parameter name. */ name?: pulumi.Input<string>; /** * Template parameter title. */ title?: pulumi.Input<string>; } /** * Custom hostname configuration. */ export interface HostnameConfigurationArgs { /** * Certificate information. */ certificate?: pulumi.Input<CertificateInformationArgs>; /** * Certificate Password. */ certificatePassword?: pulumi.Input<string>; /** * Certificate Source. */ certificateSource?: pulumi.Input<string | enums.CertificateSource>; /** * Certificate Status. */ certificateStatus?: pulumi.Input<string | enums.CertificateStatus>; /** * 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?: pulumi.Input<boolean>; /** * Base64 Encoded certificate. */ encodedCertificate?: pulumi.Input<string>; /** * Hostname to configure on the Api Management service. */ hostName: pulumi.Input<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?: pulumi.Input<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?: pulumi.Input<string>; /** * Specify true to always negotiate client certificate on the hostname. Default Value is false. */ negotiateClientCertificate?: pulumi.Input<boolean>; /** * Hostname type. */ type: pulumi.Input<string | enums.HostnameType>; } /** * hostnameConfigurationArgsProvideDefaults sets the appropriate defaults for HostnameConfigurationArgs */ export declare function hostnameConfigurationArgsProvideDefaults(val: HostnameConfigurationArgs): HostnameConfigurationArgs; /** * Http message diagnostic settings. */ export interface HttpMessageDiagnosticArgs { /** * Body logging settings. */ body?: pulumi.Input<BodyDiagnosticSettingsArgs>; /** * Data masking settings. */ dataMasking?: pulumi.Input<DataMaskingArgs>; /** * Array of HTTP Headers to log. */ headers?: pulumi.Input<pulumi.Input<string>[]>; } /** * Create keyVault contract details. */ export interface KeyVaultContractCreatePropertiesArgs { /** * Null for SystemAssignedIdentity or Client Id for UserAssignedIdentity , which will be used to access key vault secret. */ identityClientId?: pulumi.Input<string>; /** * 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?: pulumi.Input<string>; } /** * API OAuth2 Authentication settings details. */ export interface OAuth2AuthenticationSettingsContractArgs { /** * OAuth authorization server identifier. */ authorizationServerId?: pulumi.Input<string>; /** * operations scope. */ scope?: pulumi.Input<string>; } /** * API OAuth2 Authentication settings details. */ export interface OpenIdAuthenticationSettingsContractArgs { /** * How to send token to the server. */ bearerTokenSendingMethods?: pulumi.Input<pulumi.Input<string | enums.BearerTokenSendingMethods>[]>; /** * OAuth authorization server identifier. */ openidProviderId?: pulumi.Input<string>; } /** * Operation parameters details. */ export interface ParameterContractArgs { /** * Default parameter value. */ defaultValue?: pulumi.Input<string>; /** * Parameter description. */ description?: pulumi.Input<string>; /** * Exampled defined for the parameter. */ examples?: pulumi.Input<{ [key: string]: pulumi.Input<ParameterExampleContractArgs>; }>; /** * Parameter name. */ name: pulumi.Input<string>; /** * Specifies whether parameter is required or not. */ required?: pulumi.Input<boolean>; /** * Schema identifier. */ schemaId?: pulumi.Input<string>; /** * Parameter type. */ type: pulumi.Input<string>; /** * Type name defined by the schema. */ typeName?: pulumi.Input<string>; /** * Parameter values. */ values?: pulumi.Input<pulumi.Input<string>[]>; } /** * Parameter example. */ export interface ParameterExampleContractArgs { /** * Long description for the example */ description?: pulumi.Input<string>; /** * A URL that points to the literal example */ externalValue?: pulumi.Input<string>; /** * Short description for the example */ summary?: pulumi.Input<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 PipelineDiagnosticSettingsArgs { /** * Diagnostic settings for request. */ request?: pulumi.Input<HttpMessageDiagnosticArgs>; /** * Diagnostic settings for response. */ response?: pulumi.Input<HttpMessageDiagnosticArgs>; } /** * The connection state of the private endpoint connection. */ export interface PrivateEndpointConnectionRequestPropertiesArgs { /** * A collection of information about the state of the connection between service consumer and provider. */ privateLinkServiceConnectionState?: pulumi.Input<PrivateLinkServiceConnectionStateArgs>; } /** * A collection of information about the state of the connection between service consumer and provider. */ export interface PrivateLinkServiceConnectionStateArgs { /** * A message indicating if changes on the service provider require any updates on the consumer. */ actionsRequired?: pulumi.Input<string>; /** * The reason for approval/rejection of the connection. */ description?: pulumi.Input<string>; /** * Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. */ status?: pulumi.Input<string | enums.PrivateEndpointServiceConnectionStatus>; } /** * Remote Private Endpoint Connection resource. */ export interface RemotePrivateEndpointConnectionWrapperArgs { /** * Private Endpoint connection resource id */ id?: pulumi.Input<string>; /** * Private Endpoint Connection Name */ name?: pulumi.Input<string>; /** * A collection of information about the state of the connection between service consumer and provider. */ privateLinkServiceConnectionState: pulumi.Input<PrivateLinkServiceConnectionStateArgs>; /** * Private Endpoint Connection Resource Type */ type?: pulumi.Input<string>; } /** * Operation request/response representation details. */ export interface RepresentationContractArgs { /** * Specifies a registered or custom content type for this representation, e.g. application/xml. */ contentType: pulumi.Input<string>; /** * Exampled defined for the representation. */ examples?: pulumi.Input<{ [key: string]: pulumi.Input<ParameterExampleContractArgs>; }>; /** * Collection of form parameters. Required if 'contentType' value is either 'application/x-www-form-urlencoded' or 'multipart/form-data'.. */ formParameters?: pulumi.Input<pulumi.Input<ParameterContractArgs>[]>; /** * Schema identifier. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'. */ schemaId?: pulumi.Input<string>; /** * Type name defined by the schema. Applicable only if 'contentType' value is neither 'application/x-www-form-urlencoded' nor 'multipart/form-data'. */ typeName?: pulumi.Input<string>; } /** * Operation request details. */ export interface RequestContractArgs { /** * Operation request description. */ description?: pulumi.Input<string>; /** * Collection of operation request headers. */ headers?: pulumi.Input<pulumi.Input<ParameterContractArgs>[]>; /** * Collection of operation request query parameters. */ queryParameters?: pulumi.Input<pulumi.Input<ParameterContractArgs>[]>; /** * Collection of operation request representations. */ representations?: pulumi.Input<pulumi.Input<RepresentationContractArgs>[]>; } /** * Resource location data properties. */ export interface ResourceLocationDataContractArgs { /** * The city or locality where the resource is located. */ city?: pulumi.Input<string>; /** * The country or region where the resource is located. */ countryOrRegion?: pulumi.Input<string>; /** * The district, state, or province where the resource is located. */ district?: pulumi.Input<string>; /** * A canonical name for the geographic or physical location. */ name: pulumi.Input<string>; } /** * Operation response details. */ export interface ResponseContractArgs { /** * Operation response description. */ description?: pulumi.Input<string>; /** * Collection of operation response headers. */ headers?: pulumi.Input<pulumi.Input<ParameterContractArgs>[]>; /** * Collection of operation response representations. */ representations?: pulumi.Input<pulumi.Input<RepresentationContractArgs>[]>; /** * Operation response HTTP status code. */ statusCode: pulumi.Input<number>; } /** * Sampling settings for Diagnostic. */ export interface SamplingSettingsArgs { /** * Rate of sampling for fixed-rate sampling. */ percentage?: pulumi.Input<number>; /** * Sampling type. */ samplingType?: pulumi.Input<string | enums.SamplingType>; } /** * Subscription key parameter names details. */ export interface SubscriptionKeyParameterNamesContractArgs { /** * Subscription key header name. */ header?: pulumi.Input<string>; /** * Subscription key query string parameter name. */ query?: pulumi.Input<string>; } /** * OAuth acquire token request body parameter (www-url-form-encoded). */ export interface TokenBodyParameterContractArgs { /** * body parameter name. */ name: pulumi.Input<string>; /** * body parameter value. */ value: pulumi.Input<string>; } /** * User identity details. */ export interface UserIdentityContractArgs { /** * Identifier value within provider. */ id?: pulumi.Input<string>; /** * Identity provider name. */ provider?: pulumi.Input<string>; } export interface UserIdentityPropertiesArgs { /** * The client id of user assigned identity. */ clientId?: pulumi.Input<string>; /** * The principal id of user assigned identity. */ principalId?: pulumi.Input<string>; } /** * Configuration of a virtual network to which API Management service is deployed. */ export interface VirtualNetworkConfigurationArgs { /** * The full resource ID of a subnet in a virtual network to deploy the API Management service in. */ subnetResourceId?: pulumi.Input<string>; } /** * Wiki documentation details. */ export interface WikiDocumentationContractArgs { /** * Documentation Identifier */ documentationId?: pulumi.Input<string>; } /** * Properties of server X509Names. */ export interface X509CertificateNameArgs { /** * Thumbprint for the Issuer of the Certificate. */ issuerCertificateThumbprint?: pulumi.Input<string>; /** * Common Name of the Certificate. */ name?: pulumi.Input<string>; }