pulumi-azure-native 2.68.0a1729544032__py3-none-any.whl → 2.68.0a1729615467__py3-none-any.whl

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.

Potentially problematic release.


This version of pulumi-azure-native might be problematic. Click here for more details.

Files changed (167) hide show
  1. pulumi_azure_native/__init__.py +29 -0
  2. pulumi_azure_native/awsconnector/_inputs.py +132 -96
  3. pulumi_azure_native/awsconnector/outputs.py +120 -66
  4. pulumi_azure_native/awsconnector/v20241201/_inputs.py +132 -96
  5. pulumi_azure_native/awsconnector/v20241201/outputs.py +120 -66
  6. pulumi_azure_native/cache/__init__.py +3 -0
  7. pulumi_azure_native/cache/access_policy.py +3 -3
  8. pulumi_azure_native/cache/access_policy_assignment.py +3 -3
  9. pulumi_azure_native/cache/firewall_rule.py +3 -3
  10. pulumi_azure_native/cache/get_access_policy.py +2 -2
  11. pulumi_azure_native/cache/get_access_policy_assignment.py +2 -2
  12. pulumi_azure_native/cache/get_firewall_rule.py +2 -2
  13. pulumi_azure_native/cache/get_linked_server.py +2 -2
  14. pulumi_azure_native/cache/get_patch_schedule.py +2 -2
  15. pulumi_azure_native/cache/get_private_endpoint_connection.py +2 -2
  16. pulumi_azure_native/cache/get_redis.py +2 -2
  17. pulumi_azure_native/cache/linked_server.py +3 -3
  18. pulumi_azure_native/cache/list_redis_keys.py +2 -2
  19. pulumi_azure_native/cache/patch_schedule.py +3 -3
  20. pulumi_azure_native/cache/private_endpoint_connection.py +3 -3
  21. pulumi_azure_native/cache/redis.py +3 -3
  22. pulumi_azure_native/cache/v20200601/redis.py +1 -1
  23. pulumi_azure_native/cache/v20230401/firewall_rule.py +1 -1
  24. pulumi_azure_native/cache/v20230401/linked_server.py +1 -1
  25. pulumi_azure_native/cache/v20230401/patch_schedule.py +1 -1
  26. pulumi_azure_native/cache/v20230401/private_endpoint_connection.py +1 -1
  27. pulumi_azure_native/cache/v20230401/redis.py +1 -1
  28. pulumi_azure_native/cache/v20230501preview/access_policy.py +1 -1
  29. pulumi_azure_native/cache/v20230501preview/access_policy_assignment.py +1 -1
  30. pulumi_azure_native/cache/v20230501preview/firewall_rule.py +1 -1
  31. pulumi_azure_native/cache/v20230501preview/linked_server.py +1 -1
  32. pulumi_azure_native/cache/v20230501preview/patch_schedule.py +1 -1
  33. pulumi_azure_native/cache/v20230501preview/private_endpoint_connection.py +1 -1
  34. pulumi_azure_native/cache/v20230501preview/redis.py +1 -1
  35. pulumi_azure_native/cache/v20230801/access_policy.py +1 -1
  36. pulumi_azure_native/cache/v20230801/access_policy_assignment.py +1 -1
  37. pulumi_azure_native/cache/v20230801/firewall_rule.py +1 -1
  38. pulumi_azure_native/cache/v20230801/linked_server.py +1 -1
  39. pulumi_azure_native/cache/v20230801/patch_schedule.py +1 -1
  40. pulumi_azure_native/cache/v20230801/private_endpoint_connection.py +1 -1
  41. pulumi_azure_native/cache/v20230801/redis.py +1 -1
  42. pulumi_azure_native/cache/v20240301/access_policy.py +1 -1
  43. pulumi_azure_native/cache/v20240301/access_policy_assignment.py +1 -1
  44. pulumi_azure_native/cache/v20240301/firewall_rule.py +1 -1
  45. pulumi_azure_native/cache/v20240301/linked_server.py +1 -1
  46. pulumi_azure_native/cache/v20240301/patch_schedule.py +1 -1
  47. pulumi_azure_native/cache/v20240301/private_endpoint_connection.py +1 -1
  48. pulumi_azure_native/cache/v20240301/redis.py +1 -1
  49. pulumi_azure_native/cache/v20240401preview/access_policy.py +1 -1
  50. pulumi_azure_native/cache/v20240401preview/access_policy_assignment.py +1 -1
  51. pulumi_azure_native/cache/v20240401preview/firewall_rule.py +1 -1
  52. pulumi_azure_native/cache/v20240401preview/linked_server.py +1 -1
  53. pulumi_azure_native/cache/v20240401preview/patch_schedule.py +1 -1
  54. pulumi_azure_native/cache/v20240401preview/private_endpoint_connection.py +1 -1
  55. pulumi_azure_native/cache/v20240401preview/redis.py +1 -1
  56. pulumi_azure_native/cache/v20241101/__init__.py +25 -0
  57. pulumi_azure_native/cache/v20241101/_enums.py +111 -0
  58. pulumi_azure_native/cache/v20241101/_inputs.py +646 -0
  59. pulumi_azure_native/cache/v20241101/access_policy.py +219 -0
  60. pulumi_azure_native/cache/v20241101/access_policy_assignment.py +279 -0
  61. pulumi_azure_native/cache/v20241101/firewall_rule.py +239 -0
  62. pulumi_azure_native/cache/v20241101/get_access_policy.py +148 -0
  63. pulumi_azure_native/cache/v20241101/get_access_policy_assignment.py +176 -0
  64. pulumi_azure_native/cache/v20241101/get_firewall_rule.py +148 -0
  65. pulumi_azure_native/cache/v20241101/get_linked_server.py +204 -0
  66. pulumi_azure_native/cache/v20241101/get_patch_schedule.py +149 -0
  67. pulumi_azure_native/cache/v20241101/get_private_endpoint_connection.py +163 -0
  68. pulumi_azure_native/cache/v20241101/get_redis.py +493 -0
  69. pulumi_azure_native/cache/v20241101/linked_server.py +299 -0
  70. pulumi_azure_native/cache/v20241101/list_redis_keys.py +100 -0
  71. pulumi_azure_native/cache/v20241101/outputs.py +917 -0
  72. pulumi_azure_native/cache/v20241101/patch_schedule.py +221 -0
  73. pulumi_azure_native/cache/v20241101/private_endpoint_connection.py +232 -0
  74. pulumi_azure_native/cache/v20241101/redis.py +804 -0
  75. pulumi_azure_native/costmanagement/__init__.py +3 -0
  76. pulumi_azure_native/costmanagement/budget.py +3 -3
  77. pulumi_azure_native/costmanagement/cost_allocation_rule.py +3 -3
  78. pulumi_azure_native/costmanagement/export.py +3 -3
  79. pulumi_azure_native/costmanagement/get_budget.py +2 -2
  80. pulumi_azure_native/costmanagement/get_cost_allocation_rule.py +2 -2
  81. pulumi_azure_native/costmanagement/get_export.py +2 -2
  82. pulumi_azure_native/costmanagement/get_scheduled_action.py +2 -2
  83. pulumi_azure_native/costmanagement/get_scheduled_action_by_scope.py +2 -2
  84. pulumi_azure_native/costmanagement/get_view.py +2 -2
  85. pulumi_azure_native/costmanagement/get_view_by_scope.py +2 -2
  86. pulumi_azure_native/costmanagement/scheduled_action.py +3 -3
  87. pulumi_azure_native/costmanagement/scheduled_action_by_scope.py +3 -3
  88. pulumi_azure_native/costmanagement/tag_inheritance_setting.py +1 -1
  89. pulumi_azure_native/costmanagement/v20190401preview/budget.py +1 -1
  90. pulumi_azure_native/costmanagement/v20191001/export.py +1 -1
  91. pulumi_azure_native/costmanagement/v20191101/view.py +1 -1
  92. pulumi_azure_native/costmanagement/v20191101/view_by_scope.py +1 -1
  93. pulumi_azure_native/costmanagement/v20200301preview/cost_allocation_rule.py +1 -1
  94. pulumi_azure_native/costmanagement/v20200601/view.py +1 -1
  95. pulumi_azure_native/costmanagement/v20200601/view_by_scope.py +1 -1
  96. pulumi_azure_native/costmanagement/v20221001/view.py +1 -1
  97. pulumi_azure_native/costmanagement/v20221001/view_by_scope.py +1 -1
  98. pulumi_azure_native/costmanagement/v20221005preview/tag_inheritance_setting.py +1 -1
  99. pulumi_azure_native/costmanagement/v20221005preview/view.py +1 -1
  100. pulumi_azure_native/costmanagement/v20221005preview/view_by_scope.py +1 -1
  101. pulumi_azure_native/costmanagement/v20230301/export.py +1 -1
  102. pulumi_azure_native/costmanagement/v20230301/scheduled_action.py +1 -1
  103. pulumi_azure_native/costmanagement/v20230301/scheduled_action_by_scope.py +1 -1
  104. pulumi_azure_native/costmanagement/v20230301/view.py +1 -1
  105. pulumi_azure_native/costmanagement/v20230301/view_by_scope.py +1 -1
  106. pulumi_azure_native/costmanagement/v20230401preview/budget.py +1 -1
  107. pulumi_azure_native/costmanagement/v20230401preview/export.py +1 -1
  108. pulumi_azure_native/costmanagement/v20230401preview/scheduled_action.py +1 -1
  109. pulumi_azure_native/costmanagement/v20230401preview/scheduled_action_by_scope.py +1 -1
  110. pulumi_azure_native/costmanagement/v20230401preview/view.py +1 -1
  111. pulumi_azure_native/costmanagement/v20230401preview/view_by_scope.py +1 -1
  112. pulumi_azure_native/costmanagement/v20230701preview/export.py +1 -1
  113. pulumi_azure_native/costmanagement/v20230701preview/scheduled_action.py +1 -1
  114. pulumi_azure_native/costmanagement/v20230701preview/scheduled_action_by_scope.py +1 -1
  115. pulumi_azure_native/costmanagement/v20230701preview/view.py +1 -1
  116. pulumi_azure_native/costmanagement/v20230701preview/view_by_scope.py +1 -1
  117. pulumi_azure_native/costmanagement/v20230801/budget.py +1 -1
  118. pulumi_azure_native/costmanagement/v20230801/cost_allocation_rule.py +1 -1
  119. pulumi_azure_native/costmanagement/v20230801/export.py +1 -1
  120. pulumi_azure_native/costmanagement/v20230801/scheduled_action.py +1 -1
  121. pulumi_azure_native/costmanagement/v20230801/scheduled_action_by_scope.py +1 -1
  122. pulumi_azure_native/costmanagement/v20230801/tag_inheritance_setting.py +1 -1
  123. pulumi_azure_native/costmanagement/v20230801/view.py +1 -1
  124. pulumi_azure_native/costmanagement/v20230801/view_by_scope.py +1 -1
  125. pulumi_azure_native/costmanagement/v20230901/budget.py +1 -1
  126. pulumi_azure_native/costmanagement/v20230901/cost_allocation_rule.py +1 -1
  127. pulumi_azure_native/costmanagement/v20230901/export.py +1 -1
  128. pulumi_azure_native/costmanagement/v20230901/scheduled_action.py +1 -1
  129. pulumi_azure_native/costmanagement/v20230901/scheduled_action_by_scope.py +1 -1
  130. pulumi_azure_native/costmanagement/v20230901/tag_inheritance_setting.py +1 -1
  131. pulumi_azure_native/costmanagement/v20230901/view.py +1 -1
  132. pulumi_azure_native/costmanagement/v20230901/view_by_scope.py +1 -1
  133. pulumi_azure_native/costmanagement/v20231101/budget.py +1 -1
  134. pulumi_azure_native/costmanagement/v20231101/cost_allocation_rule.py +1 -1
  135. pulumi_azure_native/costmanagement/v20231101/export.py +1 -1
  136. pulumi_azure_native/costmanagement/v20231101/scheduled_action.py +1 -1
  137. pulumi_azure_native/costmanagement/v20231101/scheduled_action_by_scope.py +1 -1
  138. pulumi_azure_native/costmanagement/v20231101/tag_inheritance_setting.py +1 -1
  139. pulumi_azure_native/costmanagement/v20231101/view.py +1 -1
  140. pulumi_azure_native/costmanagement/v20231101/view_by_scope.py +1 -1
  141. pulumi_azure_native/costmanagement/v20240801/__init__.py +26 -0
  142. pulumi_azure_native/costmanagement/v20240801/_enums.py +538 -0
  143. pulumi_azure_native/costmanagement/v20240801/_inputs.py +2660 -0
  144. pulumi_azure_native/costmanagement/v20240801/budget.py +619 -0
  145. pulumi_azure_native/costmanagement/v20240801/cost_allocation_rule.py +190 -0
  146. pulumi_azure_native/costmanagement/v20240801/export.py +415 -0
  147. pulumi_azure_native/costmanagement/v20240801/get_budget.py +337 -0
  148. pulumi_azure_native/costmanagement/v20240801/get_cost_allocation_rule.py +129 -0
  149. pulumi_azure_native/costmanagement/v20240801/get_export.py +261 -0
  150. pulumi_azure_native/costmanagement/v20240801/get_scheduled_action.py +263 -0
  151. pulumi_azure_native/costmanagement/v20240801/get_scheduled_action_by_scope.py +269 -0
  152. pulumi_azure_native/costmanagement/v20240801/get_tag_inheritance_setting.py +144 -0
  153. pulumi_azure_native/costmanagement/v20240801/get_view.py +333 -0
  154. pulumi_azure_native/costmanagement/v20240801/get_view_by_scope.py +339 -0
  155. pulumi_azure_native/costmanagement/v20240801/outputs.py +2593 -0
  156. pulumi_azure_native/costmanagement/v20240801/scheduled_action.py +425 -0
  157. pulumi_azure_native/costmanagement/v20240801/scheduled_action_by_scope.py +426 -0
  158. pulumi_azure_native/costmanagement/v20240801/tag_inheritance_setting.py +222 -0
  159. pulumi_azure_native/costmanagement/v20240801/view.py +587 -0
  160. pulumi_azure_native/costmanagement/v20240801/view_by_scope.py +588 -0
  161. pulumi_azure_native/costmanagement/view.py +3 -3
  162. pulumi_azure_native/costmanagement/view_by_scope.py +3 -3
  163. pulumi_azure_native/pulumi-plugin.json +1 -1
  164. {pulumi_azure_native-2.68.0a1729544032.dist-info → pulumi_azure_native-2.68.0a1729615467.dist-info}/METADATA +1 -1
  165. {pulumi_azure_native-2.68.0a1729544032.dist-info → pulumi_azure_native-2.68.0a1729615467.dist-info}/RECORD +167 -128
  166. {pulumi_azure_native-2.68.0a1729544032.dist-info → pulumi_azure_native-2.68.0a1729615467.dist-info}/WHEEL +0 -0
  167. {pulumi_azure_native-2.68.0a1729544032.dist-info → pulumi_azure_native-2.68.0a1729615467.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,2660 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
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 ._enums import *
17
+
18
+ __all__ = [
19
+ 'BudgetComparisonExpressionArgs',
20
+ 'BudgetComparisonExpressionArgsDict',
21
+ 'BudgetFilterPropertiesArgs',
22
+ 'BudgetFilterPropertiesArgsDict',
23
+ 'BudgetFilterArgs',
24
+ 'BudgetFilterArgsDict',
25
+ 'BudgetTimePeriodArgs',
26
+ 'BudgetTimePeriodArgsDict',
27
+ 'CostAllocationProportionArgs',
28
+ 'CostAllocationProportionArgsDict',
29
+ 'CostAllocationRuleDetailsArgs',
30
+ 'CostAllocationRuleDetailsArgsDict',
31
+ 'CostAllocationRulePropertiesArgs',
32
+ 'CostAllocationRulePropertiesArgsDict',
33
+ 'ExportDatasetConfigurationArgs',
34
+ 'ExportDatasetConfigurationArgsDict',
35
+ 'ExportDatasetArgs',
36
+ 'ExportDatasetArgsDict',
37
+ 'ExportDefinitionArgs',
38
+ 'ExportDefinitionArgsDict',
39
+ 'ExportDeliveryDestinationArgs',
40
+ 'ExportDeliveryDestinationArgsDict',
41
+ 'ExportDeliveryInfoArgs',
42
+ 'ExportDeliveryInfoArgsDict',
43
+ 'ExportRecurrencePeriodArgs',
44
+ 'ExportRecurrencePeriodArgsDict',
45
+ 'ExportScheduleArgs',
46
+ 'ExportScheduleArgsDict',
47
+ 'ExportTimePeriodArgs',
48
+ 'ExportTimePeriodArgsDict',
49
+ 'FileDestinationArgs',
50
+ 'FileDestinationArgsDict',
51
+ 'KpiPropertiesArgs',
52
+ 'KpiPropertiesArgsDict',
53
+ 'NotificationPropertiesArgs',
54
+ 'NotificationPropertiesArgsDict',
55
+ 'NotificationArgs',
56
+ 'NotificationArgsDict',
57
+ 'PivotPropertiesArgs',
58
+ 'PivotPropertiesArgsDict',
59
+ 'ReportConfigAggregationArgs',
60
+ 'ReportConfigAggregationArgsDict',
61
+ 'ReportConfigComparisonExpressionArgs',
62
+ 'ReportConfigComparisonExpressionArgsDict',
63
+ 'ReportConfigDatasetConfigurationArgs',
64
+ 'ReportConfigDatasetConfigurationArgsDict',
65
+ 'ReportConfigDatasetArgs',
66
+ 'ReportConfigDatasetArgsDict',
67
+ 'ReportConfigFilterArgs',
68
+ 'ReportConfigFilterArgsDict',
69
+ 'ReportConfigGroupingArgs',
70
+ 'ReportConfigGroupingArgsDict',
71
+ 'ReportConfigSortingArgs',
72
+ 'ReportConfigSortingArgsDict',
73
+ 'ReportConfigTimePeriodArgs',
74
+ 'ReportConfigTimePeriodArgsDict',
75
+ 'SchedulePropertiesArgs',
76
+ 'SchedulePropertiesArgsDict',
77
+ 'SourceCostAllocationResourceArgs',
78
+ 'SourceCostAllocationResourceArgsDict',
79
+ 'SystemAssignedServiceIdentityArgs',
80
+ 'SystemAssignedServiceIdentityArgsDict',
81
+ 'TagInheritancePropertiesArgs',
82
+ 'TagInheritancePropertiesArgsDict',
83
+ 'TargetCostAllocationResourceArgs',
84
+ 'TargetCostAllocationResourceArgsDict',
85
+ ]
86
+
87
+ MYPY = False
88
+
89
+ if not MYPY:
90
+ class BudgetComparisonExpressionArgsDict(TypedDict):
91
+ """
92
+ The comparison expression to be used in the budgets.
93
+ """
94
+ name: pulumi.Input[str]
95
+ """
96
+ The name of the column to use in comparison.
97
+ """
98
+ operator: pulumi.Input[Union[str, 'BudgetOperatorType']]
99
+ """
100
+ The operator to use for comparison.
101
+ """
102
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]
103
+ """
104
+ Array of values to use for comparison
105
+ """
106
+ elif False:
107
+ BudgetComparisonExpressionArgsDict: TypeAlias = Mapping[str, Any]
108
+
109
+ @pulumi.input_type
110
+ class BudgetComparisonExpressionArgs:
111
+ def __init__(__self__, *,
112
+ name: pulumi.Input[str],
113
+ operator: pulumi.Input[Union[str, 'BudgetOperatorType']],
114
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]):
115
+ """
116
+ The comparison expression to be used in the budgets.
117
+ :param pulumi.Input[str] name: The name of the column to use in comparison.
118
+ :param pulumi.Input[Union[str, 'BudgetOperatorType']] operator: The operator to use for comparison.
119
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Array of values to use for comparison
120
+ """
121
+ pulumi.set(__self__, "name", name)
122
+ pulumi.set(__self__, "operator", operator)
123
+ pulumi.set(__self__, "values", values)
124
+
125
+ @property
126
+ @pulumi.getter
127
+ def name(self) -> pulumi.Input[str]:
128
+ """
129
+ The name of the column to use in comparison.
130
+ """
131
+ return pulumi.get(self, "name")
132
+
133
+ @name.setter
134
+ def name(self, value: pulumi.Input[str]):
135
+ pulumi.set(self, "name", value)
136
+
137
+ @property
138
+ @pulumi.getter
139
+ def operator(self) -> pulumi.Input[Union[str, 'BudgetOperatorType']]:
140
+ """
141
+ The operator to use for comparison.
142
+ """
143
+ return pulumi.get(self, "operator")
144
+
145
+ @operator.setter
146
+ def operator(self, value: pulumi.Input[Union[str, 'BudgetOperatorType']]):
147
+ pulumi.set(self, "operator", value)
148
+
149
+ @property
150
+ @pulumi.getter
151
+ def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
152
+ """
153
+ Array of values to use for comparison
154
+ """
155
+ return pulumi.get(self, "values")
156
+
157
+ @values.setter
158
+ def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
159
+ pulumi.set(self, "values", value)
160
+
161
+
162
+ if not MYPY:
163
+ class BudgetFilterPropertiesArgsDict(TypedDict):
164
+ """
165
+ The Dimensions or Tags to filter a budget by.
166
+
167
+ Supported for CategoryType(s): Cost, ReservationUtilization.
168
+ """
169
+ dimensions: NotRequired[pulumi.Input['BudgetComparisonExpressionArgsDict']]
170
+ """
171
+ Has comparison expression for a dimension.
172
+
173
+ Supported for CategoryType(s): Cost, ReservationUtilization.
174
+
175
+ Supported dimension names for **CategoryType: ReservationUtilization**
176
+ - ReservationId
177
+ - ReservedResourceType
178
+ """
179
+ tags: NotRequired[pulumi.Input['BudgetComparisonExpressionArgsDict']]
180
+ """
181
+ Has comparison expression for a tag.
182
+
183
+ Supported for CategoryType(s): Cost.
184
+ """
185
+ elif False:
186
+ BudgetFilterPropertiesArgsDict: TypeAlias = Mapping[str, Any]
187
+
188
+ @pulumi.input_type
189
+ class BudgetFilterPropertiesArgs:
190
+ def __init__(__self__, *,
191
+ dimensions: Optional[pulumi.Input['BudgetComparisonExpressionArgs']] = None,
192
+ tags: Optional[pulumi.Input['BudgetComparisonExpressionArgs']] = None):
193
+ """
194
+ The Dimensions or Tags to filter a budget by.
195
+
196
+ Supported for CategoryType(s): Cost, ReservationUtilization.
197
+ :param pulumi.Input['BudgetComparisonExpressionArgs'] dimensions: Has comparison expression for a dimension.
198
+
199
+ Supported for CategoryType(s): Cost, ReservationUtilization.
200
+
201
+ Supported dimension names for **CategoryType: ReservationUtilization**
202
+ - ReservationId
203
+ - ReservedResourceType
204
+ :param pulumi.Input['BudgetComparisonExpressionArgs'] tags: Has comparison expression for a tag.
205
+
206
+ Supported for CategoryType(s): Cost.
207
+ """
208
+ if dimensions is not None:
209
+ pulumi.set(__self__, "dimensions", dimensions)
210
+ if tags is not None:
211
+ pulumi.set(__self__, "tags", tags)
212
+
213
+ @property
214
+ @pulumi.getter
215
+ def dimensions(self) -> Optional[pulumi.Input['BudgetComparisonExpressionArgs']]:
216
+ """
217
+ Has comparison expression for a dimension.
218
+
219
+ Supported for CategoryType(s): Cost, ReservationUtilization.
220
+
221
+ Supported dimension names for **CategoryType: ReservationUtilization**
222
+ - ReservationId
223
+ - ReservedResourceType
224
+ """
225
+ return pulumi.get(self, "dimensions")
226
+
227
+ @dimensions.setter
228
+ def dimensions(self, value: Optional[pulumi.Input['BudgetComparisonExpressionArgs']]):
229
+ pulumi.set(self, "dimensions", value)
230
+
231
+ @property
232
+ @pulumi.getter
233
+ def tags(self) -> Optional[pulumi.Input['BudgetComparisonExpressionArgs']]:
234
+ """
235
+ Has comparison expression for a tag.
236
+
237
+ Supported for CategoryType(s): Cost.
238
+ """
239
+ return pulumi.get(self, "tags")
240
+
241
+ @tags.setter
242
+ def tags(self, value: Optional[pulumi.Input['BudgetComparisonExpressionArgs']]):
243
+ pulumi.set(self, "tags", value)
244
+
245
+
246
+ if not MYPY:
247
+ class BudgetFilterArgsDict(TypedDict):
248
+ """
249
+ May be used to filter budgets by user-specified dimensions and/or tags.
250
+
251
+ Supported for CategoryType(s): Cost, ReservationUtilization.
252
+ """
253
+ and_: NotRequired[pulumi.Input[Sequence[pulumi.Input['BudgetFilterPropertiesArgsDict']]]]
254
+ """
255
+ The logical "AND" expression. Must have at least 2 items.
256
+
257
+ Supported for CategoryType(s): Cost.
258
+ """
259
+ dimensions: NotRequired[pulumi.Input['BudgetComparisonExpressionArgsDict']]
260
+ """
261
+ Has comparison expression for a dimension.
262
+
263
+ Supported for CategoryType(s): Cost, ReservationUtilization.
264
+
265
+ Supported dimension names for **CategoryType: ReservationUtilization**
266
+ - ReservationId
267
+ - ReservedResourceType
268
+ """
269
+ tags: NotRequired[pulumi.Input['BudgetComparisonExpressionArgsDict']]
270
+ """
271
+ Has comparison expression for a tag.
272
+
273
+ Supported for CategoryType(s): Cost.
274
+ """
275
+ elif False:
276
+ BudgetFilterArgsDict: TypeAlias = Mapping[str, Any]
277
+
278
+ @pulumi.input_type
279
+ class BudgetFilterArgs:
280
+ def __init__(__self__, *,
281
+ and_: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetFilterPropertiesArgs']]]] = None,
282
+ dimensions: Optional[pulumi.Input['BudgetComparisonExpressionArgs']] = None,
283
+ tags: Optional[pulumi.Input['BudgetComparisonExpressionArgs']] = None):
284
+ """
285
+ May be used to filter budgets by user-specified dimensions and/or tags.
286
+
287
+ Supported for CategoryType(s): Cost, ReservationUtilization.
288
+ :param pulumi.Input[Sequence[pulumi.Input['BudgetFilterPropertiesArgs']]] and_: The logical "AND" expression. Must have at least 2 items.
289
+
290
+ Supported for CategoryType(s): Cost.
291
+ :param pulumi.Input['BudgetComparisonExpressionArgs'] dimensions: Has comparison expression for a dimension.
292
+
293
+ Supported for CategoryType(s): Cost, ReservationUtilization.
294
+
295
+ Supported dimension names for **CategoryType: ReservationUtilization**
296
+ - ReservationId
297
+ - ReservedResourceType
298
+ :param pulumi.Input['BudgetComparisonExpressionArgs'] tags: Has comparison expression for a tag.
299
+
300
+ Supported for CategoryType(s): Cost.
301
+ """
302
+ if and_ is not None:
303
+ pulumi.set(__self__, "and_", and_)
304
+ if dimensions is not None:
305
+ pulumi.set(__self__, "dimensions", dimensions)
306
+ if tags is not None:
307
+ pulumi.set(__self__, "tags", tags)
308
+
309
+ @property
310
+ @pulumi.getter(name="and")
311
+ def and_(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BudgetFilterPropertiesArgs']]]]:
312
+ """
313
+ The logical "AND" expression. Must have at least 2 items.
314
+
315
+ Supported for CategoryType(s): Cost.
316
+ """
317
+ return pulumi.get(self, "and_")
318
+
319
+ @and_.setter
320
+ def and_(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BudgetFilterPropertiesArgs']]]]):
321
+ pulumi.set(self, "and_", value)
322
+
323
+ @property
324
+ @pulumi.getter
325
+ def dimensions(self) -> Optional[pulumi.Input['BudgetComparisonExpressionArgs']]:
326
+ """
327
+ Has comparison expression for a dimension.
328
+
329
+ Supported for CategoryType(s): Cost, ReservationUtilization.
330
+
331
+ Supported dimension names for **CategoryType: ReservationUtilization**
332
+ - ReservationId
333
+ - ReservedResourceType
334
+ """
335
+ return pulumi.get(self, "dimensions")
336
+
337
+ @dimensions.setter
338
+ def dimensions(self, value: Optional[pulumi.Input['BudgetComparisonExpressionArgs']]):
339
+ pulumi.set(self, "dimensions", value)
340
+
341
+ @property
342
+ @pulumi.getter
343
+ def tags(self) -> Optional[pulumi.Input['BudgetComparisonExpressionArgs']]:
344
+ """
345
+ Has comparison expression for a tag.
346
+
347
+ Supported for CategoryType(s): Cost.
348
+ """
349
+ return pulumi.get(self, "tags")
350
+
351
+ @tags.setter
352
+ def tags(self, value: Optional[pulumi.Input['BudgetComparisonExpressionArgs']]):
353
+ pulumi.set(self, "tags", value)
354
+
355
+
356
+ if not MYPY:
357
+ class BudgetTimePeriodArgsDict(TypedDict):
358
+ """
359
+ The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
360
+
361
+ Supported for CategoryType(s): Cost, ReservationUtilization.
362
+
363
+ Required for CategoryType(s): Cost, ReservationUtilization.
364
+ """
365
+ start_date: pulumi.Input[str]
366
+ """
367
+ The start date for the budget.
368
+
369
+ - Constraints for **CategoryType: Cost** - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period.
370
+
371
+ - Constraints for **CategoryType: ReservationUtilization** - Must be on or after the current date and less than the end date.
372
+ """
373
+ end_date: NotRequired[pulumi.Input[str]]
374
+ """
375
+ The end date for the budget.
376
+
377
+ - Constraints for **CategoryType: Cost** - No constraints. If not provided, we default this to 10 years from the start date.
378
+
379
+ - Constraints for **CategoryType: ReservationUtilization** - End date cannot be more than 3 years after the start date.
380
+ """
381
+ elif False:
382
+ BudgetTimePeriodArgsDict: TypeAlias = Mapping[str, Any]
383
+
384
+ @pulumi.input_type
385
+ class BudgetTimePeriodArgs:
386
+ def __init__(__self__, *,
387
+ start_date: pulumi.Input[str],
388
+ end_date: Optional[pulumi.Input[str]] = None):
389
+ """
390
+ The time period that defines the active period of the budget. The budget will evaluate data on or after the startDate and will expire on the endDate.
391
+
392
+ Supported for CategoryType(s): Cost, ReservationUtilization.
393
+
394
+ Required for CategoryType(s): Cost, ReservationUtilization.
395
+ :param pulumi.Input[str] start_date: The start date for the budget.
396
+
397
+ - Constraints for **CategoryType: Cost** - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period.
398
+
399
+ - Constraints for **CategoryType: ReservationUtilization** - Must be on or after the current date and less than the end date.
400
+ :param pulumi.Input[str] end_date: The end date for the budget.
401
+
402
+ - Constraints for **CategoryType: Cost** - No constraints. If not provided, we default this to 10 years from the start date.
403
+
404
+ - Constraints for **CategoryType: ReservationUtilization** - End date cannot be more than 3 years after the start date.
405
+ """
406
+ pulumi.set(__self__, "start_date", start_date)
407
+ if end_date is not None:
408
+ pulumi.set(__self__, "end_date", end_date)
409
+
410
+ @property
411
+ @pulumi.getter(name="startDate")
412
+ def start_date(self) -> pulumi.Input[str]:
413
+ """
414
+ The start date for the budget.
415
+
416
+ - Constraints for **CategoryType: Cost** - Must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than twelve months. Past start date should be selected within the timegrain period.
417
+
418
+ - Constraints for **CategoryType: ReservationUtilization** - Must be on or after the current date and less than the end date.
419
+ """
420
+ return pulumi.get(self, "start_date")
421
+
422
+ @start_date.setter
423
+ def start_date(self, value: pulumi.Input[str]):
424
+ pulumi.set(self, "start_date", value)
425
+
426
+ @property
427
+ @pulumi.getter(name="endDate")
428
+ def end_date(self) -> Optional[pulumi.Input[str]]:
429
+ """
430
+ The end date for the budget.
431
+
432
+ - Constraints for **CategoryType: Cost** - No constraints. If not provided, we default this to 10 years from the start date.
433
+
434
+ - Constraints for **CategoryType: ReservationUtilization** - End date cannot be more than 3 years after the start date.
435
+ """
436
+ return pulumi.get(self, "end_date")
437
+
438
+ @end_date.setter
439
+ def end_date(self, value: Optional[pulumi.Input[str]]):
440
+ pulumi.set(self, "end_date", value)
441
+
442
+
443
+ if not MYPY:
444
+ class CostAllocationProportionArgsDict(TypedDict):
445
+ """
446
+ Target resources and allocation
447
+ """
448
+ name: pulumi.Input[str]
449
+ """
450
+ Target resource for cost allocation
451
+ """
452
+ percentage: pulumi.Input[float]
453
+ """
454
+ Percentage of source cost to allocate to this resource. This value can be specified to two decimal places and the total percentage of all resources in this rule must sum to 100.00.
455
+ """
456
+ elif False:
457
+ CostAllocationProportionArgsDict: TypeAlias = Mapping[str, Any]
458
+
459
+ @pulumi.input_type
460
+ class CostAllocationProportionArgs:
461
+ def __init__(__self__, *,
462
+ name: pulumi.Input[str],
463
+ percentage: pulumi.Input[float]):
464
+ """
465
+ Target resources and allocation
466
+ :param pulumi.Input[str] name: Target resource for cost allocation
467
+ :param pulumi.Input[float] percentage: Percentage of source cost to allocate to this resource. This value can be specified to two decimal places and the total percentage of all resources in this rule must sum to 100.00.
468
+ """
469
+ pulumi.set(__self__, "name", name)
470
+ pulumi.set(__self__, "percentage", percentage)
471
+
472
+ @property
473
+ @pulumi.getter
474
+ def name(self) -> pulumi.Input[str]:
475
+ """
476
+ Target resource for cost allocation
477
+ """
478
+ return pulumi.get(self, "name")
479
+
480
+ @name.setter
481
+ def name(self, value: pulumi.Input[str]):
482
+ pulumi.set(self, "name", value)
483
+
484
+ @property
485
+ @pulumi.getter
486
+ def percentage(self) -> pulumi.Input[float]:
487
+ """
488
+ Percentage of source cost to allocate to this resource. This value can be specified to two decimal places and the total percentage of all resources in this rule must sum to 100.00.
489
+ """
490
+ return pulumi.get(self, "percentage")
491
+
492
+ @percentage.setter
493
+ def percentage(self, value: pulumi.Input[float]):
494
+ pulumi.set(self, "percentage", value)
495
+
496
+
497
+ if not MYPY:
498
+ class CostAllocationRuleDetailsArgsDict(TypedDict):
499
+ """
500
+ Resource details of the cost allocation rule
501
+ """
502
+ source_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['SourceCostAllocationResourceArgsDict']]]]
503
+ """
504
+ Source resources for cost allocation. At this time, this list can contain no more than one element.
505
+ """
506
+ target_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['TargetCostAllocationResourceArgsDict']]]]
507
+ """
508
+ Target resources for cost allocation. At this time, this list can contain no more than one element.
509
+ """
510
+ elif False:
511
+ CostAllocationRuleDetailsArgsDict: TypeAlias = Mapping[str, Any]
512
+
513
+ @pulumi.input_type
514
+ class CostAllocationRuleDetailsArgs:
515
+ def __init__(__self__, *,
516
+ source_resources: Optional[pulumi.Input[Sequence[pulumi.Input['SourceCostAllocationResourceArgs']]]] = None,
517
+ target_resources: Optional[pulumi.Input[Sequence[pulumi.Input['TargetCostAllocationResourceArgs']]]] = None):
518
+ """
519
+ Resource details of the cost allocation rule
520
+ :param pulumi.Input[Sequence[pulumi.Input['SourceCostAllocationResourceArgs']]] source_resources: Source resources for cost allocation. At this time, this list can contain no more than one element.
521
+ :param pulumi.Input[Sequence[pulumi.Input['TargetCostAllocationResourceArgs']]] target_resources: Target resources for cost allocation. At this time, this list can contain no more than one element.
522
+ """
523
+ if source_resources is not None:
524
+ pulumi.set(__self__, "source_resources", source_resources)
525
+ if target_resources is not None:
526
+ pulumi.set(__self__, "target_resources", target_resources)
527
+
528
+ @property
529
+ @pulumi.getter(name="sourceResources")
530
+ def source_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SourceCostAllocationResourceArgs']]]]:
531
+ """
532
+ Source resources for cost allocation. At this time, this list can contain no more than one element.
533
+ """
534
+ return pulumi.get(self, "source_resources")
535
+
536
+ @source_resources.setter
537
+ def source_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SourceCostAllocationResourceArgs']]]]):
538
+ pulumi.set(self, "source_resources", value)
539
+
540
+ @property
541
+ @pulumi.getter(name="targetResources")
542
+ def target_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TargetCostAllocationResourceArgs']]]]:
543
+ """
544
+ Target resources for cost allocation. At this time, this list can contain no more than one element.
545
+ """
546
+ return pulumi.get(self, "target_resources")
547
+
548
+ @target_resources.setter
549
+ def target_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TargetCostAllocationResourceArgs']]]]):
550
+ pulumi.set(self, "target_resources", value)
551
+
552
+
553
+ if not MYPY:
554
+ class CostAllocationRulePropertiesArgsDict(TypedDict):
555
+ """
556
+ The properties of a cost allocation rule
557
+ """
558
+ details: pulumi.Input['CostAllocationRuleDetailsArgsDict']
559
+ """
560
+ Resource information for the cost allocation rule
561
+ """
562
+ status: pulumi.Input[Union[str, 'RuleStatus']]
563
+ """
564
+ Status of the rule
565
+ """
566
+ description: NotRequired[pulumi.Input[str]]
567
+ """
568
+ Description of a cost allocation rule.
569
+ """
570
+ elif False:
571
+ CostAllocationRulePropertiesArgsDict: TypeAlias = Mapping[str, Any]
572
+
573
+ @pulumi.input_type
574
+ class CostAllocationRulePropertiesArgs:
575
+ def __init__(__self__, *,
576
+ details: pulumi.Input['CostAllocationRuleDetailsArgs'],
577
+ status: pulumi.Input[Union[str, 'RuleStatus']],
578
+ description: Optional[pulumi.Input[str]] = None):
579
+ """
580
+ The properties of a cost allocation rule
581
+ :param pulumi.Input['CostAllocationRuleDetailsArgs'] details: Resource information for the cost allocation rule
582
+ :param pulumi.Input[Union[str, 'RuleStatus']] status: Status of the rule
583
+ :param pulumi.Input[str] description: Description of a cost allocation rule.
584
+ """
585
+ pulumi.set(__self__, "details", details)
586
+ pulumi.set(__self__, "status", status)
587
+ if description is not None:
588
+ pulumi.set(__self__, "description", description)
589
+
590
+ @property
591
+ @pulumi.getter
592
+ def details(self) -> pulumi.Input['CostAllocationRuleDetailsArgs']:
593
+ """
594
+ Resource information for the cost allocation rule
595
+ """
596
+ return pulumi.get(self, "details")
597
+
598
+ @details.setter
599
+ def details(self, value: pulumi.Input['CostAllocationRuleDetailsArgs']):
600
+ pulumi.set(self, "details", value)
601
+
602
+ @property
603
+ @pulumi.getter
604
+ def status(self) -> pulumi.Input[Union[str, 'RuleStatus']]:
605
+ """
606
+ Status of the rule
607
+ """
608
+ return pulumi.get(self, "status")
609
+
610
+ @status.setter
611
+ def status(self, value: pulumi.Input[Union[str, 'RuleStatus']]):
612
+ pulumi.set(self, "status", value)
613
+
614
+ @property
615
+ @pulumi.getter
616
+ def description(self) -> Optional[pulumi.Input[str]]:
617
+ """
618
+ Description of a cost allocation rule.
619
+ """
620
+ return pulumi.get(self, "description")
621
+
622
+ @description.setter
623
+ def description(self, value: Optional[pulumi.Input[str]]):
624
+ pulumi.set(self, "description", value)
625
+
626
+
627
+ if not MYPY:
628
+ class ExportDatasetConfigurationArgsDict(TypedDict):
629
+ """
630
+ The export dataset configuration. Allows columns to be selected for the export. If not provided then the export will include all available columns.
631
+ """
632
+ columns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
633
+ """
634
+ Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).
635
+ """
636
+ elif False:
637
+ ExportDatasetConfigurationArgsDict: TypeAlias = Mapping[str, Any]
638
+
639
+ @pulumi.input_type
640
+ class ExportDatasetConfigurationArgs:
641
+ def __init__(__self__, *,
642
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
643
+ """
644
+ The export dataset configuration. Allows columns to be selected for the export. If not provided then the export will include all available columns.
645
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] columns: Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).
646
+ """
647
+ if columns is not None:
648
+ pulumi.set(__self__, "columns", columns)
649
+
650
+ @property
651
+ @pulumi.getter
652
+ def columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
653
+ """
654
+ Array of column names to be included in the export. If not provided then the export will include all available columns. The available columns can vary by customer channel (see examples).
655
+ """
656
+ return pulumi.get(self, "columns")
657
+
658
+ @columns.setter
659
+ def columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
660
+ pulumi.set(self, "columns", value)
661
+
662
+
663
+ if not MYPY:
664
+ class ExportDatasetArgsDict(TypedDict):
665
+ """
666
+ The definition for data in the export.
667
+ """
668
+ configuration: NotRequired[pulumi.Input['ExportDatasetConfigurationArgsDict']]
669
+ """
670
+ The export dataset configuration.
671
+ """
672
+ granularity: NotRequired[pulumi.Input[Union[str, 'GranularityType']]]
673
+ """
674
+ The granularity of rows in the export. Currently only 'Daily' is supported.
675
+ """
676
+ elif False:
677
+ ExportDatasetArgsDict: TypeAlias = Mapping[str, Any]
678
+
679
+ @pulumi.input_type
680
+ class ExportDatasetArgs:
681
+ def __init__(__self__, *,
682
+ configuration: Optional[pulumi.Input['ExportDatasetConfigurationArgs']] = None,
683
+ granularity: Optional[pulumi.Input[Union[str, 'GranularityType']]] = None):
684
+ """
685
+ The definition for data in the export.
686
+ :param pulumi.Input['ExportDatasetConfigurationArgs'] configuration: The export dataset configuration.
687
+ :param pulumi.Input[Union[str, 'GranularityType']] granularity: The granularity of rows in the export. Currently only 'Daily' is supported.
688
+ """
689
+ if configuration is not None:
690
+ pulumi.set(__self__, "configuration", configuration)
691
+ if granularity is not None:
692
+ pulumi.set(__self__, "granularity", granularity)
693
+
694
+ @property
695
+ @pulumi.getter
696
+ def configuration(self) -> Optional[pulumi.Input['ExportDatasetConfigurationArgs']]:
697
+ """
698
+ The export dataset configuration.
699
+ """
700
+ return pulumi.get(self, "configuration")
701
+
702
+ @configuration.setter
703
+ def configuration(self, value: Optional[pulumi.Input['ExportDatasetConfigurationArgs']]):
704
+ pulumi.set(self, "configuration", value)
705
+
706
+ @property
707
+ @pulumi.getter
708
+ def granularity(self) -> Optional[pulumi.Input[Union[str, 'GranularityType']]]:
709
+ """
710
+ The granularity of rows in the export. Currently only 'Daily' is supported.
711
+ """
712
+ return pulumi.get(self, "granularity")
713
+
714
+ @granularity.setter
715
+ def granularity(self, value: Optional[pulumi.Input[Union[str, 'GranularityType']]]):
716
+ pulumi.set(self, "granularity", value)
717
+
718
+
719
+ if not MYPY:
720
+ class ExportDefinitionArgsDict(TypedDict):
721
+ """
722
+ The definition of an export.
723
+ """
724
+ timeframe: pulumi.Input[Union[str, 'TimeframeType']]
725
+ """
726
+ The time frame for pulling data for the export. If custom, then a specific time period must be provided.
727
+ """
728
+ type: pulumi.Input[Union[str, 'ExportType']]
729
+ """
730
+ The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
731
+ """
732
+ data_set: NotRequired[pulumi.Input['ExportDatasetArgsDict']]
733
+ """
734
+ The definition for data in the export.
735
+ """
736
+ time_period: NotRequired[pulumi.Input['ExportTimePeriodArgsDict']]
737
+ """
738
+ Has time period for pulling data for the export.
739
+ """
740
+ elif False:
741
+ ExportDefinitionArgsDict: TypeAlias = Mapping[str, Any]
742
+
743
+ @pulumi.input_type
744
+ class ExportDefinitionArgs:
745
+ def __init__(__self__, *,
746
+ timeframe: pulumi.Input[Union[str, 'TimeframeType']],
747
+ type: pulumi.Input[Union[str, 'ExportType']],
748
+ data_set: Optional[pulumi.Input['ExportDatasetArgs']] = None,
749
+ time_period: Optional[pulumi.Input['ExportTimePeriodArgs']] = None):
750
+ """
751
+ The definition of an export.
752
+ :param pulumi.Input[Union[str, 'TimeframeType']] timeframe: The time frame for pulling data for the export. If custom, then a specific time period must be provided.
753
+ :param pulumi.Input[Union[str, 'ExportType']] type: The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
754
+ :param pulumi.Input['ExportDatasetArgs'] data_set: The definition for data in the export.
755
+ :param pulumi.Input['ExportTimePeriodArgs'] time_period: Has time period for pulling data for the export.
756
+ """
757
+ pulumi.set(__self__, "timeframe", timeframe)
758
+ pulumi.set(__self__, "type", type)
759
+ if data_set is not None:
760
+ pulumi.set(__self__, "data_set", data_set)
761
+ if time_period is not None:
762
+ pulumi.set(__self__, "time_period", time_period)
763
+
764
+ @property
765
+ @pulumi.getter
766
+ def timeframe(self) -> pulumi.Input[Union[str, 'TimeframeType']]:
767
+ """
768
+ The time frame for pulling data for the export. If custom, then a specific time period must be provided.
769
+ """
770
+ return pulumi.get(self, "timeframe")
771
+
772
+ @timeframe.setter
773
+ def timeframe(self, value: pulumi.Input[Union[str, 'TimeframeType']]):
774
+ pulumi.set(self, "timeframe", value)
775
+
776
+ @property
777
+ @pulumi.getter
778
+ def type(self) -> pulumi.Input[Union[str, 'ExportType']]:
779
+ """
780
+ The type of the export. Note that 'Usage' is equivalent to 'ActualCost' and is applicable to exports that do not yet provide data for charges or amortization for service reservations.
781
+ """
782
+ return pulumi.get(self, "type")
783
+
784
+ @type.setter
785
+ def type(self, value: pulumi.Input[Union[str, 'ExportType']]):
786
+ pulumi.set(self, "type", value)
787
+
788
+ @property
789
+ @pulumi.getter(name="dataSet")
790
+ def data_set(self) -> Optional[pulumi.Input['ExportDatasetArgs']]:
791
+ """
792
+ The definition for data in the export.
793
+ """
794
+ return pulumi.get(self, "data_set")
795
+
796
+ @data_set.setter
797
+ def data_set(self, value: Optional[pulumi.Input['ExportDatasetArgs']]):
798
+ pulumi.set(self, "data_set", value)
799
+
800
+ @property
801
+ @pulumi.getter(name="timePeriod")
802
+ def time_period(self) -> Optional[pulumi.Input['ExportTimePeriodArgs']]:
803
+ """
804
+ Has time period for pulling data for the export.
805
+ """
806
+ return pulumi.get(self, "time_period")
807
+
808
+ @time_period.setter
809
+ def time_period(self, value: Optional[pulumi.Input['ExportTimePeriodArgs']]):
810
+ pulumi.set(self, "time_period", value)
811
+
812
+
813
+ if not MYPY:
814
+ class ExportDeliveryDestinationArgsDict(TypedDict):
815
+ """
816
+ This represents the blob storage account location where exports of costs will be delivered. There are two ways to configure the destination. The approach recommended for most customers is to specify the resourceId of the storage account. This requires a one-time registration of the account's subscription with the Microsoft.CostManagementExports resource provider in order to give Cost Management services access to the storage. When creating an export in the Azure portal this registration is performed automatically but API users may need to register the subscription explicitly (for more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services ). Another way to configure the destination is available ONLY to Partners with a Microsoft Partner Agreement plan who are global admins of their billing account. These Partners, instead of specifying the resourceId of a storage account, can specify the storage account name along with a SAS token for the account. This allows exports of costs to a storage account in any tenant. The SAS token should be created for the blob service with Service/Container/Object resource types and with Read/Write/Delete/List/Add/Create permissions (for more information see https://docs.microsoft.com/en-us/azure/cost-management-billing/costs/export-cost-data-storage-account-sas-key ).
817
+ """
818
+ container: pulumi.Input[str]
819
+ """
820
+ The name of the container where exports will be uploaded. If the container does not exist it will be created.
821
+ """
822
+ resource_id: NotRequired[pulumi.Input[str]]
823
+ """
824
+ The resource id of the storage account where exports will be delivered. This is not required if a sasToken and storageAccount are specified.
825
+ """
826
+ root_folder_path: NotRequired[pulumi.Input[str]]
827
+ """
828
+ The name of the directory where exports will be uploaded.
829
+ """
830
+ sas_token: NotRequired[pulumi.Input[str]]
831
+ """
832
+ A SAS token for the storage account. For a restricted set of Azure customers this together with storageAccount can be specified instead of resourceId. Note: the value returned by the API for this property will always be obfuscated. Returning this same obfuscated value will not result in the SAS token being updated. To update this value a new SAS token must be specified.
833
+ """
834
+ storage_account: NotRequired[pulumi.Input[str]]
835
+ """
836
+ The storage account where exports will be uploaded. For a restricted set of Azure customers this together with sasToken can be specified instead of resourceId.
837
+ """
838
+ elif False:
839
+ ExportDeliveryDestinationArgsDict: TypeAlias = Mapping[str, Any]
840
+
841
+ @pulumi.input_type
842
+ class ExportDeliveryDestinationArgs:
843
+ def __init__(__self__, *,
844
+ container: pulumi.Input[str],
845
+ resource_id: Optional[pulumi.Input[str]] = None,
846
+ root_folder_path: Optional[pulumi.Input[str]] = None,
847
+ sas_token: Optional[pulumi.Input[str]] = None,
848
+ storage_account: Optional[pulumi.Input[str]] = None):
849
+ """
850
+ This represents the blob storage account location where exports of costs will be delivered. There are two ways to configure the destination. The approach recommended for most customers is to specify the resourceId of the storage account. This requires a one-time registration of the account's subscription with the Microsoft.CostManagementExports resource provider in order to give Cost Management services access to the storage. When creating an export in the Azure portal this registration is performed automatically but API users may need to register the subscription explicitly (for more information see https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services ). Another way to configure the destination is available ONLY to Partners with a Microsoft Partner Agreement plan who are global admins of their billing account. These Partners, instead of specifying the resourceId of a storage account, can specify the storage account name along with a SAS token for the account. This allows exports of costs to a storage account in any tenant. The SAS token should be created for the blob service with Service/Container/Object resource types and with Read/Write/Delete/List/Add/Create permissions (for more information see https://docs.microsoft.com/en-us/azure/cost-management-billing/costs/export-cost-data-storage-account-sas-key ).
851
+ :param pulumi.Input[str] container: The name of the container where exports will be uploaded. If the container does not exist it will be created.
852
+ :param pulumi.Input[str] resource_id: The resource id of the storage account where exports will be delivered. This is not required if a sasToken and storageAccount are specified.
853
+ :param pulumi.Input[str] root_folder_path: The name of the directory where exports will be uploaded.
854
+ :param pulumi.Input[str] sas_token: A SAS token for the storage account. For a restricted set of Azure customers this together with storageAccount can be specified instead of resourceId. Note: the value returned by the API for this property will always be obfuscated. Returning this same obfuscated value will not result in the SAS token being updated. To update this value a new SAS token must be specified.
855
+ :param pulumi.Input[str] storage_account: The storage account where exports will be uploaded. For a restricted set of Azure customers this together with sasToken can be specified instead of resourceId.
856
+ """
857
+ pulumi.set(__self__, "container", container)
858
+ if resource_id is not None:
859
+ pulumi.set(__self__, "resource_id", resource_id)
860
+ if root_folder_path is not None:
861
+ pulumi.set(__self__, "root_folder_path", root_folder_path)
862
+ if sas_token is not None:
863
+ pulumi.set(__self__, "sas_token", sas_token)
864
+ if storage_account is not None:
865
+ pulumi.set(__self__, "storage_account", storage_account)
866
+
867
+ @property
868
+ @pulumi.getter
869
+ def container(self) -> pulumi.Input[str]:
870
+ """
871
+ The name of the container where exports will be uploaded. If the container does not exist it will be created.
872
+ """
873
+ return pulumi.get(self, "container")
874
+
875
+ @container.setter
876
+ def container(self, value: pulumi.Input[str]):
877
+ pulumi.set(self, "container", value)
878
+
879
+ @property
880
+ @pulumi.getter(name="resourceId")
881
+ def resource_id(self) -> Optional[pulumi.Input[str]]:
882
+ """
883
+ The resource id of the storage account where exports will be delivered. This is not required if a sasToken and storageAccount are specified.
884
+ """
885
+ return pulumi.get(self, "resource_id")
886
+
887
+ @resource_id.setter
888
+ def resource_id(self, value: Optional[pulumi.Input[str]]):
889
+ pulumi.set(self, "resource_id", value)
890
+
891
+ @property
892
+ @pulumi.getter(name="rootFolderPath")
893
+ def root_folder_path(self) -> Optional[pulumi.Input[str]]:
894
+ """
895
+ The name of the directory where exports will be uploaded.
896
+ """
897
+ return pulumi.get(self, "root_folder_path")
898
+
899
+ @root_folder_path.setter
900
+ def root_folder_path(self, value: Optional[pulumi.Input[str]]):
901
+ pulumi.set(self, "root_folder_path", value)
902
+
903
+ @property
904
+ @pulumi.getter(name="sasToken")
905
+ def sas_token(self) -> Optional[pulumi.Input[str]]:
906
+ """
907
+ A SAS token for the storage account. For a restricted set of Azure customers this together with storageAccount can be specified instead of resourceId. Note: the value returned by the API for this property will always be obfuscated. Returning this same obfuscated value will not result in the SAS token being updated. To update this value a new SAS token must be specified.
908
+ """
909
+ return pulumi.get(self, "sas_token")
910
+
911
+ @sas_token.setter
912
+ def sas_token(self, value: Optional[pulumi.Input[str]]):
913
+ pulumi.set(self, "sas_token", value)
914
+
915
+ @property
916
+ @pulumi.getter(name="storageAccount")
917
+ def storage_account(self) -> Optional[pulumi.Input[str]]:
918
+ """
919
+ The storage account where exports will be uploaded. For a restricted set of Azure customers this together with sasToken can be specified instead of resourceId.
920
+ """
921
+ return pulumi.get(self, "storage_account")
922
+
923
+ @storage_account.setter
924
+ def storage_account(self, value: Optional[pulumi.Input[str]]):
925
+ pulumi.set(self, "storage_account", value)
926
+
927
+
928
+ if not MYPY:
929
+ class ExportDeliveryInfoArgsDict(TypedDict):
930
+ """
931
+ The delivery information associated with a export.
932
+ """
933
+ destination: pulumi.Input['ExportDeliveryDestinationArgsDict']
934
+ """
935
+ Has destination for the export being delivered.
936
+ """
937
+ elif False:
938
+ ExportDeliveryInfoArgsDict: TypeAlias = Mapping[str, Any]
939
+
940
+ @pulumi.input_type
941
+ class ExportDeliveryInfoArgs:
942
+ def __init__(__self__, *,
943
+ destination: pulumi.Input['ExportDeliveryDestinationArgs']):
944
+ """
945
+ The delivery information associated with a export.
946
+ :param pulumi.Input['ExportDeliveryDestinationArgs'] destination: Has destination for the export being delivered.
947
+ """
948
+ pulumi.set(__self__, "destination", destination)
949
+
950
+ @property
951
+ @pulumi.getter
952
+ def destination(self) -> pulumi.Input['ExportDeliveryDestinationArgs']:
953
+ """
954
+ Has destination for the export being delivered.
955
+ """
956
+ return pulumi.get(self, "destination")
957
+
958
+ @destination.setter
959
+ def destination(self, value: pulumi.Input['ExportDeliveryDestinationArgs']):
960
+ pulumi.set(self, "destination", value)
961
+
962
+
963
+ if not MYPY:
964
+ class ExportRecurrencePeriodArgsDict(TypedDict):
965
+ """
966
+ The start and end date for recurrence schedule.
967
+ """
968
+ from_: pulumi.Input[str]
969
+ """
970
+ The start date of recurrence.
971
+ """
972
+ to: NotRequired[pulumi.Input[str]]
973
+ """
974
+ The end date of recurrence.
975
+ """
976
+ elif False:
977
+ ExportRecurrencePeriodArgsDict: TypeAlias = Mapping[str, Any]
978
+
979
+ @pulumi.input_type
980
+ class ExportRecurrencePeriodArgs:
981
+ def __init__(__self__, *,
982
+ from_: pulumi.Input[str],
983
+ to: Optional[pulumi.Input[str]] = None):
984
+ """
985
+ The start and end date for recurrence schedule.
986
+ :param pulumi.Input[str] from_: The start date of recurrence.
987
+ :param pulumi.Input[str] to: The end date of recurrence.
988
+ """
989
+ pulumi.set(__self__, "from_", from_)
990
+ if to is not None:
991
+ pulumi.set(__self__, "to", to)
992
+
993
+ @property
994
+ @pulumi.getter(name="from")
995
+ def from_(self) -> pulumi.Input[str]:
996
+ """
997
+ The start date of recurrence.
998
+ """
999
+ return pulumi.get(self, "from_")
1000
+
1001
+ @from_.setter
1002
+ def from_(self, value: pulumi.Input[str]):
1003
+ pulumi.set(self, "from_", value)
1004
+
1005
+ @property
1006
+ @pulumi.getter
1007
+ def to(self) -> Optional[pulumi.Input[str]]:
1008
+ """
1009
+ The end date of recurrence.
1010
+ """
1011
+ return pulumi.get(self, "to")
1012
+
1013
+ @to.setter
1014
+ def to(self, value: Optional[pulumi.Input[str]]):
1015
+ pulumi.set(self, "to", value)
1016
+
1017
+
1018
+ if not MYPY:
1019
+ class ExportScheduleArgsDict(TypedDict):
1020
+ """
1021
+ The schedule associated with the export.
1022
+ """
1023
+ recurrence: NotRequired[pulumi.Input[Union[str, 'RecurrenceType']]]
1024
+ """
1025
+ The schedule recurrence.
1026
+ """
1027
+ recurrence_period: NotRequired[pulumi.Input['ExportRecurrencePeriodArgsDict']]
1028
+ """
1029
+ Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
1030
+ """
1031
+ status: NotRequired[pulumi.Input[Union[str, 'StatusType']]]
1032
+ """
1033
+ The status of the export's schedule. If 'Inactive', the export's schedule is paused.
1034
+ """
1035
+ elif False:
1036
+ ExportScheduleArgsDict: TypeAlias = Mapping[str, Any]
1037
+
1038
+ @pulumi.input_type
1039
+ class ExportScheduleArgs:
1040
+ def __init__(__self__, *,
1041
+ recurrence: Optional[pulumi.Input[Union[str, 'RecurrenceType']]] = None,
1042
+ recurrence_period: Optional[pulumi.Input['ExportRecurrencePeriodArgs']] = None,
1043
+ status: Optional[pulumi.Input[Union[str, 'StatusType']]] = None):
1044
+ """
1045
+ The schedule associated with the export.
1046
+ :param pulumi.Input[Union[str, 'RecurrenceType']] recurrence: The schedule recurrence.
1047
+ :param pulumi.Input['ExportRecurrencePeriodArgs'] recurrence_period: Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
1048
+ :param pulumi.Input[Union[str, 'StatusType']] status: The status of the export's schedule. If 'Inactive', the export's schedule is paused.
1049
+ """
1050
+ if recurrence is not None:
1051
+ pulumi.set(__self__, "recurrence", recurrence)
1052
+ if recurrence_period is not None:
1053
+ pulumi.set(__self__, "recurrence_period", recurrence_period)
1054
+ if status is not None:
1055
+ pulumi.set(__self__, "status", status)
1056
+
1057
+ @property
1058
+ @pulumi.getter
1059
+ def recurrence(self) -> Optional[pulumi.Input[Union[str, 'RecurrenceType']]]:
1060
+ """
1061
+ The schedule recurrence.
1062
+ """
1063
+ return pulumi.get(self, "recurrence")
1064
+
1065
+ @recurrence.setter
1066
+ def recurrence(self, value: Optional[pulumi.Input[Union[str, 'RecurrenceType']]]):
1067
+ pulumi.set(self, "recurrence", value)
1068
+
1069
+ @property
1070
+ @pulumi.getter(name="recurrencePeriod")
1071
+ def recurrence_period(self) -> Optional[pulumi.Input['ExportRecurrencePeriodArgs']]:
1072
+ """
1073
+ Has start and end date of the recurrence. The start date must be in future. If present, the end date must be greater than start date.
1074
+ """
1075
+ return pulumi.get(self, "recurrence_period")
1076
+
1077
+ @recurrence_period.setter
1078
+ def recurrence_period(self, value: Optional[pulumi.Input['ExportRecurrencePeriodArgs']]):
1079
+ pulumi.set(self, "recurrence_period", value)
1080
+
1081
+ @property
1082
+ @pulumi.getter
1083
+ def status(self) -> Optional[pulumi.Input[Union[str, 'StatusType']]]:
1084
+ """
1085
+ The status of the export's schedule. If 'Inactive', the export's schedule is paused.
1086
+ """
1087
+ return pulumi.get(self, "status")
1088
+
1089
+ @status.setter
1090
+ def status(self, value: Optional[pulumi.Input[Union[str, 'StatusType']]]):
1091
+ pulumi.set(self, "status", value)
1092
+
1093
+
1094
+ if not MYPY:
1095
+ class ExportTimePeriodArgsDict(TypedDict):
1096
+ """
1097
+ The date range for data in the export. This should only be specified with timeFrame set to 'Custom'. The maximum date range is 3 months.
1098
+ """
1099
+ from_: pulumi.Input[str]
1100
+ """
1101
+ The start date for export data.
1102
+ """
1103
+ to: pulumi.Input[str]
1104
+ """
1105
+ The end date for export data.
1106
+ """
1107
+ elif False:
1108
+ ExportTimePeriodArgsDict: TypeAlias = Mapping[str, Any]
1109
+
1110
+ @pulumi.input_type
1111
+ class ExportTimePeriodArgs:
1112
+ def __init__(__self__, *,
1113
+ from_: pulumi.Input[str],
1114
+ to: pulumi.Input[str]):
1115
+ """
1116
+ The date range for data in the export. This should only be specified with timeFrame set to 'Custom'. The maximum date range is 3 months.
1117
+ :param pulumi.Input[str] from_: The start date for export data.
1118
+ :param pulumi.Input[str] to: The end date for export data.
1119
+ """
1120
+ pulumi.set(__self__, "from_", from_)
1121
+ pulumi.set(__self__, "to", to)
1122
+
1123
+ @property
1124
+ @pulumi.getter(name="from")
1125
+ def from_(self) -> pulumi.Input[str]:
1126
+ """
1127
+ The start date for export data.
1128
+ """
1129
+ return pulumi.get(self, "from_")
1130
+
1131
+ @from_.setter
1132
+ def from_(self, value: pulumi.Input[str]):
1133
+ pulumi.set(self, "from_", value)
1134
+
1135
+ @property
1136
+ @pulumi.getter
1137
+ def to(self) -> pulumi.Input[str]:
1138
+ """
1139
+ The end date for export data.
1140
+ """
1141
+ return pulumi.get(self, "to")
1142
+
1143
+ @to.setter
1144
+ def to(self, value: pulumi.Input[str]):
1145
+ pulumi.set(self, "to", value)
1146
+
1147
+
1148
+ if not MYPY:
1149
+ class FileDestinationArgsDict(TypedDict):
1150
+ """
1151
+ Destination of the view data. This is optional. Currently only CSV format is supported.
1152
+ """
1153
+ file_formats: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'FileFormat']]]]]
1154
+ """
1155
+ Destination of the view data. Currently only CSV format is supported.
1156
+ """
1157
+ elif False:
1158
+ FileDestinationArgsDict: TypeAlias = Mapping[str, Any]
1159
+
1160
+ @pulumi.input_type
1161
+ class FileDestinationArgs:
1162
+ def __init__(__self__, *,
1163
+ file_formats: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'FileFormat']]]]] = None):
1164
+ """
1165
+ Destination of the view data. This is optional. Currently only CSV format is supported.
1166
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'FileFormat']]]] file_formats: Destination of the view data. Currently only CSV format is supported.
1167
+ """
1168
+ if file_formats is not None:
1169
+ pulumi.set(__self__, "file_formats", file_formats)
1170
+
1171
+ @property
1172
+ @pulumi.getter(name="fileFormats")
1173
+ def file_formats(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'FileFormat']]]]]:
1174
+ """
1175
+ Destination of the view data. Currently only CSV format is supported.
1176
+ """
1177
+ return pulumi.get(self, "file_formats")
1178
+
1179
+ @file_formats.setter
1180
+ def file_formats(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'FileFormat']]]]]):
1181
+ pulumi.set(self, "file_formats", value)
1182
+
1183
+
1184
+ if not MYPY:
1185
+ class KpiPropertiesArgsDict(TypedDict):
1186
+ """
1187
+ Each KPI must contain a 'type' and 'enabled' key.
1188
+ """
1189
+ enabled: NotRequired[pulumi.Input[bool]]
1190
+ """
1191
+ show the KPI in the UI?
1192
+ """
1193
+ id: NotRequired[pulumi.Input[str]]
1194
+ """
1195
+ ID of resource related to metric (budget).
1196
+ """
1197
+ type: NotRequired[pulumi.Input[Union[str, 'KpiTypeType']]]
1198
+ """
1199
+ KPI type (Forecast, Budget).
1200
+ """
1201
+ elif False:
1202
+ KpiPropertiesArgsDict: TypeAlias = Mapping[str, Any]
1203
+
1204
+ @pulumi.input_type
1205
+ class KpiPropertiesArgs:
1206
+ def __init__(__self__, *,
1207
+ enabled: Optional[pulumi.Input[bool]] = None,
1208
+ id: Optional[pulumi.Input[str]] = None,
1209
+ type: Optional[pulumi.Input[Union[str, 'KpiTypeType']]] = None):
1210
+ """
1211
+ Each KPI must contain a 'type' and 'enabled' key.
1212
+ :param pulumi.Input[bool] enabled: show the KPI in the UI?
1213
+ :param pulumi.Input[str] id: ID of resource related to metric (budget).
1214
+ :param pulumi.Input[Union[str, 'KpiTypeType']] type: KPI type (Forecast, Budget).
1215
+ """
1216
+ if enabled is not None:
1217
+ pulumi.set(__self__, "enabled", enabled)
1218
+ if id is not None:
1219
+ pulumi.set(__self__, "id", id)
1220
+ if type is not None:
1221
+ pulumi.set(__self__, "type", type)
1222
+
1223
+ @property
1224
+ @pulumi.getter
1225
+ def enabled(self) -> Optional[pulumi.Input[bool]]:
1226
+ """
1227
+ show the KPI in the UI?
1228
+ """
1229
+ return pulumi.get(self, "enabled")
1230
+
1231
+ @enabled.setter
1232
+ def enabled(self, value: Optional[pulumi.Input[bool]]):
1233
+ pulumi.set(self, "enabled", value)
1234
+
1235
+ @property
1236
+ @pulumi.getter
1237
+ def id(self) -> Optional[pulumi.Input[str]]:
1238
+ """
1239
+ ID of resource related to metric (budget).
1240
+ """
1241
+ return pulumi.get(self, "id")
1242
+
1243
+ @id.setter
1244
+ def id(self, value: Optional[pulumi.Input[str]]):
1245
+ pulumi.set(self, "id", value)
1246
+
1247
+ @property
1248
+ @pulumi.getter
1249
+ def type(self) -> Optional[pulumi.Input[Union[str, 'KpiTypeType']]]:
1250
+ """
1251
+ KPI type (Forecast, Budget).
1252
+ """
1253
+ return pulumi.get(self, "type")
1254
+
1255
+ @type.setter
1256
+ def type(self, value: Optional[pulumi.Input[Union[str, 'KpiTypeType']]]):
1257
+ pulumi.set(self, "type", value)
1258
+
1259
+
1260
+ if not MYPY:
1261
+ class NotificationPropertiesArgsDict(TypedDict):
1262
+ """
1263
+ The properties of the scheduled action notification.
1264
+ """
1265
+ subject: pulumi.Input[str]
1266
+ """
1267
+ Subject of the email. Length is limited to 70 characters.
1268
+ """
1269
+ to: pulumi.Input[Sequence[pulumi.Input[str]]]
1270
+ """
1271
+ Array of email addresses.
1272
+ """
1273
+ language: NotRequired[pulumi.Input[str]]
1274
+ """
1275
+ Locale of the email.
1276
+ """
1277
+ message: NotRequired[pulumi.Input[str]]
1278
+ """
1279
+ Optional message to be added in the email. Length is limited to 250 characters.
1280
+ """
1281
+ regional_format: NotRequired[pulumi.Input[str]]
1282
+ """
1283
+ Regional format used for formatting date/time and currency values in the email.
1284
+ """
1285
+ elif False:
1286
+ NotificationPropertiesArgsDict: TypeAlias = Mapping[str, Any]
1287
+
1288
+ @pulumi.input_type
1289
+ class NotificationPropertiesArgs:
1290
+ def __init__(__self__, *,
1291
+ subject: pulumi.Input[str],
1292
+ to: pulumi.Input[Sequence[pulumi.Input[str]]],
1293
+ language: Optional[pulumi.Input[str]] = None,
1294
+ message: Optional[pulumi.Input[str]] = None,
1295
+ regional_format: Optional[pulumi.Input[str]] = None):
1296
+ """
1297
+ The properties of the scheduled action notification.
1298
+ :param pulumi.Input[str] subject: Subject of the email. Length is limited to 70 characters.
1299
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] to: Array of email addresses.
1300
+ :param pulumi.Input[str] language: Locale of the email.
1301
+ :param pulumi.Input[str] message: Optional message to be added in the email. Length is limited to 250 characters.
1302
+ :param pulumi.Input[str] regional_format: Regional format used for formatting date/time and currency values in the email.
1303
+ """
1304
+ pulumi.set(__self__, "subject", subject)
1305
+ pulumi.set(__self__, "to", to)
1306
+ if language is not None:
1307
+ pulumi.set(__self__, "language", language)
1308
+ if message is not None:
1309
+ pulumi.set(__self__, "message", message)
1310
+ if regional_format is not None:
1311
+ pulumi.set(__self__, "regional_format", regional_format)
1312
+
1313
+ @property
1314
+ @pulumi.getter
1315
+ def subject(self) -> pulumi.Input[str]:
1316
+ """
1317
+ Subject of the email. Length is limited to 70 characters.
1318
+ """
1319
+ return pulumi.get(self, "subject")
1320
+
1321
+ @subject.setter
1322
+ def subject(self, value: pulumi.Input[str]):
1323
+ pulumi.set(self, "subject", value)
1324
+
1325
+ @property
1326
+ @pulumi.getter
1327
+ def to(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
1328
+ """
1329
+ Array of email addresses.
1330
+ """
1331
+ return pulumi.get(self, "to")
1332
+
1333
+ @to.setter
1334
+ def to(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
1335
+ pulumi.set(self, "to", value)
1336
+
1337
+ @property
1338
+ @pulumi.getter
1339
+ def language(self) -> Optional[pulumi.Input[str]]:
1340
+ """
1341
+ Locale of the email.
1342
+ """
1343
+ return pulumi.get(self, "language")
1344
+
1345
+ @language.setter
1346
+ def language(self, value: Optional[pulumi.Input[str]]):
1347
+ pulumi.set(self, "language", value)
1348
+
1349
+ @property
1350
+ @pulumi.getter
1351
+ def message(self) -> Optional[pulumi.Input[str]]:
1352
+ """
1353
+ Optional message to be added in the email. Length is limited to 250 characters.
1354
+ """
1355
+ return pulumi.get(self, "message")
1356
+
1357
+ @message.setter
1358
+ def message(self, value: Optional[pulumi.Input[str]]):
1359
+ pulumi.set(self, "message", value)
1360
+
1361
+ @property
1362
+ @pulumi.getter(name="regionalFormat")
1363
+ def regional_format(self) -> Optional[pulumi.Input[str]]:
1364
+ """
1365
+ Regional format used for formatting date/time and currency values in the email.
1366
+ """
1367
+ return pulumi.get(self, "regional_format")
1368
+
1369
+ @regional_format.setter
1370
+ def regional_format(self, value: Optional[pulumi.Input[str]]):
1371
+ pulumi.set(self, "regional_format", value)
1372
+
1373
+
1374
+ if not MYPY:
1375
+ class NotificationArgsDict(TypedDict):
1376
+ """
1377
+ The notification associated with a budget.
1378
+
1379
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1380
+ """
1381
+ contact_emails: pulumi.Input[Sequence[pulumi.Input[str]]]
1382
+ """
1383
+ Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified.
1384
+
1385
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1386
+ """
1387
+ enabled: pulumi.Input[bool]
1388
+ """
1389
+ The notification is enabled or not.
1390
+
1391
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1392
+ """
1393
+ operator: pulumi.Input[Union[str, 'BudgetNotificationOperatorType']]
1394
+ """
1395
+ The comparison operator.
1396
+
1397
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1398
+
1399
+ Supported operators for **CategoryType: Cost**
1400
+ - GreaterThan
1401
+ - GreaterThanOrEqualTo
1402
+
1403
+ Supported operators for **CategoryType: ReservationUtilization**
1404
+ - LessThan
1405
+ """
1406
+ threshold: pulumi.Input[float]
1407
+ """
1408
+ Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places.
1409
+
1410
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1411
+
1412
+ **CategoryType: Cost** - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold.
1413
+
1414
+ **CategoryType: ReservationUtilization** - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold.
1415
+ """
1416
+ contact_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1417
+ """
1418
+ Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id.
1419
+
1420
+ Supported for CategoryType(s): Cost.
1421
+ """
1422
+ contact_roles: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1423
+ """
1424
+ Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached.
1425
+
1426
+ Supported for CategoryType(s): Cost.
1427
+ """
1428
+ frequency: NotRequired[pulumi.Input[Union[str, 'Frequency']]]
1429
+ """
1430
+ Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days).
1431
+
1432
+ Supported for CategoryType(s): ReservationUtilization.
1433
+ """
1434
+ locale: NotRequired[pulumi.Input[Union[str, 'CultureCode']]]
1435
+ """
1436
+ Language in which the recipient will receive the notification,
1437
+
1438
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1439
+ """
1440
+ threshold_type: NotRequired[pulumi.Input[Union[str, 'ThresholdType']]]
1441
+ """
1442
+ The type of threshold.
1443
+
1444
+ Supported for CategoryType(s): Cost.
1445
+ """
1446
+ elif False:
1447
+ NotificationArgsDict: TypeAlias = Mapping[str, Any]
1448
+
1449
+ @pulumi.input_type
1450
+ class NotificationArgs:
1451
+ def __init__(__self__, *,
1452
+ contact_emails: pulumi.Input[Sequence[pulumi.Input[str]]],
1453
+ enabled: pulumi.Input[bool],
1454
+ operator: pulumi.Input[Union[str, 'BudgetNotificationOperatorType']],
1455
+ threshold: pulumi.Input[float],
1456
+ contact_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1457
+ contact_roles: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1458
+ frequency: Optional[pulumi.Input[Union[str, 'Frequency']]] = None,
1459
+ locale: Optional[pulumi.Input[Union[str, 'CultureCode']]] = None,
1460
+ threshold_type: Optional[pulumi.Input[Union[str, 'ThresholdType']]] = None):
1461
+ """
1462
+ The notification associated with a budget.
1463
+
1464
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1465
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] contact_emails: Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified.
1466
+
1467
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1468
+ :param pulumi.Input[bool] enabled: The notification is enabled or not.
1469
+
1470
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1471
+ :param pulumi.Input[Union[str, 'BudgetNotificationOperatorType']] operator: The comparison operator.
1472
+
1473
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1474
+
1475
+ Supported operators for **CategoryType: Cost**
1476
+ - GreaterThan
1477
+ - GreaterThanOrEqualTo
1478
+
1479
+ Supported operators for **CategoryType: ReservationUtilization**
1480
+ - LessThan
1481
+ :param pulumi.Input[float] threshold: Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places.
1482
+
1483
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1484
+
1485
+ **CategoryType: Cost** - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold.
1486
+
1487
+ **CategoryType: ReservationUtilization** - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold.
1488
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] contact_groups: Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id.
1489
+
1490
+ Supported for CategoryType(s): Cost.
1491
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] contact_roles: Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached.
1492
+
1493
+ Supported for CategoryType(s): Cost.
1494
+ :param pulumi.Input[Union[str, 'Frequency']] frequency: Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days).
1495
+
1496
+ Supported for CategoryType(s): ReservationUtilization.
1497
+ :param pulumi.Input[Union[str, 'CultureCode']] locale: Language in which the recipient will receive the notification,
1498
+
1499
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1500
+ :param pulumi.Input[Union[str, 'ThresholdType']] threshold_type: The type of threshold.
1501
+
1502
+ Supported for CategoryType(s): Cost.
1503
+ """
1504
+ pulumi.set(__self__, "contact_emails", contact_emails)
1505
+ pulumi.set(__self__, "enabled", enabled)
1506
+ pulumi.set(__self__, "operator", operator)
1507
+ pulumi.set(__self__, "threshold", threshold)
1508
+ if contact_groups is not None:
1509
+ pulumi.set(__self__, "contact_groups", contact_groups)
1510
+ if contact_roles is not None:
1511
+ pulumi.set(__self__, "contact_roles", contact_roles)
1512
+ if frequency is not None:
1513
+ pulumi.set(__self__, "frequency", frequency)
1514
+ if locale is not None:
1515
+ pulumi.set(__self__, "locale", locale)
1516
+ if threshold_type is None:
1517
+ threshold_type = 'Actual'
1518
+ if threshold_type is not None:
1519
+ pulumi.set(__self__, "threshold_type", threshold_type)
1520
+
1521
+ @property
1522
+ @pulumi.getter(name="contactEmails")
1523
+ def contact_emails(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
1524
+ """
1525
+ Email addresses to send the notification to when the threshold is breached. Must have at least one contact email or contact group specified at the Subscription or Resource Group scopes. All other scopes must have at least one contact email specified.
1526
+
1527
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1528
+ """
1529
+ return pulumi.get(self, "contact_emails")
1530
+
1531
+ @contact_emails.setter
1532
+ def contact_emails(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
1533
+ pulumi.set(self, "contact_emails", value)
1534
+
1535
+ @property
1536
+ @pulumi.getter
1537
+ def enabled(self) -> pulumi.Input[bool]:
1538
+ """
1539
+ The notification is enabled or not.
1540
+
1541
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1542
+ """
1543
+ return pulumi.get(self, "enabled")
1544
+
1545
+ @enabled.setter
1546
+ def enabled(self, value: pulumi.Input[bool]):
1547
+ pulumi.set(self, "enabled", value)
1548
+
1549
+ @property
1550
+ @pulumi.getter
1551
+ def operator(self) -> pulumi.Input[Union[str, 'BudgetNotificationOperatorType']]:
1552
+ """
1553
+ The comparison operator.
1554
+
1555
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1556
+
1557
+ Supported operators for **CategoryType: Cost**
1558
+ - GreaterThan
1559
+ - GreaterThanOrEqualTo
1560
+
1561
+ Supported operators for **CategoryType: ReservationUtilization**
1562
+ - LessThan
1563
+ """
1564
+ return pulumi.get(self, "operator")
1565
+
1566
+ @operator.setter
1567
+ def operator(self, value: pulumi.Input[Union[str, 'BudgetNotificationOperatorType']]):
1568
+ pulumi.set(self, "operator", value)
1569
+
1570
+ @property
1571
+ @pulumi.getter
1572
+ def threshold(self) -> pulumi.Input[float]:
1573
+ """
1574
+ Threshold value associated with a notification. It is always percent with a maximum of 2 decimal places.
1575
+
1576
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1577
+
1578
+ **CategoryType: Cost** - Must be between 0 and 1000. Notification is sent when the cost exceeded the threshold.
1579
+
1580
+ **CategoryType: ReservationUtilization** - Must be between 0 and 100. Notification is sent when a reservation has a utilization percentage below the threshold.
1581
+ """
1582
+ return pulumi.get(self, "threshold")
1583
+
1584
+ @threshold.setter
1585
+ def threshold(self, value: pulumi.Input[float]):
1586
+ pulumi.set(self, "threshold", value)
1587
+
1588
+ @property
1589
+ @pulumi.getter(name="contactGroups")
1590
+ def contact_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1591
+ """
1592
+ Subscription or Resource Group scopes only. Action groups to send the notification to when the threshold is exceeded. Must be provided as a fully qualified Azure resource id.
1593
+
1594
+ Supported for CategoryType(s): Cost.
1595
+ """
1596
+ return pulumi.get(self, "contact_groups")
1597
+
1598
+ @contact_groups.setter
1599
+ def contact_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1600
+ pulumi.set(self, "contact_groups", value)
1601
+
1602
+ @property
1603
+ @pulumi.getter(name="contactRoles")
1604
+ def contact_roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1605
+ """
1606
+ Subscription or Resource Group scopes only. Contact roles to send the notification to when the threshold is breached.
1607
+
1608
+ Supported for CategoryType(s): Cost.
1609
+ """
1610
+ return pulumi.get(self, "contact_roles")
1611
+
1612
+ @contact_roles.setter
1613
+ def contact_roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1614
+ pulumi.set(self, "contact_roles", value)
1615
+
1616
+ @property
1617
+ @pulumi.getter
1618
+ def frequency(self) -> Optional[pulumi.Input[Union[str, 'Frequency']]]:
1619
+ """
1620
+ Frequency of a notification. Represents how long the notification will be silent after triggering an alert for a threshold breach. If not specified, the frequency will be set by default based on the timeGrain (Weekly when timeGrain: Last7Days, Monthly when timeGrain: Last30Days).
1621
+
1622
+ Supported for CategoryType(s): ReservationUtilization.
1623
+ """
1624
+ return pulumi.get(self, "frequency")
1625
+
1626
+ @frequency.setter
1627
+ def frequency(self, value: Optional[pulumi.Input[Union[str, 'Frequency']]]):
1628
+ pulumi.set(self, "frequency", value)
1629
+
1630
+ @property
1631
+ @pulumi.getter
1632
+ def locale(self) -> Optional[pulumi.Input[Union[str, 'CultureCode']]]:
1633
+ """
1634
+ Language in which the recipient will receive the notification,
1635
+
1636
+ Supported for CategoryType(s): Cost, ReservationUtilization.
1637
+ """
1638
+ return pulumi.get(self, "locale")
1639
+
1640
+ @locale.setter
1641
+ def locale(self, value: Optional[pulumi.Input[Union[str, 'CultureCode']]]):
1642
+ pulumi.set(self, "locale", value)
1643
+
1644
+ @property
1645
+ @pulumi.getter(name="thresholdType")
1646
+ def threshold_type(self) -> Optional[pulumi.Input[Union[str, 'ThresholdType']]]:
1647
+ """
1648
+ The type of threshold.
1649
+
1650
+ Supported for CategoryType(s): Cost.
1651
+ """
1652
+ return pulumi.get(self, "threshold_type")
1653
+
1654
+ @threshold_type.setter
1655
+ def threshold_type(self, value: Optional[pulumi.Input[Union[str, 'ThresholdType']]]):
1656
+ pulumi.set(self, "threshold_type", value)
1657
+
1658
+
1659
+ if not MYPY:
1660
+ class PivotPropertiesArgsDict(TypedDict):
1661
+ """
1662
+ Each pivot must contain a 'type' and 'name'.
1663
+ """
1664
+ name: NotRequired[pulumi.Input[str]]
1665
+ """
1666
+ Data field to show in view.
1667
+ """
1668
+ type: NotRequired[pulumi.Input[Union[str, 'PivotTypeType']]]
1669
+ """
1670
+ Data type to show in view.
1671
+ """
1672
+ elif False:
1673
+ PivotPropertiesArgsDict: TypeAlias = Mapping[str, Any]
1674
+
1675
+ @pulumi.input_type
1676
+ class PivotPropertiesArgs:
1677
+ def __init__(__self__, *,
1678
+ name: Optional[pulumi.Input[str]] = None,
1679
+ type: Optional[pulumi.Input[Union[str, 'PivotTypeType']]] = None):
1680
+ """
1681
+ Each pivot must contain a 'type' and 'name'.
1682
+ :param pulumi.Input[str] name: Data field to show in view.
1683
+ :param pulumi.Input[Union[str, 'PivotTypeType']] type: Data type to show in view.
1684
+ """
1685
+ if name is not None:
1686
+ pulumi.set(__self__, "name", name)
1687
+ if type is not None:
1688
+ pulumi.set(__self__, "type", type)
1689
+
1690
+ @property
1691
+ @pulumi.getter
1692
+ def name(self) -> Optional[pulumi.Input[str]]:
1693
+ """
1694
+ Data field to show in view.
1695
+ """
1696
+ return pulumi.get(self, "name")
1697
+
1698
+ @name.setter
1699
+ def name(self, value: Optional[pulumi.Input[str]]):
1700
+ pulumi.set(self, "name", value)
1701
+
1702
+ @property
1703
+ @pulumi.getter
1704
+ def type(self) -> Optional[pulumi.Input[Union[str, 'PivotTypeType']]]:
1705
+ """
1706
+ Data type to show in view.
1707
+ """
1708
+ return pulumi.get(self, "type")
1709
+
1710
+ @type.setter
1711
+ def type(self, value: Optional[pulumi.Input[Union[str, 'PivotTypeType']]]):
1712
+ pulumi.set(self, "type", value)
1713
+
1714
+
1715
+ if not MYPY:
1716
+ class ReportConfigAggregationArgsDict(TypedDict):
1717
+ """
1718
+ The aggregation expression to be used in the report.
1719
+ """
1720
+ function: pulumi.Input[Union[str, 'FunctionType']]
1721
+ """
1722
+ The name of the aggregation function to use.
1723
+ """
1724
+ name: pulumi.Input[str]
1725
+ """
1726
+ The name of the column to aggregate.
1727
+ """
1728
+ elif False:
1729
+ ReportConfigAggregationArgsDict: TypeAlias = Mapping[str, Any]
1730
+
1731
+ @pulumi.input_type
1732
+ class ReportConfigAggregationArgs:
1733
+ def __init__(__self__, *,
1734
+ function: pulumi.Input[Union[str, 'FunctionType']],
1735
+ name: pulumi.Input[str]):
1736
+ """
1737
+ The aggregation expression to be used in the report.
1738
+ :param pulumi.Input[Union[str, 'FunctionType']] function: The name of the aggregation function to use.
1739
+ :param pulumi.Input[str] name: The name of the column to aggregate.
1740
+ """
1741
+ pulumi.set(__self__, "function", function)
1742
+ pulumi.set(__self__, "name", name)
1743
+
1744
+ @property
1745
+ @pulumi.getter
1746
+ def function(self) -> pulumi.Input[Union[str, 'FunctionType']]:
1747
+ """
1748
+ The name of the aggregation function to use.
1749
+ """
1750
+ return pulumi.get(self, "function")
1751
+
1752
+ @function.setter
1753
+ def function(self, value: pulumi.Input[Union[str, 'FunctionType']]):
1754
+ pulumi.set(self, "function", value)
1755
+
1756
+ @property
1757
+ @pulumi.getter
1758
+ def name(self) -> pulumi.Input[str]:
1759
+ """
1760
+ The name of the column to aggregate.
1761
+ """
1762
+ return pulumi.get(self, "name")
1763
+
1764
+ @name.setter
1765
+ def name(self, value: pulumi.Input[str]):
1766
+ pulumi.set(self, "name", value)
1767
+
1768
+
1769
+ if not MYPY:
1770
+ class ReportConfigComparisonExpressionArgsDict(TypedDict):
1771
+ """
1772
+ The comparison expression to be used in the report.
1773
+ """
1774
+ name: pulumi.Input[str]
1775
+ """
1776
+ The name of the column to use in comparison.
1777
+ """
1778
+ operator: pulumi.Input[Union[str, 'OperatorType']]
1779
+ """
1780
+ The operator to use for comparison.
1781
+ """
1782
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]
1783
+ """
1784
+ Array of values to use for comparison
1785
+ """
1786
+ elif False:
1787
+ ReportConfigComparisonExpressionArgsDict: TypeAlias = Mapping[str, Any]
1788
+
1789
+ @pulumi.input_type
1790
+ class ReportConfigComparisonExpressionArgs:
1791
+ def __init__(__self__, *,
1792
+ name: pulumi.Input[str],
1793
+ operator: pulumi.Input[Union[str, 'OperatorType']],
1794
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]):
1795
+ """
1796
+ The comparison expression to be used in the report.
1797
+ :param pulumi.Input[str] name: The name of the column to use in comparison.
1798
+ :param pulumi.Input[Union[str, 'OperatorType']] operator: The operator to use for comparison.
1799
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Array of values to use for comparison
1800
+ """
1801
+ pulumi.set(__self__, "name", name)
1802
+ pulumi.set(__self__, "operator", operator)
1803
+ pulumi.set(__self__, "values", values)
1804
+
1805
+ @property
1806
+ @pulumi.getter
1807
+ def name(self) -> pulumi.Input[str]:
1808
+ """
1809
+ The name of the column to use in comparison.
1810
+ """
1811
+ return pulumi.get(self, "name")
1812
+
1813
+ @name.setter
1814
+ def name(self, value: pulumi.Input[str]):
1815
+ pulumi.set(self, "name", value)
1816
+
1817
+ @property
1818
+ @pulumi.getter
1819
+ def operator(self) -> pulumi.Input[Union[str, 'OperatorType']]:
1820
+ """
1821
+ The operator to use for comparison.
1822
+ """
1823
+ return pulumi.get(self, "operator")
1824
+
1825
+ @operator.setter
1826
+ def operator(self, value: pulumi.Input[Union[str, 'OperatorType']]):
1827
+ pulumi.set(self, "operator", value)
1828
+
1829
+ @property
1830
+ @pulumi.getter
1831
+ def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
1832
+ """
1833
+ Array of values to use for comparison
1834
+ """
1835
+ return pulumi.get(self, "values")
1836
+
1837
+ @values.setter
1838
+ def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
1839
+ pulumi.set(self, "values", value)
1840
+
1841
+
1842
+ if not MYPY:
1843
+ class ReportConfigDatasetConfigurationArgsDict(TypedDict):
1844
+ """
1845
+ The configuration of dataset in the report.
1846
+ """
1847
+ columns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1848
+ """
1849
+ Array of column names to be included in the report. Any valid report column name is allowed. If not provided, then report includes all columns.
1850
+ """
1851
+ elif False:
1852
+ ReportConfigDatasetConfigurationArgsDict: TypeAlias = Mapping[str, Any]
1853
+
1854
+ @pulumi.input_type
1855
+ class ReportConfigDatasetConfigurationArgs:
1856
+ def __init__(__self__, *,
1857
+ columns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1858
+ """
1859
+ The configuration of dataset in the report.
1860
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] columns: Array of column names to be included in the report. Any valid report column name is allowed. If not provided, then report includes all columns.
1861
+ """
1862
+ if columns is not None:
1863
+ pulumi.set(__self__, "columns", columns)
1864
+
1865
+ @property
1866
+ @pulumi.getter
1867
+ def columns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1868
+ """
1869
+ Array of column names to be included in the report. Any valid report column name is allowed. If not provided, then report includes all columns.
1870
+ """
1871
+ return pulumi.get(self, "columns")
1872
+
1873
+ @columns.setter
1874
+ def columns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1875
+ pulumi.set(self, "columns", value)
1876
+
1877
+
1878
+ if not MYPY:
1879
+ class ReportConfigDatasetArgsDict(TypedDict):
1880
+ """
1881
+ The definition of data present in the report.
1882
+ """
1883
+ aggregation: NotRequired[pulumi.Input[Mapping[str, pulumi.Input['ReportConfigAggregationArgsDict']]]]
1884
+ """
1885
+ Dictionary of aggregation expression to use in the report. The key of each item in the dictionary is the alias for the aggregated column. Report can have up to 2 aggregation clauses.
1886
+ """
1887
+ configuration: NotRequired[pulumi.Input['ReportConfigDatasetConfigurationArgsDict']]
1888
+ """
1889
+ Has configuration information for the data in the report. The configuration will be ignored if aggregation and grouping are provided.
1890
+ """
1891
+ filter: NotRequired[pulumi.Input['ReportConfigFilterArgsDict']]
1892
+ """
1893
+ Has filter expression to use in the report.
1894
+ """
1895
+ granularity: NotRequired[pulumi.Input[Union[str, 'ReportGranularityType']]]
1896
+ """
1897
+ The granularity of rows in the report.
1898
+ """
1899
+ grouping: NotRequired[pulumi.Input[Sequence[pulumi.Input['ReportConfigGroupingArgsDict']]]]
1900
+ """
1901
+ Array of group by expression to use in the report. Report can have up to 2 group by clauses.
1902
+ """
1903
+ sorting: NotRequired[pulumi.Input[Sequence[pulumi.Input['ReportConfigSortingArgsDict']]]]
1904
+ """
1905
+ Array of order by expression to use in the report.
1906
+ """
1907
+ elif False:
1908
+ ReportConfigDatasetArgsDict: TypeAlias = Mapping[str, Any]
1909
+
1910
+ @pulumi.input_type
1911
+ class ReportConfigDatasetArgs:
1912
+ def __init__(__self__, *,
1913
+ aggregation: Optional[pulumi.Input[Mapping[str, pulumi.Input['ReportConfigAggregationArgs']]]] = None,
1914
+ configuration: Optional[pulumi.Input['ReportConfigDatasetConfigurationArgs']] = None,
1915
+ filter: Optional[pulumi.Input['ReportConfigFilterArgs']] = None,
1916
+ granularity: Optional[pulumi.Input[Union[str, 'ReportGranularityType']]] = None,
1917
+ grouping: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigGroupingArgs']]]] = None,
1918
+ sorting: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigSortingArgs']]]] = None):
1919
+ """
1920
+ The definition of data present in the report.
1921
+ :param pulumi.Input[Mapping[str, pulumi.Input['ReportConfigAggregationArgs']]] aggregation: Dictionary of aggregation expression to use in the report. The key of each item in the dictionary is the alias for the aggregated column. Report can have up to 2 aggregation clauses.
1922
+ :param pulumi.Input['ReportConfigDatasetConfigurationArgs'] configuration: Has configuration information for the data in the report. The configuration will be ignored if aggregation and grouping are provided.
1923
+ :param pulumi.Input['ReportConfigFilterArgs'] filter: Has filter expression to use in the report.
1924
+ :param pulumi.Input[Union[str, 'ReportGranularityType']] granularity: The granularity of rows in the report.
1925
+ :param pulumi.Input[Sequence[pulumi.Input['ReportConfigGroupingArgs']]] grouping: Array of group by expression to use in the report. Report can have up to 2 group by clauses.
1926
+ :param pulumi.Input[Sequence[pulumi.Input['ReportConfigSortingArgs']]] sorting: Array of order by expression to use in the report.
1927
+ """
1928
+ if aggregation is not None:
1929
+ pulumi.set(__self__, "aggregation", aggregation)
1930
+ if configuration is not None:
1931
+ pulumi.set(__self__, "configuration", configuration)
1932
+ if filter is not None:
1933
+ pulumi.set(__self__, "filter", filter)
1934
+ if granularity is not None:
1935
+ pulumi.set(__self__, "granularity", granularity)
1936
+ if grouping is not None:
1937
+ pulumi.set(__self__, "grouping", grouping)
1938
+ if sorting is not None:
1939
+ pulumi.set(__self__, "sorting", sorting)
1940
+
1941
+ @property
1942
+ @pulumi.getter
1943
+ def aggregation(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['ReportConfigAggregationArgs']]]]:
1944
+ """
1945
+ Dictionary of aggregation expression to use in the report. The key of each item in the dictionary is the alias for the aggregated column. Report can have up to 2 aggregation clauses.
1946
+ """
1947
+ return pulumi.get(self, "aggregation")
1948
+
1949
+ @aggregation.setter
1950
+ def aggregation(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['ReportConfigAggregationArgs']]]]):
1951
+ pulumi.set(self, "aggregation", value)
1952
+
1953
+ @property
1954
+ @pulumi.getter
1955
+ def configuration(self) -> Optional[pulumi.Input['ReportConfigDatasetConfigurationArgs']]:
1956
+ """
1957
+ Has configuration information for the data in the report. The configuration will be ignored if aggregation and grouping are provided.
1958
+ """
1959
+ return pulumi.get(self, "configuration")
1960
+
1961
+ @configuration.setter
1962
+ def configuration(self, value: Optional[pulumi.Input['ReportConfigDatasetConfigurationArgs']]):
1963
+ pulumi.set(self, "configuration", value)
1964
+
1965
+ @property
1966
+ @pulumi.getter
1967
+ def filter(self) -> Optional[pulumi.Input['ReportConfigFilterArgs']]:
1968
+ """
1969
+ Has filter expression to use in the report.
1970
+ """
1971
+ return pulumi.get(self, "filter")
1972
+
1973
+ @filter.setter
1974
+ def filter(self, value: Optional[pulumi.Input['ReportConfigFilterArgs']]):
1975
+ pulumi.set(self, "filter", value)
1976
+
1977
+ @property
1978
+ @pulumi.getter
1979
+ def granularity(self) -> Optional[pulumi.Input[Union[str, 'ReportGranularityType']]]:
1980
+ """
1981
+ The granularity of rows in the report.
1982
+ """
1983
+ return pulumi.get(self, "granularity")
1984
+
1985
+ @granularity.setter
1986
+ def granularity(self, value: Optional[pulumi.Input[Union[str, 'ReportGranularityType']]]):
1987
+ pulumi.set(self, "granularity", value)
1988
+
1989
+ @property
1990
+ @pulumi.getter
1991
+ def grouping(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigGroupingArgs']]]]:
1992
+ """
1993
+ Array of group by expression to use in the report. Report can have up to 2 group by clauses.
1994
+ """
1995
+ return pulumi.get(self, "grouping")
1996
+
1997
+ @grouping.setter
1998
+ def grouping(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigGroupingArgs']]]]):
1999
+ pulumi.set(self, "grouping", value)
2000
+
2001
+ @property
2002
+ @pulumi.getter
2003
+ def sorting(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigSortingArgs']]]]:
2004
+ """
2005
+ Array of order by expression to use in the report.
2006
+ """
2007
+ return pulumi.get(self, "sorting")
2008
+
2009
+ @sorting.setter
2010
+ def sorting(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigSortingArgs']]]]):
2011
+ pulumi.set(self, "sorting", value)
2012
+
2013
+
2014
+ if not MYPY:
2015
+ class ReportConfigFilterArgsDict(TypedDict):
2016
+ """
2017
+ The filter expression to be used in the report.
2018
+ """
2019
+ and_: NotRequired[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgsDict']]]]
2020
+ """
2021
+ The logical "AND" expression. Must have at least 2 items.
2022
+ """
2023
+ dimensions: NotRequired[pulumi.Input['ReportConfigComparisonExpressionArgsDict']]
2024
+ """
2025
+ Has comparison expression for a dimension
2026
+ """
2027
+ or_: NotRequired[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgsDict']]]]
2028
+ """
2029
+ The logical "OR" expression. Must have at least 2 items.
2030
+ """
2031
+ tags: NotRequired[pulumi.Input['ReportConfigComparisonExpressionArgsDict']]
2032
+ """
2033
+ Has comparison expression for a tag
2034
+ """
2035
+ elif False:
2036
+ ReportConfigFilterArgsDict: TypeAlias = Mapping[str, Any]
2037
+
2038
+ @pulumi.input_type
2039
+ class ReportConfigFilterArgs:
2040
+ def __init__(__self__, *,
2041
+ and_: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]] = None,
2042
+ dimensions: Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']] = None,
2043
+ or_: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]] = None,
2044
+ tags: Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']] = None):
2045
+ """
2046
+ The filter expression to be used in the report.
2047
+ :param pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]] and_: The logical "AND" expression. Must have at least 2 items.
2048
+ :param pulumi.Input['ReportConfigComparisonExpressionArgs'] dimensions: Has comparison expression for a dimension
2049
+ :param pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]] or_: The logical "OR" expression. Must have at least 2 items.
2050
+ :param pulumi.Input['ReportConfigComparisonExpressionArgs'] tags: Has comparison expression for a tag
2051
+ """
2052
+ if and_ is not None:
2053
+ pulumi.set(__self__, "and_", and_)
2054
+ if dimensions is not None:
2055
+ pulumi.set(__self__, "dimensions", dimensions)
2056
+ if or_ is not None:
2057
+ pulumi.set(__self__, "or_", or_)
2058
+ if tags is not None:
2059
+ pulumi.set(__self__, "tags", tags)
2060
+
2061
+ @property
2062
+ @pulumi.getter(name="and")
2063
+ def and_(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]]:
2064
+ """
2065
+ The logical "AND" expression. Must have at least 2 items.
2066
+ """
2067
+ return pulumi.get(self, "and_")
2068
+
2069
+ @and_.setter
2070
+ def and_(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]]):
2071
+ pulumi.set(self, "and_", value)
2072
+
2073
+ @property
2074
+ @pulumi.getter
2075
+ def dimensions(self) -> Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']]:
2076
+ """
2077
+ Has comparison expression for a dimension
2078
+ """
2079
+ return pulumi.get(self, "dimensions")
2080
+
2081
+ @dimensions.setter
2082
+ def dimensions(self, value: Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']]):
2083
+ pulumi.set(self, "dimensions", value)
2084
+
2085
+ @property
2086
+ @pulumi.getter(name="or")
2087
+ def or_(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]]:
2088
+ """
2089
+ The logical "OR" expression. Must have at least 2 items.
2090
+ """
2091
+ return pulumi.get(self, "or_")
2092
+
2093
+ @or_.setter
2094
+ def or_(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ReportConfigFilterArgs']]]]):
2095
+ pulumi.set(self, "or_", value)
2096
+
2097
+ @property
2098
+ @pulumi.getter
2099
+ def tags(self) -> Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']]:
2100
+ """
2101
+ Has comparison expression for a tag
2102
+ """
2103
+ return pulumi.get(self, "tags")
2104
+
2105
+ @tags.setter
2106
+ def tags(self, value: Optional[pulumi.Input['ReportConfigComparisonExpressionArgs']]):
2107
+ pulumi.set(self, "tags", value)
2108
+
2109
+
2110
+ if not MYPY:
2111
+ class ReportConfigGroupingArgsDict(TypedDict):
2112
+ """
2113
+ The group by expression to be used in the report.
2114
+ """
2115
+ name: pulumi.Input[str]
2116
+ """
2117
+ The name of the column to group. This version supports subscription lowest possible grain.
2118
+ """
2119
+ type: pulumi.Input[Union[str, 'QueryColumnType']]
2120
+ """
2121
+ Has type of the column to group.
2122
+ """
2123
+ elif False:
2124
+ ReportConfigGroupingArgsDict: TypeAlias = Mapping[str, Any]
2125
+
2126
+ @pulumi.input_type
2127
+ class ReportConfigGroupingArgs:
2128
+ def __init__(__self__, *,
2129
+ name: pulumi.Input[str],
2130
+ type: pulumi.Input[Union[str, 'QueryColumnType']]):
2131
+ """
2132
+ The group by expression to be used in the report.
2133
+ :param pulumi.Input[str] name: The name of the column to group. This version supports subscription lowest possible grain.
2134
+ :param pulumi.Input[Union[str, 'QueryColumnType']] type: Has type of the column to group.
2135
+ """
2136
+ pulumi.set(__self__, "name", name)
2137
+ pulumi.set(__self__, "type", type)
2138
+
2139
+ @property
2140
+ @pulumi.getter
2141
+ def name(self) -> pulumi.Input[str]:
2142
+ """
2143
+ The name of the column to group. This version supports subscription lowest possible grain.
2144
+ """
2145
+ return pulumi.get(self, "name")
2146
+
2147
+ @name.setter
2148
+ def name(self, value: pulumi.Input[str]):
2149
+ pulumi.set(self, "name", value)
2150
+
2151
+ @property
2152
+ @pulumi.getter
2153
+ def type(self) -> pulumi.Input[Union[str, 'QueryColumnType']]:
2154
+ """
2155
+ Has type of the column to group.
2156
+ """
2157
+ return pulumi.get(self, "type")
2158
+
2159
+ @type.setter
2160
+ def type(self, value: pulumi.Input[Union[str, 'QueryColumnType']]):
2161
+ pulumi.set(self, "type", value)
2162
+
2163
+
2164
+ if not MYPY:
2165
+ class ReportConfigSortingArgsDict(TypedDict):
2166
+ """
2167
+ The order by expression to be used in the report.
2168
+ """
2169
+ name: pulumi.Input[str]
2170
+ """
2171
+ The name of the column to sort.
2172
+ """
2173
+ direction: NotRequired[pulumi.Input[Union[str, 'ReportConfigSortingType']]]
2174
+ """
2175
+ Direction of sort.
2176
+ """
2177
+ elif False:
2178
+ ReportConfigSortingArgsDict: TypeAlias = Mapping[str, Any]
2179
+
2180
+ @pulumi.input_type
2181
+ class ReportConfigSortingArgs:
2182
+ def __init__(__self__, *,
2183
+ name: pulumi.Input[str],
2184
+ direction: Optional[pulumi.Input[Union[str, 'ReportConfigSortingType']]] = None):
2185
+ """
2186
+ The order by expression to be used in the report.
2187
+ :param pulumi.Input[str] name: The name of the column to sort.
2188
+ :param pulumi.Input[Union[str, 'ReportConfigSortingType']] direction: Direction of sort.
2189
+ """
2190
+ pulumi.set(__self__, "name", name)
2191
+ if direction is not None:
2192
+ pulumi.set(__self__, "direction", direction)
2193
+
2194
+ @property
2195
+ @pulumi.getter
2196
+ def name(self) -> pulumi.Input[str]:
2197
+ """
2198
+ The name of the column to sort.
2199
+ """
2200
+ return pulumi.get(self, "name")
2201
+
2202
+ @name.setter
2203
+ def name(self, value: pulumi.Input[str]):
2204
+ pulumi.set(self, "name", value)
2205
+
2206
+ @property
2207
+ @pulumi.getter
2208
+ def direction(self) -> Optional[pulumi.Input[Union[str, 'ReportConfigSortingType']]]:
2209
+ """
2210
+ Direction of sort.
2211
+ """
2212
+ return pulumi.get(self, "direction")
2213
+
2214
+ @direction.setter
2215
+ def direction(self, value: Optional[pulumi.Input[Union[str, 'ReportConfigSortingType']]]):
2216
+ pulumi.set(self, "direction", value)
2217
+
2218
+
2219
+ if not MYPY:
2220
+ class ReportConfigTimePeriodArgsDict(TypedDict):
2221
+ """
2222
+ The start and end date for pulling data for the report.
2223
+ """
2224
+ from_: pulumi.Input[str]
2225
+ """
2226
+ The start date to pull data from.
2227
+ """
2228
+ to: pulumi.Input[str]
2229
+ """
2230
+ The end date to pull data to.
2231
+ """
2232
+ elif False:
2233
+ ReportConfigTimePeriodArgsDict: TypeAlias = Mapping[str, Any]
2234
+
2235
+ @pulumi.input_type
2236
+ class ReportConfigTimePeriodArgs:
2237
+ def __init__(__self__, *,
2238
+ from_: pulumi.Input[str],
2239
+ to: pulumi.Input[str]):
2240
+ """
2241
+ The start and end date for pulling data for the report.
2242
+ :param pulumi.Input[str] from_: The start date to pull data from.
2243
+ :param pulumi.Input[str] to: The end date to pull data to.
2244
+ """
2245
+ pulumi.set(__self__, "from_", from_)
2246
+ pulumi.set(__self__, "to", to)
2247
+
2248
+ @property
2249
+ @pulumi.getter(name="from")
2250
+ def from_(self) -> pulumi.Input[str]:
2251
+ """
2252
+ The start date to pull data from.
2253
+ """
2254
+ return pulumi.get(self, "from_")
2255
+
2256
+ @from_.setter
2257
+ def from_(self, value: pulumi.Input[str]):
2258
+ pulumi.set(self, "from_", value)
2259
+
2260
+ @property
2261
+ @pulumi.getter
2262
+ def to(self) -> pulumi.Input[str]:
2263
+ """
2264
+ The end date to pull data to.
2265
+ """
2266
+ return pulumi.get(self, "to")
2267
+
2268
+ @to.setter
2269
+ def to(self, value: pulumi.Input[str]):
2270
+ pulumi.set(self, "to", value)
2271
+
2272
+
2273
+ if not MYPY:
2274
+ class SchedulePropertiesArgsDict(TypedDict):
2275
+ """
2276
+ The properties of the schedule.
2277
+ """
2278
+ end_date: pulumi.Input[str]
2279
+ """
2280
+ The end date and time of the scheduled action (UTC).
2281
+ """
2282
+ frequency: pulumi.Input[Union[str, 'ScheduleFrequency']]
2283
+ """
2284
+ Frequency of the schedule.
2285
+ """
2286
+ start_date: pulumi.Input[str]
2287
+ """
2288
+ The start date and time of the scheduled action (UTC).
2289
+ """
2290
+ day_of_month: NotRequired[pulumi.Input[int]]
2291
+ """
2292
+ UTC day on which cost analysis data will be emailed. Must be between 1 and 31. This property is applicable when frequency is Monthly and overrides weeksOfMonth or daysOfWeek.
2293
+ """
2294
+ days_of_week: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'DaysOfWeek']]]]]
2295
+ """
2296
+ Day names in english on which cost analysis data will be emailed. This property is applicable when frequency is Weekly or Monthly.
2297
+ """
2298
+ hour_of_day: NotRequired[pulumi.Input[int]]
2299
+ """
2300
+ UTC time at which cost analysis data will be emailed.
2301
+ """
2302
+ weeks_of_month: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union[str, 'WeeksOfMonth']]]]]
2303
+ """
2304
+ Weeks in which cost analysis data will be emailed. This property is applicable when frequency is Monthly and used in combination with daysOfWeek.
2305
+ """
2306
+ elif False:
2307
+ SchedulePropertiesArgsDict: TypeAlias = Mapping[str, Any]
2308
+
2309
+ @pulumi.input_type
2310
+ class SchedulePropertiesArgs:
2311
+ def __init__(__self__, *,
2312
+ end_date: pulumi.Input[str],
2313
+ frequency: pulumi.Input[Union[str, 'ScheduleFrequency']],
2314
+ start_date: pulumi.Input[str],
2315
+ day_of_month: Optional[pulumi.Input[int]] = None,
2316
+ days_of_week: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'DaysOfWeek']]]]] = None,
2317
+ hour_of_day: Optional[pulumi.Input[int]] = None,
2318
+ weeks_of_month: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'WeeksOfMonth']]]]] = None):
2319
+ """
2320
+ The properties of the schedule.
2321
+ :param pulumi.Input[str] end_date: The end date and time of the scheduled action (UTC).
2322
+ :param pulumi.Input[Union[str, 'ScheduleFrequency']] frequency: Frequency of the schedule.
2323
+ :param pulumi.Input[str] start_date: The start date and time of the scheduled action (UTC).
2324
+ :param pulumi.Input[int] day_of_month: UTC day on which cost analysis data will be emailed. Must be between 1 and 31. This property is applicable when frequency is Monthly and overrides weeksOfMonth or daysOfWeek.
2325
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'DaysOfWeek']]]] days_of_week: Day names in english on which cost analysis data will be emailed. This property is applicable when frequency is Weekly or Monthly.
2326
+ :param pulumi.Input[int] hour_of_day: UTC time at which cost analysis data will be emailed.
2327
+ :param pulumi.Input[Sequence[pulumi.Input[Union[str, 'WeeksOfMonth']]]] weeks_of_month: Weeks in which cost analysis data will be emailed. This property is applicable when frequency is Monthly and used in combination with daysOfWeek.
2328
+ """
2329
+ pulumi.set(__self__, "end_date", end_date)
2330
+ pulumi.set(__self__, "frequency", frequency)
2331
+ pulumi.set(__self__, "start_date", start_date)
2332
+ if day_of_month is not None:
2333
+ pulumi.set(__self__, "day_of_month", day_of_month)
2334
+ if days_of_week is not None:
2335
+ pulumi.set(__self__, "days_of_week", days_of_week)
2336
+ if hour_of_day is not None:
2337
+ pulumi.set(__self__, "hour_of_day", hour_of_day)
2338
+ if weeks_of_month is not None:
2339
+ pulumi.set(__self__, "weeks_of_month", weeks_of_month)
2340
+
2341
+ @property
2342
+ @pulumi.getter(name="endDate")
2343
+ def end_date(self) -> pulumi.Input[str]:
2344
+ """
2345
+ The end date and time of the scheduled action (UTC).
2346
+ """
2347
+ return pulumi.get(self, "end_date")
2348
+
2349
+ @end_date.setter
2350
+ def end_date(self, value: pulumi.Input[str]):
2351
+ pulumi.set(self, "end_date", value)
2352
+
2353
+ @property
2354
+ @pulumi.getter
2355
+ def frequency(self) -> pulumi.Input[Union[str, 'ScheduleFrequency']]:
2356
+ """
2357
+ Frequency of the schedule.
2358
+ """
2359
+ return pulumi.get(self, "frequency")
2360
+
2361
+ @frequency.setter
2362
+ def frequency(self, value: pulumi.Input[Union[str, 'ScheduleFrequency']]):
2363
+ pulumi.set(self, "frequency", value)
2364
+
2365
+ @property
2366
+ @pulumi.getter(name="startDate")
2367
+ def start_date(self) -> pulumi.Input[str]:
2368
+ """
2369
+ The start date and time of the scheduled action (UTC).
2370
+ """
2371
+ return pulumi.get(self, "start_date")
2372
+
2373
+ @start_date.setter
2374
+ def start_date(self, value: pulumi.Input[str]):
2375
+ pulumi.set(self, "start_date", value)
2376
+
2377
+ @property
2378
+ @pulumi.getter(name="dayOfMonth")
2379
+ def day_of_month(self) -> Optional[pulumi.Input[int]]:
2380
+ """
2381
+ UTC day on which cost analysis data will be emailed. Must be between 1 and 31. This property is applicable when frequency is Monthly and overrides weeksOfMonth or daysOfWeek.
2382
+ """
2383
+ return pulumi.get(self, "day_of_month")
2384
+
2385
+ @day_of_month.setter
2386
+ def day_of_month(self, value: Optional[pulumi.Input[int]]):
2387
+ pulumi.set(self, "day_of_month", value)
2388
+
2389
+ @property
2390
+ @pulumi.getter(name="daysOfWeek")
2391
+ def days_of_week(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'DaysOfWeek']]]]]:
2392
+ """
2393
+ Day names in english on which cost analysis data will be emailed. This property is applicable when frequency is Weekly or Monthly.
2394
+ """
2395
+ return pulumi.get(self, "days_of_week")
2396
+
2397
+ @days_of_week.setter
2398
+ def days_of_week(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'DaysOfWeek']]]]]):
2399
+ pulumi.set(self, "days_of_week", value)
2400
+
2401
+ @property
2402
+ @pulumi.getter(name="hourOfDay")
2403
+ def hour_of_day(self) -> Optional[pulumi.Input[int]]:
2404
+ """
2405
+ UTC time at which cost analysis data will be emailed.
2406
+ """
2407
+ return pulumi.get(self, "hour_of_day")
2408
+
2409
+ @hour_of_day.setter
2410
+ def hour_of_day(self, value: Optional[pulumi.Input[int]]):
2411
+ pulumi.set(self, "hour_of_day", value)
2412
+
2413
+ @property
2414
+ @pulumi.getter(name="weeksOfMonth")
2415
+ def weeks_of_month(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'WeeksOfMonth']]]]]:
2416
+ """
2417
+ Weeks in which cost analysis data will be emailed. This property is applicable when frequency is Monthly and used in combination with daysOfWeek.
2418
+ """
2419
+ return pulumi.get(self, "weeks_of_month")
2420
+
2421
+ @weeks_of_month.setter
2422
+ def weeks_of_month(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union[str, 'WeeksOfMonth']]]]]):
2423
+ pulumi.set(self, "weeks_of_month", value)
2424
+
2425
+
2426
+ if not MYPY:
2427
+ class SourceCostAllocationResourceArgsDict(TypedDict):
2428
+ """
2429
+ Source resources for cost allocation
2430
+ """
2431
+ name: pulumi.Input[str]
2432
+ """
2433
+ If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2434
+ """
2435
+ resource_type: pulumi.Input[Union[str, 'CostAllocationResourceType']]
2436
+ """
2437
+ Type of resources contained in this cost allocation rule
2438
+ """
2439
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]
2440
+ """
2441
+ Source Resources for cost allocation. This list cannot contain more than 25 values.
2442
+ """
2443
+ elif False:
2444
+ SourceCostAllocationResourceArgsDict: TypeAlias = Mapping[str, Any]
2445
+
2446
+ @pulumi.input_type
2447
+ class SourceCostAllocationResourceArgs:
2448
+ def __init__(__self__, *,
2449
+ name: pulumi.Input[str],
2450
+ resource_type: pulumi.Input[Union[str, 'CostAllocationResourceType']],
2451
+ values: pulumi.Input[Sequence[pulumi.Input[str]]]):
2452
+ """
2453
+ Source resources for cost allocation
2454
+ :param pulumi.Input[str] name: If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2455
+ :param pulumi.Input[Union[str, 'CostAllocationResourceType']] resource_type: Type of resources contained in this cost allocation rule
2456
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] values: Source Resources for cost allocation. This list cannot contain more than 25 values.
2457
+ """
2458
+ pulumi.set(__self__, "name", name)
2459
+ pulumi.set(__self__, "resource_type", resource_type)
2460
+ pulumi.set(__self__, "values", values)
2461
+
2462
+ @property
2463
+ @pulumi.getter
2464
+ def name(self) -> pulumi.Input[str]:
2465
+ """
2466
+ If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2467
+ """
2468
+ return pulumi.get(self, "name")
2469
+
2470
+ @name.setter
2471
+ def name(self, value: pulumi.Input[str]):
2472
+ pulumi.set(self, "name", value)
2473
+
2474
+ @property
2475
+ @pulumi.getter(name="resourceType")
2476
+ def resource_type(self) -> pulumi.Input[Union[str, 'CostAllocationResourceType']]:
2477
+ """
2478
+ Type of resources contained in this cost allocation rule
2479
+ """
2480
+ return pulumi.get(self, "resource_type")
2481
+
2482
+ @resource_type.setter
2483
+ def resource_type(self, value: pulumi.Input[Union[str, 'CostAllocationResourceType']]):
2484
+ pulumi.set(self, "resource_type", value)
2485
+
2486
+ @property
2487
+ @pulumi.getter
2488
+ def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
2489
+ """
2490
+ Source Resources for cost allocation. This list cannot contain more than 25 values.
2491
+ """
2492
+ return pulumi.get(self, "values")
2493
+
2494
+ @values.setter
2495
+ def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
2496
+ pulumi.set(self, "values", value)
2497
+
2498
+
2499
+ if not MYPY:
2500
+ class SystemAssignedServiceIdentityArgsDict(TypedDict):
2501
+ """
2502
+ Managed service identity (either system assigned, or none)
2503
+ """
2504
+ type: pulumi.Input[Union[str, 'SystemAssignedServiceIdentityType']]
2505
+ """
2506
+ Type of managed service identity (either system assigned, or none).
2507
+ """
2508
+ elif False:
2509
+ SystemAssignedServiceIdentityArgsDict: TypeAlias = Mapping[str, Any]
2510
+
2511
+ @pulumi.input_type
2512
+ class SystemAssignedServiceIdentityArgs:
2513
+ def __init__(__self__, *,
2514
+ type: pulumi.Input[Union[str, 'SystemAssignedServiceIdentityType']]):
2515
+ """
2516
+ Managed service identity (either system assigned, or none)
2517
+ :param pulumi.Input[Union[str, 'SystemAssignedServiceIdentityType']] type: Type of managed service identity (either system assigned, or none).
2518
+ """
2519
+ pulumi.set(__self__, "type", type)
2520
+
2521
+ @property
2522
+ @pulumi.getter
2523
+ def type(self) -> pulumi.Input[Union[str, 'SystemAssignedServiceIdentityType']]:
2524
+ """
2525
+ Type of managed service identity (either system assigned, or none).
2526
+ """
2527
+ return pulumi.get(self, "type")
2528
+
2529
+ @type.setter
2530
+ def type(self, value: pulumi.Input[Union[str, 'SystemAssignedServiceIdentityType']]):
2531
+ pulumi.set(self, "type", value)
2532
+
2533
+
2534
+ if not MYPY:
2535
+ class TagInheritancePropertiesArgsDict(TypedDict):
2536
+ """
2537
+ The properties of the tag inheritance setting.
2538
+ """
2539
+ prefer_container_tags: pulumi.Input[bool]
2540
+ """
2541
+ This property defines the behavior when an inherited tag being applied matches a lower scope tag (Eg. Subscription tag matches the resource tag). If set to true - when tags match, the highest scope tags will be applied. Billing profile is the highest scope, followed by invoice sections, subscriptions and resource groups (allows overriding of lower scope tag values). If set to false - when tags match, the lowest scope tags will be applied. So, if a resource has the same tag as a subscription tag, the resource tag will be applied (does not allow overriding of lower scope tag values).
2542
+ """
2543
+ elif False:
2544
+ TagInheritancePropertiesArgsDict: TypeAlias = Mapping[str, Any]
2545
+
2546
+ @pulumi.input_type
2547
+ class TagInheritancePropertiesArgs:
2548
+ def __init__(__self__, *,
2549
+ prefer_container_tags: pulumi.Input[bool]):
2550
+ """
2551
+ The properties of the tag inheritance setting.
2552
+ :param pulumi.Input[bool] prefer_container_tags: This property defines the behavior when an inherited tag being applied matches a lower scope tag (Eg. Subscription tag matches the resource tag). If set to true - when tags match, the highest scope tags will be applied. Billing profile is the highest scope, followed by invoice sections, subscriptions and resource groups (allows overriding of lower scope tag values). If set to false - when tags match, the lowest scope tags will be applied. So, if a resource has the same tag as a subscription tag, the resource tag will be applied (does not allow overriding of lower scope tag values).
2553
+ """
2554
+ pulumi.set(__self__, "prefer_container_tags", prefer_container_tags)
2555
+
2556
+ @property
2557
+ @pulumi.getter(name="preferContainerTags")
2558
+ def prefer_container_tags(self) -> pulumi.Input[bool]:
2559
+ """
2560
+ This property defines the behavior when an inherited tag being applied matches a lower scope tag (Eg. Subscription tag matches the resource tag). If set to true - when tags match, the highest scope tags will be applied. Billing profile is the highest scope, followed by invoice sections, subscriptions and resource groups (allows overriding of lower scope tag values). If set to false - when tags match, the lowest scope tags will be applied. So, if a resource has the same tag as a subscription tag, the resource tag will be applied (does not allow overriding of lower scope tag values).
2561
+ """
2562
+ return pulumi.get(self, "prefer_container_tags")
2563
+
2564
+ @prefer_container_tags.setter
2565
+ def prefer_container_tags(self, value: pulumi.Input[bool]):
2566
+ pulumi.set(self, "prefer_container_tags", value)
2567
+
2568
+
2569
+ if not MYPY:
2570
+ class TargetCostAllocationResourceArgsDict(TypedDict):
2571
+ """
2572
+ Target resources for cost allocation.
2573
+ """
2574
+ name: pulumi.Input[str]
2575
+ """
2576
+ If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2577
+ """
2578
+ policy_type: pulumi.Input[Union[str, 'CostAllocationPolicyType']]
2579
+ """
2580
+ Method of cost allocation for the rule
2581
+ """
2582
+ resource_type: pulumi.Input[Union[str, 'CostAllocationResourceType']]
2583
+ """
2584
+ Type of resources contained in this cost allocation rule
2585
+ """
2586
+ values: pulumi.Input[Sequence[pulumi.Input['CostAllocationProportionArgsDict']]]
2587
+ """
2588
+ Target resources for cost allocation. This list cannot contain more than 25 values.
2589
+ """
2590
+ elif False:
2591
+ TargetCostAllocationResourceArgsDict: TypeAlias = Mapping[str, Any]
2592
+
2593
+ @pulumi.input_type
2594
+ class TargetCostAllocationResourceArgs:
2595
+ def __init__(__self__, *,
2596
+ name: pulumi.Input[str],
2597
+ policy_type: pulumi.Input[Union[str, 'CostAllocationPolicyType']],
2598
+ resource_type: pulumi.Input[Union[str, 'CostAllocationResourceType']],
2599
+ values: pulumi.Input[Sequence[pulumi.Input['CostAllocationProportionArgs']]]):
2600
+ """
2601
+ Target resources for cost allocation.
2602
+ :param pulumi.Input[str] name: If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2603
+ :param pulumi.Input[Union[str, 'CostAllocationPolicyType']] policy_type: Method of cost allocation for the rule
2604
+ :param pulumi.Input[Union[str, 'CostAllocationResourceType']] resource_type: Type of resources contained in this cost allocation rule
2605
+ :param pulumi.Input[Sequence[pulumi.Input['CostAllocationProportionArgs']]] values: Target resources for cost allocation. This list cannot contain more than 25 values.
2606
+ """
2607
+ pulumi.set(__self__, "name", name)
2608
+ pulumi.set(__self__, "policy_type", policy_type)
2609
+ pulumi.set(__self__, "resource_type", resource_type)
2610
+ pulumi.set(__self__, "values", values)
2611
+
2612
+ @property
2613
+ @pulumi.getter
2614
+ def name(self) -> pulumi.Input[str]:
2615
+ """
2616
+ If resource type is dimension, this must be either ResourceGroupName or SubscriptionId. If resource type is tag, this must be a valid Azure tag
2617
+ """
2618
+ return pulumi.get(self, "name")
2619
+
2620
+ @name.setter
2621
+ def name(self, value: pulumi.Input[str]):
2622
+ pulumi.set(self, "name", value)
2623
+
2624
+ @property
2625
+ @pulumi.getter(name="policyType")
2626
+ def policy_type(self) -> pulumi.Input[Union[str, 'CostAllocationPolicyType']]:
2627
+ """
2628
+ Method of cost allocation for the rule
2629
+ """
2630
+ return pulumi.get(self, "policy_type")
2631
+
2632
+ @policy_type.setter
2633
+ def policy_type(self, value: pulumi.Input[Union[str, 'CostAllocationPolicyType']]):
2634
+ pulumi.set(self, "policy_type", value)
2635
+
2636
+ @property
2637
+ @pulumi.getter(name="resourceType")
2638
+ def resource_type(self) -> pulumi.Input[Union[str, 'CostAllocationResourceType']]:
2639
+ """
2640
+ Type of resources contained in this cost allocation rule
2641
+ """
2642
+ return pulumi.get(self, "resource_type")
2643
+
2644
+ @resource_type.setter
2645
+ def resource_type(self, value: pulumi.Input[Union[str, 'CostAllocationResourceType']]):
2646
+ pulumi.set(self, "resource_type", value)
2647
+
2648
+ @property
2649
+ @pulumi.getter
2650
+ def values(self) -> pulumi.Input[Sequence[pulumi.Input['CostAllocationProportionArgs']]]:
2651
+ """
2652
+ Target resources for cost allocation. This list cannot contain more than 25 values.
2653
+ """
2654
+ return pulumi.get(self, "values")
2655
+
2656
+ @values.setter
2657
+ def values(self, value: pulumi.Input[Sequence[pulumi.Input['CostAllocationProportionArgs']]]):
2658
+ pulumi.set(self, "values", value)
2659
+
2660
+