pulumi-ns1 3.6.0a1743574169__tar.gz → 3.6.0a1743737191__tar.gz

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 (43) hide show
  1. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/PKG-INFO +1 -1
  2. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/__init__.py +1 -0
  3. pulumi_ns1-3.6.0a1743737191/pulumi_ns1/get_billing_usage.py +404 -0
  4. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/outputs.py +126 -0
  5. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/pulumi-plugin.json +1 -1
  6. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1.egg-info/PKG-INFO +1 -1
  7. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1.egg-info/SOURCES.txt +1 -0
  8. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pyproject.toml +1 -1
  9. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/README.md +0 -0
  10. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/_inputs.py +0 -0
  11. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/_utilities.py +0 -0
  12. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/account_whitelist.py +0 -0
  13. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/alert.py +0 -0
  14. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/api_key.py +0 -0
  15. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/application.py +0 -0
  16. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/config/__init__.py +0 -0
  17. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/config/__init__.pyi +0 -0
  18. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/config/vars.py +0 -0
  19. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/data_feed.py +0 -0
  20. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/data_source.py +0 -0
  21. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/dataset.py +0 -0
  22. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/dnsview.py +0 -0
  23. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/get_dns_sec.py +0 -0
  24. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/get_monitoring_regions.py +0 -0
  25. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/get_networks.py +0 -0
  26. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/get_record.py +0 -0
  27. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/get_zone.py +0 -0
  28. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/monitoring_job.py +0 -0
  29. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/notify_list.py +0 -0
  30. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/provider.py +0 -0
  31. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/pulsar_job.py +0 -0
  32. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/py.typed +0 -0
  33. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/record.py +0 -0
  34. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/redirect.py +0 -0
  35. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/redirect_certificate.py +0 -0
  36. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/team.py +0 -0
  37. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/tsigkey.py +0 -0
  38. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/user.py +0 -0
  39. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1/zone.py +0 -0
  40. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1.egg-info/dependency_links.txt +0 -0
  41. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1.egg-info/requires.txt +0 -0
  42. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/pulumi_ns1.egg-info/top_level.txt +0 -0
  43. {pulumi_ns1-3.6.0a1743574169 → pulumi_ns1-3.6.0a1743737191}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulumi_ns1
3
- Version: 3.6.0a1743574169
3
+ Version: 3.6.0a1743737191
4
4
  Summary: A Pulumi package for creating and managing ns1 cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -13,6 +13,7 @@ from .data_feed import *
13
13
  from .data_source import *
14
14
  from .dataset import *
15
15
  from .dnsview import *
16
+ from .get_billing_usage import *
16
17
  from .get_dns_sec import *
17
18
  from .get_monitoring_regions import *
18
19
  from .get_networks import *
@@ -0,0 +1,404 @@
1
+ # coding=utf-8
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
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+
18
+ __all__ = [
19
+ 'GetBillingUsageResult',
20
+ 'AwaitableGetBillingUsageResult',
21
+ 'get_billing_usage',
22
+ 'get_billing_usage_output',
23
+ ]
24
+
25
+ @pulumi.output_type
26
+ class GetBillingUsageResult:
27
+ """
28
+ A collection of values returned by getBillingUsage.
29
+ """
30
+ def __init__(__self__, by_networks=None, china_queries_limit=None, clean_queries=None, ddos_protection_enabled=None, ddos_queries=None, decisions_limit=None, filter_chains_limit=None, from_=None, id=None, include_dedicated_dns_network_in_managed_dns_usage=None, metric_type=None, monitors_limit=None, nxd_protection_enabled=None, nxd_responses=None, queries_limit=None, records_limit=None, to=None, total_usage=None):
31
+ if by_networks and not isinstance(by_networks, list):
32
+ raise TypeError("Expected argument 'by_networks' to be a list")
33
+ pulumi.set(__self__, "by_networks", by_networks)
34
+ if china_queries_limit and not isinstance(china_queries_limit, int):
35
+ raise TypeError("Expected argument 'china_queries_limit' to be a int")
36
+ pulumi.set(__self__, "china_queries_limit", china_queries_limit)
37
+ if clean_queries and not isinstance(clean_queries, int):
38
+ raise TypeError("Expected argument 'clean_queries' to be a int")
39
+ pulumi.set(__self__, "clean_queries", clean_queries)
40
+ if ddos_protection_enabled and not isinstance(ddos_protection_enabled, bool):
41
+ raise TypeError("Expected argument 'ddos_protection_enabled' to be a bool")
42
+ pulumi.set(__self__, "ddos_protection_enabled", ddos_protection_enabled)
43
+ if ddos_queries and not isinstance(ddos_queries, int):
44
+ raise TypeError("Expected argument 'ddos_queries' to be a int")
45
+ pulumi.set(__self__, "ddos_queries", ddos_queries)
46
+ if decisions_limit and not isinstance(decisions_limit, int):
47
+ raise TypeError("Expected argument 'decisions_limit' to be a int")
48
+ pulumi.set(__self__, "decisions_limit", decisions_limit)
49
+ if filter_chains_limit and not isinstance(filter_chains_limit, int):
50
+ raise TypeError("Expected argument 'filter_chains_limit' to be a int")
51
+ pulumi.set(__self__, "filter_chains_limit", filter_chains_limit)
52
+ if from_ and not isinstance(from_, int):
53
+ raise TypeError("Expected argument 'from_' to be a int")
54
+ pulumi.set(__self__, "from_", from_)
55
+ if id and not isinstance(id, str):
56
+ raise TypeError("Expected argument 'id' to be a str")
57
+ pulumi.set(__self__, "id", id)
58
+ if include_dedicated_dns_network_in_managed_dns_usage and not isinstance(include_dedicated_dns_network_in_managed_dns_usage, bool):
59
+ raise TypeError("Expected argument 'include_dedicated_dns_network_in_managed_dns_usage' to be a bool")
60
+ pulumi.set(__self__, "include_dedicated_dns_network_in_managed_dns_usage", include_dedicated_dns_network_in_managed_dns_usage)
61
+ if metric_type and not isinstance(metric_type, str):
62
+ raise TypeError("Expected argument 'metric_type' to be a str")
63
+ pulumi.set(__self__, "metric_type", metric_type)
64
+ if monitors_limit and not isinstance(monitors_limit, int):
65
+ raise TypeError("Expected argument 'monitors_limit' to be a int")
66
+ pulumi.set(__self__, "monitors_limit", monitors_limit)
67
+ if nxd_protection_enabled and not isinstance(nxd_protection_enabled, bool):
68
+ raise TypeError("Expected argument 'nxd_protection_enabled' to be a bool")
69
+ pulumi.set(__self__, "nxd_protection_enabled", nxd_protection_enabled)
70
+ if nxd_responses and not isinstance(nxd_responses, int):
71
+ raise TypeError("Expected argument 'nxd_responses' to be a int")
72
+ pulumi.set(__self__, "nxd_responses", nxd_responses)
73
+ if queries_limit and not isinstance(queries_limit, int):
74
+ raise TypeError("Expected argument 'queries_limit' to be a int")
75
+ pulumi.set(__self__, "queries_limit", queries_limit)
76
+ if records_limit and not isinstance(records_limit, int):
77
+ raise TypeError("Expected argument 'records_limit' to be a int")
78
+ pulumi.set(__self__, "records_limit", records_limit)
79
+ if to and not isinstance(to, int):
80
+ raise TypeError("Expected argument 'to' to be a int")
81
+ pulumi.set(__self__, "to", to)
82
+ if total_usage and not isinstance(total_usage, int):
83
+ raise TypeError("Expected argument 'total_usage' to be a int")
84
+ pulumi.set(__self__, "total_usage", total_usage)
85
+
86
+ @property
87
+ @pulumi.getter(name="byNetworks")
88
+ def by_networks(self) -> Sequence['outputs.GetBillingUsageByNetworkResult']:
89
+ """
90
+ (Computed) A list of network-specific query data containing:
91
+ """
92
+ return pulumi.get(self, "by_networks")
93
+
94
+ @property
95
+ @pulumi.getter(name="chinaQueriesLimit")
96
+ def china_queries_limit(self) -> int:
97
+ """
98
+ (Computed) The queries limit for the China network.
99
+ """
100
+ return pulumi.get(self, "china_queries_limit")
101
+
102
+ @property
103
+ @pulumi.getter(name="cleanQueries")
104
+ def clean_queries(self) -> int:
105
+ """
106
+ Clean queries for this day.
107
+ """
108
+ return pulumi.get(self, "clean_queries")
109
+
110
+ @property
111
+ @pulumi.getter(name="ddosProtectionEnabled")
112
+ def ddos_protection_enabled(self) -> bool:
113
+ """
114
+ (Computed) Whether DDoS Protection is enabled.
115
+ """
116
+ return pulumi.get(self, "ddos_protection_enabled")
117
+
118
+ @property
119
+ @pulumi.getter(name="ddosQueries")
120
+ def ddos_queries(self) -> int:
121
+ """
122
+ DDoS queries for this day.
123
+ """
124
+ return pulumi.get(self, "ddos_queries")
125
+
126
+ @property
127
+ @pulumi.getter(name="decisionsLimit")
128
+ def decisions_limit(self) -> int:
129
+ """
130
+ (Computed) The RUM decisions limit for this billing cycle.
131
+ """
132
+ return pulumi.get(self, "decisions_limit")
133
+
134
+ @property
135
+ @pulumi.getter(name="filterChainsLimit")
136
+ def filter_chains_limit(self) -> int:
137
+ """
138
+ (Computed) The filter chains limit for this billing cycle.
139
+ """
140
+ return pulumi.get(self, "filter_chains_limit")
141
+
142
+ @property
143
+ @pulumi.getter(name="from")
144
+ def from_(self) -> int:
145
+ return pulumi.get(self, "from_")
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def id(self) -> str:
150
+ """
151
+ The provider-assigned unique ID for this managed resource.
152
+ """
153
+ return pulumi.get(self, "id")
154
+
155
+ @property
156
+ @pulumi.getter(name="includeDedicatedDnsNetworkInManagedDnsUsage")
157
+ def include_dedicated_dns_network_in_managed_dns_usage(self) -> bool:
158
+ """
159
+ (Computed) Whether dedicated DNS usage counts towards managed DNS usage.
160
+ """
161
+ return pulumi.get(self, "include_dedicated_dns_network_in_managed_dns_usage")
162
+
163
+ @property
164
+ @pulumi.getter(name="metricType")
165
+ def metric_type(self) -> str:
166
+ return pulumi.get(self, "metric_type")
167
+
168
+ @property
169
+ @pulumi.getter(name="monitorsLimit")
170
+ def monitors_limit(self) -> int:
171
+ """
172
+ (Computed) The monitoring jobs limit for this billing cycle.
173
+ """
174
+ return pulumi.get(self, "monitors_limit")
175
+
176
+ @property
177
+ @pulumi.getter(name="nxdProtectionEnabled")
178
+ def nxd_protection_enabled(self) -> bool:
179
+ """
180
+ (Computed) Whether NXD Protection is enabled.
181
+ """
182
+ return pulumi.get(self, "nxd_protection_enabled")
183
+
184
+ @property
185
+ @pulumi.getter(name="nxdResponses")
186
+ def nxd_responses(self) -> int:
187
+ """
188
+ NXD responses for this day.
189
+ """
190
+ return pulumi.get(self, "nxd_responses")
191
+
192
+ @property
193
+ @pulumi.getter(name="queriesLimit")
194
+ def queries_limit(self) -> int:
195
+ """
196
+ (Computed) The queries limit for this billing cycle.
197
+ """
198
+ return pulumi.get(self, "queries_limit")
199
+
200
+ @property
201
+ @pulumi.getter(name="recordsLimit")
202
+ def records_limit(self) -> int:
203
+ """
204
+ (Computed) The records limit for this billing cycle.
205
+ """
206
+ return pulumi.get(self, "records_limit")
207
+
208
+ @property
209
+ @pulumi.getter
210
+ def to(self) -> int:
211
+ return pulumi.get(self, "to")
212
+
213
+ @property
214
+ @pulumi.getter(name="totalUsage")
215
+ def total_usage(self) -> int:
216
+ """
217
+ (Computed) The total usage count for the metric. Available for `decisions`, `filter-chains`, `monitors`, and `records` metrics.
218
+ """
219
+ return pulumi.get(self, "total_usage")
220
+
221
+
222
+ class AwaitableGetBillingUsageResult(GetBillingUsageResult):
223
+ # pylint: disable=using-constant-test
224
+ def __await__(self):
225
+ if False:
226
+ yield self
227
+ return GetBillingUsageResult(
228
+ by_networks=self.by_networks,
229
+ china_queries_limit=self.china_queries_limit,
230
+ clean_queries=self.clean_queries,
231
+ ddos_protection_enabled=self.ddos_protection_enabled,
232
+ ddos_queries=self.ddos_queries,
233
+ decisions_limit=self.decisions_limit,
234
+ filter_chains_limit=self.filter_chains_limit,
235
+ from_=self.from_,
236
+ id=self.id,
237
+ include_dedicated_dns_network_in_managed_dns_usage=self.include_dedicated_dns_network_in_managed_dns_usage,
238
+ metric_type=self.metric_type,
239
+ monitors_limit=self.monitors_limit,
240
+ nxd_protection_enabled=self.nxd_protection_enabled,
241
+ nxd_responses=self.nxd_responses,
242
+ queries_limit=self.queries_limit,
243
+ records_limit=self.records_limit,
244
+ to=self.to,
245
+ total_usage=self.total_usage)
246
+
247
+
248
+ def get_billing_usage(from_: Optional[int] = None,
249
+ metric_type: Optional[str] = None,
250
+ to: Optional[int] = None,
251
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetBillingUsageResult:
252
+ """
253
+ Provides billing usage details about a NS1 account.
254
+
255
+ ## Example Usage
256
+
257
+ ```python
258
+ import pulumi
259
+ import pulumi_ns1 as ns1
260
+
261
+ # Get query usage data for the given timeframe
262
+ queries = ns1.index.BillingUsage("queries",
263
+ metric_type=queries,
264
+ from_=1731605824,
265
+ to=1734197824)
266
+ # Get account limits data for the given timeframe
267
+ limits = ns1.index.BillingUsage("limits",
268
+ metric_type=limits,
269
+ from_=1731605824,
270
+ to=1734197824)
271
+ # Get RUM decisions usage data for the given timeframe
272
+ decisions = ns1.index.BillingUsage("decisions",
273
+ metric_type=decisions,
274
+ from_=1731605824,
275
+ to=1734197824)
276
+ # Get filter chains usage data
277
+ filter_chains = ns1.index.BillingUsage("filter_chains", metric_type=filter-chains)
278
+ # Get monitoring jobs usage data
279
+ monitors = ns1.index.BillingUsage("monitors", metric_type=monitors)
280
+ # Get records usage data
281
+ records = ns1.index.BillingUsage("records", metric_type=records)
282
+ pulumi.export("totalQueries", queries["cleanQueries"])
283
+ pulumi.export("totalDdosQueries", queries["ddosQueries"])
284
+ pulumi.export("totalNxdResponses", queries["nxdResponses"])
285
+ pulumi.export("queriesLimit", limits["queriesLimit"])
286
+ pulumi.export("totalDecisions", decisions["totalUsage"])
287
+ pulumi.export("decisionsLimit", limits["decisionsLimit"])
288
+ pulumi.export("totalFilterChains", filter_chains["totalUsage"])
289
+ pulumi.export("filterChainsLimit", limits["filterChainsLimit"])
290
+ pulumi.export("totalMonitors", monitors["totalUsage"])
291
+ pulumi.export("monitorsLimit", limits["monitorsLimit"])
292
+ pulumi.export("totalRecords", records["totalUsage"])
293
+ pulumi.export("recordsLimit", limits["recordsLimit"])
294
+ ```
295
+
296
+
297
+ :param int from_: The start timestamp for the data range in Unix epoch format.
298
+ :param str metric_type: The type of billing metric to retrieve. Must be one of: `queries`, `limits`, `decisions`, `filter-chains`, `monitors`, `records`.
299
+ :param int to: The end timestamp for the data range in Unix epoch format.
300
+ """
301
+ __args__ = dict()
302
+ __args__['from'] = from_
303
+ __args__['metricType'] = metric_type
304
+ __args__['to'] = to
305
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
306
+ __ret__ = pulumi.runtime.invoke('ns1:index/getBillingUsage:getBillingUsage', __args__, opts=opts, typ=GetBillingUsageResult).value
307
+
308
+ return AwaitableGetBillingUsageResult(
309
+ by_networks=pulumi.get(__ret__, 'by_networks'),
310
+ china_queries_limit=pulumi.get(__ret__, 'china_queries_limit'),
311
+ clean_queries=pulumi.get(__ret__, 'clean_queries'),
312
+ ddos_protection_enabled=pulumi.get(__ret__, 'ddos_protection_enabled'),
313
+ ddos_queries=pulumi.get(__ret__, 'ddos_queries'),
314
+ decisions_limit=pulumi.get(__ret__, 'decisions_limit'),
315
+ filter_chains_limit=pulumi.get(__ret__, 'filter_chains_limit'),
316
+ from_=pulumi.get(__ret__, 'from_'),
317
+ id=pulumi.get(__ret__, 'id'),
318
+ include_dedicated_dns_network_in_managed_dns_usage=pulumi.get(__ret__, 'include_dedicated_dns_network_in_managed_dns_usage'),
319
+ metric_type=pulumi.get(__ret__, 'metric_type'),
320
+ monitors_limit=pulumi.get(__ret__, 'monitors_limit'),
321
+ nxd_protection_enabled=pulumi.get(__ret__, 'nxd_protection_enabled'),
322
+ nxd_responses=pulumi.get(__ret__, 'nxd_responses'),
323
+ queries_limit=pulumi.get(__ret__, 'queries_limit'),
324
+ records_limit=pulumi.get(__ret__, 'records_limit'),
325
+ to=pulumi.get(__ret__, 'to'),
326
+ total_usage=pulumi.get(__ret__, 'total_usage'))
327
+ def get_billing_usage_output(from_: Optional[pulumi.Input[int]] = None,
328
+ metric_type: Optional[pulumi.Input[str]] = None,
329
+ to: Optional[pulumi.Input[int]] = None,
330
+ opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetBillingUsageResult]:
331
+ """
332
+ Provides billing usage details about a NS1 account.
333
+
334
+ ## Example Usage
335
+
336
+ ```python
337
+ import pulumi
338
+ import pulumi_ns1 as ns1
339
+
340
+ # Get query usage data for the given timeframe
341
+ queries = ns1.index.BillingUsage("queries",
342
+ metric_type=queries,
343
+ from_=1731605824,
344
+ to=1734197824)
345
+ # Get account limits data for the given timeframe
346
+ limits = ns1.index.BillingUsage("limits",
347
+ metric_type=limits,
348
+ from_=1731605824,
349
+ to=1734197824)
350
+ # Get RUM decisions usage data for the given timeframe
351
+ decisions = ns1.index.BillingUsage("decisions",
352
+ metric_type=decisions,
353
+ from_=1731605824,
354
+ to=1734197824)
355
+ # Get filter chains usage data
356
+ filter_chains = ns1.index.BillingUsage("filter_chains", metric_type=filter-chains)
357
+ # Get monitoring jobs usage data
358
+ monitors = ns1.index.BillingUsage("monitors", metric_type=monitors)
359
+ # Get records usage data
360
+ records = ns1.index.BillingUsage("records", metric_type=records)
361
+ pulumi.export("totalQueries", queries["cleanQueries"])
362
+ pulumi.export("totalDdosQueries", queries["ddosQueries"])
363
+ pulumi.export("totalNxdResponses", queries["nxdResponses"])
364
+ pulumi.export("queriesLimit", limits["queriesLimit"])
365
+ pulumi.export("totalDecisions", decisions["totalUsage"])
366
+ pulumi.export("decisionsLimit", limits["decisionsLimit"])
367
+ pulumi.export("totalFilterChains", filter_chains["totalUsage"])
368
+ pulumi.export("filterChainsLimit", limits["filterChainsLimit"])
369
+ pulumi.export("totalMonitors", monitors["totalUsage"])
370
+ pulumi.export("monitorsLimit", limits["monitorsLimit"])
371
+ pulumi.export("totalRecords", records["totalUsage"])
372
+ pulumi.export("recordsLimit", limits["recordsLimit"])
373
+ ```
374
+
375
+
376
+ :param int from_: The start timestamp for the data range in Unix epoch format.
377
+ :param str metric_type: The type of billing metric to retrieve. Must be one of: `queries`, `limits`, `decisions`, `filter-chains`, `monitors`, `records`.
378
+ :param int to: The end timestamp for the data range in Unix epoch format.
379
+ """
380
+ __args__ = dict()
381
+ __args__['from'] = from_
382
+ __args__['metricType'] = metric_type
383
+ __args__['to'] = to
384
+ opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
385
+ __ret__ = pulumi.runtime.invoke_output('ns1:index/getBillingUsage:getBillingUsage', __args__, opts=opts, typ=GetBillingUsageResult)
386
+ return __ret__.apply(lambda __response__: GetBillingUsageResult(
387
+ by_networks=pulumi.get(__response__, 'by_networks'),
388
+ china_queries_limit=pulumi.get(__response__, 'china_queries_limit'),
389
+ clean_queries=pulumi.get(__response__, 'clean_queries'),
390
+ ddos_protection_enabled=pulumi.get(__response__, 'ddos_protection_enabled'),
391
+ ddos_queries=pulumi.get(__response__, 'ddos_queries'),
392
+ decisions_limit=pulumi.get(__response__, 'decisions_limit'),
393
+ filter_chains_limit=pulumi.get(__response__, 'filter_chains_limit'),
394
+ from_=pulumi.get(__response__, 'from_'),
395
+ id=pulumi.get(__response__, 'id'),
396
+ include_dedicated_dns_network_in_managed_dns_usage=pulumi.get(__response__, 'include_dedicated_dns_network_in_managed_dns_usage'),
397
+ metric_type=pulumi.get(__response__, 'metric_type'),
398
+ monitors_limit=pulumi.get(__response__, 'monitors_limit'),
399
+ nxd_protection_enabled=pulumi.get(__response__, 'nxd_protection_enabled'),
400
+ nxd_responses=pulumi.get(__response__, 'nxd_responses'),
401
+ queries_limit=pulumi.get(__response__, 'queries_limit'),
402
+ records_limit=pulumi.get(__response__, 'records_limit'),
403
+ to=pulumi.get(__response__, 'to'),
404
+ total_usage=pulumi.get(__response__, 'total_usage')))
@@ -37,6 +37,8 @@ __all__ = [
37
37
  'UserDnsRecordsAllow',
38
38
  'UserDnsRecordsDeny',
39
39
  'ZoneSecondary',
40
+ 'GetBillingUsageByNetworkResult',
41
+ 'GetBillingUsageByNetworkDailyResult',
40
42
  'GetDNSSecDelegationResult',
41
43
  'GetDNSSecDelegationDResult',
42
44
  'GetDNSSecDelegationDnskeyResult',
@@ -1099,6 +1101,130 @@ class ZoneSecondary(dict):
1099
1101
  return pulumi.get(self, "port")
1100
1102
 
1101
1103
 
1104
+ @pulumi.output_type
1105
+ class GetBillingUsageByNetworkResult(dict):
1106
+ def __init__(__self__, *,
1107
+ billable_queries: int,
1108
+ clean_queries: int,
1109
+ dailies: Sequence['outputs.GetBillingUsageByNetworkDailyResult'],
1110
+ ddos_queries: int,
1111
+ network: int,
1112
+ nxd_responses: int):
1113
+ """
1114
+ :param int billable_queries: Total billable queries for this network.
1115
+ :param int clean_queries: Clean queries for this day.
1116
+ :param Sequence['GetBillingUsageByNetworkDailyArgs'] dailies: Daily breakdown containing:
1117
+ :param int ddos_queries: DDoS queries for this day.
1118
+ :param int network: The network ID.
1119
+ :param int nxd_responses: NXD responses for this day.
1120
+ """
1121
+ pulumi.set(__self__, "billable_queries", billable_queries)
1122
+ pulumi.set(__self__, "clean_queries", clean_queries)
1123
+ pulumi.set(__self__, "dailies", dailies)
1124
+ pulumi.set(__self__, "ddos_queries", ddos_queries)
1125
+ pulumi.set(__self__, "network", network)
1126
+ pulumi.set(__self__, "nxd_responses", nxd_responses)
1127
+
1128
+ @property
1129
+ @pulumi.getter(name="billableQueries")
1130
+ def billable_queries(self) -> int:
1131
+ """
1132
+ Total billable queries for this network.
1133
+ """
1134
+ return pulumi.get(self, "billable_queries")
1135
+
1136
+ @property
1137
+ @pulumi.getter(name="cleanQueries")
1138
+ def clean_queries(self) -> int:
1139
+ """
1140
+ Clean queries for this day.
1141
+ """
1142
+ return pulumi.get(self, "clean_queries")
1143
+
1144
+ @property
1145
+ @pulumi.getter
1146
+ def dailies(self) -> Sequence['outputs.GetBillingUsageByNetworkDailyResult']:
1147
+ """
1148
+ Daily breakdown containing:
1149
+ """
1150
+ return pulumi.get(self, "dailies")
1151
+
1152
+ @property
1153
+ @pulumi.getter(name="ddosQueries")
1154
+ def ddos_queries(self) -> int:
1155
+ """
1156
+ DDoS queries for this day.
1157
+ """
1158
+ return pulumi.get(self, "ddos_queries")
1159
+
1160
+ @property
1161
+ @pulumi.getter
1162
+ def network(self) -> int:
1163
+ """
1164
+ The network ID.
1165
+ """
1166
+ return pulumi.get(self, "network")
1167
+
1168
+ @property
1169
+ @pulumi.getter(name="nxdResponses")
1170
+ def nxd_responses(self) -> int:
1171
+ """
1172
+ NXD responses for this day.
1173
+ """
1174
+ return pulumi.get(self, "nxd_responses")
1175
+
1176
+
1177
+ @pulumi.output_type
1178
+ class GetBillingUsageByNetworkDailyResult(dict):
1179
+ def __init__(__self__, *,
1180
+ clean_queries: int,
1181
+ ddos_queries: int,
1182
+ nxd_responses: int,
1183
+ timestamp: int):
1184
+ """
1185
+ :param int clean_queries: Clean queries for this day.
1186
+ :param int ddos_queries: DDoS queries for this day.
1187
+ :param int nxd_responses: NXD responses for this day.
1188
+ :param int timestamp: The timestamp for the day.
1189
+ """
1190
+ pulumi.set(__self__, "clean_queries", clean_queries)
1191
+ pulumi.set(__self__, "ddos_queries", ddos_queries)
1192
+ pulumi.set(__self__, "nxd_responses", nxd_responses)
1193
+ pulumi.set(__self__, "timestamp", timestamp)
1194
+
1195
+ @property
1196
+ @pulumi.getter(name="cleanQueries")
1197
+ def clean_queries(self) -> int:
1198
+ """
1199
+ Clean queries for this day.
1200
+ """
1201
+ return pulumi.get(self, "clean_queries")
1202
+
1203
+ @property
1204
+ @pulumi.getter(name="ddosQueries")
1205
+ def ddos_queries(self) -> int:
1206
+ """
1207
+ DDoS queries for this day.
1208
+ """
1209
+ return pulumi.get(self, "ddos_queries")
1210
+
1211
+ @property
1212
+ @pulumi.getter(name="nxdResponses")
1213
+ def nxd_responses(self) -> int:
1214
+ """
1215
+ NXD responses for this day.
1216
+ """
1217
+ return pulumi.get(self, "nxd_responses")
1218
+
1219
+ @property
1220
+ @pulumi.getter
1221
+ def timestamp(self) -> int:
1222
+ """
1223
+ The timestamp for the day.
1224
+ """
1225
+ return pulumi.get(self, "timestamp")
1226
+
1227
+
1102
1228
  @pulumi.output_type
1103
1229
  class GetDNSSecDelegationResult(dict):
1104
1230
  def __init__(__self__, *,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "ns1",
4
- "version": "3.6.0-alpha.1743574169"
4
+ "version": "3.6.0-alpha.1743737191"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulumi_ns1
3
- Version: 3.6.0a1743574169
3
+ Version: 3.6.0a1743737191
4
4
  Summary: A Pulumi package for creating and managing ns1 cloud resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io
@@ -11,6 +11,7 @@ pulumi_ns1/data_feed.py
11
11
  pulumi_ns1/data_source.py
12
12
  pulumi_ns1/dataset.py
13
13
  pulumi_ns1/dnsview.py
14
+ pulumi_ns1/get_billing_usage.py
14
15
  pulumi_ns1/get_dns_sec.py
15
16
  pulumi_ns1/get_monitoring_regions.py
16
17
  pulumi_ns1/get_networks.py
@@ -5,7 +5,7 @@
5
5
  keywords = ["pulumi", "ns1"]
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.9"
8
- version = "3.6.0a1743574169"
8
+ version = "3.6.0a1743737191"
9
9
  [project.license]
10
10
  text = "Apache-2.0"
11
11
  [project.urls]