@pulumi/cloudflare 3.5.0 → 3.6.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/ruleset.js CHANGED
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  const pulumi = require("@pulumi/pulumi");
6
6
  const utilities = require("./utilities");
7
7
  /**
8
- * The Cloudflare Ruleset Engine allows you to create and deploy rules and rulesets.
8
+ * The [Cloudflare Ruleset Engine](https://developers.cloudflare.com/firewall/cf-rulesets)
9
+ * allows you to create and deploy rules and rulesets.
9
10
  * The engine syntax, inspired by the Wireshark Display Filter language, is the
10
11
  * same syntax used in custom Firewall Rules. Cloudflare uses the Ruleset Engine
11
12
  * in different products, allowing you to configure several products using the same
@@ -38,9 +39,9 @@ const utilities = require("./utilities");
38
39
  * phase: "http_request_firewall_managed",
39
40
  * rules: [{
40
41
  * action: "execute",
41
- * actionParameters: [{
42
+ * actionParameters: {
42
43
  * id: "efb7b8c949ac4650a09736fc376e9aee",
43
- * }],
44
+ * },
44
45
  * description: "Execute Cloudflare Managed Ruleset on my zone-level phase entry point ruleset",
45
46
  * enabled: true,
46
47
  * expression: "true",
@@ -55,7 +56,7 @@ const utilities = require("./utilities");
55
56
  * phase: "http_request_firewall_managed",
56
57
  * rules: [{
57
58
  * action: "execute",
58
- * actionParameters: [{
59
+ * actionParameters: {
59
60
  * id: "efb7b8c949ac4650a09736fc376e9aee",
60
61
  * overrides: {
61
62
  * categories: [
@@ -71,13 +72,110 @@ const utilities = require("./utilities");
71
72
  * },
72
73
  * ],
73
74
  * },
74
- * }],
75
+ * },
75
76
  * description: "overrides to only enable wordpress rules to block",
76
77
  * enabled: false,
77
78
  * expression: "true",
78
79
  * }],
79
80
  * zoneId: "cb029e245cfdd66dc8d2e570d5dd3322",
80
81
  * });
82
+ * // Rewrite the URI path component to a static path
83
+ * const transformUriRulePath = new cloudflare.Ruleset("transform_uri_rule_path", {
84
+ * description: "change the URI path to a new static path",
85
+ * kind: "zone",
86
+ * name: "transform rule for URI path",
87
+ * phase: "http_request_transform",
88
+ * rules: [{
89
+ * action: "rewrite",
90
+ * actionParameters: {
91
+ * uri: {
92
+ * path: {
93
+ * value: "/my-new-route",
94
+ * },
95
+ * },
96
+ * },
97
+ * description: "example URI path transform rule",
98
+ * enabled: true,
99
+ * expression: "(http.host eq \"example.com\" and http.uri.path eq \"/old-path\")",
100
+ * }],
101
+ * zoneId: "cb029e245cfdd66dc8d2e570d5dd3322",
102
+ * });
103
+ * // Rewrite the URI query component to a static query
104
+ * const transformUriRuleQuery = new cloudflare.Ruleset("transform_uri_rule_query", {
105
+ * description: "change the URI query to a new static query",
106
+ * kind: "zone",
107
+ * name: "transform rule for URI query parameter",
108
+ * phase: "http_request_transform",
109
+ * rules: [{
110
+ * action: "rewrite",
111
+ * actionParameters: {
112
+ * uri: {
113
+ * query: {
114
+ * value: "old=new_again",
115
+ * },
116
+ * },
117
+ * },
118
+ * description: "URI transformation query example",
119
+ * enabled: true,
120
+ * expression: "true",
121
+ * }],
122
+ * zoneId: "cb029e245cfdd66dc8d2e570d5dd3322",
123
+ * });
124
+ * // Rewrite HTTP headers to a modified values
125
+ * const transformUriHttpHeaders = new cloudflare.Ruleset("transform_uri_http_headers", {
126
+ * description: "modify HTTP headers before reaching origin",
127
+ * kind: "zone",
128
+ * name: "transform rule for HTTP headers",
129
+ * phase: "http_request_late_transform",
130
+ * rules: [{
131
+ * action: "rewrite",
132
+ * actionParameters: {
133
+ * headers: [
134
+ * {
135
+ * name: "example-http-header-1",
136
+ * operation: "set",
137
+ * value: "my-http-header-value-1",
138
+ * },
139
+ * {
140
+ * expression: "cf.zone.name",
141
+ * name: "example-http-header-2",
142
+ * operation: "set",
143
+ * },
144
+ * {
145
+ * name: "example-http-header-3-to-remove",
146
+ * operation: "remove",
147
+ * },
148
+ * ],
149
+ * },
150
+ * description: "example request header transform rule",
151
+ * enabled: false,
152
+ * expression: "true",
153
+ * }],
154
+ * zoneId: "cb029e245cfdd66dc8d2e570d5dd3322",
155
+ * });
156
+ * // HTTP rate limit for an API route
157
+ * const rateLimitingExample = new cloudflare.Ruleset("rate_limiting_example", {
158
+ * description: "apply HTTP rate limiting for a route",
159
+ * kind: "zone",
160
+ * name: "restrict API requests count",
161
+ * phase: "http_ratelimit",
162
+ * rules: [{
163
+ * action: "block",
164
+ * description: "rate limit for API",
165
+ * enabled: true,
166
+ * expression: "(http.request.uri.path matches \"^/api/\")",
167
+ * ratelimit: {
168
+ * characteristics: [
169
+ * "cf.colo.id",
170
+ * "ip.src",
171
+ * ],
172
+ * mitigationTimeout: 600,
173
+ * period: 60,
174
+ * requestsPerPeriod: 100,
175
+ * },
176
+ * }],
177
+ * zoneId: "cb029e245cfdd66dc8d2e570d5dd3322",
178
+ * });
81
179
  * ```
82
180
  *
83
181
  * ## Import
package/ruleset.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../ruleset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruleset.js","sourceRoot":"","sources":["../ruleset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import { input as inputs, output as outputs } from "./types";
3
+ /**
4
+ * Provides a Cloudflare Teams Account resource. The Teams Account resource defines configuration for secure web gateway.
5
+ *
6
+ * ## Example Usage
7
+ *
8
+ * ```typescript
9
+ * import * as pulumi from "@pulumi/pulumi";
10
+ * import * as cloudflare from "@pulumi/cloudflare";
11
+ *
12
+ * const main = new cloudflare.TeamsAccount("main", {
13
+ * accountId: "1d5fdc9e88c8a8c4518b068cd94331fe",
14
+ * blockPage: {
15
+ * backgroundColor: "#000000",
16
+ * footerText: "hello",
17
+ * headerText: "hello",
18
+ * logoPath: "https://google.com",
19
+ * },
20
+ * tlsDecryptEnabled: true,
21
+ * });
22
+ * ```
23
+ *
24
+ * ## Import
25
+ *
26
+ * Since a Teams account does not have a unique resource ID, configuration can be imported using the account ID.
27
+ *
28
+ * ```sh
29
+ * $ pulumi import cloudflare:index/teamsAccount:TeamsAccount example cb029e245cfdd66dc8d2e570d5dd3322
30
+ * ```
31
+ */
32
+ export declare class TeamsAccount extends pulumi.CustomResource {
33
+ /**
34
+ * Get an existing TeamsAccount resource's state with the given name, ID, and optional extra
35
+ * properties used to qualify the lookup.
36
+ *
37
+ * @param name The _unique_ name of the resulting resource.
38
+ * @param id The _unique_ provider ID of the resource to lookup.
39
+ * @param state Any extra arguments used during the lookup.
40
+ * @param opts Optional settings to control the behavior of the CustomResource.
41
+ */
42
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TeamsAccountState, opts?: pulumi.CustomResourceOptions): TeamsAccount;
43
+ /**
44
+ * Returns true if the given object is an instance of TeamsAccount. This is designed to work even
45
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
46
+ */
47
+ static isInstance(obj: any): obj is TeamsAccount;
48
+ /**
49
+ * The account to which the teams location should be added.
50
+ */
51
+ readonly accountId: pulumi.Output<string>;
52
+ readonly activityLogEnabled: pulumi.Output<boolean | undefined>;
53
+ /**
54
+ * Configuration for antivirus traffic scanning.
55
+ */
56
+ readonly antivirus: pulumi.Output<outputs.TeamsAccountAntivirus | undefined>;
57
+ /**
58
+ * Configuration for a custom block page.
59
+ */
60
+ readonly blockPage: pulumi.Output<outputs.TeamsAccountBlockPage | undefined>;
61
+ /**
62
+ * Indicator that decryption of TLS traffic is enabled.
63
+ */
64
+ readonly tlsDecryptEnabled: pulumi.Output<boolean | undefined>;
65
+ /**
66
+ * Create a TeamsAccount resource with the given unique name, arguments, and options.
67
+ *
68
+ * @param name The _unique_ name of the resource.
69
+ * @param args The arguments to use to populate this resource's properties.
70
+ * @param opts A bag of options that control this resource's behavior.
71
+ */
72
+ constructor(name: string, args: TeamsAccountArgs, opts?: pulumi.CustomResourceOptions);
73
+ }
74
+ /**
75
+ * Input properties used for looking up and filtering TeamsAccount resources.
76
+ */
77
+ export interface TeamsAccountState {
78
+ /**
79
+ * The account to which the teams location should be added.
80
+ */
81
+ accountId?: pulumi.Input<string>;
82
+ activityLogEnabled?: pulumi.Input<boolean>;
83
+ /**
84
+ * Configuration for antivirus traffic scanning.
85
+ */
86
+ antivirus?: pulumi.Input<inputs.TeamsAccountAntivirus>;
87
+ /**
88
+ * Configuration for a custom block page.
89
+ */
90
+ blockPage?: pulumi.Input<inputs.TeamsAccountBlockPage>;
91
+ /**
92
+ * Indicator that decryption of TLS traffic is enabled.
93
+ */
94
+ tlsDecryptEnabled?: pulumi.Input<boolean>;
95
+ }
96
+ /**
97
+ * The set of arguments for constructing a TeamsAccount resource.
98
+ */
99
+ export interface TeamsAccountArgs {
100
+ /**
101
+ * The account to which the teams location should be added.
102
+ */
103
+ accountId: pulumi.Input<string>;
104
+ activityLogEnabled?: pulumi.Input<boolean>;
105
+ /**
106
+ * Configuration for antivirus traffic scanning.
107
+ */
108
+ antivirus?: pulumi.Input<inputs.TeamsAccountAntivirus>;
109
+ /**
110
+ * Configuration for a custom block page.
111
+ */
112
+ blockPage?: pulumi.Input<inputs.TeamsAccountBlockPage>;
113
+ /**
114
+ * Indicator that decryption of TLS traffic is enabled.
115
+ */
116
+ tlsDecryptEnabled?: pulumi.Input<boolean>;
117
+ }
@@ -0,0 +1,90 @@
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
+ const pulumi = require("@pulumi/pulumi");
6
+ const utilities = require("./utilities");
7
+ /**
8
+ * Provides a Cloudflare Teams Account resource. The Teams Account resource defines configuration for secure web gateway.
9
+ *
10
+ * ## Example Usage
11
+ *
12
+ * ```typescript
13
+ * import * as pulumi from "@pulumi/pulumi";
14
+ * import * as cloudflare from "@pulumi/cloudflare";
15
+ *
16
+ * const main = new cloudflare.TeamsAccount("main", {
17
+ * accountId: "1d5fdc9e88c8a8c4518b068cd94331fe",
18
+ * blockPage: {
19
+ * backgroundColor: "#000000",
20
+ * footerText: "hello",
21
+ * headerText: "hello",
22
+ * logoPath: "https://google.com",
23
+ * },
24
+ * tlsDecryptEnabled: true,
25
+ * });
26
+ * ```
27
+ *
28
+ * ## Import
29
+ *
30
+ * Since a Teams account does not have a unique resource ID, configuration can be imported using the account ID.
31
+ *
32
+ * ```sh
33
+ * $ pulumi import cloudflare:index/teamsAccount:TeamsAccount example cb029e245cfdd66dc8d2e570d5dd3322
34
+ * ```
35
+ */
36
+ class TeamsAccount extends pulumi.CustomResource {
37
+ constructor(name, argsOrState, opts) {
38
+ let inputs = {};
39
+ opts = opts || {};
40
+ if (opts.id) {
41
+ const state = argsOrState;
42
+ inputs["accountId"] = state ? state.accountId : undefined;
43
+ inputs["activityLogEnabled"] = state ? state.activityLogEnabled : undefined;
44
+ inputs["antivirus"] = state ? state.antivirus : undefined;
45
+ inputs["blockPage"] = state ? state.blockPage : undefined;
46
+ inputs["tlsDecryptEnabled"] = state ? state.tlsDecryptEnabled : undefined;
47
+ }
48
+ else {
49
+ const args = argsOrState;
50
+ if ((!args || args.accountId === undefined) && !opts.urn) {
51
+ throw new Error("Missing required property 'accountId'");
52
+ }
53
+ inputs["accountId"] = args ? args.accountId : undefined;
54
+ inputs["activityLogEnabled"] = args ? args.activityLogEnabled : undefined;
55
+ inputs["antivirus"] = args ? args.antivirus : undefined;
56
+ inputs["blockPage"] = args ? args.blockPage : undefined;
57
+ inputs["tlsDecryptEnabled"] = args ? args.tlsDecryptEnabled : undefined;
58
+ }
59
+ if (!opts.version) {
60
+ opts = pulumi.mergeOptions(opts, { version: utilities.getVersion() });
61
+ }
62
+ super(TeamsAccount.__pulumiType, name, inputs, opts);
63
+ }
64
+ /**
65
+ * Get an existing TeamsAccount resource's state with the given name, ID, and optional extra
66
+ * properties used to qualify the lookup.
67
+ *
68
+ * @param name The _unique_ name of the resulting resource.
69
+ * @param id The _unique_ provider ID of the resource to lookup.
70
+ * @param state Any extra arguments used during the lookup.
71
+ * @param opts Optional settings to control the behavior of the CustomResource.
72
+ */
73
+ static get(name, id, state, opts) {
74
+ return new TeamsAccount(name, state, Object.assign(Object.assign({}, opts), { id: id }));
75
+ }
76
+ /**
77
+ * Returns true if the given object is an instance of TeamsAccount. This is designed to work even
78
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
79
+ */
80
+ static isInstance(obj) {
81
+ if (obj === undefined || obj === null) {
82
+ return false;
83
+ }
84
+ return obj['__pulumiType'] === TeamsAccount.__pulumiType;
85
+ }
86
+ }
87
+ exports.TeamsAccount = TeamsAccount;
88
+ /** @internal */
89
+ TeamsAccount.__pulumiType = 'cloudflare:index/teamsAccount:TeamsAccount';
90
+ //# sourceMappingURL=teamsAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsAccount.js","sourceRoot":"","sources":["../teamsAccount.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,38 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import { input as inputs, output as outputs } from "./types";
3
+ /**
4
+ * Provides a Cloudflare Teams Location resource. Teams Locations are referenced
5
+ * when creating secure web gateway policies.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * ```typescript
10
+ * import * as pulumi from "@pulumi/pulumi";
11
+ * import * as cloudflare from "@pulumi/cloudflare";
12
+ *
13
+ * const corporateOffice = new cloudflare.TeamsLocation("corporate_office", {
14
+ * accountId: "1d5fdc9e88c8a8c4518b068cd94331fe",
15
+ * clientDefault: true,
16
+ * name: "office",
17
+ * networks: [
18
+ * {
19
+ * network: "203.0.113.1/32",
20
+ * },
21
+ * {
22
+ * network: "203.0.113.2/32",
23
+ * },
24
+ * ],
25
+ * });
26
+ * ```
27
+ *
28
+ * ## Import
29
+ *
30
+ * Teams locations can be imported using a composite ID formed of account ID and teams location ID.
31
+ *
32
+ * ```sh
33
+ * $ pulumi import cloudflare:index/teamsLocation:TeamsLocation corporate_office cb029e245cfdd66dc8d2e570d5dd3322/d41d8cd98f00b204e9800998ecf8427e
34
+ * ```
35
+ */
3
36
  export declare class TeamsLocation extends pulumi.CustomResource {
4
37
  /**
5
38
  * Get an existing TeamsLocation resource's state with the given name, ID, and optional extra
@@ -16,13 +49,37 @@ export declare class TeamsLocation extends pulumi.CustomResource {
16
49
  * when multiple copies of the Pulumi SDK have been loaded into the same process.
17
50
  */
18
51
  static isInstance(obj: any): obj is TeamsLocation;
52
+ /**
53
+ * The account to which the teams location should be added.
54
+ */
19
55
  readonly accountId: pulumi.Output<string>;
56
+ /**
57
+ * Indicator that anonymized logs are enabled.
58
+ */
20
59
  readonly anonymizedLogsEnabled: pulumi.Output<boolean>;
60
+ /**
61
+ * Indicator that this is the default location.
62
+ */
21
63
  readonly clientDefault: pulumi.Output<boolean | undefined>;
64
+ /**
65
+ * The FQDN that DoH clients should be pointed at.
66
+ */
22
67
  readonly dohSubdomain: pulumi.Output<string>;
68
+ /**
69
+ * Client IP address
70
+ */
23
71
  readonly ip: pulumi.Output<string>;
72
+ /**
73
+ * IP to direct all IPv4 DNS queries too.
74
+ */
24
75
  readonly ipv4Destination: pulumi.Output<string>;
76
+ /**
77
+ * Name of the teams location.
78
+ */
25
79
  readonly name: pulumi.Output<string>;
80
+ /**
81
+ * The networks CIDRs that comprise the location.
82
+ */
26
83
  readonly networks: pulumi.Output<outputs.TeamsLocationNetwork[] | undefined>;
27
84
  readonly policyIds: pulumi.Output<string[]>;
28
85
  /**
@@ -38,13 +95,37 @@ export declare class TeamsLocation extends pulumi.CustomResource {
38
95
  * Input properties used for looking up and filtering TeamsLocation resources.
39
96
  */
40
97
  export interface TeamsLocationState {
98
+ /**
99
+ * The account to which the teams location should be added.
100
+ */
41
101
  accountId?: pulumi.Input<string>;
102
+ /**
103
+ * Indicator that anonymized logs are enabled.
104
+ */
42
105
  anonymizedLogsEnabled?: pulumi.Input<boolean>;
106
+ /**
107
+ * Indicator that this is the default location.
108
+ */
43
109
  clientDefault?: pulumi.Input<boolean>;
110
+ /**
111
+ * The FQDN that DoH clients should be pointed at.
112
+ */
44
113
  dohSubdomain?: pulumi.Input<string>;
114
+ /**
115
+ * Client IP address
116
+ */
45
117
  ip?: pulumi.Input<string>;
118
+ /**
119
+ * IP to direct all IPv4 DNS queries too.
120
+ */
46
121
  ipv4Destination?: pulumi.Input<string>;
122
+ /**
123
+ * Name of the teams location.
124
+ */
47
125
  name?: pulumi.Input<string>;
126
+ /**
127
+ * The networks CIDRs that comprise the location.
128
+ */
48
129
  networks?: pulumi.Input<pulumi.Input<inputs.TeamsLocationNetwork>[]>;
49
130
  policyIds?: pulumi.Input<pulumi.Input<string>[]>;
50
131
  }
@@ -52,8 +133,20 @@ export interface TeamsLocationState {
52
133
  * The set of arguments for constructing a TeamsLocation resource.
53
134
  */
54
135
  export interface TeamsLocationArgs {
136
+ /**
137
+ * The account to which the teams location should be added.
138
+ */
55
139
  accountId: pulumi.Input<string>;
140
+ /**
141
+ * Indicator that this is the default location.
142
+ */
56
143
  clientDefault?: pulumi.Input<boolean>;
144
+ /**
145
+ * Name of the teams location.
146
+ */
57
147
  name: pulumi.Input<string>;
148
+ /**
149
+ * The networks CIDRs that comprise the location.
150
+ */
58
151
  networks?: pulumi.Input<pulumi.Input<inputs.TeamsLocationNetwork>[]>;
59
152
  }
package/teamsLocation.js CHANGED
@@ -4,6 +4,39 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  const pulumi = require("@pulumi/pulumi");
6
6
  const utilities = require("./utilities");
7
+ /**
8
+ * Provides a Cloudflare Teams Location resource. Teams Locations are referenced
9
+ * when creating secure web gateway policies.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as cloudflare from "@pulumi/cloudflare";
16
+ *
17
+ * const corporateOffice = new cloudflare.TeamsLocation("corporate_office", {
18
+ * accountId: "1d5fdc9e88c8a8c4518b068cd94331fe",
19
+ * clientDefault: true,
20
+ * name: "office",
21
+ * networks: [
22
+ * {
23
+ * network: "203.0.113.1/32",
24
+ * },
25
+ * {
26
+ * network: "203.0.113.2/32",
27
+ * },
28
+ * ],
29
+ * });
30
+ * ```
31
+ *
32
+ * ## Import
33
+ *
34
+ * Teams locations can be imported using a composite ID formed of account ID and teams location ID.
35
+ *
36
+ * ```sh
37
+ * $ pulumi import cloudflare:index/teamsLocation:TeamsLocation corporate_office cb029e245cfdd66dc8d2e570d5dd3322/d41d8cd98f00b204e9800998ecf8427e
38
+ * ```
39
+ */
7
40
  class TeamsLocation extends pulumi.CustomResource {
8
41
  constructor(name, argsOrState, opts) {
9
42
  let inputs = {};
@@ -1 +1 @@
1
- {"version":3,"file":"teamsLocation.js","sourceRoot":"","sources":["../teamsLocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teamsLocation.js","sourceRoot":"","sources":["../teamsLocation.ts"],"names":[],"mappings":"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"}