@kengachu-pulumi/azure-native-apimanagement
Version:
Pulumi Azure Native package for apimanagement
830 lines (829 loc) • 25.2 kB
TypeScript
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>;
}