@pulumi/f5bigip
Version:
A Pulumi package for creating and managing F5 BigIP resources.
413 lines (412 loc) • 16.4 kB
TypeScript
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>;
}