@pulumi/aws 6.0.0-alpha.3 → 6.0.0-alpha.4
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/applicationloadbalancing/index.d.ts +0 -27
- package/applicationloadbalancing/index.js +1 -51
- package/applicationloadbalancing/index.js.map +1 -1
- package/appmesh/virtualGateway.d.ts +23 -2
- package/appmesh/virtualGateway.js +23 -2
- package/appmesh/virtualGateway.js.map +1 -1
- package/appmesh/virtualNode.d.ts +8 -8
- package/appmesh/virtualNode.js +8 -8
- package/appmesh/virtualRouter.d.ts +2 -2
- package/appmesh/virtualRouter.js +2 -2
- package/appsync/dataSource.d.ts +18 -18
- package/cloudtrail/index.d.ts +0 -3
- package/cloudtrail/index.js +1 -4
- package/cloudtrail/index.js.map +1 -1
- package/ec2/fleet.d.ts +5 -5
- package/ec2/fleet.js +6 -6
- package/ec2/fleet.js.map +1 -1
- package/ec2/index.d.ts +0 -3
- package/ec2/index.js +2 -7
- package/ec2/index.js.map +1 -1
- package/ec2/securityGroup.d.ts +14 -0
- package/ec2/securityGroup.js +14 -0
- package/ec2/securityGroup.js.map +1 -1
- package/fms/policy.d.ts +2 -0
- package/fms/policy.js +2 -0
- package/fms/policy.js.map +1 -1
- package/iam/{getOpenidConnectProvider.d.ts → getOpenIdConnectProvider.d.ts} +12 -12
- package/iam/{getOpenidConnectProvider.js → getOpenIdConnectProvider.js} +12 -12
- package/iam/{getOpenidConnectProvider.js.map → getOpenIdConnectProvider.js.map} +1 -1
- package/iam/index.d.ts +3 -3
- package/iam/index.js +4 -4
- package/iam/virtualMfaDevice.d.ts +22 -2
- package/iam/virtualMfaDevice.js +8 -0
- package/iam/virtualMfaDevice.js.map +1 -1
- package/index.d.ts +1 -21
- package/index.js +5 -27
- package/index.js.map +1 -1
- package/iot/topicRule.d.ts +35 -35
- package/iot/topicRule.js +16 -16
- package/iot/topicRule.js.map +1 -1
- package/kendra/dataSource.d.ts +32 -9
- package/kendra/dataSource.js +23 -0
- package/kendra/dataSource.js.map +1 -1
- package/kinesis/firehoseDeliveryStream.d.ts +89 -0
- package/kinesis/firehoseDeliveryStream.js +89 -0
- package/kinesis/firehoseDeliveryStream.js.map +1 -1
- package/opensearch/serverlessSecurityPolicy.d.ts +122 -8
- package/opensearch/serverlessSecurityPolicy.js +122 -8
- package/opensearch/serverlessSecurityPolicy.js.map +1 -1
- package/package.json +2 -2
- package/package.json.dev +2 -2
- package/rds/instance.d.ts +0 -9
- package/rds/instance.js.map +1 -1
- package/securityhub/standardsControl.d.ts +3 -3
- package/ses/index.d.ts +0 -3
- package/ses/index.js +1 -6
- package/ses/index.js.map +1 -1
- package/ssm/getParameter.d.ts +1 -0
- package/ssm/getParameter.js.map +1 -1
- package/types/input.d.ts +1302 -2573
- package/types/output.d.ts +4459 -5933
- package/utils.d.ts +0 -1
- package/utils.js +0 -6
- package/utils.js.map +1 -1
- package/wafv2/getIpSet.d.ts +1 -1
- package/wafv2/ipSet.d.ts +3 -3
- package/wafv2/regexPatternSet.d.ts +3 -3
- package/applicationloadbalancing/getListener.d.ts +0 -120
- package/applicationloadbalancing/getListener.js +0 -80
- package/applicationloadbalancing/getListener.js.map +0 -1
- package/applicationloadbalancing/getLoadBalancer.d.ts +0 -133
- package/applicationloadbalancing/getLoadBalancer.js +0 -73
- package/applicationloadbalancing/getLoadBalancer.js.map +0 -1
- package/applicationloadbalancing/getTargetGroup.d.ts +0 -126
- package/applicationloadbalancing/getTargetGroup.js +0 -73
- package/applicationloadbalancing/getTargetGroup.js.map +0 -1
- package/applicationloadbalancing/listener.d.ts +0 -377
- package/applicationloadbalancing/listener.js +0 -276
- package/applicationloadbalancing/listener.js.map +0 -1
- package/applicationloadbalancing/listenerCertificate.d.ts +0 -96
- package/applicationloadbalancing/listenerCertificate.js +0 -95
- package/applicationloadbalancing/listenerCertificate.js.map +0 -1
- package/applicationloadbalancing/listenerRule.d.ts +0 -301
- package/applicationloadbalancing/listenerRule.js +0 -249
- package/applicationloadbalancing/listenerRule.js.map +0 -1
- package/applicationloadbalancing/loadBalancer.d.ts +0 -463
- package/applicationloadbalancing/loadBalancer.js +0 -201
- package/applicationloadbalancing/loadBalancer.js.map +0 -1
- package/applicationloadbalancing/targetGroup.d.ts +0 -402
- package/applicationloadbalancing/targetGroup.js +0 -161
- package/applicationloadbalancing/targetGroup.js.map +0 -1
- package/applicationloadbalancing/targetGroupAttachment.d.ts +0 -142
- package/applicationloadbalancing/targetGroupAttachment.js +0 -115
- package/applicationloadbalancing/targetGroupAttachment.js.map +0 -1
- package/awsMixins.d.ts +0 -21
- package/awsMixins.js +0 -40
- package/awsMixins.js.map +0 -1
- package/cloudtrail/getFunction.d.ts +0 -102
- package/cloudtrail/getFunction.js +0 -55
- package/cloudtrail/getFunction.js.map +0 -1
- package/ec2/transitGatewayPeeringAttachmentAccepter.d.ts +0 -132
- package/ec2/transitGatewayPeeringAttachmentAccepter.js +0 -94
- package/ec2/transitGatewayPeeringAttachmentAccepter.js.map +0 -1
- package/elasticloadbalancing/appCookieStickinessPolicy.d.ts +0 -129
- package/elasticloadbalancing/appCookieStickinessPolicy.js +0 -102
- package/elasticloadbalancing/appCookieStickinessPolicy.js.map +0 -1
- package/elasticloadbalancing/attachment.d.ts +0 -86
- package/elasticloadbalancing/attachment.js +0 -85
- package/elasticloadbalancing/attachment.js.map +0 -1
- package/elasticloadbalancing/getHostedZoneId.d.ts +0 -81
- package/elasticloadbalancing/getHostedZoneId.js +0 -69
- package/elasticloadbalancing/getHostedZoneId.js.map +0 -1
- package/elasticloadbalancing/getLoadBalancer.d.ts +0 -105
- package/elasticloadbalancing/getLoadBalancer.js +0 -67
- package/elasticloadbalancing/getLoadBalancer.js.map +0 -1
- package/elasticloadbalancing/getServiceAccount.d.ts +0 -135
- package/elasticloadbalancing/getServiceAccount.js +0 -119
- package/elasticloadbalancing/getServiceAccount.js.map +0 -1
- package/elasticloadbalancing/index.d.ts +0 -33
- package/elasticloadbalancing/index.js +0 -66
- package/elasticloadbalancing/index.js.map +0 -1
- package/elasticloadbalancing/listenerPolicy.d.ts +0 -176
- package/elasticloadbalancing/listenerPolicy.js +0 -149
- package/elasticloadbalancing/listenerPolicy.js.map +0 -1
- package/elasticloadbalancing/loadBalancer.d.ts +0 -398
- package/elasticloadbalancing/loadBalancer.js +0 -177
- package/elasticloadbalancing/loadBalancer.js.map +0 -1
- package/elasticloadbalancing/loadBalancerBackendServerPolicy.d.ts +0 -123
- package/elasticloadbalancing/loadBalancerBackendServerPolicy.js +0 -112
- package/elasticloadbalancing/loadBalancerBackendServerPolicy.js.map +0 -1
- package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.d.ts +0 -124
- package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.js +0 -91
- package/elasticloadbalancing/loadBalancerCookieStickinessPolicy.js.map +0 -1
- package/elasticloadbalancing/loadBalancerPolicy.d.ts +0 -166
- package/elasticloadbalancing/loadBalancerPolicy.js +0 -146
- package/elasticloadbalancing/loadBalancerPolicy.js.map +0 -1
- package/elasticloadbalancing/sslNegotiationPolicy.d.ts +0 -183
- package/elasticloadbalancing/sslNegotiationPolicy.js +0 -123
- package/elasticloadbalancing/sslNegotiationPolicy.js.map +0 -1
- package/elasticloadbalancingv2/getListener.d.ts +0 -120
- package/elasticloadbalancingv2/getListener.js +0 -80
- package/elasticloadbalancingv2/getListener.js.map +0 -1
- package/elasticloadbalancingv2/getLoadBalancer.d.ts +0 -133
- package/elasticloadbalancingv2/getLoadBalancer.js +0 -73
- package/elasticloadbalancingv2/getLoadBalancer.js.map +0 -1
- package/elasticloadbalancingv2/getTargetGroup.d.ts +0 -126
- package/elasticloadbalancingv2/getTargetGroup.js +0 -73
- package/elasticloadbalancingv2/getTargetGroup.js.map +0 -1
- package/elasticloadbalancingv2/index.d.ts +0 -27
- package/elasticloadbalancingv2/index.js +0 -56
- package/elasticloadbalancingv2/index.js.map +0 -1
- package/elasticloadbalancingv2/listener.d.ts +0 -377
- package/elasticloadbalancingv2/listener.js +0 -276
- package/elasticloadbalancingv2/listener.js.map +0 -1
- package/elasticloadbalancingv2/listenerCertificate.d.ts +0 -96
- package/elasticloadbalancingv2/listenerCertificate.js +0 -95
- package/elasticloadbalancingv2/listenerCertificate.js.map +0 -1
- package/elasticloadbalancingv2/listenerRule.d.ts +0 -301
- package/elasticloadbalancingv2/listenerRule.js +0 -249
- package/elasticloadbalancingv2/listenerRule.js.map +0 -1
- package/elasticloadbalancingv2/loadBalancer.d.ts +0 -462
- package/elasticloadbalancingv2/loadBalancer.js +0 -201
- package/elasticloadbalancingv2/loadBalancer.js.map +0 -1
- package/elasticloadbalancingv2/targetGroup.d.ts +0 -402
- package/elasticloadbalancingv2/targetGroup.js +0 -161
- package/elasticloadbalancingv2/targetGroup.js.map +0 -1
- package/elasticloadbalancingv2/targetGroupAttachment.d.ts +0 -142
- package/elasticloadbalancingv2/targetGroupAttachment.js +0 -115
- package/elasticloadbalancingv2/targetGroupAttachment.js.map +0 -1
- package/getAmi.d.ts +0 -331
- package/getAmi.js +0 -93
- package/getAmi.js.map +0 -1
- package/getAmiIds.d.ts +0 -135
- package/getAmiIds.js +0 -63
- package/getAmiIds.js.map +0 -1
- package/getAutoscalingGroups.d.ts +0 -119
- package/getAutoscalingGroups.js +0 -92
- package/getAutoscalingGroups.js.map +0 -1
- package/getCanonicalUserId.d.ts +0 -32
- package/getCanonicalUserId.js +0 -31
- package/getCanonicalUserId.js.map +0 -1
- package/getElasticIp.d.ts +0 -221
- package/getElasticIp.js +0 -126
- package/getElasticIp.js.map +0 -1
- package/getPrefixList.d.ts +0 -160
- package/getPrefixList.js +0 -125
- package/getPrefixList.js.map +0 -1
- package/ses/confgurationSet.d.ts +0 -153
- package/ses/confgurationSet.js +0 -96
- package/ses/confgurationSet.js.map +0 -1
package/kendra/dataSource.d.ts
CHANGED
|
@@ -52,10 +52,33 @@ import * as outputs from "../types/output";
|
|
|
52
52
|
* roleArn: aws_iam_role.example.arn,
|
|
53
53
|
* configuration: {
|
|
54
54
|
* s3Configuration: {
|
|
55
|
+
* bucketName: aws_s3_bucket.example.id,
|
|
55
56
|
* accessControlListConfiguration: {
|
|
56
57
|
* keyPath: `s3://${aws_s3_bucket.example.id}/path-1`,
|
|
57
58
|
* },
|
|
59
|
+
* },
|
|
60
|
+
* },
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
* ### With Documents Metadata Configuration
|
|
64
|
+
*
|
|
65
|
+
* ```typescript
|
|
66
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
67
|
+
* import * as aws from "@pulumi/aws";
|
|
68
|
+
*
|
|
69
|
+
* const example = new aws.kendra.DataSource("example", {
|
|
70
|
+
* indexId: aws_kendra_index.example.id,
|
|
71
|
+
* type: "S3",
|
|
72
|
+
* roleArn: aws_iam_role.example.arn,
|
|
73
|
+
* configuration: {
|
|
74
|
+
* s3Configuration: {
|
|
58
75
|
* bucketName: aws_s3_bucket.example.id,
|
|
76
|
+
* exclusionPatterns: ["example"],
|
|
77
|
+
* inclusionPatterns: ["hello"],
|
|
78
|
+
* inclusionPrefixes: ["world"],
|
|
79
|
+
* documentsMetadataConfiguration: {
|
|
80
|
+
* s3Prefix: "example",
|
|
81
|
+
* },
|
|
59
82
|
* },
|
|
60
83
|
* },
|
|
61
84
|
* });
|
|
@@ -302,7 +325,7 @@ export declare class DataSource extends pulumi.CustomResource {
|
|
|
302
325
|
*/
|
|
303
326
|
readonly arn: pulumi.Output<string>;
|
|
304
327
|
/**
|
|
305
|
-
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration`
|
|
328
|
+
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration` block when the `type` parameter is set to `CUSTOM`. Detailed below.
|
|
306
329
|
*/
|
|
307
330
|
readonly configuration: pulumi.Output<outputs.kendra.DataSourceConfiguration | undefined>;
|
|
308
331
|
/**
|
|
@@ -326,7 +349,7 @@ export declare class DataSource extends pulumi.CustomResource {
|
|
|
326
349
|
*/
|
|
327
350
|
readonly errorMessage: pulumi.Output<string>;
|
|
328
351
|
/**
|
|
329
|
-
* The identifier of the index for your Amazon Kendra
|
|
352
|
+
* The identifier of the index for your Amazon Kendra data source.
|
|
330
353
|
*/
|
|
331
354
|
readonly indexId: pulumi.Output<string>;
|
|
332
355
|
/**
|
|
@@ -334,7 +357,7 @@ export declare class DataSource extends pulumi.CustomResource {
|
|
|
334
357
|
*/
|
|
335
358
|
readonly languageCode: pulumi.Output<string>;
|
|
336
359
|
/**
|
|
337
|
-
* A name for your
|
|
360
|
+
* A name for your data source connector.
|
|
338
361
|
*/
|
|
339
362
|
readonly name: pulumi.Output<string>;
|
|
340
363
|
/**
|
|
@@ -389,7 +412,7 @@ export interface DataSourceState {
|
|
|
389
412
|
*/
|
|
390
413
|
arn?: pulumi.Input<string>;
|
|
391
414
|
/**
|
|
392
|
-
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration`
|
|
415
|
+
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration` block when the `type` parameter is set to `CUSTOM`. Detailed below.
|
|
393
416
|
*/
|
|
394
417
|
configuration?: pulumi.Input<inputs.kendra.DataSourceConfiguration>;
|
|
395
418
|
/**
|
|
@@ -413,7 +436,7 @@ export interface DataSourceState {
|
|
|
413
436
|
*/
|
|
414
437
|
errorMessage?: pulumi.Input<string>;
|
|
415
438
|
/**
|
|
416
|
-
* The identifier of the index for your Amazon Kendra
|
|
439
|
+
* The identifier of the index for your Amazon Kendra data source.
|
|
417
440
|
*/
|
|
418
441
|
indexId?: pulumi.Input<string>;
|
|
419
442
|
/**
|
|
@@ -421,7 +444,7 @@ export interface DataSourceState {
|
|
|
421
444
|
*/
|
|
422
445
|
languageCode?: pulumi.Input<string>;
|
|
423
446
|
/**
|
|
424
|
-
* A name for your
|
|
447
|
+
* A name for your data source connector.
|
|
425
448
|
*/
|
|
426
449
|
name?: pulumi.Input<string>;
|
|
427
450
|
/**
|
|
@@ -464,7 +487,7 @@ export interface DataSourceState {
|
|
|
464
487
|
*/
|
|
465
488
|
export interface DataSourceArgs {
|
|
466
489
|
/**
|
|
467
|
-
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration`
|
|
490
|
+
* A block with the configuration information to connect to your Data Source repository. You can't specify the `configuration` block when the `type` parameter is set to `CUSTOM`. Detailed below.
|
|
468
491
|
*/
|
|
469
492
|
configuration?: pulumi.Input<inputs.kendra.DataSourceConfiguration>;
|
|
470
493
|
/**
|
|
@@ -476,7 +499,7 @@ export interface DataSourceArgs {
|
|
|
476
499
|
*/
|
|
477
500
|
description?: pulumi.Input<string>;
|
|
478
501
|
/**
|
|
479
|
-
* The identifier of the index for your Amazon Kendra
|
|
502
|
+
* The identifier of the index for your Amazon Kendra data source.
|
|
480
503
|
*/
|
|
481
504
|
indexId: pulumi.Input<string>;
|
|
482
505
|
/**
|
|
@@ -484,7 +507,7 @@ export interface DataSourceArgs {
|
|
|
484
507
|
*/
|
|
485
508
|
languageCode?: pulumi.Input<string>;
|
|
486
509
|
/**
|
|
487
|
-
* A name for your
|
|
510
|
+
* A name for your data source connector.
|
|
488
511
|
*/
|
|
489
512
|
name?: pulumi.Input<string>;
|
|
490
513
|
/**
|
package/kendra/dataSource.js
CHANGED
|
@@ -56,10 +56,33 @@ const utilities = require("../utilities");
|
|
|
56
56
|
* roleArn: aws_iam_role.example.arn,
|
|
57
57
|
* configuration: {
|
|
58
58
|
* s3Configuration: {
|
|
59
|
+
* bucketName: aws_s3_bucket.example.id,
|
|
59
60
|
* accessControlListConfiguration: {
|
|
60
61
|
* keyPath: `s3://${aws_s3_bucket.example.id}/path-1`,
|
|
61
62
|
* },
|
|
63
|
+
* },
|
|
64
|
+
* },
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
* ### With Documents Metadata Configuration
|
|
68
|
+
*
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
71
|
+
* import * as aws from "@pulumi/aws";
|
|
72
|
+
*
|
|
73
|
+
* const example = new aws.kendra.DataSource("example", {
|
|
74
|
+
* indexId: aws_kendra_index.example.id,
|
|
75
|
+
* type: "S3",
|
|
76
|
+
* roleArn: aws_iam_role.example.arn,
|
|
77
|
+
* configuration: {
|
|
78
|
+
* s3Configuration: {
|
|
62
79
|
* bucketName: aws_s3_bucket.example.id,
|
|
80
|
+
* exclusionPatterns: ["example"],
|
|
81
|
+
* inclusionPatterns: ["hello"],
|
|
82
|
+
* inclusionPrefixes: ["world"],
|
|
83
|
+
* documentsMetadataConfiguration: {
|
|
84
|
+
* s3Prefix: "example",
|
|
85
|
+
* },
|
|
63
86
|
* },
|
|
64
87
|
* },
|
|
65
88
|
* });
|
package/kendra/dataSource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSource.js","sourceRoot":"","sources":["../../kendra/dataSource.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAIzC,0CAA0C;AAE1C
|
|
1
|
+
{"version":3,"file":"dataSource.js","sourceRoot":"","sources":["../../kendra/dataSource.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,95 @@ import * as outputs from "../types/output";
|
|
|
64
64
|
* acl: "private",
|
|
65
65
|
* });
|
|
66
66
|
* ```
|
|
67
|
+
* ### Extended S3 Destination with dynamic partitioning
|
|
68
|
+
*
|
|
69
|
+
* These examples use built-in Firehose functionality, rather than requiring a lambda.
|
|
70
|
+
*
|
|
71
|
+
* ```typescript
|
|
72
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
73
|
+
* import * as aws from "@pulumi/aws";
|
|
74
|
+
*
|
|
75
|
+
* const extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream("extendedS3Stream", {
|
|
76
|
+
* destination: "extended_s3",
|
|
77
|
+
* extendedS3Configuration: {
|
|
78
|
+
* roleArn: aws_iam_role.firehose_role.arn,
|
|
79
|
+
* bucketArn: aws_s3_bucket.bucket.arn,
|
|
80
|
+
* bufferingSize: 64,
|
|
81
|
+
* dynamicPartitioningConfiguration: {
|
|
82
|
+
* enabled: true,
|
|
83
|
+
* },
|
|
84
|
+
* prefix: "data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/",
|
|
85
|
+
* errorOutputPrefix: "errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/",
|
|
86
|
+
* processingConfiguration: {
|
|
87
|
+
* enabled: true,
|
|
88
|
+
* processors: [
|
|
89
|
+
* {
|
|
90
|
+
* type: "RecordDeAggregation",
|
|
91
|
+
* parameters: [{
|
|
92
|
+
* parameterName: "SubRecordType",
|
|
93
|
+
* parameterValue: "JSON",
|
|
94
|
+
* }],
|
|
95
|
+
* },
|
|
96
|
+
* {
|
|
97
|
+
* type: "AppendDelimiterToRecord",
|
|
98
|
+
* },
|
|
99
|
+
* {
|
|
100
|
+
* type: "MetadataExtraction",
|
|
101
|
+
* parameters: [
|
|
102
|
+
* {
|
|
103
|
+
* parameterName: "JsonParsingEngine",
|
|
104
|
+
* parameterValue: "JQ-1.6",
|
|
105
|
+
* },
|
|
106
|
+
* {
|
|
107
|
+
* parameterName: "MetadataExtractionQuery",
|
|
108
|
+
* parameterValue: "{customer_id:.customer_id}",
|
|
109
|
+
* },
|
|
110
|
+
* ],
|
|
111
|
+
* },
|
|
112
|
+
* ],
|
|
113
|
+
* },
|
|
114
|
+
* },
|
|
115
|
+
* });
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* Multiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameterValue`.
|
|
119
|
+
*
|
|
120
|
+
* The following example adds the Dynamic Partitioning Keys: `storeId` and `customerId` to the S3 prefix.
|
|
121
|
+
*
|
|
122
|
+
* ```typescript
|
|
123
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
124
|
+
* import * as aws from "@pulumi/aws";
|
|
125
|
+
*
|
|
126
|
+
* const extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream("extendedS3Stream", {
|
|
127
|
+
* destination: "extended_s3",
|
|
128
|
+
* extendedS3Configuration: {
|
|
129
|
+
* roleArn: aws_iam_role.firehose_role.arn,
|
|
130
|
+
* bucketArn: aws_s3_bucket.bucket.arn,
|
|
131
|
+
* bufferingSize: 64,
|
|
132
|
+
* dynamicPartitioningConfiguration: {
|
|
133
|
+
* enabled: true,
|
|
134
|
+
* },
|
|
135
|
+
* prefix: "data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/",
|
|
136
|
+
* errorOutputPrefix: "errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/",
|
|
137
|
+
* processingConfiguration: {
|
|
138
|
+
* enabled: true,
|
|
139
|
+
* processors: [{
|
|
140
|
+
* type: "MetadataExtraction",
|
|
141
|
+
* parameters: [
|
|
142
|
+
* {
|
|
143
|
+
* parameterName: "JsonParsingEngine",
|
|
144
|
+
* parameterValue: "JQ-1.6",
|
|
145
|
+
* },
|
|
146
|
+
* {
|
|
147
|
+
* parameterName: "MetadataExtractionQuery",
|
|
148
|
+
* parameterValue: "{store_id:.store_id,customer_id:.customer_id}",
|
|
149
|
+
* },
|
|
150
|
+
* ],
|
|
151
|
+
* }],
|
|
152
|
+
* },
|
|
153
|
+
* },
|
|
154
|
+
* });
|
|
155
|
+
* ```
|
|
67
156
|
* ### Redshift Destination
|
|
68
157
|
*
|
|
69
158
|
* ```typescript
|
|
@@ -68,6 +68,95 @@ const utilities = require("../utilities");
|
|
|
68
68
|
* acl: "private",
|
|
69
69
|
* });
|
|
70
70
|
* ```
|
|
71
|
+
* ### Extended S3 Destination with dynamic partitioning
|
|
72
|
+
*
|
|
73
|
+
* These examples use built-in Firehose functionality, rather than requiring a lambda.
|
|
74
|
+
*
|
|
75
|
+
* ```typescript
|
|
76
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
77
|
+
* import * as aws from "@pulumi/aws";
|
|
78
|
+
*
|
|
79
|
+
* const extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream("extendedS3Stream", {
|
|
80
|
+
* destination: "extended_s3",
|
|
81
|
+
* extendedS3Configuration: {
|
|
82
|
+
* roleArn: aws_iam_role.firehose_role.arn,
|
|
83
|
+
* bucketArn: aws_s3_bucket.bucket.arn,
|
|
84
|
+
* bufferingSize: 64,
|
|
85
|
+
* dynamicPartitioningConfiguration: {
|
|
86
|
+
* enabled: true,
|
|
87
|
+
* },
|
|
88
|
+
* prefix: "data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/",
|
|
89
|
+
* errorOutputPrefix: "errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/",
|
|
90
|
+
* processingConfiguration: {
|
|
91
|
+
* enabled: true,
|
|
92
|
+
* processors: [
|
|
93
|
+
* {
|
|
94
|
+
* type: "RecordDeAggregation",
|
|
95
|
+
* parameters: [{
|
|
96
|
+
* parameterName: "SubRecordType",
|
|
97
|
+
* parameterValue: "JSON",
|
|
98
|
+
* }],
|
|
99
|
+
* },
|
|
100
|
+
* {
|
|
101
|
+
* type: "AppendDelimiterToRecord",
|
|
102
|
+
* },
|
|
103
|
+
* {
|
|
104
|
+
* type: "MetadataExtraction",
|
|
105
|
+
* parameters: [
|
|
106
|
+
* {
|
|
107
|
+
* parameterName: "JsonParsingEngine",
|
|
108
|
+
* parameterValue: "JQ-1.6",
|
|
109
|
+
* },
|
|
110
|
+
* {
|
|
111
|
+
* parameterName: "MetadataExtractionQuery",
|
|
112
|
+
* parameterValue: "{customer_id:.customer_id}",
|
|
113
|
+
* },
|
|
114
|
+
* ],
|
|
115
|
+
* },
|
|
116
|
+
* ],
|
|
117
|
+
* },
|
|
118
|
+
* },
|
|
119
|
+
* });
|
|
120
|
+
* ```
|
|
121
|
+
*
|
|
122
|
+
* Multiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameterValue`.
|
|
123
|
+
*
|
|
124
|
+
* The following example adds the Dynamic Partitioning Keys: `storeId` and `customerId` to the S3 prefix.
|
|
125
|
+
*
|
|
126
|
+
* ```typescript
|
|
127
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
128
|
+
* import * as aws from "@pulumi/aws";
|
|
129
|
+
*
|
|
130
|
+
* const extendedS3Stream = new aws.kinesis.FirehoseDeliveryStream("extendedS3Stream", {
|
|
131
|
+
* destination: "extended_s3",
|
|
132
|
+
* extendedS3Configuration: {
|
|
133
|
+
* roleArn: aws_iam_role.firehose_role.arn,
|
|
134
|
+
* bucketArn: aws_s3_bucket.bucket.arn,
|
|
135
|
+
* bufferingSize: 64,
|
|
136
|
+
* dynamicPartitioningConfiguration: {
|
|
137
|
+
* enabled: true,
|
|
138
|
+
* },
|
|
139
|
+
* prefix: "data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/",
|
|
140
|
+
* errorOutputPrefix: "errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/",
|
|
141
|
+
* processingConfiguration: {
|
|
142
|
+
* enabled: true,
|
|
143
|
+
* processors: [{
|
|
144
|
+
* type: "MetadataExtraction",
|
|
145
|
+
* parameters: [
|
|
146
|
+
* {
|
|
147
|
+
* parameterName: "JsonParsingEngine",
|
|
148
|
+
* parameterValue: "JQ-1.6",
|
|
149
|
+
* },
|
|
150
|
+
* {
|
|
151
|
+
* parameterName: "MetadataExtractionQuery",
|
|
152
|
+
* parameterValue: "{store_id:.store_id,customer_id:.customer_id}",
|
|
153
|
+
* },
|
|
154
|
+
* ],
|
|
155
|
+
* }],
|
|
156
|
+
* },
|
|
157
|
+
* },
|
|
158
|
+
* });
|
|
159
|
+
* ```
|
|
71
160
|
* ### Redshift Destination
|
|
72
161
|
*
|
|
73
162
|
* ```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firehoseDeliveryStream.js","sourceRoot":"","sources":["../../kinesis/firehoseDeliveryStream.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAIzC,0CAA0C;AAE1C
|
|
1
|
+
{"version":3,"file":"firehoseDeliveryStream.js","sourceRoot":"","sources":["../../kinesis/firehoseDeliveryStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
2
|
/**
|
|
3
|
-
* Resource for managing an AWS OpenSearch Serverless Security Policy.
|
|
3
|
+
* Resource for managing an AWS OpenSearch Serverless Security Policy. See AWS documentation for [encryption policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.html#serverless-encryption-policies) and [network policies](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html#serverless-network-policies).
|
|
4
4
|
*
|
|
5
5
|
* ## Example Usage
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* ### Encryption Security Policy
|
|
8
|
+
* ### Applies to a single collection
|
|
7
9
|
*
|
|
8
10
|
* ```typescript
|
|
9
11
|
* import * as pulumi from "@pulumi/pulumi";
|
|
@@ -12,16 +14,17 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
12
14
|
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
13
15
|
* name: "example",
|
|
14
16
|
* type: "encryption",
|
|
17
|
+
* description: "encryption security policy for example-collection",
|
|
15
18
|
* policy: JSON.stringify({
|
|
16
19
|
* Rules: [{
|
|
17
|
-
* Resource: ["collection/example"],
|
|
20
|
+
* Resource: ["collection/example-collection"],
|
|
18
21
|
* ResourceType: "collection",
|
|
19
22
|
* }],
|
|
20
23
|
* AWSOwnedKey: true,
|
|
21
24
|
* }),
|
|
22
25
|
* });
|
|
23
26
|
* ```
|
|
24
|
-
* ###
|
|
27
|
+
* ### Applies to multiple collections
|
|
25
28
|
*
|
|
26
29
|
* ```typescript
|
|
27
30
|
* import * as pulumi from "@pulumi/pulumi";
|
|
@@ -29,17 +32,128 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
29
32
|
*
|
|
30
33
|
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
31
34
|
* name: "example",
|
|
32
|
-
* type: "
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
+
* type: "encryption",
|
|
36
|
+
* description: "encryption security policy for collections that begin with \"example\"",
|
|
37
|
+
* policy: JSON.stringify({
|
|
35
38
|
* Rules: [{
|
|
36
|
-
* ResourceType: "collection",
|
|
37
39
|
* Resource: ["collection/example*"],
|
|
40
|
+
* ResourceType: "collection",
|
|
38
41
|
* }],
|
|
42
|
+
* AWSOwnedKey: true,
|
|
43
|
+
* }),
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
* ### Using a customer managed key
|
|
47
|
+
*
|
|
48
|
+
* ```typescript
|
|
49
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
50
|
+
* import * as aws from "@pulumi/aws";
|
|
51
|
+
*
|
|
52
|
+
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
53
|
+
* name: "example",
|
|
54
|
+
* type: "encryption",
|
|
55
|
+
* description: "encryption security policy using customer KMS key",
|
|
56
|
+
* policy: JSON.stringify({
|
|
57
|
+
* Rules: [{
|
|
58
|
+
* Resource: ["collection/customer-managed-key-collection"],
|
|
59
|
+
* ResourceType: "collection",
|
|
60
|
+
* }],
|
|
61
|
+
* AWSOwnedKey: false,
|
|
62
|
+
* KmsARN: "arn:aws:kms:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36",
|
|
63
|
+
* }),
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
* ### Network Security Policy
|
|
67
|
+
* ### Allow public access to the collection endpoint and the Dashboards endpoint
|
|
68
|
+
*
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
71
|
+
* import * as aws from "@pulumi/aws";
|
|
72
|
+
*
|
|
73
|
+
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
74
|
+
* name: "example",
|
|
75
|
+
* type: "network",
|
|
76
|
+
* description: "Public access",
|
|
77
|
+
* policy: JSON.stringify([{
|
|
78
|
+
* Description: "Public access to collection and Dashboards endpoint for example collection",
|
|
79
|
+
* Rules: [
|
|
80
|
+
* {
|
|
81
|
+
* ResourceType: "collection",
|
|
82
|
+
* Resource: ["collection/example-collection"],
|
|
83
|
+
* },
|
|
84
|
+
* {
|
|
85
|
+
* ResourceType: "dashboard",
|
|
86
|
+
* Resource: ["collection/example-collection"],
|
|
87
|
+
* },
|
|
88
|
+
* ],
|
|
39
89
|
* AllowFromPublic: true,
|
|
40
90
|
* }]),
|
|
41
91
|
* });
|
|
42
92
|
* ```
|
|
93
|
+
* ### Allow VPC access to the collection endpoint and the Dashboards endpoint
|
|
94
|
+
*
|
|
95
|
+
* ```typescript
|
|
96
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
97
|
+
* import * as aws from "@pulumi/aws";
|
|
98
|
+
*
|
|
99
|
+
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
100
|
+
* name: "example",
|
|
101
|
+
* type: "network",
|
|
102
|
+
* description: "VPC access",
|
|
103
|
+
* policy: JSON.stringify([{
|
|
104
|
+
* Description: "VPC access to collection and Dashboards endpoint for example collection",
|
|
105
|
+
* Rules: [
|
|
106
|
+
* {
|
|
107
|
+
* ResourceType: "collection",
|
|
108
|
+
* Resource: ["collection/example-collection"],
|
|
109
|
+
* },
|
|
110
|
+
* {
|
|
111
|
+
* ResourceType: "dashboard",
|
|
112
|
+
* Resource: ["collection/example-collection"],
|
|
113
|
+
* },
|
|
114
|
+
* ],
|
|
115
|
+
* AllowFromPublic: false,
|
|
116
|
+
* SourceVPCEs: ["vpce-050f79086ee71ac05"],
|
|
117
|
+
* }]),
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
* ### Mixed access for different collections
|
|
121
|
+
*
|
|
122
|
+
* ```typescript
|
|
123
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
124
|
+
* import * as aws from "@pulumi/aws";
|
|
125
|
+
*
|
|
126
|
+
* const example = new aws.opensearch.ServerlessSecurityPolicy("example", {
|
|
127
|
+
* name: "example",
|
|
128
|
+
* type: "network",
|
|
129
|
+
* description: "Mixed access for marketing and sales",
|
|
130
|
+
* policy: JSON.stringify([
|
|
131
|
+
* {
|
|
132
|
+
* Description: "Marketing access",
|
|
133
|
+
* Rules: [
|
|
134
|
+
* {
|
|
135
|
+
* ResourceType: "collection",
|
|
136
|
+
* Resource: ["collection/marketing*"],
|
|
137
|
+
* },
|
|
138
|
+
* {
|
|
139
|
+
* ResourceType: "dashboard",
|
|
140
|
+
* Resource: ["collection/marketing*"],
|
|
141
|
+
* },
|
|
142
|
+
* ],
|
|
143
|
+
* AllowFromPublic: false,
|
|
144
|
+
* SourceVPCEs: ["vpce-050f79086ee71ac05"],
|
|
145
|
+
* },
|
|
146
|
+
* {
|
|
147
|
+
* Description: "Sales access",
|
|
148
|
+
* Rules: [{
|
|
149
|
+
* ResourceType: "collection",
|
|
150
|
+
* Resource: ["collection/finance"],
|
|
151
|
+
* }],
|
|
152
|
+
* AllowFromPublic: true,
|
|
153
|
+
* },
|
|
154
|
+
* ]),
|
|
155
|
+
* });
|
|
156
|
+
* ```
|
|
43
157
|
*
|
|
44
158
|
* ## Import
|
|
45
159
|
*
|