@checkly/pulumi 2.3.0-alpha.1745306459 → 2.3.0-alpha.1754037456

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/tcpMonitor.js ADDED
@@ -0,0 +1,169 @@
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.TcpMonitor = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * TCP checks allow you to monitor remote endpoints at a lower level.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as checkly from "@checkly/pulumi";
16
+ *
17
+ * // Basic TCP monitor
18
+ * const example_tcp_monitor = new checkly.TcpMonitor("example-tcp-monitor", {
19
+ * name: "Example TCP monitor",
20
+ * activated: true,
21
+ * shouldFail: false,
22
+ * frequency: 1,
23
+ * useGlobalAlertSettings: true,
24
+ * locations: ["us-west-1"],
25
+ * request: {
26
+ * hostname: "api.checklyhq.com",
27
+ * port: 80,
28
+ * },
29
+ * });
30
+ * // A more complex example using assertions and setting alerts
31
+ * const example_tcp_monitor_2 = new checkly.TcpMonitor("example-tcp-monitor-2", {
32
+ * name: "Example TCP monitor 2",
33
+ * activated: true,
34
+ * shouldFail: true,
35
+ * frequency: 1,
36
+ * degradedResponseTime: 5000,
37
+ * maxResponseTime: 10000,
38
+ * locations: [
39
+ * "us-west-1",
40
+ * "ap-northeast-1",
41
+ * "ap-south-1",
42
+ * ],
43
+ * alertSettings: {
44
+ * escalationType: "RUN_BASED",
45
+ * runBasedEscalations: [{
46
+ * failedRunThreshold: 1,
47
+ * }],
48
+ * reminders: [{
49
+ * amount: 1,
50
+ * }],
51
+ * },
52
+ * retryStrategy: {
53
+ * type: "FIXED",
54
+ * baseBackoffSeconds: 60,
55
+ * maxDurationSeconds: 600,
56
+ * maxRetries: 3,
57
+ * sameRegion: false,
58
+ * },
59
+ * request: {
60
+ * hostname: "api.checklyhq.com",
61
+ * port: 80,
62
+ * data: "hello",
63
+ * assertions: [
64
+ * {
65
+ * source: "RESPONSE_DATA",
66
+ * property: "",
67
+ * comparison: "CONTAINS",
68
+ * target: "welcome",
69
+ * },
70
+ * {
71
+ * source: "RESPONSE_TIME",
72
+ * property: "",
73
+ * comparison: "LESS_THAN",
74
+ * target: "2000",
75
+ * },
76
+ * ],
77
+ * },
78
+ * });
79
+ * ```
80
+ */
81
+ class TcpMonitor extends pulumi.CustomResource {
82
+ /**
83
+ * Get an existing TcpMonitor resource's state with the given name, ID, and optional extra
84
+ * properties used to qualify the lookup.
85
+ *
86
+ * @param name The _unique_ name of the resulting resource.
87
+ * @param id The _unique_ provider ID of the resource to lookup.
88
+ * @param state Any extra arguments used during the lookup.
89
+ * @param opts Optional settings to control the behavior of the CustomResource.
90
+ */
91
+ static get(name, id, state, opts) {
92
+ return new TcpMonitor(name, state, Object.assign(Object.assign({}, opts), { id: id }));
93
+ }
94
+ /**
95
+ * Returns true if the given object is an instance of TcpMonitor. This is designed to work even
96
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
97
+ */
98
+ static isInstance(obj) {
99
+ if (obj === undefined || obj === null) {
100
+ return false;
101
+ }
102
+ return obj['__pulumiType'] === TcpMonitor.__pulumiType;
103
+ }
104
+ constructor(name, argsOrState, opts) {
105
+ let resourceInputs = {};
106
+ opts = opts || {};
107
+ if (opts.id) {
108
+ const state = argsOrState;
109
+ resourceInputs["activated"] = state ? state.activated : undefined;
110
+ resourceInputs["alertChannelSubscriptions"] = state ? state.alertChannelSubscriptions : undefined;
111
+ resourceInputs["alertSettings"] = state ? state.alertSettings : undefined;
112
+ resourceInputs["degradedResponseTime"] = state ? state.degradedResponseTime : undefined;
113
+ resourceInputs["frequency"] = state ? state.frequency : undefined;
114
+ resourceInputs["frequencyOffset"] = state ? state.frequencyOffset : undefined;
115
+ resourceInputs["groupId"] = state ? state.groupId : undefined;
116
+ resourceInputs["groupOrder"] = state ? state.groupOrder : undefined;
117
+ resourceInputs["locations"] = state ? state.locations : undefined;
118
+ resourceInputs["maxResponseTime"] = state ? state.maxResponseTime : undefined;
119
+ resourceInputs["muted"] = state ? state.muted : undefined;
120
+ resourceInputs["name"] = state ? state.name : undefined;
121
+ resourceInputs["privateLocations"] = state ? state.privateLocations : undefined;
122
+ resourceInputs["request"] = state ? state.request : undefined;
123
+ resourceInputs["retryStrategy"] = state ? state.retryStrategy : undefined;
124
+ resourceInputs["runParallel"] = state ? state.runParallel : undefined;
125
+ resourceInputs["runtimeId"] = state ? state.runtimeId : undefined;
126
+ resourceInputs["shouldFail"] = state ? state.shouldFail : undefined;
127
+ resourceInputs["tags"] = state ? state.tags : undefined;
128
+ resourceInputs["useGlobalAlertSettings"] = state ? state.useGlobalAlertSettings : undefined;
129
+ }
130
+ else {
131
+ const args = argsOrState;
132
+ if ((!args || args.activated === undefined) && !opts.urn) {
133
+ throw new Error("Missing required property 'activated'");
134
+ }
135
+ if ((!args || args.frequency === undefined) && !opts.urn) {
136
+ throw new Error("Missing required property 'frequency'");
137
+ }
138
+ if ((!args || args.request === undefined) && !opts.urn) {
139
+ throw new Error("Missing required property 'request'");
140
+ }
141
+ resourceInputs["activated"] = args ? args.activated : undefined;
142
+ resourceInputs["alertChannelSubscriptions"] = args ? args.alertChannelSubscriptions : undefined;
143
+ resourceInputs["alertSettings"] = args ? args.alertSettings : undefined;
144
+ resourceInputs["degradedResponseTime"] = args ? args.degradedResponseTime : undefined;
145
+ resourceInputs["frequency"] = args ? args.frequency : undefined;
146
+ resourceInputs["frequencyOffset"] = args ? args.frequencyOffset : undefined;
147
+ resourceInputs["groupId"] = args ? args.groupId : undefined;
148
+ resourceInputs["groupOrder"] = args ? args.groupOrder : undefined;
149
+ resourceInputs["locations"] = args ? args.locations : undefined;
150
+ resourceInputs["maxResponseTime"] = args ? args.maxResponseTime : undefined;
151
+ resourceInputs["muted"] = args ? args.muted : undefined;
152
+ resourceInputs["name"] = args ? args.name : undefined;
153
+ resourceInputs["privateLocations"] = args ? args.privateLocations : undefined;
154
+ resourceInputs["request"] = args ? args.request : undefined;
155
+ resourceInputs["retryStrategy"] = args ? args.retryStrategy : undefined;
156
+ resourceInputs["runParallel"] = args ? args.runParallel : undefined;
157
+ resourceInputs["runtimeId"] = args ? args.runtimeId : undefined;
158
+ resourceInputs["shouldFail"] = args ? args.shouldFail : undefined;
159
+ resourceInputs["tags"] = args ? args.tags : undefined;
160
+ resourceInputs["useGlobalAlertSettings"] = args ? args.useGlobalAlertSettings : undefined;
161
+ }
162
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
163
+ super(TcpMonitor.__pulumiType, name, resourceInputs, opts);
164
+ }
165
+ }
166
+ exports.TcpMonitor = TcpMonitor;
167
+ /** @internal */
168
+ TcpMonitor.__pulumiType = 'checkly:index/tcpMonitor:TcpMonitor';
169
+ //# sourceMappingURL=tcpMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcpMonitor.js","sourceRoot":"","sources":["../tcpMonitor.ts"],"names":[],"mappings":"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"}
package/types/input.d.ts CHANGED
@@ -410,6 +410,88 @@ export interface HeartbeatCheckHeartbeat {
410
410
  */
411
411
  pingToken?: pulumi.Input<string>;
412
412
  }
413
+ export interface HeartbeatMonitorAlertChannelSubscription {
414
+ activated: pulumi.Input<boolean>;
415
+ channelId: pulumi.Input<number>;
416
+ }
417
+ export interface HeartbeatMonitorAlertSettings {
418
+ /**
419
+ * Determines what type of escalation to use. Possible values are `RUN_BASED` or `TIME_BASED`.
420
+ */
421
+ escalationType?: pulumi.Input<string>;
422
+ parallelRunFailureThresholds?: pulumi.Input<pulumi.Input<inputs.HeartbeatMonitorAlertSettingsParallelRunFailureThreshold>[]>;
423
+ reminders?: pulumi.Input<pulumi.Input<inputs.HeartbeatMonitorAlertSettingsReminder>[]>;
424
+ runBasedEscalations?: pulumi.Input<pulumi.Input<inputs.HeartbeatMonitorAlertSettingsRunBasedEscalation>[]>;
425
+ /**
426
+ * @deprecated This property is deprecated and it's ignored by the Checkly Public API. It will be removed in a future version.
427
+ */
428
+ sslCertificates?: pulumi.Input<pulumi.Input<inputs.HeartbeatMonitorAlertSettingsSslCertificate>[]>;
429
+ timeBasedEscalations?: pulumi.Input<pulumi.Input<inputs.HeartbeatMonitorAlertSettingsTimeBasedEscalation>[]>;
430
+ }
431
+ export interface HeartbeatMonitorAlertSettingsParallelRunFailureThreshold {
432
+ /**
433
+ * Applicable only for checks scheduled in parallel in multiple locations.
434
+ */
435
+ enabled?: pulumi.Input<boolean>;
436
+ /**
437
+ * Possible values are `10`, `20`, `30`, `40`, `50`, `60`, `70`, `80`, `100`, and `100`. (Default `10`).
438
+ */
439
+ percentage?: pulumi.Input<number>;
440
+ }
441
+ export interface HeartbeatMonitorAlertSettingsReminder {
442
+ /**
443
+ * How many reminders to send out after the initial alert notification. Possible values are `0`, `1`, `2`, `3`, `4`, `5`, and `100000`
444
+ */
445
+ amount?: pulumi.Input<number>;
446
+ /**
447
+ * Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
448
+ */
449
+ interval?: pulumi.Input<number>;
450
+ }
451
+ export interface HeartbeatMonitorAlertSettingsRunBasedEscalation {
452
+ /**
453
+ * After how many failed consecutive check runs an alert notification should be sent. Possible values are between 1 and 5. (Default `1`).
454
+ */
455
+ failedRunThreshold?: pulumi.Input<number>;
456
+ }
457
+ export interface HeartbeatMonitorAlertSettingsSslCertificate {
458
+ /**
459
+ * How long before SSL certificate expiry to send alerts. Possible values `3`, `7`, `14`, `30`. (Default `3`).
460
+ */
461
+ alertThreshold?: pulumi.Input<number>;
462
+ /**
463
+ * Determines if alert notifications should be sent for expiring SSL certificates. Possible values `true`, and `false`. (Default `false`).
464
+ */
465
+ enabled?: pulumi.Input<boolean>;
466
+ }
467
+ export interface HeartbeatMonitorAlertSettingsTimeBasedEscalation {
468
+ /**
469
+ * After how many minutes after a check starts failing an alert should be sent. Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
470
+ */
471
+ minutesFailingThreshold?: pulumi.Input<number>;
472
+ }
473
+ export interface HeartbeatMonitorHeartbeat {
474
+ /**
475
+ * How long Checkly should wait before triggering any alerts when a ping does not arrive within the set period.
476
+ */
477
+ grace: pulumi.Input<number>;
478
+ /**
479
+ * Possible values `seconds`, `minutes`, `hours` and `days`.
480
+ */
481
+ graceUnit: pulumi.Input<string>;
482
+ /**
483
+ * How often you expect a ping to the ping URL.
484
+ */
485
+ period: pulumi.Input<number>;
486
+ /**
487
+ * Possible values `seconds`, `minutes`, `hours` and `days`.
488
+ */
489
+ periodUnit: pulumi.Input<string>;
490
+ /**
491
+ * Custom token to generate your ping URL. Checkly will expect a ping to `https://ping.checklyhq.com/[PING_TOKEN]`.
492
+ */
493
+ pingToken?: pulumi.Input<string>;
494
+ }
413
495
  export interface StatusPageCard {
414
496
  /**
415
497
  * The name of the card.
@@ -528,3 +610,228 @@ export interface TcpCheckRetryStrategy {
528
610
  */
529
611
  type: pulumi.Input<string>;
530
612
  }
613
+ export interface TcpMonitorAlertChannelSubscription {
614
+ activated: pulumi.Input<boolean>;
615
+ channelId: pulumi.Input<number>;
616
+ }
617
+ export interface TcpMonitorAlertSettings {
618
+ /**
619
+ * Determines what type of escalation to use. Possible values are `RUN_BASED` or `TIME_BASED`.
620
+ */
621
+ escalationType?: pulumi.Input<string>;
622
+ parallelRunFailureThresholds?: pulumi.Input<pulumi.Input<inputs.TcpMonitorAlertSettingsParallelRunFailureThreshold>[]>;
623
+ reminders?: pulumi.Input<pulumi.Input<inputs.TcpMonitorAlertSettingsReminder>[]>;
624
+ runBasedEscalations?: pulumi.Input<pulumi.Input<inputs.TcpMonitorAlertSettingsRunBasedEscalation>[]>;
625
+ timeBasedEscalations?: pulumi.Input<pulumi.Input<inputs.TcpMonitorAlertSettingsTimeBasedEscalation>[]>;
626
+ }
627
+ export interface TcpMonitorAlertSettingsParallelRunFailureThreshold {
628
+ /**
629
+ * Applicable only for checks scheduled in parallel in multiple locations.
630
+ */
631
+ enabled?: pulumi.Input<boolean>;
632
+ /**
633
+ * Possible values are `10`, `20`, `30`, `40`, `50`, `60`, `70`, `80`, `100`, and `100`. (Default `10`).
634
+ */
635
+ percentage?: pulumi.Input<number>;
636
+ }
637
+ export interface TcpMonitorAlertSettingsReminder {
638
+ /**
639
+ * How many reminders to send out after the initial alert notification. Possible values are `0`, `1`, `2`, `3`, `4`, `5`, and `100000`
640
+ */
641
+ amount?: pulumi.Input<number>;
642
+ /**
643
+ * Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
644
+ */
645
+ interval?: pulumi.Input<number>;
646
+ }
647
+ export interface TcpMonitorAlertSettingsRunBasedEscalation {
648
+ /**
649
+ * After how many failed consecutive check runs an alert notification should be sent. Possible values are between 1 and 5. (Default `1`).
650
+ */
651
+ failedRunThreshold?: pulumi.Input<number>;
652
+ }
653
+ export interface TcpMonitorAlertSettingsTimeBasedEscalation {
654
+ /**
655
+ * After how many minutes after a check starts failing an alert should be sent. Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
656
+ */
657
+ minutesFailingThreshold?: pulumi.Input<number>;
658
+ }
659
+ export interface TcpMonitorRequest {
660
+ /**
661
+ * A request can have multiple assertions.
662
+ */
663
+ assertions?: pulumi.Input<pulumi.Input<inputs.TcpMonitorRequestAssertion>[]>;
664
+ /**
665
+ * The data to send to the target host.
666
+ */
667
+ data?: pulumi.Input<string>;
668
+ /**
669
+ * The hostname or IP to connect to. Do not include a scheme or a port in this value.
670
+ */
671
+ hostname: pulumi.Input<string>;
672
+ /**
673
+ * The IP family to use when executing the TCP check. The value can be either `IPv4` or `IPv6`.
674
+ */
675
+ ipFamily?: pulumi.Input<string>;
676
+ /**
677
+ * The port number to connect to.
678
+ */
679
+ port: pulumi.Input<number>;
680
+ }
681
+ export interface TcpMonitorRequestAssertion {
682
+ /**
683
+ * The type of comparison to be executed between expected and actual value of the assertion. Possible values are `EQUALS`, `NOT_EQUALS`, `HAS_KEY`, `NOT_HAS_KEY`, `HAS_VALUE`, `NOT_HAS_VALUE`, `IS_EMPTY`, `NOT_EMPTY`, `GREATER_THAN`, `LESS_THAN`, `CONTAINS`, `NOT_CONTAINS`, `IS_NULL`, and `NOT_NULL`.
684
+ */
685
+ comparison: pulumi.Input<string>;
686
+ property?: pulumi.Input<string>;
687
+ /**
688
+ * The source of the asserted value. Possible values are `RESPONSE_DATA` and `RESPONSE_TIME`.
689
+ */
690
+ source: pulumi.Input<string>;
691
+ target?: pulumi.Input<string>;
692
+ }
693
+ export interface TcpMonitorRetryStrategy {
694
+ /**
695
+ * The number of seconds to wait before the first retry attempt.
696
+ */
697
+ baseBackoffSeconds?: pulumi.Input<number>;
698
+ /**
699
+ * The total amount of time to continue retrying the check (maximum 600 seconds).
700
+ */
701
+ maxDurationSeconds?: pulumi.Input<number>;
702
+ /**
703
+ * The maximum number of times to retry the check. Value must be between 1 and 10.
704
+ */
705
+ maxRetries?: pulumi.Input<number>;
706
+ /**
707
+ * Whether retries should be run in the same region as the initial check run.
708
+ */
709
+ sameRegion?: pulumi.Input<boolean>;
710
+ /**
711
+ * Determines which type of retry strategy to use. Possible values are `FIXED`, `LINEAR`, or `EXPONENTIAL`.
712
+ */
713
+ type: pulumi.Input<string>;
714
+ }
715
+ export interface UrlMonitorAlertChannelSubscription {
716
+ /**
717
+ * Whether an alert should be sent to this channel.
718
+ */
719
+ activated: pulumi.Input<boolean>;
720
+ /**
721
+ * The ID of the alert channel.
722
+ */
723
+ channelId: pulumi.Input<number>;
724
+ }
725
+ export interface UrlMonitorAlertSettings {
726
+ /**
727
+ * Determines what type of escalation to use. Possible values are `RUN_BASED` and `TIME_BASED`.
728
+ */
729
+ escalationType: pulumi.Input<string>;
730
+ /**
731
+ * Configuration for parallel run failure threshold.
732
+ */
733
+ parallelRunFailureThresholds?: pulumi.Input<pulumi.Input<inputs.UrlMonitorAlertSettingsParallelRunFailureThreshold>[]>;
734
+ /**
735
+ * Defines how often to send reminder notifications after initial alert.
736
+ */
737
+ reminders?: pulumi.Input<pulumi.Input<inputs.UrlMonitorAlertSettingsReminder>[]>;
738
+ /**
739
+ * Configuration for run-based escalation.
740
+ */
741
+ runBasedEscalations?: pulumi.Input<pulumi.Input<inputs.UrlMonitorAlertSettingsRunBasedEscalation>[]>;
742
+ /**
743
+ * Configuration for time-based escalation.
744
+ */
745
+ timeBasedEscalations?: pulumi.Input<pulumi.Input<inputs.UrlMonitorAlertSettingsTimeBasedEscalation>[]>;
746
+ }
747
+ export interface UrlMonitorAlertSettingsParallelRunFailureThreshold {
748
+ /**
749
+ * Whether parallel run failure threshold is enabled. Applicable only for monitors scheduled in parallel in multiple locations. (Default `false`).
750
+ */
751
+ enabled?: pulumi.Input<boolean>;
752
+ /**
753
+ * Percentage of runs that must fail to trigger alert. Possible values are `10`, `20`, `30`, `40`, `50`, `60`, `70`, `80`, `90`, and `100`. (Default `10`).
754
+ */
755
+ percentage?: pulumi.Input<number>;
756
+ }
757
+ export interface UrlMonitorAlertSettingsReminder {
758
+ /**
759
+ * Number of reminder notifications to send. Possible values are `0`, `1`, `2`, `3`, `4`, `5`, and `100000` (`0` to disable, `100000` for unlimited). (Default `0`).
760
+ */
761
+ amount?: pulumi.Input<number>;
762
+ /**
763
+ * Interval between reminder notifications in minutes. Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
764
+ */
765
+ interval?: pulumi.Input<number>;
766
+ }
767
+ export interface UrlMonitorAlertSettingsRunBasedEscalation {
768
+ /**
769
+ * After how many failed consecutive check runs an alert notification should be sent. Possible values are between `1` and `5`. (Default `1`).
770
+ */
771
+ failedRunThreshold?: pulumi.Input<number>;
772
+ }
773
+ export interface UrlMonitorAlertSettingsTimeBasedEscalation {
774
+ /**
775
+ * After how many minutes after a monitor starts failing an alert should be sent. Possible values are `5`, `10`, `15`, and `30`. (Default `5`).
776
+ */
777
+ minutesFailingThreshold?: pulumi.Input<number>;
778
+ }
779
+ export interface UrlMonitorRequest {
780
+ /**
781
+ * Assertions to validate the HTTP response. URL monitors only support status code assertions.
782
+ */
783
+ assertions?: pulumi.Input<pulumi.Input<inputs.UrlMonitorRequestAssertion>[]>;
784
+ /**
785
+ * Whether to follow HTTP redirects automatically. (Default `true`).
786
+ */
787
+ followRedirects?: pulumi.Input<boolean>;
788
+ /**
789
+ * IP family version to use for the connection. The value can be either `IPv4` or `IPv6`. (Default `IPv4`).
790
+ */
791
+ ipFamily?: pulumi.Input<string>;
792
+ /**
793
+ * Whether to skip SSL certificate verification. (Default `false`).
794
+ */
795
+ skipSsl?: pulumi.Input<boolean>;
796
+ /**
797
+ * The URL to monitor. Must be a valid HTTP or HTTPS URL.
798
+ */
799
+ url: pulumi.Input<string>;
800
+ }
801
+ export interface UrlMonitorRequestAssertion {
802
+ /**
803
+ * The type of comparison to be executed between expected and actual value of the assertion. Possible values are `EQUALS`, `NOT_EQUALS`, `GREATER_THAN` and `LESS_THAN`.
804
+ */
805
+ comparison: pulumi.Input<string>;
806
+ property?: pulumi.Input<string>;
807
+ /**
808
+ * The source of the asserted value. The only allowed value is `STATUS_CODE`.
809
+ */
810
+ source: pulumi.Input<string>;
811
+ /**
812
+ * The target value. Typically `200` when the source is `STATUS_CODE`.
813
+ */
814
+ target: pulumi.Input<string>;
815
+ }
816
+ export interface UrlMonitorRetryStrategy {
817
+ /**
818
+ * The number of seconds to wait before the first retry attempt. (Default `60`).
819
+ */
820
+ baseBackoffSeconds?: pulumi.Input<number>;
821
+ /**
822
+ * The total amount of time to continue retrying the monitor (maximum 600 seconds). (Default `600`).
823
+ */
824
+ maxDurationSeconds?: pulumi.Input<number>;
825
+ /**
826
+ * The maximum number of times to retry the monitor. Value must be between `1` and `10`. (Default `2`).
827
+ */
828
+ maxRetries?: pulumi.Input<number>;
829
+ /**
830
+ * Whether retries should be run in the same region as the initial monitor run. (Default `true`).
831
+ */
832
+ sameRegion?: pulumi.Input<boolean>;
833
+ /**
834
+ * Determines which type of retry strategy to use. Possible values are `FIXED`, `LINEAR`, and `EXPONENTIAL`.
835
+ */
836
+ type: pulumi.Input<string>;
837
+ }