@pierskarsenbarg/sdm 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account.d.ts +1 -1
- package/account.js +1 -1
- package/accountAttachment.d.ts +1 -1
- package/accountAttachment.js +1 -1
- package/getWorkflow.d.ts +131 -0
- package/getWorkflow.js +57 -0
- package/getWorkflow.js.map +1 -0
- package/getWorkflowApprover.d.ts +91 -0
- package/getWorkflowApprover.js +50 -0
- package/getWorkflowApprover.js.map +1 -0
- package/getWorkflowRole.d.ts +93 -0
- package/getWorkflowRole.js +52 -0
- package/getWorkflowRole.js.map +1 -0
- package/index.d.ts +18 -0
- package/index.js +25 -1
- package/index.js.map +1 -1
- package/node.d.ts +1 -1
- package/node.js +1 -1
- package/package.json +2 -3
- package/package.json.bak +1 -2
- package/peeringGroup.d.ts +1 -1
- package/peeringGroup.js +1 -1
- package/peeringGroupNode.d.ts +1 -1
- package/peeringGroupNode.js +1 -1
- package/peeringGroupPeer.d.ts +1 -1
- package/peeringGroupPeer.js +1 -1
- package/peeringGroupResource.d.ts +1 -1
- package/peeringGroupResource.js +1 -1
- package/remoteIdentity.d.ts +1 -1
- package/remoteIdentity.js +1 -1
- package/resource.d.ts +22 -40
- package/resource.js +5 -1
- package/resource.js.map +1 -1
- package/role.d.ts +1 -1
- package/role.js +1 -1
- package/secretStore.d.ts +1 -1
- package/secretStore.js +1 -1
- package/types/input.d.ts +124 -0
- package/types/output.d.ts +316 -0
- package/workflow.d.ts +148 -0
- package/workflow.js +99 -0
- package/workflow.js.map +1 -0
- package/workflowApprover.d.ts +83 -0
- package/workflowApprover.js +80 -0
- package/workflowApprover.js.map +1 -0
- package/workflowRole.d.ts +84 -0
- package/workflowRole.js +81 -0
- package/workflowRole.js.map +1 -0
- package/scripts/install-pulumi-plugin.js +0 -26
package/types/output.d.ts
CHANGED
|
@@ -317,6 +317,7 @@ export interface GetResourceResource {
|
|
|
317
317
|
athenas: outputs.GetResourceResourceAthena[];
|
|
318
318
|
auroraMysqls: outputs.GetResourceResourceAuroraMysql[];
|
|
319
319
|
auroraPostgres: outputs.GetResourceResourceAuroraPostgre[];
|
|
320
|
+
auroraPostgresIams: outputs.GetResourceResourceAuroraPostgresIam[];
|
|
320
321
|
aws: outputs.GetResourceResourceAw[];
|
|
321
322
|
awsConsoleStaticKeyPairs: outputs.GetResourceResourceAwsConsoleStaticKeyPair[];
|
|
322
323
|
awsConsoles: outputs.GetResourceResourceAwsConsole[];
|
|
@@ -369,6 +370,7 @@ export interface GetResourceResource {
|
|
|
369
370
|
rabbitmqAmqp091s: outputs.GetResourceResourceRabbitmqAmqp091[];
|
|
370
371
|
rawTcps: outputs.GetResourceResourceRawTcp[];
|
|
371
372
|
rdps: outputs.GetResourceResourceRdp[];
|
|
373
|
+
rdsPostgresIams: outputs.GetResourceResourceRdsPostgresIam[];
|
|
372
374
|
redis: outputs.GetResourceResourceRedi[];
|
|
373
375
|
redshifts: outputs.GetResourceResourceRedshift[];
|
|
374
376
|
singleStores: outputs.GetResourceResourceSingleStore[];
|
|
@@ -1279,6 +1281,70 @@ export interface GetResourceResourceAuroraPostgre {
|
|
|
1279
1281
|
*/
|
|
1280
1282
|
username?: string;
|
|
1281
1283
|
}
|
|
1284
|
+
export interface GetResourceResourceAuroraPostgresIam {
|
|
1285
|
+
/**
|
|
1286
|
+
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
1287
|
+
*/
|
|
1288
|
+
bindInterface?: string;
|
|
1289
|
+
/**
|
|
1290
|
+
* The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
|
1291
|
+
*/
|
|
1292
|
+
database?: string;
|
|
1293
|
+
/**
|
|
1294
|
+
* A filter applied to the routing logic to pin datasource to nodes.
|
|
1295
|
+
*/
|
|
1296
|
+
egressFilter?: string;
|
|
1297
|
+
/**
|
|
1298
|
+
* The host to dial to initiate a connection from the egress node to this resource.
|
|
1299
|
+
*/
|
|
1300
|
+
hostname?: string;
|
|
1301
|
+
/**
|
|
1302
|
+
* Unique identifier of the Resource.
|
|
1303
|
+
*/
|
|
1304
|
+
id?: string;
|
|
1305
|
+
/**
|
|
1306
|
+
* Unique human-readable name of the Resource.
|
|
1307
|
+
*/
|
|
1308
|
+
name?: string;
|
|
1309
|
+
/**
|
|
1310
|
+
* If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
|
1311
|
+
*/
|
|
1312
|
+
overrideDatabase?: boolean;
|
|
1313
|
+
/**
|
|
1314
|
+
* The port to dial to initiate a connection from the egress node to this resource.
|
|
1315
|
+
*/
|
|
1316
|
+
port?: number;
|
|
1317
|
+
/**
|
|
1318
|
+
* The local port used by clients to connect to this resource.
|
|
1319
|
+
*/
|
|
1320
|
+
portOverride?: number;
|
|
1321
|
+
/**
|
|
1322
|
+
* The AWS region to connect to.
|
|
1323
|
+
*/
|
|
1324
|
+
region?: string;
|
|
1325
|
+
/**
|
|
1326
|
+
* If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
|
1327
|
+
*/
|
|
1328
|
+
roleAssumptionArn?: string;
|
|
1329
|
+
/**
|
|
1330
|
+
* ID of the secret store containing credentials for this resource, if any.
|
|
1331
|
+
*/
|
|
1332
|
+
secretStoreId?: string;
|
|
1333
|
+
/**
|
|
1334
|
+
* Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
|
1335
|
+
*/
|
|
1336
|
+
subdomain?: string;
|
|
1337
|
+
/**
|
|
1338
|
+
* Tags is a map of key, value pairs.
|
|
1339
|
+
*/
|
|
1340
|
+
tags?: {
|
|
1341
|
+
[key: string]: string;
|
|
1342
|
+
};
|
|
1343
|
+
/**
|
|
1344
|
+
* The username to authenticate with.
|
|
1345
|
+
*/
|
|
1346
|
+
username?: string;
|
|
1347
|
+
}
|
|
1282
1348
|
export interface GetResourceResourceAw {
|
|
1283
1349
|
/**
|
|
1284
1350
|
* The Access Key ID to use to authenticate.
|
|
@@ -4299,6 +4365,10 @@ export interface GetResourceResourceRdp {
|
|
|
4299
4365
|
* Unique identifier of the Resource.
|
|
4300
4366
|
*/
|
|
4301
4367
|
id?: string;
|
|
4368
|
+
/**
|
|
4369
|
+
* When set, require a resource lock to access the resource to ensure it can only be used by one user at a time.
|
|
4370
|
+
*/
|
|
4371
|
+
lockRequired?: boolean;
|
|
4302
4372
|
/**
|
|
4303
4373
|
* Unique human-readable name of the Resource.
|
|
4304
4374
|
*/
|
|
@@ -4334,6 +4404,70 @@ export interface GetResourceResourceRdp {
|
|
|
4334
4404
|
*/
|
|
4335
4405
|
username?: string;
|
|
4336
4406
|
}
|
|
4407
|
+
export interface GetResourceResourceRdsPostgresIam {
|
|
4408
|
+
/**
|
|
4409
|
+
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
4410
|
+
*/
|
|
4411
|
+
bindInterface?: string;
|
|
4412
|
+
/**
|
|
4413
|
+
* The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
|
4414
|
+
*/
|
|
4415
|
+
database?: string;
|
|
4416
|
+
/**
|
|
4417
|
+
* A filter applied to the routing logic to pin datasource to nodes.
|
|
4418
|
+
*/
|
|
4419
|
+
egressFilter?: string;
|
|
4420
|
+
/**
|
|
4421
|
+
* The host to dial to initiate a connection from the egress node to this resource.
|
|
4422
|
+
*/
|
|
4423
|
+
hostname?: string;
|
|
4424
|
+
/**
|
|
4425
|
+
* Unique identifier of the Resource.
|
|
4426
|
+
*/
|
|
4427
|
+
id?: string;
|
|
4428
|
+
/**
|
|
4429
|
+
* Unique human-readable name of the Resource.
|
|
4430
|
+
*/
|
|
4431
|
+
name?: string;
|
|
4432
|
+
/**
|
|
4433
|
+
* If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
|
4434
|
+
*/
|
|
4435
|
+
overrideDatabase?: boolean;
|
|
4436
|
+
/**
|
|
4437
|
+
* The port to dial to initiate a connection from the egress node to this resource.
|
|
4438
|
+
*/
|
|
4439
|
+
port?: number;
|
|
4440
|
+
/**
|
|
4441
|
+
* The local port used by clients to connect to this resource.
|
|
4442
|
+
*/
|
|
4443
|
+
portOverride?: number;
|
|
4444
|
+
/**
|
|
4445
|
+
* The AWS region to connect to.
|
|
4446
|
+
*/
|
|
4447
|
+
region?: string;
|
|
4448
|
+
/**
|
|
4449
|
+
* If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
|
4450
|
+
*/
|
|
4451
|
+
roleAssumptionArn?: string;
|
|
4452
|
+
/**
|
|
4453
|
+
* ID of the secret store containing credentials for this resource, if any.
|
|
4454
|
+
*/
|
|
4455
|
+
secretStoreId?: string;
|
|
4456
|
+
/**
|
|
4457
|
+
* Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
|
4458
|
+
*/
|
|
4459
|
+
subdomain?: string;
|
|
4460
|
+
/**
|
|
4461
|
+
* Tags is a map of key, value pairs.
|
|
4462
|
+
*/
|
|
4463
|
+
tags?: {
|
|
4464
|
+
[key: string]: string;
|
|
4465
|
+
};
|
|
4466
|
+
/**
|
|
4467
|
+
* The username to authenticate with.
|
|
4468
|
+
*/
|
|
4469
|
+
username?: string;
|
|
4470
|
+
}
|
|
4337
4471
|
export interface GetResourceResourceRedi {
|
|
4338
4472
|
/**
|
|
4339
4473
|
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
@@ -5505,6 +5639,64 @@ export interface GetSecretStoreSecretStoreVaultToken {
|
|
|
5505
5639
|
[key: string]: string;
|
|
5506
5640
|
};
|
|
5507
5641
|
}
|
|
5642
|
+
export interface GetWorkflowApproverWorkflowApprover {
|
|
5643
|
+
/**
|
|
5644
|
+
* The approver id.
|
|
5645
|
+
*/
|
|
5646
|
+
approverId?: string;
|
|
5647
|
+
/**
|
|
5648
|
+
* Unique identifier of the WorkflowApprover.
|
|
5649
|
+
*/
|
|
5650
|
+
id?: string;
|
|
5651
|
+
/**
|
|
5652
|
+
* The workflow id.
|
|
5653
|
+
*/
|
|
5654
|
+
workflowId?: string;
|
|
5655
|
+
}
|
|
5656
|
+
export interface GetWorkflowRoleWorkflowRole {
|
|
5657
|
+
/**
|
|
5658
|
+
* Unique identifier of the WorkflowRole.
|
|
5659
|
+
*/
|
|
5660
|
+
id?: string;
|
|
5661
|
+
/**
|
|
5662
|
+
* The role id.
|
|
5663
|
+
*/
|
|
5664
|
+
roleId?: string;
|
|
5665
|
+
/**
|
|
5666
|
+
* The workflow id.
|
|
5667
|
+
*/
|
|
5668
|
+
workflowId?: string;
|
|
5669
|
+
}
|
|
5670
|
+
export interface GetWorkflowWorkflow {
|
|
5671
|
+
/**
|
|
5672
|
+
* AccessRules is a list of access rules defining the resources this Workflow provides access to.
|
|
5673
|
+
*/
|
|
5674
|
+
accessRules?: string;
|
|
5675
|
+
/**
|
|
5676
|
+
* Optional auto grant setting to automatically approve requests or not, defaults to false.
|
|
5677
|
+
*/
|
|
5678
|
+
autoGrant?: boolean;
|
|
5679
|
+
/**
|
|
5680
|
+
* Optional description of the Workflow.
|
|
5681
|
+
*/
|
|
5682
|
+
description?: string;
|
|
5683
|
+
/**
|
|
5684
|
+
* Optional enabled state for workflow. This setting may be overridden by the system if the workflow doesn't meet the requirements to be enabled or if other conditions prevent enabling the workflow. The requirements to enable a workflow are that the workflow must be either set up for with auto grant enabled or have one or more WorkflowApprovers created for the workflow.
|
|
5685
|
+
*/
|
|
5686
|
+
enabled?: boolean;
|
|
5687
|
+
/**
|
|
5688
|
+
* Unique identifier of the Workflow.
|
|
5689
|
+
*/
|
|
5690
|
+
id?: string;
|
|
5691
|
+
/**
|
|
5692
|
+
* Unique human-readable name of the Workflow.
|
|
5693
|
+
*/
|
|
5694
|
+
name?: string;
|
|
5695
|
+
/**
|
|
5696
|
+
* Optional weight for workflow to specify it's priority in matching a request.
|
|
5697
|
+
*/
|
|
5698
|
+
weight?: number;
|
|
5699
|
+
}
|
|
5508
5700
|
export interface NodeGateway {
|
|
5509
5701
|
/**
|
|
5510
5702
|
* The hostname/port tuple which the gateway daemon will bind to. If not provided on create, set to "0.0.0.0:listen_address_port".
|
|
@@ -6425,6 +6617,66 @@ export interface ResourceAuroraPostgres {
|
|
|
6425
6617
|
*/
|
|
6426
6618
|
username?: string;
|
|
6427
6619
|
}
|
|
6620
|
+
export interface ResourceAuroraPostgresIam {
|
|
6621
|
+
/**
|
|
6622
|
+
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
6623
|
+
*/
|
|
6624
|
+
bindInterface: string;
|
|
6625
|
+
/**
|
|
6626
|
+
* The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
|
6627
|
+
*/
|
|
6628
|
+
database: string;
|
|
6629
|
+
/**
|
|
6630
|
+
* A filter applied to the routing logic to pin datasource to nodes.
|
|
6631
|
+
*/
|
|
6632
|
+
egressFilter?: string;
|
|
6633
|
+
/**
|
|
6634
|
+
* The host to dial to initiate a connection from the egress node to this resource.
|
|
6635
|
+
*/
|
|
6636
|
+
hostname: string;
|
|
6637
|
+
/**
|
|
6638
|
+
* Unique human-readable name of the Resource.
|
|
6639
|
+
*/
|
|
6640
|
+
name: string;
|
|
6641
|
+
/**
|
|
6642
|
+
* If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
|
6643
|
+
*/
|
|
6644
|
+
overrideDatabase?: boolean;
|
|
6645
|
+
/**
|
|
6646
|
+
* The port to dial to initiate a connection from the egress node to this resource.
|
|
6647
|
+
*/
|
|
6648
|
+
port?: number;
|
|
6649
|
+
/**
|
|
6650
|
+
* The local port used by clients to connect to this resource.
|
|
6651
|
+
*/
|
|
6652
|
+
portOverride: number;
|
|
6653
|
+
/**
|
|
6654
|
+
* The AWS region to connect to.
|
|
6655
|
+
*/
|
|
6656
|
+
region: string;
|
|
6657
|
+
/**
|
|
6658
|
+
* If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
|
6659
|
+
*/
|
|
6660
|
+
roleAssumptionArn?: string;
|
|
6661
|
+
/**
|
|
6662
|
+
* ID of the secret store containing credentials for this resource, if any.
|
|
6663
|
+
*/
|
|
6664
|
+
secretStoreId?: string;
|
|
6665
|
+
/**
|
|
6666
|
+
* Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
|
6667
|
+
*/
|
|
6668
|
+
subdomain: string;
|
|
6669
|
+
/**
|
|
6670
|
+
* Tags is a map of key, value pairs.
|
|
6671
|
+
*/
|
|
6672
|
+
tags?: {
|
|
6673
|
+
[key: string]: string;
|
|
6674
|
+
};
|
|
6675
|
+
/**
|
|
6676
|
+
* The username to authenticate with.
|
|
6677
|
+
*/
|
|
6678
|
+
username?: string;
|
|
6679
|
+
}
|
|
6428
6680
|
export interface ResourceAws {
|
|
6429
6681
|
/**
|
|
6430
6682
|
* The Access Key ID to use to authenticate.
|
|
@@ -9237,6 +9489,10 @@ export interface ResourceRdp {
|
|
|
9237
9489
|
* The host to dial to initiate a connection from the egress node to this resource.
|
|
9238
9490
|
*/
|
|
9239
9491
|
hostname: string;
|
|
9492
|
+
/**
|
|
9493
|
+
* When set, require a resource lock to access the resource to ensure it can only be used by one user at a time.
|
|
9494
|
+
*/
|
|
9495
|
+
lockRequired?: boolean;
|
|
9240
9496
|
/**
|
|
9241
9497
|
* Unique human-readable name of the Resource.
|
|
9242
9498
|
*/
|
|
@@ -9272,6 +9528,66 @@ export interface ResourceRdp {
|
|
|
9272
9528
|
*/
|
|
9273
9529
|
username?: string;
|
|
9274
9530
|
}
|
|
9531
|
+
export interface ResourceRdsPostgresIam {
|
|
9532
|
+
/**
|
|
9533
|
+
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
|
9534
|
+
*/
|
|
9535
|
+
bindInterface: string;
|
|
9536
|
+
/**
|
|
9537
|
+
* The initial database to connect to. This setting does not by itself prevent switching to another database after connecting.
|
|
9538
|
+
*/
|
|
9539
|
+
database: string;
|
|
9540
|
+
/**
|
|
9541
|
+
* A filter applied to the routing logic to pin datasource to nodes.
|
|
9542
|
+
*/
|
|
9543
|
+
egressFilter?: string;
|
|
9544
|
+
/**
|
|
9545
|
+
* The host to dial to initiate a connection from the egress node to this resource.
|
|
9546
|
+
*/
|
|
9547
|
+
hostname: string;
|
|
9548
|
+
/**
|
|
9549
|
+
* Unique human-readable name of the Resource.
|
|
9550
|
+
*/
|
|
9551
|
+
name: string;
|
|
9552
|
+
/**
|
|
9553
|
+
* If set, the database configured cannot be changed by users. This setting is not recommended for most use cases, as some clients will insist their database has changed when it has not, leading to user confusion.
|
|
9554
|
+
*/
|
|
9555
|
+
overrideDatabase?: boolean;
|
|
9556
|
+
/**
|
|
9557
|
+
* The port to dial to initiate a connection from the egress node to this resource.
|
|
9558
|
+
*/
|
|
9559
|
+
port?: number;
|
|
9560
|
+
/**
|
|
9561
|
+
* The local port used by clients to connect to this resource.
|
|
9562
|
+
*/
|
|
9563
|
+
portOverride: number;
|
|
9564
|
+
/**
|
|
9565
|
+
* The AWS region to connect to.
|
|
9566
|
+
*/
|
|
9567
|
+
region: string;
|
|
9568
|
+
/**
|
|
9569
|
+
* If provided, the gateway/relay will try to assume this role instead of the underlying compute's role.
|
|
9570
|
+
*/
|
|
9571
|
+
roleAssumptionArn?: string;
|
|
9572
|
+
/**
|
|
9573
|
+
* ID of the secret store containing credentials for this resource, if any.
|
|
9574
|
+
*/
|
|
9575
|
+
secretStoreId?: string;
|
|
9576
|
+
/**
|
|
9577
|
+
* Subdomain is the local DNS address. (e.g. app-prod1 turns into app-prod1.your-org-name.sdm.network)
|
|
9578
|
+
*/
|
|
9579
|
+
subdomain: string;
|
|
9580
|
+
/**
|
|
9581
|
+
* Tags is a map of key, value pairs.
|
|
9582
|
+
*/
|
|
9583
|
+
tags?: {
|
|
9584
|
+
[key: string]: string;
|
|
9585
|
+
};
|
|
9586
|
+
/**
|
|
9587
|
+
* The username to authenticate with.
|
|
9588
|
+
*/
|
|
9589
|
+
username?: string;
|
|
9590
|
+
}
|
|
9275
9591
|
export interface ResourceRedis {
|
|
9276
9592
|
/**
|
|
9277
9593
|
* The bind interface is the IP address to which the port override of a resource is bound (for example, 127.0.0.1). It is automatically generated if not provided.
|
package/workflow.d.ts
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import * as pulumi from "@pulumi/pulumi";
|
|
2
|
+
/**
|
|
3
|
+
* Workflows are the collection of rules that define the resources to which access can be requested,
|
|
4
|
+
* the users that can request that access, and the mechanism for approving those requests which can either
|
|
5
|
+
* but automatic approval or a set of users authorized to approve the requests.
|
|
6
|
+
* ## Example Usage
|
|
7
|
+
*
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
10
|
+
* import * as sdm from "@pierskarsenbarg/sdm";
|
|
11
|
+
*
|
|
12
|
+
* const autoGrantWorkflow = new sdm.Workflow("autoGrantWorkflow", {
|
|
13
|
+
* autoGrant: true,
|
|
14
|
+
* enabled: true,
|
|
15
|
+
* accessRules: JSON.stringify([{
|
|
16
|
+
* type: "redis",
|
|
17
|
+
* tags: {
|
|
18
|
+
* region: "us-east",
|
|
19
|
+
* },
|
|
20
|
+
* }]),
|
|
21
|
+
* });
|
|
22
|
+
* const manualApprovalWorkflow = new sdm.Workflow("manualApprovalWorkflow", {
|
|
23
|
+
* autoGrant: false,
|
|
24
|
+
* accessRules: JSON.stringify([{
|
|
25
|
+
* type: "redis",
|
|
26
|
+
* tags: {
|
|
27
|
+
* region: "us-east",
|
|
28
|
+
* },
|
|
29
|
+
* }]),
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
* This resource can be imported using the import command.
|
|
33
|
+
*
|
|
34
|
+
* ## Import
|
|
35
|
+
*
|
|
36
|
+
* A Workflow can be imported using the id, e.g.,
|
|
37
|
+
*
|
|
38
|
+
* ```sh
|
|
39
|
+
* $ pulumi import sdm:index/workflow:Workflow example aw-12345678
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare class Workflow extends pulumi.CustomResource {
|
|
43
|
+
/**
|
|
44
|
+
* Get an existing Workflow resource's state with the given name, ID, and optional extra
|
|
45
|
+
* properties used to qualify the lookup.
|
|
46
|
+
*
|
|
47
|
+
* @param name The _unique_ name of the resulting resource.
|
|
48
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
49
|
+
* @param state Any extra arguments used during the lookup.
|
|
50
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
51
|
+
*/
|
|
52
|
+
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: WorkflowState, opts?: pulumi.CustomResourceOptions): Workflow;
|
|
53
|
+
/**
|
|
54
|
+
* Returns true if the given object is an instance of Workflow. This is designed to work even
|
|
55
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
56
|
+
*/
|
|
57
|
+
static isInstance(obj: any): obj is Workflow;
|
|
58
|
+
/**
|
|
59
|
+
* AccessRules is a list of access rules defining the resources this Workflow provides access to.
|
|
60
|
+
*/
|
|
61
|
+
readonly accessRules: pulumi.Output<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Optional auto grant setting to automatically approve requests or not, defaults to false.
|
|
64
|
+
*/
|
|
65
|
+
readonly autoGrant: pulumi.Output<boolean | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* Optional description of the Workflow.
|
|
68
|
+
*/
|
|
69
|
+
readonly description: pulumi.Output<string | undefined>;
|
|
70
|
+
/**
|
|
71
|
+
* Optional enabled state for workflow. This setting may be overridden by the system if the workflow doesn't meet the requirements to be enabled or if other conditions prevent enabling the workflow. The requirements to enable a workflow are that the workflow must be either set up for with auto grant enabled or have one or more WorkflowApprovers created for the workflow.
|
|
72
|
+
*/
|
|
73
|
+
readonly enabled: pulumi.Output<boolean | undefined>;
|
|
74
|
+
/**
|
|
75
|
+
* Unique human-readable name of the Workflow.
|
|
76
|
+
*/
|
|
77
|
+
readonly name: pulumi.Output<string>;
|
|
78
|
+
/**
|
|
79
|
+
* Optional weight for workflow to specify it's priority in matching a request.
|
|
80
|
+
*/
|
|
81
|
+
readonly weight: pulumi.Output<number>;
|
|
82
|
+
/**
|
|
83
|
+
* Create a Workflow resource with the given unique name, arguments, and options.
|
|
84
|
+
*
|
|
85
|
+
* @param name The _unique_ name of the resource.
|
|
86
|
+
* @param args The arguments to use to populate this resource's properties.
|
|
87
|
+
* @param opts A bag of options that control this resource's behavior.
|
|
88
|
+
*/
|
|
89
|
+
constructor(name: string, args?: WorkflowArgs, opts?: pulumi.CustomResourceOptions);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Input properties used for looking up and filtering Workflow resources.
|
|
93
|
+
*/
|
|
94
|
+
export interface WorkflowState {
|
|
95
|
+
/**
|
|
96
|
+
* AccessRules is a list of access rules defining the resources this Workflow provides access to.
|
|
97
|
+
*/
|
|
98
|
+
accessRules?: pulumi.Input<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Optional auto grant setting to automatically approve requests or not, defaults to false.
|
|
101
|
+
*/
|
|
102
|
+
autoGrant?: pulumi.Input<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* Optional description of the Workflow.
|
|
105
|
+
*/
|
|
106
|
+
description?: pulumi.Input<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Optional enabled state for workflow. This setting may be overridden by the system if the workflow doesn't meet the requirements to be enabled or if other conditions prevent enabling the workflow. The requirements to enable a workflow are that the workflow must be either set up for with auto grant enabled or have one or more WorkflowApprovers created for the workflow.
|
|
109
|
+
*/
|
|
110
|
+
enabled?: pulumi.Input<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Unique human-readable name of the Workflow.
|
|
113
|
+
*/
|
|
114
|
+
name?: pulumi.Input<string>;
|
|
115
|
+
/**
|
|
116
|
+
* Optional weight for workflow to specify it's priority in matching a request.
|
|
117
|
+
*/
|
|
118
|
+
weight?: pulumi.Input<number>;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The set of arguments for constructing a Workflow resource.
|
|
122
|
+
*/
|
|
123
|
+
export interface WorkflowArgs {
|
|
124
|
+
/**
|
|
125
|
+
* AccessRules is a list of access rules defining the resources this Workflow provides access to.
|
|
126
|
+
*/
|
|
127
|
+
accessRules?: pulumi.Input<string>;
|
|
128
|
+
/**
|
|
129
|
+
* Optional auto grant setting to automatically approve requests or not, defaults to false.
|
|
130
|
+
*/
|
|
131
|
+
autoGrant?: pulumi.Input<boolean>;
|
|
132
|
+
/**
|
|
133
|
+
* Optional description of the Workflow.
|
|
134
|
+
*/
|
|
135
|
+
description?: pulumi.Input<string>;
|
|
136
|
+
/**
|
|
137
|
+
* Optional enabled state for workflow. This setting may be overridden by the system if the workflow doesn't meet the requirements to be enabled or if other conditions prevent enabling the workflow. The requirements to enable a workflow are that the workflow must be either set up for with auto grant enabled or have one or more WorkflowApprovers created for the workflow.
|
|
138
|
+
*/
|
|
139
|
+
enabled?: pulumi.Input<boolean>;
|
|
140
|
+
/**
|
|
141
|
+
* Unique human-readable name of the Workflow.
|
|
142
|
+
*/
|
|
143
|
+
name?: pulumi.Input<string>;
|
|
144
|
+
/**
|
|
145
|
+
* Optional weight for workflow to specify it's priority in matching a request.
|
|
146
|
+
*/
|
|
147
|
+
weight?: pulumi.Input<number>;
|
|
148
|
+
}
|
package/workflow.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.Workflow = void 0;
|
|
6
|
+
const pulumi = require("@pulumi/pulumi");
|
|
7
|
+
const utilities = require("./utilities");
|
|
8
|
+
/**
|
|
9
|
+
* Workflows are the collection of rules that define the resources to which access can be requested,
|
|
10
|
+
* the users that can request that access, and the mechanism for approving those requests which can either
|
|
11
|
+
* but automatic approval or a set of users authorized to approve the requests.
|
|
12
|
+
* ## Example Usage
|
|
13
|
+
*
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
16
|
+
* import * as sdm from "@pierskarsenbarg/sdm";
|
|
17
|
+
*
|
|
18
|
+
* const autoGrantWorkflow = new sdm.Workflow("autoGrantWorkflow", {
|
|
19
|
+
* autoGrant: true,
|
|
20
|
+
* enabled: true,
|
|
21
|
+
* accessRules: JSON.stringify([{
|
|
22
|
+
* type: "redis",
|
|
23
|
+
* tags: {
|
|
24
|
+
* region: "us-east",
|
|
25
|
+
* },
|
|
26
|
+
* }]),
|
|
27
|
+
* });
|
|
28
|
+
* const manualApprovalWorkflow = new sdm.Workflow("manualApprovalWorkflow", {
|
|
29
|
+
* autoGrant: false,
|
|
30
|
+
* accessRules: JSON.stringify([{
|
|
31
|
+
* type: "redis",
|
|
32
|
+
* tags: {
|
|
33
|
+
* region: "us-east",
|
|
34
|
+
* },
|
|
35
|
+
* }]),
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
* This resource can be imported using the import command.
|
|
39
|
+
*
|
|
40
|
+
* ## Import
|
|
41
|
+
*
|
|
42
|
+
* A Workflow can be imported using the id, e.g.,
|
|
43
|
+
*
|
|
44
|
+
* ```sh
|
|
45
|
+
* $ pulumi import sdm:index/workflow:Workflow example aw-12345678
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
class Workflow extends pulumi.CustomResource {
|
|
49
|
+
/**
|
|
50
|
+
* Get an existing Workflow resource's state with the given name, ID, and optional extra
|
|
51
|
+
* properties used to qualify the lookup.
|
|
52
|
+
*
|
|
53
|
+
* @param name The _unique_ name of the resulting resource.
|
|
54
|
+
* @param id The _unique_ provider ID of the resource to lookup.
|
|
55
|
+
* @param state Any extra arguments used during the lookup.
|
|
56
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
57
|
+
*/
|
|
58
|
+
static get(name, id, state, opts) {
|
|
59
|
+
return new Workflow(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Returns true if the given object is an instance of Workflow. This is designed to work even
|
|
63
|
+
* when multiple copies of the Pulumi SDK have been loaded into the same process.
|
|
64
|
+
*/
|
|
65
|
+
static isInstance(obj) {
|
|
66
|
+
if (obj === undefined || obj === null) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return obj['__pulumiType'] === Workflow.__pulumiType;
|
|
70
|
+
}
|
|
71
|
+
constructor(name, argsOrState, opts) {
|
|
72
|
+
let resourceInputs = {};
|
|
73
|
+
opts = opts || {};
|
|
74
|
+
if (opts.id) {
|
|
75
|
+
const state = argsOrState;
|
|
76
|
+
resourceInputs["accessRules"] = state ? state.accessRules : undefined;
|
|
77
|
+
resourceInputs["autoGrant"] = state ? state.autoGrant : undefined;
|
|
78
|
+
resourceInputs["description"] = state ? state.description : undefined;
|
|
79
|
+
resourceInputs["enabled"] = state ? state.enabled : undefined;
|
|
80
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
81
|
+
resourceInputs["weight"] = state ? state.weight : undefined;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const args = argsOrState;
|
|
85
|
+
resourceInputs["accessRules"] = args ? args.accessRules : undefined;
|
|
86
|
+
resourceInputs["autoGrant"] = args ? args.autoGrant : undefined;
|
|
87
|
+
resourceInputs["description"] = args ? args.description : undefined;
|
|
88
|
+
resourceInputs["enabled"] = args ? args.enabled : undefined;
|
|
89
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
90
|
+
resourceInputs["weight"] = args ? args.weight : undefined;
|
|
91
|
+
}
|
|
92
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
93
|
+
super(Workflow.__pulumiType, name, resourceInputs, opts);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.Workflow = Workflow;
|
|
97
|
+
/** @internal */
|
|
98
|
+
Workflow.__pulumiType = 'sdm:index/workflow:Workflow';
|
|
99
|
+
//# sourceMappingURL=workflow.js.map
|
package/workflow.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../workflow.ts"],"names":[],"mappings":"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"}
|