UNPKG

@pulumi/f5bigip

Version:

A Pulumi package for creating and managing F5 BigIP resources.

347 lines (346 loc) • 13.4 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * `f5bigip.FastHttpApp` This resource will create and manage FAST HTTP 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 fastHttpApp = new f5bigip.FastHttpApp("fast_http_app", { * tenant: "fasthttptenant", * application: "fasthttpapp", * virtualServer: { * ip: "10.30.30.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.FastHttpApp("fast_https_app", { * tenant: "fasthttptenant", * application: "fasthttpapp", * 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 FastHttpApp extends pulumi.CustomResource { /** * Get an existing FastHttpApp 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?: FastHttpAppState, opts?: pulumi.CustomResourceOptions): FastHttpApp; /** * Returns true if the given object is an instance of FastHttpApp. 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 FastHttpApp; /** * Name of the FAST HTTPS application. */ readonly application: pulumi.Output<string>; /** * List of LTM Policies to be applied FAST HTTP 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>; /** * Select 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 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 HTTP application. */ readonly fastHttpJson: 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.FastHttpAppMonitor | 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.FastHttpAppPoolMember[]>; /** * 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>; /** * `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.FastHttpAppVirtualServer | undefined>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ readonly wafSecurityPolicy: pulumi.Output<outputs.FastHttpAppWafSecurityPolicy | undefined>; /** * Create a FastHttpApp 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: FastHttpAppArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FastHttpApp resources. */ export interface FastHttpAppState { /** * Name of the FAST HTTPS application. */ application?: pulumi.Input<string>; /** * List of LTM Policies to be applied FAST HTTP 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>; /** * Select 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 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 HTTP application. */ fastHttpJson?: 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.FastHttpAppMonitor>; /** * 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.FastHttpAppPoolMember>[]>; /** * 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>; /** * `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.FastHttpAppVirtualServer>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ wafSecurityPolicy?: pulumi.Input<inputs.FastHttpAppWafSecurityPolicy>; } /** * The set of arguments for constructing a FastHttpApp resource. */ export interface FastHttpAppArgs { /** * Name of the FAST HTTPS application. */ application: pulumi.Input<string>; /** * List of LTM Policies to be applied FAST HTTP 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>; /** * Select 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 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.FastHttpAppMonitor>; /** * 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.FastHttpAppPoolMember>[]>; /** * 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>; /** * `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.FastHttpAppVirtualServer>; /** * `wafSecurityPolicy` block takes input for FAST-Generated WAF Security Policy. * See WAF Security Policy below for more details. */ wafSecurityPolicy?: pulumi.Input<inputs.FastHttpAppWafSecurityPolicy>; }