@reventlessdev/rescript-pulumi-aws 2.4.0-alpha.43

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.
Files changed (169) hide show
  1. package/CHANGELOG.md +366 -0
  2. package/LICENSE +202 -0
  3. package/README.md +19 -0
  4. package/package.json +52 -0
  5. package/rescript.json +27 -0
  6. package/scripts/bundle-resolvers.mjs +77 -0
  7. package/src/AWS/Aws_AvailabilityZone.res +9 -0
  8. package/src/AWS/Aws_AvailabilityZone.res.mjs +9 -0
  9. package/src/AWS/Aws_AvailabilityZone.resi +9 -0
  10. package/src/AWS/Aws_Aws.res +29 -0
  11. package/src/AWS/Aws_Aws.res.mjs +32 -0
  12. package/src/AWS/Aws_Common.res +2 -0
  13. package/src/AWS/Aws_Common.res.mjs +2 -0
  14. package/src/AWS/Aws_Provider.res +10 -0
  15. package/src/AWS/Aws_Provider.res.mjs +2 -0
  16. package/src/Acm/Acm.res +5 -0
  17. package/src/Acm/Acm.res.mjs +12 -0
  18. package/src/Acm/Acm_Certificate.res +27 -0
  19. package/src/Acm/Acm_Certificate.res.mjs +2 -0
  20. package/src/Acm/Acm_CertificateValidation.res +22 -0
  21. package/src/Acm/Acm_CertificateValidation.res.mjs +2 -0
  22. package/src/AppSync/AppSync.res +7 -0
  23. package/src/AppSync/AppSync.res.mjs +18 -0
  24. package/src/AppSync/AppSync_DataSource.res +93 -0
  25. package/src/AppSync/AppSync_DataSource.res.mjs +42 -0
  26. package/src/AppSync/AppSync_Function.res +75 -0
  27. package/src/AppSync/AppSync_Function.res.mjs +36 -0
  28. package/src/AppSync/AppSync_GraphQLApi.res +65 -0
  29. package/src/AppSync/AppSync_GraphQLApi.res.mjs +20 -0
  30. package/src/AppSync/AppSync_Resolver.res +229 -0
  31. package/src/AppSync/AppSync_Resolver.res.mjs +113 -0
  32. package/src/AppSync/AppSync_ResolverRuntime.res +214 -0
  33. package/src/AppSync/AppSync_ResolverRuntime.res.mjs +15 -0
  34. package/src/AppSync/AppSync_Resolver_Functions.res +998 -0
  35. package/src/AppSync/AppSync_Resolver_Functions.res.mjs +913 -0
  36. package/src/Aws.res +5 -0
  37. package/src/Aws.res.mjs +16 -0
  38. package/src/AwsNative/AppSync/AwsNative_AppSync_Api.res +92 -0
  39. package/src/AwsNative/AppSync/AwsNative_AppSync_Api.res.mjs +12 -0
  40. package/src/AwsNative/AppSync/AwsNative_AppSync_ChannelNamespace.res +81 -0
  41. package/src/AwsNative/AppSync/AwsNative_AppSync_ChannelNamespace.res.mjs +18 -0
  42. package/src/AwsNative/AppSync/AwsNative_AppSync_Resolver.res +39 -0
  43. package/src/AwsNative/AppSync/AwsNative_AppSync_Resolver.res.mjs +12 -0
  44. package/src/AwsNative/AwsNative.res +10 -0
  45. package/src/AwsNative/AwsNative.res.mjs +13 -0
  46. package/src/CloudFront/CloudFront.res +5 -0
  47. package/src/CloudFront/CloudFront.res.mjs +12 -0
  48. package/src/CloudFront/CloudFront_Distribution.res +81 -0
  49. package/src/CloudFront/CloudFront_Distribution.res.mjs +2 -0
  50. package/src/CloudFront/CloudFront_OriginAccessControl.res +20 -0
  51. package/src/CloudFront/CloudFront_OriginAccessControl.res.mjs +2 -0
  52. package/src/Cloudwatch/Cloudwatch.res +7 -0
  53. package/src/Cloudwatch/Cloudwatch.res.mjs +18 -0
  54. package/src/Cloudwatch/Cloudwatch_EventRule.res +52 -0
  55. package/src/Cloudwatch/Cloudwatch_EventRule.res.mjs +37 -0
  56. package/src/Cloudwatch/Cloudwatch_EventTarget.res +28 -0
  57. package/src/Cloudwatch/Cloudwatch_EventTarget.res.mjs +25 -0
  58. package/src/Cloudwatch/Cloudwatch_LogGroup.res +14 -0
  59. package/src/Cloudwatch/Cloudwatch_LogGroup.res.mjs +2 -0
  60. package/src/Cloudwatch/Cloudwatch_LogMetricFilter.res +28 -0
  61. package/src/Cloudwatch/Cloudwatch_LogMetricFilter.res.mjs +2 -0
  62. package/src/Cognito/Cognito.res +8 -0
  63. package/src/Cognito/Cognito.res.mjs +21 -0
  64. package/src/Cognito/Cognito_IdentityPool.res +148 -0
  65. package/src/Cognito/Cognito_IdentityPool.res.mjs +65 -0
  66. package/src/Cognito/Cognito_IdentityPoolRoleAttachment.res +18 -0
  67. package/src/Cognito/Cognito_IdentityPoolRoleAttachment.res.mjs +2 -0
  68. package/src/Cognito/Cognito_UserGroup.res +16 -0
  69. package/src/Cognito/Cognito_UserGroup.res.mjs +2 -0
  70. package/src/Cognito/Cognito_UserPool.res +125 -0
  71. package/src/Cognito/Cognito_UserPool.res.mjs +44 -0
  72. package/src/Cognito/Cognito_UserPoolClient.res +33 -0
  73. package/src/Cognito/Cognito_UserPoolClient.res.mjs +2 -0
  74. package/src/DynamoDb/DynamoDb.res +5 -0
  75. package/src/DynamoDb/DynamoDb.res.mjs +12 -0
  76. package/src/DynamoDb/DynamoDb_Stream.res +41 -0
  77. package/src/DynamoDb/DynamoDb_Stream.res.mjs +2 -0
  78. package/src/DynamoDb/DynamoDb_Table.res +66 -0
  79. package/src/DynamoDb/DynamoDb_Table.res.mjs +2 -0
  80. package/src/EC2/EC2.res +13 -0
  81. package/src/EC2/EC2.res.mjs +36 -0
  82. package/src/EC2/EC2_Common.res +13 -0
  83. package/src/EC2/EC2_Common.res.mjs +22 -0
  84. package/src/EC2/EC2_DefaultSecurityGroup.res +22 -0
  85. package/src/EC2/EC2_DefaultSecurityGroup.res.mjs +19 -0
  86. package/src/EC2/EC2_Eip.res +24 -0
  87. package/src/EC2/EC2_Eip.res.mjs +18 -0
  88. package/src/EC2/EC2_InternetGateway.res +25 -0
  89. package/src/EC2/EC2_InternetGateway.res.mjs +18 -0
  90. package/src/EC2/EC2_NatGateway.res +30 -0
  91. package/src/EC2/EC2_NatGateway.res.mjs +18 -0
  92. package/src/EC2/EC2_RouteTable.res +49 -0
  93. package/src/EC2/EC2_RouteTable.res.mjs +38 -0
  94. package/src/EC2/EC2_RouteTableAssociation.res +30 -0
  95. package/src/EC2/EC2_RouteTableAssociation.res.mjs +18 -0
  96. package/src/EC2/EC2_SecurityGroup.res +44 -0
  97. package/src/EC2/EC2_SecurityGroup.res.mjs +49 -0
  98. package/src/EC2/EC2_Subnet.res +31 -0
  99. package/src/EC2/EC2_Subnet.res.mjs +19 -0
  100. package/src/EC2/EC2_Vpc.res +25 -0
  101. package/src/EC2/EC2_Vpc.res.mjs +18 -0
  102. package/src/EC2/EC2_VpcEndpoint.res +43 -0
  103. package/src/EC2/EC2_VpcEndpoint.res.mjs +22 -0
  104. package/src/ECS/ECS.res +6 -0
  105. package/src/ECS/ECS.res.mjs +15 -0
  106. package/src/ECS/ECS_Cluster.res +10 -0
  107. package/src/ECS/ECS_Cluster.res.mjs +2 -0
  108. package/src/ECS/ECS_Container.res +58 -0
  109. package/src/ECS/ECS_Container.res.mjs +2 -0
  110. package/src/ECS/ECS_TaskDefinition.res +31 -0
  111. package/src/ECS/ECS_TaskDefinition.res.mjs +2 -0
  112. package/src/IAM/IAM.res +148 -0
  113. package/src/IAM/IAM.res.mjs +61 -0
  114. package/src/IAM/IAM_ManagedPolicies.res +32 -0
  115. package/src/IAM/IAM_ManagedPolicies.res.mjs +2 -0
  116. package/src/IAM/PolicyDocument.res +163 -0
  117. package/src/IAM/PolicyDocument.res.mjs +164 -0
  118. package/src/Kinesis/Kinesis.res +4 -0
  119. package/src/Kinesis/Kinesis.res.mjs +9 -0
  120. package/src/Kinesis/Kinesis_Stream.res +70 -0
  121. package/src/Kinesis/Kinesis_Stream.res.mjs +9 -0
  122. package/src/Lambda/EventSourceMapping.res +78 -0
  123. package/src/Lambda/EventSourceMapping.res.mjs +2 -0
  124. package/src/Lambda/FunctionUrl.res +41 -0
  125. package/src/Lambda/FunctionUrl.res.mjs +2 -0
  126. package/src/Lambda/Lambda.res +270 -0
  127. package/src/Lambda/Lambda.res.mjs +94 -0
  128. package/src/Route53/Route53.res +4 -0
  129. package/src/Route53/Route53.res.mjs +9 -0
  130. package/src/Route53/Route53_Record.res +36 -0
  131. package/src/Route53/Route53_Record.res.mjs +2 -0
  132. package/src/S3/S3.res +10 -0
  133. package/src/S3/S3.res.mjs +27 -0
  134. package/src/S3/S3_Bucket.res +236 -0
  135. package/src/S3/S3_Bucket.res.mjs +2 -0
  136. package/src/S3/S3_BucketAclV2.res +24 -0
  137. package/src/S3/S3_BucketAclV2.res.mjs +2 -0
  138. package/src/S3/S3_BucketObject.res +22 -0
  139. package/src/S3/S3_BucketObject.res.mjs +2 -0
  140. package/src/S3/S3_BucketOwnershipControls.res +19 -0
  141. package/src/S3/S3_BucketOwnershipControls.res.mjs +2 -0
  142. package/src/S3/S3_BucketPolicy.res +13 -0
  143. package/src/S3/S3_BucketPolicy.res.mjs +2 -0
  144. package/src/S3/S3_BucketPublicAccessBlock.res +16 -0
  145. package/src/S3/S3_BucketPublicAccessBlock.res.mjs +2 -0
  146. package/src/S3/S3_BucketV2.res +11 -0
  147. package/src/S3/S3_BucketV2.res.mjs +2 -0
  148. package/src/SES/SES.bs.js +11 -0
  149. package/src/SES/SES.res +25 -0
  150. package/src/SES/SES.res.mjs +12 -0
  151. package/src/SNS/SNS.res +5 -0
  152. package/src/SNS/SNS.res.mjs +12 -0
  153. package/src/SNS/SNS_Topic.res +71 -0
  154. package/src/SNS/SNS_Topic.res.mjs +2 -0
  155. package/src/SNS/SNS_TopicSubscription.res +21 -0
  156. package/src/SNS/SNS_TopicSubscription.res.mjs +2 -0
  157. package/src/SQS/SQS.res +5 -0
  158. package/src/SQS/SQS.res.mjs +12 -0
  159. package/src/SQS/SQS_Queue.res +92 -0
  160. package/src/SQS/SQS_Queue.res.mjs +19 -0
  161. package/src/SQS/SQS_QueuePolicy.res +13 -0
  162. package/src/SQS/SQS_QueuePolicy.res.mjs +2 -0
  163. package/src/SecretsManager/GetSecretVersion.res +37 -0
  164. package/src/SecretsManager/GetSecretVersion.res.mjs +23 -0
  165. package/src/example/CustomDomainExample.res +71 -0
  166. package/src/example/CustomDomainExample.res.mjs +57 -0
  167. package/tests/AppSync_Resolver_FunctionsTest.mjs +597 -0
  168. package/tests/__mocks__/appsync-utils.mjs +26 -0
  169. package/tests/resolverTestHelper.mjs +46 -0
package/src/Aws.res ADDED
@@ -0,0 +1,5 @@
1
+ include Aws_Common
2
+ include Aws_Aws
3
+
4
+ module AvailabilityZone = Aws_AvailabilityZone
5
+ module Provider = Aws_Provider
@@ -0,0 +1,16 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+ import * as Aws_Aws$PulumiAws from "./AWS/Aws_Aws.res.mjs";
4
+
5
+ let getRegionSync = Aws_Aws$PulumiAws.getRegionSync;
6
+
7
+ let AvailabilityZone;
8
+
9
+ let Provider;
10
+
11
+ export {
12
+ getRegionSync,
13
+ AvailabilityZone,
14
+ Provider,
15
+ }
16
+ /* Aws_Aws-PulumiAws Not a pure module */
@@ -0,0 +1,92 @@
1
+ /** @pulumi/aws-native/appsync/Api — AppSync Events (Pub/Sub) API.
2
+ Distinct from AppSync GraphQL API (`aws.appsync.GraphQLApi`).
3
+ Used for real-time server-to-client event push via AppSync Events channels.
4
+ See: https://www.pulumi.com/registry/packages/aws-native/api-docs/appsync/api
5
+ */
6
+
7
+ // ── Auth types ────────────────────────────────────────────────────────────────
8
+
9
+ /** Authentication mode for connections / publish / subscribe. */
10
+ type authMode = {
11
+ /** Auth type string — use the `authType` constants below. */
12
+ authType?: Pulumi.Input.t<string>,
13
+ }
14
+
15
+ /** Optional Cognito User Pool authorization config for an auth provider.
16
+ Required when the provider's `authType` is `AMAZON_COGNITO_USER_POOLS`. */
17
+ type cognitoConfig = {
18
+ /** Region the user pool lives in (e.g. "eu-west-1"). */
19
+ awsRegion: Pulumi.Input.t<string>,
20
+ /** Cognito User Pool ID. */
21
+ userPoolId: Pulumi.Input.t<string>,
22
+ /** Optional regex restricting which app client IDs are accepted. */
23
+ appIdClientRegex?: Pulumi.Input.t<string>,
24
+ }
25
+
26
+ /** Auth provider entry for the Events API. */
27
+ type authProvider = {
28
+ authType: Pulumi.Input.t<string>,
29
+ /** Required when `authType` is `AMAZON_COGNITO_USER_POOLS`. */
30
+ cognitoConfig?: Pulumi.Input.t<cognitoConfig>,
31
+ }
32
+
33
+ /** IAM authentication type string. */
34
+ let awsIam: string = "AWS_IAM"
35
+
36
+ /** Amazon Cognito User Pools authentication type string. */
37
+ let amazonCognitoUserPools: string = "AMAZON_COGNITO_USER_POOLS"
38
+
39
+ // ── Event config ──────────────────────────────────────────────────────────────
40
+
41
+ /** Authorization configuration for an AppSync Events API.
42
+ All four array fields are required. */
43
+ type eventConfigArgs = {
44
+ /** Auth providers available to the API. */
45
+ authProviders: Pulumi.Input.t<array<Pulumi.Input.t<authProvider>>>,
46
+ /** Auth modes allowed for WebSocket connections. */
47
+ connectionAuthModes: Pulumi.Input.t<array<Pulumi.Input.t<authMode>>>,
48
+ /** Auth modes allowed for publishing events. */
49
+ defaultPublishAuthModes: Pulumi.Input.t<array<Pulumi.Input.t<authMode>>>,
50
+ /** Auth modes allowed for subscribing to channels. */
51
+ defaultSubscribeAuthModes: Pulumi.Input.t<array<Pulumi.Input.t<authMode>>>,
52
+ }
53
+
54
+ // ── Output types ──────────────────────────────────────────────────────────────
55
+
56
+ /** DNS endpoints for an AppSync Events API.
57
+ Both fields are domain-name-only (no protocol, no path).
58
+ Prepend `https://` for the HTTP endpoint, `wss://` for the realtime endpoint. */
59
+ type dns = {
60
+ http?: string,
61
+ realtime?: string,
62
+ }
63
+
64
+ /** Output shape of an `aws-native:appsync/Api` resource. */
65
+ type t = {
66
+ /** The API ID (short identifier). */
67
+ apiId: Pulumi.Output.t<string>,
68
+ /** The full ARN of the AppSync Events API. Used for IAM policy resources. */
69
+ apiArn: Pulumi.Output.t<string>,
70
+ /** DNS endpoints. Use `dns.http` for the Lambda `APPSYNC_ENDPOINT` env var. */
71
+ dns: Pulumi.Output.t<dns>,
72
+ /** The name of the AppSync Events API. */
73
+ name: Pulumi.Output.t<string>,
74
+ }
75
+
76
+ // ── Args ──────────────────────────────────────────────────────────────────────
77
+
78
+ type args = {
79
+ /** Required for Events APIs — omitting creates a plain (GraphQL-style) API. */
80
+ eventConfig?: Pulumi.Input.t<eventConfigArgs>,
81
+ /** Display name for the API resource. Defaults to the Pulumi resource name. */
82
+ name?: Pulumi.Input.t<string>,
83
+ }
84
+
85
+ // ── Constructor ───────────────────────────────────────────────────────────────
86
+
87
+ @module("@pulumi/aws-native") @scope("appsync") @new
88
+ external make: (
89
+ ~name: string,
90
+ ~args: args=?,
91
+ ~opts: option<Pulumi.CustomResourceOptions.t>=?,
92
+ ) => t = "Api"
@@ -0,0 +1,12 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let awsIam = "AWS_IAM";
5
+
6
+ let amazonCognitoUserPools = "AMAZON_COGNITO_USER_POOLS";
7
+
8
+ export {
9
+ awsIam,
10
+ amazonCognitoUserPools,
11
+ }
12
+ /* No side effect */
@@ -0,0 +1,81 @@
1
+ /** @pulumi/aws-native/appsync/ChannelNamespace — AppSync Events channel namespace.
2
+ A channel namespace groups channels within an AppSync Events API.
3
+ The conventional namespace for platform-generated events is `default`.
4
+ Channels within the namespace are addressed as `/default/{channelName}`.
5
+ See: https://www.pulumi.com/registry/packages/aws-native/api-docs/appsync/channelnamespace
6
+ */
7
+
8
+ type authMode = {
9
+ authType?: Pulumi.Input.t<string>,
10
+ }
11
+
12
+ type t = {
13
+ apiId: Pulumi.Output.t<string>,
14
+ channelNamespaceArn: Pulumi.Output.t<string>,
15
+ name: Pulumi.Output.t<string>,
16
+ }
17
+
18
+ // ── OnPublish / OnSubscribe handler bindings ──────────────────────────────────
19
+ //
20
+ // AppSync Events namespaces optionally run handlers per published message
21
+ // and/or per subscribe attempt. `codeHandlers` carries a JS module body that
22
+ // exports `onPublish`/`onSubscribe`; `handlerConfigs` chooses the behavior
23
+ // (CODE = APPSYNC_JS runtime, DIRECT = Lambda-only) and points the integration
24
+ // at a NONE-typed data source (for CODE) or a Lambda-backed data source.
25
+
26
+ /** Integration behavior for a handler. */
27
+ let handlerBehaviorCode: string = "CODE"
28
+ let handlerBehaviorDirect: string = "DIRECT"
29
+
30
+ /** Lambda invocation type for `DIRECT`/`CODE`+`lambdaConfig` integrations. */
31
+ let invokeTypeRequestResponse: string = "REQUEST_RESPONSE"
32
+ let invokeTypeEvent: string = "EVENT"
33
+
34
+ type lambdaConfigArgs = {
35
+ /** `"REQUEST_RESPONSE"` (sync) or `"EVENT"` (fire-and-forget). */
36
+ invokeType: Pulumi.Input.t<string>,
37
+ }
38
+
39
+ type integrationArgs = {
40
+ /** Name of an AppSync data source on the same Events API. Required by
41
+ CloudFormation even for `CODE` behavior — typically a NONE-typed data
42
+ source created by the caller. */
43
+ dataSourceName: Pulumi.Input.t<string>,
44
+ /** Required when invoking a Lambda; pair with `dataSourceName` pointing at
45
+ the Lambda data source. */
46
+ lambdaConfig?: Pulumi.Input.t<lambdaConfigArgs>,
47
+ }
48
+
49
+ type handlerConfigArgs = {
50
+ /** Use one of `handlerBehaviorCode` / `handlerBehaviorDirect`. */
51
+ behavior: Pulumi.Input.t<string>,
52
+ integration: Pulumi.Input.t<integrationArgs>,
53
+ }
54
+
55
+ type handlerConfigsArgs = {
56
+ onPublish?: Pulumi.Input.t<handlerConfigArgs>,
57
+ onSubscribe?: Pulumi.Input.t<handlerConfigArgs>,
58
+ }
59
+
60
+ type args = {
61
+ /** The AppSync Events API ID this namespace belongs to. Required. */
62
+ apiId: Pulumi.Input.t<string>,
63
+ /** Namespace name. Defaults to Pulumi resource name. Use `"default"`. */
64
+ name?: Pulumi.Input.t<string>,
65
+ /** Auth modes for publish operations. Defaults to API-level auth. */
66
+ publishAuthModes?: Pulumi.Input.t<array<Pulumi.Input.t<authMode>>>,
67
+ /** Auth modes for subscribe operations. Defaults to API-level auth. */
68
+ subscribeAuthModes?: Pulumi.Input.t<array<Pulumi.Input.t<authMode>>>,
69
+ /** JS module body exporting `onPublish(ctx)` and/or `onSubscribe(ctx)`.
70
+ Selected for invocation per the `handlerConfigs.*.behavior` field. */
71
+ codeHandlers?: Pulumi.Input.t<string>,
72
+ /** Routing config for the `onPublish`/`onSubscribe` handlers. */
73
+ handlerConfigs?: Pulumi.Input.t<handlerConfigsArgs>,
74
+ }
75
+
76
+ @module("@pulumi/aws-native") @scope("appsync") @new
77
+ external make: (
78
+ ~name: string,
79
+ ~args: args,
80
+ ~opts: option<Pulumi.CustomResourceOptions.t>=?,
81
+ ) => t = "ChannelNamespace"
@@ -0,0 +1,18 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let handlerBehaviorCode = "CODE";
5
+
6
+ let handlerBehaviorDirect = "DIRECT";
7
+
8
+ let invokeTypeRequestResponse = "REQUEST_RESPONSE";
9
+
10
+ let invokeTypeEvent = "EVENT";
11
+
12
+ export {
13
+ handlerBehaviorCode,
14
+ handlerBehaviorDirect,
15
+ invokeTypeRequestResponse,
16
+ invokeTypeEvent,
17
+ }
18
+ /* No side effect */
@@ -0,0 +1,39 @@
1
+ /** @pulumi/aws-native/appsync/Resolver — Cloud Control API (CFN handler).
2
+ Used instead of @pulumi/aws/appsync/Resolver to avoid the schema ->
3
+ resolver propagation race; the CFN handler waits internally.
4
+ See: https://www.pulumi.com/registry/packages/aws-native/api-docs/appsync/resolver
5
+ */
6
+ type t = {
7
+ id: Pulumi.Output.t<string>,
8
+ resolverArn: Pulumi.Output.t<string>,
9
+ typeName: Pulumi.Output.t<string>,
10
+ fieldName: Pulumi.Output.t<string>,
11
+ }
12
+
13
+ type runtime = {
14
+ name: string,
15
+ runtimeVersion: string,
16
+ }
17
+
18
+ /** APPSYNC_JS runtime v1.0.0 — use with `code` instead of VTL templates. */
19
+ let appsyncJs: runtime = {name: "APPSYNC_JS", runtimeVersion: "1.0.0"}
20
+
21
+ type pipelineConfig = {functions: array<Pulumi.Input.t<string>>}
22
+
23
+ type args = {
24
+ apiId: Pulumi.Input.t<string>,
25
+ typeName: Pulumi.Input.t<string>,
26
+ fieldName: Pulumi.Input.t<string>,
27
+ dataSourceName?: Pulumi.Input.t<string>,
28
+ kind?: Pulumi.Input.t<string>,
29
+ code?: Pulumi.Input.t<string>,
30
+ runtime?: Pulumi.Input.t<runtime>,
31
+ pipelineConfig?: Pulumi.Input.t<pipelineConfig>,
32
+ }
33
+
34
+ @module("@pulumi/aws-native") @scope("appsync") @new
35
+ external make: (
36
+ ~name: string,
37
+ ~args: args,
38
+ ~opts: option<Pulumi.CustomResourceOptions.t>=?,
39
+ ) => t = "Resolver"
@@ -0,0 +1,12 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let appsyncJs = {
5
+ name: "APPSYNC_JS",
6
+ runtimeVersion: "1.0.0"
7
+ };
8
+
9
+ export {
10
+ appsyncJs,
11
+ }
12
+ /* No side effect */
@@ -0,0 +1,10 @@
1
+ /** Umbrella for @pulumi/aws-native bindings. Intentionally narrow —
2
+ added only for resources that benefit from Cloud Control API semantics
3
+ (e.g. AppSync Resolver's internal schema-propagation wait). */
4
+ module AppSync = {
5
+ module Resolver = AwsNative_AppSync_Resolver
6
+ /** AppSync Events (Pub/Sub) API — distinct from the GraphQL API. */
7
+ module Api = AwsNative_AppSync_Api
8
+ /** Channel namespace within an AppSync Events API. */
9
+ module ChannelNamespace = AwsNative_AppSync_ChannelNamespace
10
+ }
@@ -0,0 +1,13 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let AppSync = {
5
+ Resolver: undefined,
6
+ Api: undefined,
7
+ ChannelNamespace: undefined
8
+ };
9
+
10
+ export {
11
+ AppSync,
12
+ }
13
+ /* No side effect */
@@ -0,0 +1,5 @@
1
+ /** @pulumi/aws/cloudfront
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudfront/
3
+ */
4
+ module OriginAccessControl = CloudFront_OriginAccessControl
5
+ module Distribution = CloudFront_Distribution
@@ -0,0 +1,12 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let OriginAccessControl;
5
+
6
+ let Distribution;
7
+
8
+ export {
9
+ OriginAccessControl,
10
+ Distribution,
11
+ }
12
+ /* No side effect */
@@ -0,0 +1,81 @@
1
+ /** @pulumi/aws/cloudfront/Distribution
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudfront/distribution
3
+ */
4
+ type origin = {
5
+ domainName: Pulumi.Input.t<string>,
6
+ originId: Pulumi.Input.t<string>,
7
+ originAccessControlId?: Pulumi.Input.t<string>,
8
+ }
9
+
10
+ type defaultCacheBehavior = {
11
+ targetOriginId: Pulumi.Input.t<string>,
12
+ viewerProtocolPolicy: Pulumi.Input.t<string>,
13
+ allowedMethods: Pulumi.Input.t<array<string>>,
14
+ cachedMethods: Pulumi.Input.t<array<string>>,
15
+ cachePolicyId?: Pulumi.Input.t<string>,
16
+ compress?: Pulumi.Input.t<bool>,
17
+ }
18
+
19
+ // orderedCacheBehavior shares defaultCacheBehavior's shape but adds a
20
+ // pathPattern selector — CloudFront evaluates these in order and the first
21
+ // match wins; entries without a match fall back to the default behavior.
22
+ type orderedCacheBehavior = {
23
+ pathPattern: Pulumi.Input.t<string>,
24
+ targetOriginId: Pulumi.Input.t<string>,
25
+ viewerProtocolPolicy: Pulumi.Input.t<string>,
26
+ allowedMethods: Pulumi.Input.t<array<string>>,
27
+ cachedMethods: Pulumi.Input.t<array<string>>,
28
+ cachePolicyId?: Pulumi.Input.t<string>,
29
+ compress?: Pulumi.Input.t<bool>,
30
+ }
31
+
32
+ type geoRestriction = {
33
+ restrictionType: Pulumi.Input.t<string>,
34
+ }
35
+
36
+ type restrictions = {
37
+ geoRestriction: Pulumi.Input.t<geoRestriction>,
38
+ }
39
+
40
+ type viewerCertificate = {
41
+ cloudfrontDefaultCertificate?: Pulumi.Input.t<bool>,
42
+ acmCertificateArn?: Pulumi.Input.t<string>,
43
+ sslSupportMethod?: Pulumi.Input.t<string>,
44
+ minimumProtocolVersion?: Pulumi.Input.t<string>,
45
+ }
46
+
47
+ type customErrorResponse = {
48
+ errorCode: Pulumi.Input.t<int>,
49
+ responseCode?: Pulumi.Input.t<int>,
50
+ responsePagePath?: Pulumi.Input.t<string>,
51
+ errorCachingMinTtl?: Pulumi.Input.t<int>,
52
+ }
53
+
54
+ type args = {
55
+ enabled: Pulumi.Input.t<bool>,
56
+ aliases?: Pulumi.Input.t<array<string>>,
57
+ origins: Pulumi.Input.t<array<origin>>,
58
+ defaultCacheBehavior: Pulumi.Input.t<defaultCacheBehavior>,
59
+ orderedCacheBehaviors?: Pulumi.Input.t<array<orderedCacheBehavior>>,
60
+ restrictions: Pulumi.Input.t<restrictions>,
61
+ viewerCertificate: Pulumi.Input.t<viewerCertificate>,
62
+ comment?: Pulumi.Input.t<string>,
63
+ customErrorResponses?: Pulumi.Input.t<array<customErrorResponse>>,
64
+ defaultRootObject?: Pulumi.Input.t<string>,
65
+ httpVersion?: Pulumi.Input.t<string>,
66
+ isIpv6Enabled?: Pulumi.Input.t<bool>,
67
+ priceClass?: Pulumi.Input.t<string>,
68
+ tags?: Pulumi.Input.t<Aws.tags>,
69
+ waitForDeployment?: Pulumi.Input.t<bool>,
70
+ }
71
+
72
+ type t = {
73
+ id: Pulumi.Output.t<string>,
74
+ arn: Pulumi.Output.t<string>,
75
+ domainName: Pulumi.Output.t<string>,
76
+ hostedZoneId: Pulumi.Output.t<string>,
77
+ }
78
+
79
+ @module("@pulumi/aws") @scope("cloudfront") @new
80
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
81
+ "Distribution"
@@ -0,0 +1,2 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
@@ -0,0 +1,20 @@
1
+ /** @pulumi/aws/cloudfront/OriginAccessControl
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudfront/originaccesscontrol
3
+ */
4
+ type t = {
5
+ id: Pulumi.Output.t<string>,
6
+ arn: Pulumi.Output.t<string>,
7
+ name: Pulumi.Output.t<string>,
8
+ }
9
+
10
+ type args = {
11
+ name?: Pulumi.Input.t<string>,
12
+ description?: Pulumi.Input.t<string>,
13
+ originAccessControlOriginType: Pulumi.Input.t<string>,
14
+ signingBehavior: Pulumi.Input.t<string>,
15
+ signingProtocol: Pulumi.Input.t<string>,
16
+ }
17
+
18
+ @module("@pulumi/aws") @scope("cloudfront") @new
19
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
20
+ "OriginAccessControl"
@@ -0,0 +1,2 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
@@ -0,0 +1,7 @@
1
+ /** @pulumi/aws/cloudwatch
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudwatch/
3
+ */
4
+ module EventRule = Cloudwatch_EventRule
5
+ module EventTarget = Cloudwatch_EventTarget
6
+ module LogGroup = Cloudwatch_LogGroup
7
+ module LogMetricFilter = Cloudwatch_LogMetricFilter
@@ -0,0 +1,18 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ let EventRule;
5
+
6
+ let EventTarget;
7
+
8
+ let LogGroup;
9
+
10
+ let LogMetricFilter;
11
+
12
+ export {
13
+ EventRule,
14
+ EventTarget,
15
+ LogGroup,
16
+ LogMetricFilter,
17
+ }
18
+ /* No side effect */
@@ -0,0 +1,52 @@
1
+ /** @pulumi/aws/cloudwatch/eventrule
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudwatch/eventrule/
3
+ */
4
+ type t = {name: Pulumi.Output.t<string>, arn: Pulumi.Output.t<string>, id: Pulumi.Output.t<string>}
5
+
6
+ module ScheduleExpression: {
7
+ type t
8
+ type rate =
9
+ | Minutes(int)
10
+ | Hours(int)
11
+ | Days(int)
12
+
13
+ let every: rate => t
14
+ let rate: rate => t
15
+ } = {
16
+ /** Either a cron or rate expression
17
+ * see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html
18
+ */
19
+ type t = Pulumi.Input.t<string>
20
+
21
+ type rate =
22
+ | Minutes(int)
23
+ | Hours(int)
24
+ | Days(int)
25
+
26
+ let plural = count => count == 1 ? "" : "s"
27
+
28
+ let every = rate =>
29
+ switch rate {
30
+ | Minutes(minutes) =>
31
+ let plural = minutes->plural
32
+ `rate(${minutes->Int.toString} minute${plural})`
33
+ | Hours(hours) =>
34
+ let plural = hours->plural
35
+ `rate(${hours->Int.toString} hour${plural})`
36
+ | Days(days) =>
37
+ let plural = days->plural
38
+ `rate(${days->Int.toString} day${plural})`
39
+ }->Pulumi.Input.make
40
+
41
+ let rate = every
42
+ }
43
+
44
+ type args = {
45
+ description?: Pulumi.Input.t<string>,
46
+ scheduleExpression?: ScheduleExpression.t,
47
+ roleArn?: Pulumi.Input.t<string>,
48
+ }
49
+
50
+ @module("@pulumi/aws") @scope("cloudwatch") @new
51
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
52
+ "EventRule"
@@ -0,0 +1,37 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ function plural(count) {
5
+ if (count === 1) {
6
+ return "";
7
+ } else {
8
+ return "s";
9
+ }
10
+ }
11
+
12
+ function every(rate) {
13
+ switch (rate.TAG) {
14
+ case "Minutes" :
15
+ let minutes = rate._0;
16
+ let plural$1 = plural(minutes);
17
+ return `rate(` + minutes.toString() + ` minute` + plural$1 + `)`;
18
+ case "Hours" :
19
+ let hours = rate._0;
20
+ let plural$2 = plural(hours);
21
+ return `rate(` + hours.toString() + ` hour` + plural$2 + `)`;
22
+ case "Days" :
23
+ let days = rate._0;
24
+ let plural$3 = plural(days);
25
+ return `rate(` + days.toString() + ` day` + plural$3 + `)`;
26
+ }
27
+ }
28
+
29
+ let ScheduleExpression = {
30
+ every: every,
31
+ rate: every
32
+ };
33
+
34
+ export {
35
+ ScheduleExpression,
36
+ }
37
+ /* No side effect */
@@ -0,0 +1,28 @@
1
+ /** @pulumi/aws/cloudwatch/eventtarget
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudwatch/eventtarget/
3
+ */
4
+ type t
5
+
6
+ module Rule: {
7
+ type t
8
+
9
+ let ofInput: Pulumi.Input.t<string> => t
10
+ let ofString: string => t
11
+ let ofEventRule: Cloudwatch_EventRule.t => t
12
+ } = {
13
+ type t = Pulumi.Input.t<string>
14
+
15
+ external ofInput: Pulumi.Input.t<string> => t = "%identity"
16
+ let ofString = ruleName => ruleName->Pulumi.Input.make
17
+ let ofEventRule = (rule: Cloudwatch_EventRule.t) => rule.name->Pulumi.Output.asInput
18
+ }
19
+
20
+ type args = {
21
+ rule: Rule.t,
22
+ arn: Pulumi.Input.t<string>,
23
+ input?: Pulumi.Input.t<string>,
24
+ }
25
+
26
+ @module("@pulumi/aws") @scope("cloudwatch") @new
27
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
28
+ "EventTarget"
@@ -0,0 +1,25 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+
3
+
4
+ function ofString(ruleName) {
5
+ return ruleName;
6
+ }
7
+
8
+ function ofEventRule(rule) {
9
+ return rule.name;
10
+ }
11
+
12
+ function Rule_ofInput(prim) {
13
+ return prim;
14
+ }
15
+
16
+ let Rule = {
17
+ ofInput: Rule_ofInput,
18
+ ofString: ofString,
19
+ ofEventRule: ofEventRule
20
+ };
21
+
22
+ export {
23
+ Rule,
24
+ }
25
+ /* No side effect */
@@ -0,0 +1,14 @@
1
+ /** @pulumi/aws/cloudwatch/loggroup
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudwatch/loggroup/
3
+ */
4
+ type t = {name: Pulumi.Output.t<string>, arn: Pulumi.Output.t<string>, id: Pulumi.Output.t<string>}
5
+
6
+ type args = {
7
+ name?: Pulumi.Input.t<string>,
8
+ retentionInDays?: Pulumi.Input.t<int>,
9
+ tags?: Pulumi.Input.t<Aws.tags>,
10
+ }
11
+
12
+ @module("@pulumi/aws") @scope("cloudwatch") @new
13
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
14
+ "LogGroup"
@@ -0,0 +1,2 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */
@@ -0,0 +1,28 @@
1
+ /** @pulumi/aws/cloudwatch/logmetricfilter
2
+ see: https://www.pulumi.com/registry/packages/aws/api-docs/cloudwatch/logmetricfilter/
3
+ */
4
+
5
+ /** How matched log events are turned into a CloudWatch metric data point.
6
+ `value`/`dimensions` use metric-filter JSON selectors (e.g. `"$.value"`). */
7
+ type metricTransformation = {
8
+ name: Pulumi.Input.t<string>,
9
+ namespace: Pulumi.Input.t<string>,
10
+ value: Pulumi.Input.t<string>,
11
+ defaultValue?: Pulumi.Input.t<string>,
12
+ unit?: Pulumi.Input.t<string>,
13
+ dimensions?: Pulumi.Input.t<Dict.t<string>>,
14
+ }
15
+
16
+ type t = {id: Pulumi.Output.t<string>}
17
+
18
+ type args = {
19
+ name?: Pulumi.Input.t<string>,
20
+ /** Filter pattern matched against log events, e.g. `{ $.reventlessMetric = "AppendRetry" }`. */
21
+ pattern: Pulumi.Input.t<string>,
22
+ logGroupName: Pulumi.Input.t<string>,
23
+ metricTransformation: Pulumi.Input.t<metricTransformation>,
24
+ }
25
+
26
+ @module("@pulumi/aws") @scope("cloudwatch") @new
27
+ external make: (~name: string, ~args: args, ~opts: Pulumi.CustomResourceOptions.t=?) => t =
28
+ "LogMetricFilter"
@@ -0,0 +1,2 @@
1
+ // Generated by ReScript, PLEASE EDIT WITH CARE
2
+ /* This output is empty. Its source's type definitions, externals and/or unused code got optimized away. */