This repository has been archived by the owner on Dec 24, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
connect.ts
235 lines (225 loc) · 8.43 KB
/
connect.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
// *** 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";
import {Facility} from "./index";
/**
* Provides a resource for [Packet Connect](https://www.packet.com/cloud/all-features/packet-connect/), a link between Packet VLANs and VLANs in other cloud providers.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as packet from "@pulumi/packet";
*
* const vlan1 = new packet.Vlan("vlan1", {
* description: "VLAN in New Jersey",
* facility: "ewr1",
* projectId: local_project_id,
* });
* const myExpressroute = new packet.Connect("myExpressroute", {
* facility: "ewr1",
* name: "test",
* portSpeed: 100,
* projectId: local_project_id,
* // provider ID for Azure ExpressRoute is ed5de8e0-77a9-4d3b-9de0-65281d3aa831
* providerId: "ed5de8e0-77a9-4d3b-9de0-65281d3aa831",
* // providerPayload for Azure ExpressRoute provider is your ExpressRoute
* // authorization key (in UUID format)
* providerPayload: "58b4ec12-af34-4435-5435-db3bde4a4b3a",
* vxlan: vlan1.vxlan,
* });
* ```
*
* > This content is derived from https://github.com/terraform-providers/terraform-provider-packet/blob/master/website/docs/r/connect.html.markdown.
*/
export class Connect extends pulumi.CustomResource {
/**
* Get an existing Connect 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?: ConnectState, opts?: pulumi.CustomResourceOptions): Connect {
return new Connect(name, <any>state, { ...opts, id: id });
}
/** @internal */
public static readonly __pulumiType = 'packet:index/connect:Connect';
/**
* Returns true if the given object is an instance of Connect. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
public static isInstance(obj: any): obj is Connect {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Connect.__pulumiType;
}
/**
* Facility where to create the VLAN
*/
public readonly facility!: pulumi.Output<Facility>;
/**
* Name for the Connect resource
*/
public readonly name!: pulumi.Output<string>;
/**
* Port speed in Mbps
*/
public readonly portSpeed!: pulumi.Output<number>;
/**
* ID of parent project
*/
public readonly projectId!: pulumi.Output<string>;
/**
* ID of Connect Provider. Provider IDs are
* * Azure ExpressRoute - "ed5de8e0-77a9-4d3b-9de0-65281d3aa831"
*/
public readonly providerId!: pulumi.Output<string>;
/**
* Authorization key for the Connect provider
*/
public readonly providerPayload!: pulumi.Output<string>;
/**
* Status of the Connect resource, one of PROVISIONING, PROVISIONED, DEPROVISIONING, DEPROVISIONED
*/
public /*out*/ readonly status!: pulumi.Output<string>;
/**
* VXLAN Network identifier of the linked Packet VLAN
*/
public readonly vxlan!: pulumi.Output<number>;
/**
* Create a Connect 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: ConnectArgs, opts?: pulumi.CustomResourceOptions)
constructor(name: string, argsOrState?: ConnectArgs | ConnectState, opts?: pulumi.CustomResourceOptions) {
let inputs: pulumi.Inputs = {};
if (opts && opts.id) {
const state = argsOrState as ConnectState | undefined;
inputs["facility"] = state ? state.facility : undefined;
inputs["name"] = state ? state.name : undefined;
inputs["portSpeed"] = state ? state.portSpeed : undefined;
inputs["projectId"] = state ? state.projectId : undefined;
inputs["providerId"] = state ? state.providerId : undefined;
inputs["providerPayload"] = state ? state.providerPayload : undefined;
inputs["status"] = state ? state.status : undefined;
inputs["vxlan"] = state ? state.vxlan : undefined;
} else {
const args = argsOrState as ConnectArgs | undefined;
if (!args || args.facility === undefined) {
throw new Error("Missing required property 'facility'");
}
if (!args || args.name === undefined) {
throw new Error("Missing required property 'name'");
}
if (!args || args.portSpeed === undefined) {
throw new Error("Missing required property 'portSpeed'");
}
if (!args || args.projectId === undefined) {
throw new Error("Missing required property 'projectId'");
}
if (!args || args.providerId === undefined) {
throw new Error("Missing required property 'providerId'");
}
if (!args || args.providerPayload === undefined) {
throw new Error("Missing required property 'providerPayload'");
}
if (!args || args.vxlan === undefined) {
throw new Error("Missing required property 'vxlan'");
}
inputs["facility"] = args ? args.facility : undefined;
inputs["name"] = args ? args.name : undefined;
inputs["portSpeed"] = args ? args.portSpeed : undefined;
inputs["projectId"] = args ? args.projectId : undefined;
inputs["providerId"] = args ? args.providerId : undefined;
inputs["providerPayload"] = args ? args.providerPayload : undefined;
inputs["vxlan"] = args ? args.vxlan : undefined;
inputs["status"] = undefined /*out*/;
}
if (!opts) {
opts = {}
}
if (!opts.version) {
opts.version = utilities.getVersion();
}
super(Connect.__pulumiType, name, inputs, opts);
}
}
/**
* Input properties used for looking up and filtering Connect resources.
*/
export interface ConnectState {
/**
* Facility where to create the VLAN
*/
readonly facility?: pulumi.Input<Facility>;
/**
* Name for the Connect resource
*/
readonly name?: pulumi.Input<string>;
/**
* Port speed in Mbps
*/
readonly portSpeed?: pulumi.Input<number>;
/**
* ID of parent project
*/
readonly projectId?: pulumi.Input<string>;
/**
* ID of Connect Provider. Provider IDs are
* * Azure ExpressRoute - "ed5de8e0-77a9-4d3b-9de0-65281d3aa831"
*/
readonly providerId?: pulumi.Input<string>;
/**
* Authorization key for the Connect provider
*/
readonly providerPayload?: pulumi.Input<string>;
/**
* Status of the Connect resource, one of PROVISIONING, PROVISIONED, DEPROVISIONING, DEPROVISIONED
*/
readonly status?: pulumi.Input<string>;
/**
* VXLAN Network identifier of the linked Packet VLAN
*/
readonly vxlan?: pulumi.Input<number>;
}
/**
* The set of arguments for constructing a Connect resource.
*/
export interface ConnectArgs {
/**
* Facility where to create the VLAN
*/
readonly facility: pulumi.Input<Facility>;
/**
* Name for the Connect resource
*/
readonly name: pulumi.Input<string>;
/**
* Port speed in Mbps
*/
readonly portSpeed: pulumi.Input<number>;
/**
* ID of parent project
*/
readonly projectId: pulumi.Input<string>;
/**
* ID of Connect Provider. Provider IDs are
* * Azure ExpressRoute - "ed5de8e0-77a9-4d3b-9de0-65281d3aa831"
*/
readonly providerId: pulumi.Input<string>;
/**
* Authorization key for the Connect provider
*/
readonly providerPayload: pulumi.Input<string>;
/**
* VXLAN Network identifier of the linked Packet VLAN
*/
readonly vxlan: pulumi.Input<number>;
}