-
Notifications
You must be signed in to change notification settings - Fork 3
/
virtualServer.ts
351 lines (345 loc) · 15.9 KB
/
virtualServer.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
import * as pulumi from "@pulumi/pulumi";
import * as utilities from "../utilities";
/**
* `bigip_ltm_virtual_server` Configures Virtual Server
*
* For resources should be named with their "full path". The full path is the combination of the partition + name of the resource. For example /Common/my-pool.
*
*
* ## Example Usage
*
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as f5bigip from "@pulumi/f5bigip";
*
* const http = new f5bigip.ltm.VirtualServer("http", {
* destination: "10.12.12.12",
* name: "/Common/terraform_vs_http",
* pool: "/Common/the-default-pool",
* port: 80,
* });
* // A Virtual server with separate client and server profiles
* const https = new f5bigip.ltm.VirtualServer("https", {
* clientProfiles: ["/Common/clientssl"],
* destination: "10.255.255.254",
* name: "/Common/terraform_vs_https",
* port: 443,
* serverProfiles: ["/Common/serverssl"],
* sourceAddressTranslation: "automap",
* });
* ```
*/
export class VirtualServer extends pulumi.CustomResource {
/**
* Get an existing VirtualServer 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.
*/
public static get(name: string, id: pulumi.Input<pulumi.ID>, state?: VirtualServerState, opts?: pulumi.CustomResourceOptions): VirtualServer {
return new VirtualServer(name, <any>state, { ...opts, id: id });
}
/**
* List of client context profiles associated on the virtual server. Not mutually exclusive with profiles and server_profiles
*/
public readonly clientProfiles!: pulumi.Output<string[]>;
/**
* Destination IP
*/
public readonly destination!: pulumi.Output<string>;
/**
* Specifies a fallback persistence profile for the Virtual Server to use when the default persistence profile is not available.
*/
public readonly fallbackPersistenceProfile!: pulumi.Output<string>;
/**
* all, tcp, udp
*/
public readonly ipProtocol!: pulumi.Output<string>;
public readonly irules!: pulumi.Output<string[] | undefined>;
/**
* Mask can either be in CIDR notation or decimal, i.e.: 24 or 255.255.255.0. A CIDR mask of 0 is the same as 0.0.0.0
*/
public readonly mask!: pulumi.Output<string | undefined>;
/**
* Name of the virtual server
*/
public readonly name!: pulumi.Output<string>;
/**
* List of persistence profiles associated with the Virtual Server.
*/
public readonly persistenceProfiles!: pulumi.Output<string[]>;
public readonly policies!: pulumi.Output<string[] | undefined>;
/**
* Default pool name
*/
public readonly pool!: pulumi.Output<string | undefined>;
/**
* Listen port for the virtual server
*/
public readonly port!: pulumi.Output<number>;
/**
* List of profiles associated both client and server contexts on the virtual server. This includes protocol, ssl, http, etc.
*/
public readonly profiles!: pulumi.Output<string[]>;
/**
* List of server context profiles associated on the virtual server. Not mutually exclusive with profiles and client_profiles
*/
public readonly serverProfiles!: pulumi.Output<string[]>;
/**
* Specifies the name of an existing SNAT pool that you want the virtual server to use to implement selective and intelligent SNATs. DEPRECATED - see Virtual Server Property Groups source-address-translation
*/
public readonly snatpool!: pulumi.Output<string>;
/**
* Specifies an IP address or network from which the virtual server will accept traffic.
*/
public readonly source!: pulumi.Output<string | undefined>;
/**
* Can be either omitted for none or the values automap or snat
*/
public readonly sourceAddressTranslation!: pulumi.Output<string>;
/**
* Enables or disables address translation for the virtual server. Turn address translation off for a virtual server if you want to use the virtual server to load balance connections to any address. This option is useful when the system is load balancing devices that have the same IP address.
*/
public readonly translateAddress!: pulumi.Output<string>;
/**
* Enables or disables port translation. Turn port translation off for a virtual server if you want to use the virtual server to load balance connections to any service
*/
public readonly translatePort!: pulumi.Output<string>;
/**
* The virtual server is enabled/disabled on this set of VLANs. See vlans-disabled and vlans-enabled.
*/
public readonly vlans!: pulumi.Output<string[] | undefined>;
/**
* Enables the virtual server on the VLANs specified by the VLANs option.
*/
public readonly vlansEnabled!: pulumi.Output<boolean>;
/**
* Create a VirtualServer 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: VirtualServerArgs, opts?: pulumi.CustomResourceOptions)
constructor(name: string, argsOrState?: VirtualServerArgs | VirtualServerState, opts?: pulumi.CustomResourceOptions) {
let inputs: pulumi.Inputs = {};
if (opts && opts.id) {
const state = argsOrState as VirtualServerState | undefined;
inputs["clientProfiles"] = state ? state.clientProfiles : undefined;
inputs["destination"] = state ? state.destination : undefined;
inputs["fallbackPersistenceProfile"] = state ? state.fallbackPersistenceProfile : undefined;
inputs["ipProtocol"] = state ? state.ipProtocol : undefined;
inputs["irules"] = state ? state.irules : undefined;
inputs["mask"] = state ? state.mask : undefined;
inputs["name"] = state ? state.name : undefined;
inputs["persistenceProfiles"] = state ? state.persistenceProfiles : undefined;
inputs["policies"] = state ? state.policies : undefined;
inputs["pool"] = state ? state.pool : undefined;
inputs["port"] = state ? state.port : undefined;
inputs["profiles"] = state ? state.profiles : undefined;
inputs["serverProfiles"] = state ? state.serverProfiles : undefined;
inputs["snatpool"] = state ? state.snatpool : undefined;
inputs["source"] = state ? state.source : undefined;
inputs["sourceAddressTranslation"] = state ? state.sourceAddressTranslation : undefined;
inputs["translateAddress"] = state ? state.translateAddress : undefined;
inputs["translatePort"] = state ? state.translatePort : undefined;
inputs["vlans"] = state ? state.vlans : undefined;
inputs["vlansEnabled"] = state ? state.vlansEnabled : undefined;
} else {
const args = argsOrState as VirtualServerArgs | undefined;
if (!args || args.destination === undefined) {
throw new Error("Missing required property 'destination'");
}
if (!args || args.name === undefined) {
throw new Error("Missing required property 'name'");
}
if (!args || args.port === undefined) {
throw new Error("Missing required property 'port'");
}
inputs["clientProfiles"] = args ? args.clientProfiles : undefined;
inputs["destination"] = args ? args.destination : undefined;
inputs["fallbackPersistenceProfile"] = args ? args.fallbackPersistenceProfile : undefined;
inputs["ipProtocol"] = args ? args.ipProtocol : undefined;
inputs["irules"] = args ? args.irules : undefined;
inputs["mask"] = args ? args.mask : undefined;
inputs["name"] = args ? args.name : undefined;
inputs["persistenceProfiles"] = args ? args.persistenceProfiles : undefined;
inputs["policies"] = args ? args.policies : undefined;
inputs["pool"] = args ? args.pool : undefined;
inputs["port"] = args ? args.port : undefined;
inputs["profiles"] = args ? args.profiles : undefined;
inputs["serverProfiles"] = args ? args.serverProfiles : undefined;
inputs["snatpool"] = args ? args.snatpool : undefined;
inputs["source"] = args ? args.source : undefined;
inputs["sourceAddressTranslation"] = args ? args.sourceAddressTranslation : undefined;
inputs["translateAddress"] = args ? args.translateAddress : undefined;
inputs["translatePort"] = args ? args.translatePort : undefined;
inputs["vlans"] = args ? args.vlans : undefined;
inputs["vlansEnabled"] = args ? args.vlansEnabled : undefined;
}
super("f5bigip:ltm/virtualServer:VirtualServer", name, inputs, opts);
}
}
/**
* Input properties used for looking up and filtering VirtualServer resources.
*/
export interface VirtualServerState {
/**
* List of client context profiles associated on the virtual server. Not mutually exclusive with profiles and server_profiles
*/
readonly clientProfiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Destination IP
*/
readonly destination?: pulumi.Input<string>;
/**
* Specifies a fallback persistence profile for the Virtual Server to use when the default persistence profile is not available.
*/
readonly fallbackPersistenceProfile?: pulumi.Input<string>;
/**
* all, tcp, udp
*/
readonly ipProtocol?: pulumi.Input<string>;
readonly irules?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Mask can either be in CIDR notation or decimal, i.e.: 24 or 255.255.255.0. A CIDR mask of 0 is the same as 0.0.0.0
*/
readonly mask?: pulumi.Input<string>;
/**
* Name of the virtual server
*/
readonly name?: pulumi.Input<string>;
/**
* List of persistence profiles associated with the Virtual Server.
*/
readonly persistenceProfiles?: pulumi.Input<pulumi.Input<string>[]>;
readonly policies?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Default pool name
*/
readonly pool?: pulumi.Input<string>;
/**
* Listen port for the virtual server
*/
readonly port?: pulumi.Input<number>;
/**
* List of profiles associated both client and server contexts on the virtual server. This includes protocol, ssl, http, etc.
*/
readonly profiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* List of server context profiles associated on the virtual server. Not mutually exclusive with profiles and client_profiles
*/
readonly serverProfiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Specifies the name of an existing SNAT pool that you want the virtual server to use to implement selective and intelligent SNATs. DEPRECATED - see Virtual Server Property Groups source-address-translation
*/
readonly snatpool?: pulumi.Input<string>;
/**
* Specifies an IP address or network from which the virtual server will accept traffic.
*/
readonly source?: pulumi.Input<string>;
/**
* Can be either omitted for none or the values automap or snat
*/
readonly sourceAddressTranslation?: pulumi.Input<string>;
/**
* Enables or disables address translation for the virtual server. Turn address translation off for a virtual server if you want to use the virtual server to load balance connections to any address. This option is useful when the system is load balancing devices that have the same IP address.
*/
readonly translateAddress?: pulumi.Input<string>;
/**
* Enables or disables port translation. Turn port translation off for a virtual server if you want to use the virtual server to load balance connections to any service
*/
readonly translatePort?: pulumi.Input<string>;
/**
* The virtual server is enabled/disabled on this set of VLANs. See vlans-disabled and vlans-enabled.
*/
readonly vlans?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Enables the virtual server on the VLANs specified by the VLANs option.
*/
readonly vlansEnabled?: pulumi.Input<boolean>;
}
/**
* The set of arguments for constructing a VirtualServer resource.
*/
export interface VirtualServerArgs {
/**
* List of client context profiles associated on the virtual server. Not mutually exclusive with profiles and server_profiles
*/
readonly clientProfiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Destination IP
*/
readonly destination: pulumi.Input<string>;
/**
* Specifies a fallback persistence profile for the Virtual Server to use when the default persistence profile is not available.
*/
readonly fallbackPersistenceProfile?: pulumi.Input<string>;
/**
* all, tcp, udp
*/
readonly ipProtocol?: pulumi.Input<string>;
readonly irules?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Mask can either be in CIDR notation or decimal, i.e.: 24 or 255.255.255.0. A CIDR mask of 0 is the same as 0.0.0.0
*/
readonly mask?: pulumi.Input<string>;
/**
* Name of the virtual server
*/
readonly name: pulumi.Input<string>;
/**
* List of persistence profiles associated with the Virtual Server.
*/
readonly persistenceProfiles?: pulumi.Input<pulumi.Input<string>[]>;
readonly policies?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Default pool name
*/
readonly pool?: pulumi.Input<string>;
/**
* Listen port for the virtual server
*/
readonly port: pulumi.Input<number>;
/**
* List of profiles associated both client and server contexts on the virtual server. This includes protocol, ssl, http, etc.
*/
readonly profiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* List of server context profiles associated on the virtual server. Not mutually exclusive with profiles and client_profiles
*/
readonly serverProfiles?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Specifies the name of an existing SNAT pool that you want the virtual server to use to implement selective and intelligent SNATs. DEPRECATED - see Virtual Server Property Groups source-address-translation
*/
readonly snatpool?: pulumi.Input<string>;
/**
* Specifies an IP address or network from which the virtual server will accept traffic.
*/
readonly source?: pulumi.Input<string>;
/**
* Can be either omitted for none or the values automap or snat
*/
readonly sourceAddressTranslation?: pulumi.Input<string>;
/**
* Enables or disables address translation for the virtual server. Turn address translation off for a virtual server if you want to use the virtual server to load balance connections to any address. This option is useful when the system is load balancing devices that have the same IP address.
*/
readonly translateAddress?: pulumi.Input<string>;
/**
* Enables or disables port translation. Turn port translation off for a virtual server if you want to use the virtual server to load balance connections to any service
*/
readonly translatePort?: pulumi.Input<string>;
/**
* The virtual server is enabled/disabled on this set of VLANs. See vlans-disabled and vlans-enabled.
*/
readonly vlans?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Enables the virtual server on the VLANs specified by the VLANs option.
*/
readonly vlansEnabled?: pulumi.Input<boolean>;
}