UNPKG

@pulumi/f5bigip

Version:

A Pulumi package for creating and managing F5 BigIP resources.

413 lines (412 loc) 16.4 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * `f5bigip.FastHttpsApp` This resource will create and manage FAST HTTPS applications on BIG-IP * * [FAST documentation](https://clouddocs.f5.com/products/extensions/f5-appsvcs-templates/latest/) * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as f5bigip from "@pulumi/f5bigip"; * * const fastHttpsApp = new f5bigip.FastHttpsApp("fast_https_app", { * tenant: "fasthttpstenant", * application: "fasthttpsapp", * virtualServer: { * ip: "10.30.40.44", * port: 443, * }, * }); * ``` * * ### With Service Discovery * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as f5bigip from "@pulumi/f5bigip"; * * const TC3 = f5bigip.fast.getAzureServiceDiscovery({ * resourceGroup: "testazurerg", * subscriptionId: "testazuresid", * tagKey: "testazuretag", * tagValue: "testazurevalue", * }); * const TC3GetGceServiceDiscovery = f5bigip.fast.getGceServiceDiscovery({ * tagKey: "testgcetag", * tagValue: "testgcevalue", * region: "testgceregion", * }); * const fastHttpsApp = new f5bigip.FastHttpsApp("fast_https_app", { * tenant: "fasthttpstenant", * application: "fasthttpsapp", * virtualServer: { * ip: "10.30.40.44", * port: 443, * }, * poolMembers: [{ * addresses: [ * "10.11.40.120", * "10.11.30.121", * "10.11.30.122", * ], * port: 80, * }], * serviceDiscoveries: [ * TC3GetGceServiceDiscovery.then(TC3GetGceServiceDiscovery => TC3GetGceServiceDiscovery.gceSdJson), * TC3.then(TC3 => TC3.azureSdJson), * ], * }); * ``` */ export declare class FastHttpsApp extends pulumi.CustomResource { /** * Get an existing FastHttpsApp resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: FastHttpsAppState, opts?: pulumi.CustomResourceOptions): FastHttpsApp; /** * Returns true if the given object is an instance of FastHttpsApp. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is FastHttpsApp; /** * Name of the FAST HTTPS application. */ readonly application: pulumi.Output<string>; /** * List of LTM Policies to be applied FAST HTTPS Application. */ readonly endpointLtmPolicies: pulumi.Output<string[] | undefined>; /** * Name of an existing BIG-IP HTTPS pool monitor. Monitors are used to determine the health of the application on each server. */ readonly existingMonitor: pulumi.Output<string | undefined>; /** * Name of an existing BIG-IP pool. */ readonly existingPool: pulumi.Output<string | undefined>; /** * Name of an existing BIG-IP SNAT pool. */ readonly existingSnatPool: pulumi.Output<string | undefined>; /** * Name of an existing TLS client profile. */ readonly existingTlsClientProfile: pulumi.Output<string | undefined>; /** * Name of an existing TLS server profile. */ readonly existingTlsServerProfile: pulumi.Output<string | undefined>; /** * Name of an existing WAF Security policy. */ readonly existingWafSecurityPolicy: pulumi.Output<string | undefined>; /** * Type of fallback persistence record to be created for each new client connection. */ readonly fallbackPersistence: pulumi.Output<string | undefined>; /** * Json payload for FAST HTTPS application. */ readonly fastHttpsJson: pulumi.Output<string>; /** * A `load balancing method` is an algorithm that the BIG-IP system uses to select a pool member for processing a request. F5 recommends the Least Connections load balancing method */ readonly loadBalancingMode: pulumi.Output<string | undefined>; /** * `monitor` block takes input for FAST-Generated Pool Monitor. * See Pool Monitor below for more details. */ readonly monitor: pulumi.Output<outputs.FastHttpsAppMonitor | undefined>; /** * Name of an existing BIG-IP persistence profile to be used. */ readonly persistenceProfile: pulumi.Output<string | undefined>; /** * Type of persistence profile to be created. Using this option will enable use of FAST generated persistence profiles. */ readonly persistenceType: pulumi.Output<string | undefined>; /** * `poolMembers` block takes input for FAST-Generated Pool. * See Pool Members below for more details. */ readonly poolMembers: pulumi.Output<outputs.FastHttpsAppPoolMember[]>; /** * List of security log profiles to be used for FAST application */ readonly securityLogProfiles: pulumi.Output<string[] | undefined>; /** * List of different cloud service discovery config provided as string, provided `serviceDiscovery` block to Automatically Discover Pool Members with Service Discovery on different clouds. */ readonly serviceDiscoveries: pulumi.Output<string[] | undefined>; /** * Slow ramp temporarily throttles the number of connections to a new pool member. The recommended value is 300 seconds */ readonly slowRampTime: pulumi.Output<number | undefined>; /** * List of address to be used for FAST-Generated SNAT Pool. */ readonly snatPoolAddresses: pulumi.Output<string[] | undefined>; /** * Name of the FAST HTTPS application tenant. */ readonly tenant: pulumi.Output<string>; /** * `tlsClientProfile` block takes input for FAST-Generated TLS client Profile. * See TLS Client Profile below for more details. * * > **NOTE** Profile provided by `existingTlsClientProfile` or `tlsClientProfile` used for encrypt server-side connections. */ readonly tlsClientProfile: pulumi.Output<outputs.FastHttpsAppTlsClientProfile | undefined>; /** * `tlsServerProfile` block takes input for FAST-Generated TLS Server Profile. * See TLS Server Profile below for more details. * * > **NOTE** Profile provided by `existingTlsServerProfile` or `tlsServerProfile` used for decrypt client-side connections. */ readonly tlsServerProfile: pulumi.Output<outputs.FastHttpsAppTlsServerProfile | undefined>; /** * `virtualServer` block will provide `ip` and `port` options to be used for virtual server. * See virtual server below for more details. */ readonly virtualServer: pulumi.Output<outputs.FastHttpsAppVirtualServer | undefined>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ readonly wafSecurityPolicy: pulumi.Output<outputs.FastHttpsAppWafSecurityPolicy | undefined>; /** * Create a FastHttpsApp resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: FastHttpsAppArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FastHttpsApp resources. */ export interface FastHttpsAppState { /** * Name of the FAST HTTPS application. */ application?: pulumi.Input<string>; /** * List of LTM Policies to be applied FAST HTTPS Application. */ endpointLtmPolicies?: pulumi.Input<pulumi.Input<string>[]>; /** * Name of an existing BIG-IP HTTPS pool monitor. Monitors are used to determine the health of the application on each server. */ existingMonitor?: pulumi.Input<string>; /** * Name of an existing BIG-IP pool. */ existingPool?: pulumi.Input<string>; /** * Name of an existing BIG-IP SNAT pool. */ existingSnatPool?: pulumi.Input<string>; /** * Name of an existing TLS client profile. */ existingTlsClientProfile?: pulumi.Input<string>; /** * Name of an existing TLS server profile. */ existingTlsServerProfile?: pulumi.Input<string>; /** * Name of an existing WAF Security policy. */ existingWafSecurityPolicy?: pulumi.Input<string>; /** * Type of fallback persistence record to be created for each new client connection. */ fallbackPersistence?: pulumi.Input<string>; /** * Json payload for FAST HTTPS application. */ fastHttpsJson?: pulumi.Input<string>; /** * A `load balancing method` is an algorithm that the BIG-IP system uses to select a pool member for processing a request. F5 recommends the Least Connections load balancing method */ loadBalancingMode?: pulumi.Input<string>; /** * `monitor` block takes input for FAST-Generated Pool Monitor. * See Pool Monitor below for more details. */ monitor?: pulumi.Input<inputs.FastHttpsAppMonitor>; /** * Name of an existing BIG-IP persistence profile to be used. */ persistenceProfile?: pulumi.Input<string>; /** * Type of persistence profile to be created. Using this option will enable use of FAST generated persistence profiles. */ persistenceType?: pulumi.Input<string>; /** * `poolMembers` block takes input for FAST-Generated Pool. * See Pool Members below for more details. */ poolMembers?: pulumi.Input<pulumi.Input<inputs.FastHttpsAppPoolMember>[]>; /** * List of security log profiles to be used for FAST application */ securityLogProfiles?: pulumi.Input<pulumi.Input<string>[]>; /** * List of different cloud service discovery config provided as string, provided `serviceDiscovery` block to Automatically Discover Pool Members with Service Discovery on different clouds. */ serviceDiscoveries?: pulumi.Input<pulumi.Input<string>[]>; /** * Slow ramp temporarily throttles the number of connections to a new pool member. The recommended value is 300 seconds */ slowRampTime?: pulumi.Input<number>; /** * List of address to be used for FAST-Generated SNAT Pool. */ snatPoolAddresses?: pulumi.Input<pulumi.Input<string>[]>; /** * Name of the FAST HTTPS application tenant. */ tenant?: pulumi.Input<string>; /** * `tlsClientProfile` block takes input for FAST-Generated TLS client Profile. * See TLS Client Profile below for more details. * * > **NOTE** Profile provided by `existingTlsClientProfile` or `tlsClientProfile` used for encrypt server-side connections. */ tlsClientProfile?: pulumi.Input<inputs.FastHttpsAppTlsClientProfile>; /** * `tlsServerProfile` block takes input for FAST-Generated TLS Server Profile. * See TLS Server Profile below for more details. * * > **NOTE** Profile provided by `existingTlsServerProfile` or `tlsServerProfile` used for decrypt client-side connections. */ tlsServerProfile?: pulumi.Input<inputs.FastHttpsAppTlsServerProfile>; /** * `virtualServer` block will provide `ip` and `port` options to be used for virtual server. * See virtual server below for more details. */ virtualServer?: pulumi.Input<inputs.FastHttpsAppVirtualServer>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ wafSecurityPolicy?: pulumi.Input<inputs.FastHttpsAppWafSecurityPolicy>; } /** * The set of arguments for constructing a FastHttpsApp resource. */ export interface FastHttpsAppArgs { /** * Name of the FAST HTTPS application. */ application: pulumi.Input<string>; /** * List of LTM Policies to be applied FAST HTTPS Application. */ endpointLtmPolicies?: pulumi.Input<pulumi.Input<string>[]>; /** * Name of an existing BIG-IP HTTPS pool monitor. Monitors are used to determine the health of the application on each server. */ existingMonitor?: pulumi.Input<string>; /** * Name of an existing BIG-IP pool. */ existingPool?: pulumi.Input<string>; /** * Name of an existing BIG-IP SNAT pool. */ existingSnatPool?: pulumi.Input<string>; /** * Name of an existing TLS client profile. */ existingTlsClientProfile?: pulumi.Input<string>; /** * Name of an existing TLS server profile. */ existingTlsServerProfile?: pulumi.Input<string>; /** * Name of an existing WAF Security policy. */ existingWafSecurityPolicy?: pulumi.Input<string>; /** * Type of fallback persistence record to be created for each new client connection. */ fallbackPersistence?: pulumi.Input<string>; /** * A `load balancing method` is an algorithm that the BIG-IP system uses to select a pool member for processing a request. F5 recommends the Least Connections load balancing method */ loadBalancingMode?: pulumi.Input<string>; /** * `monitor` block takes input for FAST-Generated Pool Monitor. * See Pool Monitor below for more details. */ monitor?: pulumi.Input<inputs.FastHttpsAppMonitor>; /** * Name of an existing BIG-IP persistence profile to be used. */ persistenceProfile?: pulumi.Input<string>; /** * Type of persistence profile to be created. Using this option will enable use of FAST generated persistence profiles. */ persistenceType?: pulumi.Input<string>; /** * `poolMembers` block takes input for FAST-Generated Pool. * See Pool Members below for more details. */ poolMembers?: pulumi.Input<pulumi.Input<inputs.FastHttpsAppPoolMember>[]>; /** * List of security log profiles to be used for FAST application */ securityLogProfiles?: pulumi.Input<pulumi.Input<string>[]>; /** * List of different cloud service discovery config provided as string, provided `serviceDiscovery` block to Automatically Discover Pool Members with Service Discovery on different clouds. */ serviceDiscoveries?: pulumi.Input<pulumi.Input<string>[]>; /** * Slow ramp temporarily throttles the number of connections to a new pool member. The recommended value is 300 seconds */ slowRampTime?: pulumi.Input<number>; /** * List of address to be used for FAST-Generated SNAT Pool. */ snatPoolAddresses?: pulumi.Input<pulumi.Input<string>[]>; /** * Name of the FAST HTTPS application tenant. */ tenant: pulumi.Input<string>; /** * `tlsClientProfile` block takes input for FAST-Generated TLS client Profile. * See TLS Client Profile below for more details. * * > **NOTE** Profile provided by `existingTlsClientProfile` or `tlsClientProfile` used for encrypt server-side connections. */ tlsClientProfile?: pulumi.Input<inputs.FastHttpsAppTlsClientProfile>; /** * `tlsServerProfile` block takes input for FAST-Generated TLS Server Profile. * See TLS Server Profile below for more details. * * > **NOTE** Profile provided by `existingTlsServerProfile` or `tlsServerProfile` used for decrypt client-side connections. */ tlsServerProfile?: pulumi.Input<inputs.FastHttpsAppTlsServerProfile>; /** * `virtualServer` block will provide `ip` and `port` options to be used for virtual server. * See virtual server below for more details. */ virtualServer?: pulumi.Input<inputs.FastHttpsAppVirtualServer>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ wafSecurityPolicy?: pulumi.Input<inputs.FastHttpsAppWafSecurityPolicy>; }