@cdktn/provider-azuread 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/.jsii +112042 -0
  2. package/LICENSE +355 -0
  3. package/README.md +94 -0
  4. package/lib/access-package/index.d.ts +151 -0
  5. package/lib/access-package/index.js +354 -0
  6. package/lib/access-package-assignment-policy/index.d.ts +1098 -0
  7. package/lib/access-package-assignment-policy/index.js +2711 -0
  8. package/lib/access-package-catalog/index.d.ts +152 -0
  9. package/lib/access-package-catalog/index.js +357 -0
  10. package/lib/access-package-catalog-role-assignment/index.d.ts +140 -0
  11. package/lib/access-package-catalog-role-assignment/index.js +333 -0
  12. package/lib/access-package-resource-catalog-association/index.d.ts +131 -0
  13. package/lib/access-package-resource-catalog-association/index.js +307 -0
  14. package/lib/access-package-resource-package-association/index.d.ts +132 -0
  15. package/lib/access-package-resource-package-association/index.js +310 -0
  16. package/lib/administrative-unit/index.d.ts +165 -0
  17. package/lib/administrative-unit/index.js +385 -0
  18. package/lib/administrative-unit-member/index.d.ts +123 -0
  19. package/lib/administrative-unit-member/index.js +295 -0
  20. package/lib/administrative-unit-role-member/index.d.ts +131 -0
  21. package/lib/administrative-unit-role-member/index.js +307 -0
  22. package/lib/app-role-assignment/index.d.ts +134 -0
  23. package/lib/app-role-assignment/index.js +319 -0
  24. package/lib/application/index.d.ts +1352 -0
  25. package/lib/application/index.js +3262 -0
  26. package/lib/application-api-access/index.d.ts +152 -0
  27. package/lib/application-api-access/index.js +357 -0
  28. package/lib/application-app-role/index.d.ts +171 -0
  29. package/lib/application-app-role/index.js +390 -0
  30. package/lib/application-certificate/index.d.ts +196 -0
  31. package/lib/application-certificate/index.js +441 -0
  32. package/lib/application-fallback-public-client/index.d.ts +122 -0
  33. package/lib/application-fallback-public-client/index.js +292 -0
  34. package/lib/application-federated-identity-credential/index.d.ts +172 -0
  35. package/lib/application-federated-identity-credential/index.js +394 -0
  36. package/lib/application-flexible-federated-identity-credential/index.d.ts +172 -0
  37. package/lib/application-flexible-federated-identity-credential/index.js +394 -0
  38. package/lib/application-from-template/index.d.ts +134 -0
  39. package/lib/application-from-template/index.js +334 -0
  40. package/lib/application-identifier-uri/index.d.ts +121 -0
  41. package/lib/application-identifier-uri/index.js +289 -0
  42. package/lib/application-known-clients/index.d.ts +130 -0
  43. package/lib/application-known-clients/index.js +315 -0
  44. package/lib/application-optional-claims/index.d.ts +381 -0
  45. package/lib/application-optional-claims/index.js +918 -0
  46. package/lib/application-owner/index.d.ts +121 -0
  47. package/lib/application-owner/index.js +289 -0
  48. package/lib/application-password/index.d.ts +185 -0
  49. package/lib/application-password/index.js +410 -0
  50. package/lib/application-permission-scope/index.d.ts +193 -0
  51. package/lib/application-permission-scope/index.js +432 -0
  52. package/lib/application-pre-authorized/index.d.ts +140 -0
  53. package/lib/application-pre-authorized/index.js +333 -0
  54. package/lib/application-redirect-uris/index.d.ts +140 -0
  55. package/lib/application-redirect-uris/index.js +333 -0
  56. package/lib/application-registration/index.d.ts +278 -0
  57. package/lib/application-registration/index.js +610 -0
  58. package/lib/authentication-strength-policy/index.d.ts +141 -0
  59. package/lib/authentication-strength-policy/index.js +336 -0
  60. package/lib/claims-mapping-policy/index.d.ts +130 -0
  61. package/lib/claims-mapping-policy/index.js +315 -0
  62. package/lib/conditional-access-policy/index.d.ts +959 -0
  63. package/lib/conditional-access-policy/index.js +2705 -0
  64. package/lib/custom-directory-role/index.d.ts +216 -0
  65. package/lib/custom-directory-role/index.js +505 -0
  66. package/lib/data-azuread-access-package/index.d.ts +118 -0
  67. package/lib/data-azuread-access-package/index.js +272 -0
  68. package/lib/data-azuread-access-package-catalog/index.d.ts +108 -0
  69. package/lib/data-azuread-access-package-catalog/index.js +258 -0
  70. package/lib/data-azuread-access-package-catalog-role/index.d.ts +107 -0
  71. package/lib/data-azuread-access-package-catalog-role/index.js +254 -0
  72. package/lib/data-azuread-administrative-unit/index.d.ts +135 -0
  73. package/lib/data-azuread-administrative-unit/index.js +336 -0
  74. package/lib/data-azuread-application/index.d.ts +654 -0
  75. package/lib/data-azuread-application/index.js +1606 -0
  76. package/lib/data-azuread-application-published-app-ids/index.d.ts +85 -0
  77. package/lib/data-azuread-application-published-app-ids/index.js +206 -0
  78. package/lib/data-azuread-application-template/index.d.ts +111 -0
  79. package/lib/data-azuread-application-template/index.js +270 -0
  80. package/lib/data-azuread-client-config/index.d.ts +86 -0
  81. package/lib/data-azuread-client-config/index.js +216 -0
  82. package/lib/data-azuread-directory-object/index.d.ts +94 -0
  83. package/lib/data-azuread-directory-object/index.js +223 -0
  84. package/lib/data-azuread-directory-role-templates/index.d.ts +120 -0
  85. package/lib/data-azuread-directory-role-templates/index.js +293 -0
  86. package/lib/data-azuread-directory-roles/index.d.ts +122 -0
  87. package/lib/data-azuread-directory-roles/index.js +301 -0
  88. package/lib/data-azuread-domains/index.d.ts +190 -0
  89. package/lib/data-azuread-domains/index.js +435 -0
  90. package/lib/data-azuread-group/index.d.ts +207 -0
  91. package/lib/data-azuread-group/index.js +506 -0
  92. package/lib/data-azuread-group-role-management-policy/index.d.ts +105 -0
  93. package/lib/data-azuread-group-role-management-policy/index.js +248 -0
  94. package/lib/data-azuread-groups/index.d.ts +160 -0
  95. package/lib/data-azuread-groups/index.js +348 -0
  96. package/lib/data-azuread-named-location/index.d.ts +163 -0
  97. package/lib/data-azuread-named-location/index.js +398 -0
  98. package/lib/data-azuread-service-principal/index.d.ts +325 -0
  99. package/lib/data-azuread-service-principal/index.js +817 -0
  100. package/lib/data-azuread-service-principals/index.d.ts +183 -0
  101. package/lib/data-azuread-service-principals/index.js +430 -0
  102. package/lib/data-azuread-user/index.d.ts +177 -0
  103. package/lib/data-azuread-user/index.js +465 -0
  104. package/lib/data-azuread-users/index.d.ts +204 -0
  105. package/lib/data-azuread-users/index.js +468 -0
  106. package/lib/directory-role/index.d.ts +125 -0
  107. package/lib/directory-role/index.js +306 -0
  108. package/lib/directory-role-assignment/index.d.ts +143 -0
  109. package/lib/directory-role-assignment/index.js +331 -0
  110. package/lib/directory-role-eligibility-schedule-request/index.d.ts +141 -0
  111. package/lib/directory-role-eligibility-schedule-request/index.js +325 -0
  112. package/lib/directory-role-member/index.d.ts +123 -0
  113. package/lib/directory-role-member/index.js +295 -0
  114. package/lib/group/index.d.ts +392 -0
  115. package/lib/group/index.js +872 -0
  116. package/lib/group-member/index.d.ts +121 -0
  117. package/lib/group-member/index.js +289 -0
  118. package/lib/group-role-management-policy/index.d.ts +1043 -0
  119. package/lib/group-role-management-policy/index.js +2775 -0
  120. package/lib/group-without-members/index.d.ts +381 -0
  121. package/lib/group-without-members/index.js +851 -0
  122. package/lib/index.d.ts +79 -0
  123. package/lib/index.js +85 -0
  124. package/lib/invitation/index.d.ts +203 -0
  125. package/lib/invitation/index.js +490 -0
  126. package/lib/lazy-index.d.ts +4 -0
  127. package/lib/lazy-index.js +82 -0
  128. package/lib/named-location/index.d.ts +212 -0
  129. package/lib/named-location/index.js +571 -0
  130. package/lib/privileged-access-group-assignment-schedule/index.d.ts +218 -0
  131. package/lib/privileged-access-group-assignment-schedule/index.js +484 -0
  132. package/lib/privileged-access-group-eligibility-schedule/index.d.ts +218 -0
  133. package/lib/privileged-access-group-eligibility-schedule/index.js +484 -0
  134. package/lib/provider/index.d.ts +289 -0
  135. package/lib/provider/index.js +549 -0
  136. package/lib/service-principal/index.d.ts +547 -0
  137. package/lib/service-principal/index.js +1305 -0
  138. package/lib/service-principal-certificate/index.d.ts +187 -0
  139. package/lib/service-principal-certificate/index.js +415 -0
  140. package/lib/service-principal-claims-mapping-policy-assignment/index.d.ts +121 -0
  141. package/lib/service-principal-claims-mapping-policy-assignment/index.js +289 -0
  142. package/lib/service-principal-delegated-permission-grant/index.d.ts +151 -0
  143. package/lib/service-principal-delegated-permission-grant/index.js +354 -0
  144. package/lib/service-principal-password/index.d.ts +176 -0
  145. package/lib/service-principal-password/index.js +384 -0
  146. package/lib/service-principal-token-signing-certificate/index.d.ts +137 -0
  147. package/lib/service-principal-token-signing-certificate/index.js +329 -0
  148. package/lib/synchronization-job/index.d.ts +177 -0
  149. package/lib/synchronization-job/index.js +424 -0
  150. package/lib/synchronization-job-provision-on-demand/index.d.ts +254 -0
  151. package/lib/synchronization-job-provision-on-demand/index.js +590 -0
  152. package/lib/synchronization-secret/index.d.ts +184 -0
  153. package/lib/synchronization-secret/index.js +449 -0
  154. package/lib/user/index.d.ts +517 -0
  155. package/lib/user/index.js +1084 -0
  156. package/lib/user-flow-attribute/index.d.ts +141 -0
  157. package/lib/user-flow-attribute/index.js +340 -0
  158. package/package.json +155 -0
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DataAzureadAccessPackageCatalogRole = exports.DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference = void 0;
5
+ exports.dataAzureadAccessPackageCatalogRoleTimeoutsToTerraform = dataAzureadAccessPackageCatalogRoleTimeoutsToTerraform;
6
+ exports.dataAzureadAccessPackageCatalogRoleTimeoutsToHclTerraform = dataAzureadAccessPackageCatalogRoleTimeoutsToHclTerraform;
7
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
8
+ const cdktn = require("cdktn");
9
+ function dataAzureadAccessPackageCatalogRoleTimeoutsToTerraform(struct) {
10
+ if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
11
+ return struct;
12
+ }
13
+ if (cdktn.isComplexElement(struct)) {
14
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
15
+ }
16
+ return {
17
+ read: cdktn.stringToTerraform(struct.read),
18
+ };
19
+ }
20
+ function dataAzureadAccessPackageCatalogRoleTimeoutsToHclTerraform(struct) {
21
+ if (!cdktn.canInspect(struct) || cdktn.Tokenization.isResolvable(struct)) {
22
+ return struct;
23
+ }
24
+ if (cdktn.isComplexElement(struct)) {
25
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
26
+ }
27
+ const attrs = {
28
+ read: {
29
+ value: cdktn.stringToHclTerraform(struct.read),
30
+ isBlock: false,
31
+ type: "simple",
32
+ storageClassType: "string",
33
+ },
34
+ };
35
+ // remove undefined attributes
36
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
37
+ }
38
+ class DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference extends cdktn.ComplexObject {
39
+ /**
40
+ * @param terraformResource The parent resource
41
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
42
+ */
43
+ constructor(terraformResource, terraformAttribute) {
44
+ super(terraformResource, terraformAttribute, false);
45
+ this.isEmptyObject = false;
46
+ }
47
+ get internalValue() {
48
+ if (this.resolvableValue) {
49
+ return this.resolvableValue;
50
+ }
51
+ let hasAnyValues = this.isEmptyObject;
52
+ const internalValueResult = {};
53
+ if (this._read !== undefined) {
54
+ hasAnyValues = true;
55
+ internalValueResult.read = this._read;
56
+ }
57
+ return hasAnyValues ? internalValueResult : undefined;
58
+ }
59
+ set internalValue(value) {
60
+ if (value === undefined) {
61
+ this.isEmptyObject = false;
62
+ this.resolvableValue = undefined;
63
+ this._read = undefined;
64
+ }
65
+ else if (cdktn.Tokenization.isResolvable(value)) {
66
+ this.isEmptyObject = false;
67
+ this.resolvableValue = value;
68
+ }
69
+ else {
70
+ this.isEmptyObject = Object.keys(value).length === 0;
71
+ this.resolvableValue = undefined;
72
+ this._read = value.read;
73
+ }
74
+ }
75
+ get read() {
76
+ return this.getStringAttribute('read');
77
+ }
78
+ set read(value) {
79
+ this._read = value;
80
+ }
81
+ resetRead() {
82
+ this._read = undefined;
83
+ }
84
+ // Temporarily expose input value. Use with caution.
85
+ get readInput() {
86
+ return this._read;
87
+ }
88
+ }
89
+ exports.DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference = DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference;
90
+ _a = JSII_RTTI_SYMBOL_1;
91
+ DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference[_a] = { fqn: "@cdktn/provider-azuread.dataAzureadAccessPackageCatalogRole.DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference", version: "15.0.0" };
92
+ /**
93
+ * Represents a {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/access_package_catalog_role azuread_access_package_catalog_role}
94
+ */
95
+ class DataAzureadAccessPackageCatalogRole extends cdktn.TerraformDataSource {
96
+ // ==============
97
+ // STATIC Methods
98
+ // ==============
99
+ /**
100
+ * Generates CDKTN code for importing a DataAzureadAccessPackageCatalogRole resource upon running "cdktn plan <stack-name>"
101
+ * @param scope The scope in which to define this construct
102
+ * @param importToId The construct id used in the generated config for the DataAzureadAccessPackageCatalogRole to import
103
+ * @param importFromId The id of the existing DataAzureadAccessPackageCatalogRole that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/access_package_catalog_role#import import section} in the documentation of this resource for the id to use
104
+ * @param provider? Optional instance of the provider where the DataAzureadAccessPackageCatalogRole to import is found
105
+ */
106
+ static generateConfigForImport(scope, importToId, importFromId, provider) {
107
+ return new cdktn.ImportableResource(scope, importToId, { terraformResourceType: "azuread_access_package_catalog_role", importId: importFromId, provider });
108
+ }
109
+ // ===========
110
+ // INITIALIZER
111
+ // ===========
112
+ /**
113
+ * Create a new {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/access_package_catalog_role azuread_access_package_catalog_role} Data Source
114
+ *
115
+ * @param scope The scope in which to define this construct
116
+ * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
117
+ * @param options DataAzureadAccessPackageCatalogRoleConfig = {}
118
+ */
119
+ constructor(scope, id, config = {}) {
120
+ super(scope, id, {
121
+ terraformResourceType: 'azuread_access_package_catalog_role',
122
+ terraformGeneratorMetadata: {
123
+ providerName: 'azuread',
124
+ providerVersion: '3.7.0',
125
+ providerVersionConstraint: '~> 3.0'
126
+ },
127
+ provider: config.provider,
128
+ dependsOn: config.dependsOn,
129
+ count: config.count,
130
+ lifecycle: config.lifecycle,
131
+ provisioners: config.provisioners,
132
+ connection: config.connection,
133
+ forEach: config.forEach
134
+ });
135
+ // timeouts - computed: false, optional: true, required: false
136
+ this._timeouts = new DataAzureadAccessPackageCatalogRoleTimeoutsOutputReference(this, "timeouts");
137
+ this._displayName = config.displayName;
138
+ this._id = config.id;
139
+ this._objectId = config.objectId;
140
+ this._timeouts.internalValue = config.timeouts;
141
+ }
142
+ // ==========
143
+ // ATTRIBUTES
144
+ // ==========
145
+ // description - computed: true, optional: false, required: false
146
+ get description() {
147
+ return this.getStringAttribute('description');
148
+ }
149
+ get displayName() {
150
+ return this.getStringAttribute('display_name');
151
+ }
152
+ set displayName(value) {
153
+ this._displayName = value;
154
+ }
155
+ resetDisplayName() {
156
+ this._displayName = undefined;
157
+ }
158
+ // Temporarily expose input value. Use with caution.
159
+ get displayNameInput() {
160
+ return this._displayName;
161
+ }
162
+ get id() {
163
+ return this.getStringAttribute('id');
164
+ }
165
+ set id(value) {
166
+ this._id = value;
167
+ }
168
+ resetId() {
169
+ this._id = undefined;
170
+ }
171
+ // Temporarily expose input value. Use with caution.
172
+ get idInput() {
173
+ return this._id;
174
+ }
175
+ get objectId() {
176
+ return this.getStringAttribute('object_id');
177
+ }
178
+ set objectId(value) {
179
+ this._objectId = value;
180
+ }
181
+ resetObjectId() {
182
+ this._objectId = undefined;
183
+ }
184
+ // Temporarily expose input value. Use with caution.
185
+ get objectIdInput() {
186
+ return this._objectId;
187
+ }
188
+ // template_id - computed: true, optional: false, required: false
189
+ get templateId() {
190
+ return this.getStringAttribute('template_id');
191
+ }
192
+ get timeouts() {
193
+ return this._timeouts;
194
+ }
195
+ putTimeouts(value) {
196
+ this._timeouts.internalValue = value;
197
+ }
198
+ resetTimeouts() {
199
+ this._timeouts.internalValue = undefined;
200
+ }
201
+ // Temporarily expose input value. Use with caution.
202
+ get timeoutsInput() {
203
+ return this._timeouts.internalValue;
204
+ }
205
+ // =========
206
+ // SYNTHESIS
207
+ // =========
208
+ synthesizeAttributes() {
209
+ return {
210
+ display_name: cdktn.stringToTerraform(this._displayName),
211
+ id: cdktn.stringToTerraform(this._id),
212
+ object_id: cdktn.stringToTerraform(this._objectId),
213
+ timeouts: dataAzureadAccessPackageCatalogRoleTimeoutsToTerraform(this._timeouts.internalValue),
214
+ };
215
+ }
216
+ synthesizeHclAttributes() {
217
+ const attrs = {
218
+ display_name: {
219
+ value: cdktn.stringToHclTerraform(this._displayName),
220
+ isBlock: false,
221
+ type: "simple",
222
+ storageClassType: "string",
223
+ },
224
+ id: {
225
+ value: cdktn.stringToHclTerraform(this._id),
226
+ isBlock: false,
227
+ type: "simple",
228
+ storageClassType: "string",
229
+ },
230
+ object_id: {
231
+ value: cdktn.stringToHclTerraform(this._objectId),
232
+ isBlock: false,
233
+ type: "simple",
234
+ storageClassType: "string",
235
+ },
236
+ timeouts: {
237
+ value: dataAzureadAccessPackageCatalogRoleTimeoutsToHclTerraform(this._timeouts.internalValue),
238
+ isBlock: true,
239
+ type: "struct",
240
+ storageClassType: "DataAzureadAccessPackageCatalogRoleTimeouts",
241
+ },
242
+ };
243
+ // remove undefined attributes
244
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
245
+ }
246
+ }
247
+ exports.DataAzureadAccessPackageCatalogRole = DataAzureadAccessPackageCatalogRole;
248
+ _b = JSII_RTTI_SYMBOL_1;
249
+ DataAzureadAccessPackageCatalogRole[_b] = { fqn: "@cdktn/provider-azuread.dataAzureadAccessPackageCatalogRole.DataAzureadAccessPackageCatalogRole", version: "15.0.0" };
250
+ // =================
251
+ // STATIC PROPERTIES
252
+ // =================
253
+ DataAzureadAccessPackageCatalogRole.tfResourceType = "azuread_access_package_catalog_role";
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS1henVyZWFkLWFjY2Vzcy1wYWNrYWdlLWNhdGFsb2ctcm9sZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBK0NBLHdIQVFDO0FBR0QsOEhBZ0JDOztBQWpFRCwrQkFBK0I7QUFzQy9CLFNBQWdCLHNEQUFzRCxDQUFDLE1BQXdFO0lBQzdJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFBQyxPQUFPLE1BQU0sQ0FBQztJQUFDLENBQUM7SUFDNUYsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLG9IQUFvSCxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyxJQUFJLENBQUM7S0FDNUMsQ0FBQTtBQUNILENBQUM7QUFHRCxTQUFnQix5REFBeUQsQ0FBQyxNQUF3RTtJQUNoSixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQUMsT0FBTyxNQUFNLENBQUM7SUFBQyxDQUFDO0lBQzVGLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvSEFBb0gsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNaLElBQUksRUFBRTtZQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBTyxDQUFDLElBQUksQ0FB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LEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDM0MsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsZ0JBQWdCLEVBQUUsUUFBUTthQUMzQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2pELE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLFFBQVE7YUFDM0I7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLHlEQUF5RCxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUM5RixPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsUUFBUTtnQkFDZCxnQkFBZ0IsRUFBRSw2Q0FBNkM7YUFDaEU7U0FDRixDQUFDO1FBRUYsOEJBQThCO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFFLENBQUMsQ0FBQTtJQUM1SCxDQUFDOztBQS9LSCxrRkFnTEM7OztBQTlLQyxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNHLGtEQUFjLEdBQUcscUNBQXFDLEFBQXhDLENBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMjEsIDIwMjZcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLy8gaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9henVyZWFkLzMuNy4wL2RvY3MvZGF0YS1zb3VyY2VzL2FjY2Vzc19wYWNrYWdlX2NhdGFsb2dfcm9sZVxuLy8gZ2VuZXJhdGVkIGZyb20gdGVycmFmb3JtIHJlc291cmNlIHNjaGVtYVxuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNka3RuIGZyb20gJ2Nka3RuJztcblxuLy8gQ29uZmlndXJhdGlvblxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlQ29uZmlnIGV4dGVuZHMgY2RrdG4uVGVycmFmb3JtTWV0YUFyZ3VtZW50cyB7XG4gIC8qKlxuICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNhdGFsb2cgcm9sZVxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F6dXJlYWQvMy43LjAvZG9jcy9kYXRhLXNvdXJjZXMvYWNjZXNzX3BhY2thZ2VfY2F0YWxvZ19yb2xlI2Rpc3BsYXlfbmFtZSBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZSNkaXNwbGF5X25hbWV9XG4gICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXp1cmVhZC8zLjcuMC9kb2NzL2RhdGEtc291cmNlcy9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGUjaWQgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGUjaWR9XG4gICpcbiAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB0aGUgaWQgZmllbGQgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byBhbGwgcmVzb3VyY2VzIGluIFRlcnJhZm9ybSBwcm92aWRlcnMgdXNpbmcgYSBUZXJyYWZvcm0gcHJvdmlkZXIgU0RLIHZlcnNpb24gYmVsb3cgMi5cbiAgKiBJZiB5b3UgZXhwZXJpZW5jZSBwcm9ibGVtcyBzZXR0aW5nIHRoaXMgdmFsdWUgaXQgbWlnaHQgbm90IGJlIHNldHRhYmxlLiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gdG8gZW5zdXJlIGl0IHNob3VsZCBiZSBzZXR0YWJsZS5cbiAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBvYmplY3QgSUQgb2YgdGhlIGNhdGFsb2cgcm9sZVxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F6dXJlYWQvMy43LjAvZG9jcy9kYXRhLXNvdXJjZXMvYWNjZXNzX3BhY2thZ2VfY2F0YWxvZ19yb2xlI29iamVjdF9pZCBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZSNvYmplY3RfaWR9XG4gICovXG4gIHJlYWRvbmx5IG9iamVjdElkPzogc3RyaW5nO1xuICAvKipcbiAgKiB0aW1lb3V0cyBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F6dXJlYWQvMy43LjAvZG9jcy9kYXRhLXNvdXJjZXMvYWNjZXNzX3BhY2thZ2VfY2F0YWxvZ19yb2xlI3RpbWVvdXRzIERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlI3RpbWVvdXRzfVxuICAqL1xuICByZWFkb25seSB0aW1lb3V0cz86IERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHM7XG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHMge1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXp1cmVhZC8zLjcuMC9kb2NzL2RhdGEtc291cmNlcy9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGUjcmVhZCBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZSNyZWFkfVxuICAqL1xuICByZWFkb25seSByZWFkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0c1RvVGVycmFmb3JtKHN0cnVjdD86IERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHMgfCBjZGt0bi5JUmVzb2x2YWJsZSk6IGFueSB7XG4gIGlmICghY2RrdG4uY2FuSW5zcGVjdChzdHJ1Y3QpIHx8IGNka3RuLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoc3RydWN0KSkgeyByZXR1cm4gc3RydWN0OyB9XG4gIGlmIChjZGt0bi5pc0NvbXBsZXhFbGVtZW50KHN0cnVjdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJBIGNvbXBsZXggZWxlbWVudCB3YXMgdXNlZCBhcyBjb25maWd1cmF0aW9uLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQ6IGh0dHBzOi8vY2RrLnRmL2NvbXBsZXgtb2JqZWN0LWFzLWNvbmZpZ3VyYXRpb25cIik7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICByZWFkOiBjZGt0bi5zdHJpbmdUb1RlcnJhZm9ybShzdHJ1Y3QhLnJlYWQpLFxuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHNUb0hjbFRlcnJhZm9ybShzdHJ1Y3Q/OiBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZVRpbWVvdXRzIHwgY2RrdG4uSVJlc29sdmFibGUpOiBhbnkge1xuICBpZiAoIWNka3RuLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfVxuICBpZiAoY2RrdG4uaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQSBjb21wbGV4IGVsZW1lbnQgd2FzIHVzZWQgYXMgY29uZmlndXJhdGlvbiwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkOiBodHRwczovL2Nkay50Zi9jb21wbGV4LW9iamVjdC1hcy1jb25maWd1cmF0aW9uXCIpO1xuICB9XG4gIGNvbnN0IGF0dHJzID0ge1xuICAgIHJlYWQ6IHtcbiAgICAgIHZhbHVlOiBjZGt0bi5zdHJpbmdUb0hjbFRlcnJhZm9ybShzdHJ1Y3QhLnJlYWQpLFxuICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICB9LFxuICB9O1xuXG4gIC8vIHJlbW92ZSB1bmRlZmluZWQgYXR0cmlidXRlc1xuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGF0dHJzKS5maWx0ZXIoKFtfLCB2YWx1ZV0pID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCkpO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0c091dHB1dFJlZmVyZW5jZSBleHRlbmRzIGNka3RuLkNvbXBsZXhPYmplY3Qge1xuICBwcml2YXRlIGlzRW1wdHlPYmplY3QgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZXNvbHZhYmxlVmFsdWU/OiBjZGt0bi5JUmVzb2x2YWJsZTtcblxuICAvKipcbiAgKiBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZVxuICAqIEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdcbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpIHtcbiAgICBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCBmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGludGVybmFsVmFsdWUoKTogRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0cyB8IGNka3RuLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5yZXNvbHZhYmxlVmFsdWUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc29sdmFibGVWYWx1ZTtcbiAgICB9XG4gICAgbGV0IGhhc0FueVZhbHVlcyA9IHRoaXMuaXNFbXB0eU9iamVjdDtcbiAgICBjb25zdCBpbnRlcm5hbFZhbHVlUmVzdWx0OiBhbnkgPSB7fTtcbiAgICBpZiAodGhpcy5fcmVhZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBoYXNBbnlWYWx1ZXMgPSB0cnVlO1xuICAgICAgaW50ZXJuYWxWYWx1ZVJlc3VsdC5yZWFkID0gdGhpcy5fcmVhZDtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FueVZhbHVlcyA/IGludGVybmFsVmFsdWVSZXN1bHQgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGludGVybmFsVmFsdWUodmFsdWU6IERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHMgfCBjZGt0bi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmlzRW1wdHlPYmplY3QgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVzb2x2YWJsZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5fcmVhZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2RrdG4uVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZSh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuaXNFbXB0eU9iamVjdCA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXNvbHZhYmxlVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmlzRW1wdHlPYmplY3QgPSBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5yZXNvbHZhYmxlVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yZWFkID0gdmFsdWUucmVhZDtcbiAgICB9XG4gIH1cblxuICAvLyByZWFkIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3JlYWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdyZWFkJyk7XG4gIH1cbiAgcHVibGljIHNldCByZWFkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZWFkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0UmVhZCgpIHtcbiAgICB0aGlzLl9yZWFkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCByZWFkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWQ7XG4gIH1cbn1cblxuLyoqXG4qIFJlcHJlc2VudHMgYSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9henVyZWFkLzMuNy4wL2RvY3MvZGF0YS1zb3VyY2VzL2FjY2Vzc19wYWNrYWdlX2NhdGFsb2dfcm9sZSBhenVyZWFkX2FjY2Vzc19wYWNrYWdlX2NhdGFsb2dfcm9sZX1cbiovXG5leHBvcnQgY2xhc3MgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGUgZXh0ZW5kcyBjZGt0bi5UZXJyYWZvcm1EYXRhU291cmNlIHtcblxuICAvLyA9PT09PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgUFJPUEVSVElFU1xuICAvLyA9PT09PT09PT09PT09PT09PVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHRmUmVzb3VyY2VUeXBlID0gXCJhenVyZWFkX2FjY2Vzc19wYWNrYWdlX2NhdGFsb2dfcm9sZVwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtUTiBjb2RlIGZvciBpbXBvcnRpbmcgYSBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZSByZXNvdXJjZSB1cG9uIHJ1bm5pbmcgXCJjZGt0biBwbGFuIDxzdGFjay1uYW1lPlwiXG4gICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgKiBAcGFyYW0gaW1wb3J0VG9JZCBUaGUgY29uc3RydWN0IGlkIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBjb25maWcgZm9yIHRoZSBEYXRhQXp1cmVhZEFjY2Vzc1BhY2thZ2VDYXRhbG9nUm9sZSB0byBpbXBvcnRcbiAgKiBAcGFyYW0gaW1wb3J0RnJvbUlkIFRoZSBpZCBvZiB0aGUgZXhpc3RpbmcgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGUgdGhhdCBzaG91bGQgYmUgaW1wb3J0ZWQuIFJlZmVyIHRvIHRoZSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9henVyZWFkLzMuNy4wL2RvY3MvZGF0YS1zb3VyY2VzL2FjY2Vzc19wYWNrYWdlX2NhdGFsb2dfcm9sZSNpbXBvcnQgaW1wb3J0IHNlY3Rpb259IGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcmVzb3VyY2UgZm9yIHRoZSBpZCB0byB1c2VcbiAgKiBAcGFyYW0gcHJvdmlkZXI/IE9wdGlvbmFsIGluc3RhbmNlIG9mIHRoZSBwcm92aWRlciB3aGVyZSB0aGUgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGUgdG8gaW1wb3J0IGlzIGZvdW5kXG4gICovXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVDb25maWdGb3JJbXBvcnQoc2NvcGU6IENvbnN0cnVjdCwgaW1wb3J0VG9JZDogc3RyaW5nLCBpbXBvcnRGcm9tSWQ6IHN0cmluZywgcHJvdmlkZXI/OiBjZGt0bi5UZXJyYWZvcm1Qcm92aWRlcikge1xuICAgICAgICByZXR1cm4gbmV3IGNka3RuLkltcG9ydGFibGVSZXNvdXJjZShzY29wZSwgaW1wb3J0VG9JZCwgeyB0ZXJyYWZvcm1SZXNvdXJjZVR5cGU6IFwiYXp1cmVhZF9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGVcIiwgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCwgcHJvdmlkZXIgfSk7XG4gICAgICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXp1cmVhZC8zLjcuMC9kb2NzL2RhdGEtc291cmNlcy9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGUgYXp1cmVhZF9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGV9IERhdGEgU291cmNlXG4gICpcbiAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAqIEBwYXJhbSBpZCBUaGUgc2NvcGVkIGNvbnN0cnVjdCBJRC4gTXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBzaWJsaW5ncyBpbiB0aGUgc2FtZSBzY29wZVxuICAqIEBwYXJhbSBvcHRpb25zIERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlQ29uZmlnID0ge31cbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVDb25maWcgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAnYXp1cmVhZF9hY2Nlc3NfcGFja2FnZV9jYXRhbG9nX3JvbGUnLFxuICAgICAgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE6IHtcbiAgICAgICAgcHJvdmlkZXJOYW1lOiAnYXp1cmVhZCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbjogJzMuNy4wJyxcbiAgICAgICAgcHJvdmlkZXJWZXJzaW9uQ29uc3RyYWludDogJ34+IDMuMCdcbiAgICAgIH0sXG4gICAgICBwcm92aWRlcjogY29uZmlnLnByb3ZpZGVyLFxuICAgICAgZGVwZW5kc09uOiBjb25maWcuZGVwZW5kc09uLFxuICAgICAgY291bnQ6IGNvbmZpZy5jb3VudCxcbiAgICAgIGxpZmVjeWNsZTogY29uZmlnLmxpZmVjeWNsZSxcbiAgICAgIHByb3Zpc2lvbmVyczogY29uZmlnLnByb3Zpc2lvbmVycyxcbiAgICAgIGNvbm5lY3Rpb246IGNvbmZpZy5jb25uZWN0aW9uLFxuICAgICAgZm9yRWFjaDogY29uZmlnLmZvckVhY2hcbiAgICB9KTtcbiAgICB0aGlzLl9kaXNwbGF5TmFtZSA9IGNvbmZpZy5kaXNwbGF5TmFtZTtcbiAgICB0aGlzLl9pZCA9IGNvbmZpZy5pZDtcbiAgICB0aGlzLl9vYmplY3RJZCA9IGNvbmZpZy5vYmplY3RJZDtcbiAgICB0aGlzLl90aW1lb3V0cy5pbnRlcm5hbFZhbHVlID0gY29uZmlnLnRpbWVvdXRzO1xuICB9XG5cbiAgLy8gPT09PT09PT09PVxuICAvLyBBVFRSSUJVVEVTXG4gIC8vID09PT09PT09PT1cblxuICAvLyBkZXNjcmlwdGlvbiAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnZGVzY3JpcHRpb24nKTtcbiAgfVxuXG4gIC8vIGRpc3BsYXlfbmFtZSAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2Rpc3BsYXlOYW1lPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBkaXNwbGF5TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJpbmdBdHRyaWJ1dGUoJ2Rpc3BsYXlfbmFtZScpO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzcGxheU5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Rpc3BsYXlOYW1lID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGlzcGxheU5hbWUoKSB7XG4gICAgdGhpcy5fZGlzcGxheU5hbWUgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGRpc3BsYXlOYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lO1xuICB9XG5cbiAgLy8gaWQgLSBjb21wdXRlZDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9pZD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCdpZCcpO1xuICB9XG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SWQoKSB7XG4gICAgdGhpcy5faWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGlkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lkO1xuICB9XG5cbiAgLy8gb2JqZWN0X2lkIC0gY29tcHV0ZWQ6IHRydWUsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfb2JqZWN0SWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IG9iamVjdElkKCkge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmluZ0F0dHJpYnV0ZSgnb2JqZWN0X2lkJyk7XG4gIH1cbiAgcHVibGljIHNldCBvYmplY3RJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fb2JqZWN0SWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRPYmplY3RJZCgpIHtcbiAgICB0aGlzLl9vYmplY3RJZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgb2JqZWN0SWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb2JqZWN0SWQ7XG4gIH1cblxuICAvLyB0ZW1wbGF0ZV9pZCAtIGNvbXB1dGVkOiB0cnVlLCBvcHRpb25hbDogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZVxuICBwdWJsaWMgZ2V0IHRlbXBsYXRlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyaW5nQXR0cmlidXRlKCd0ZW1wbGF0ZV9pZCcpO1xuICB9XG5cbiAgLy8gdGltZW91dHMgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfdGltZW91dHMgPSBuZXcgRGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0c091dHB1dFJlZmVyZW5jZSh0aGlzLCBcInRpbWVvdXRzXCIpO1xuICBwdWJsaWMgZ2V0IHRpbWVvdXRzKCkge1xuICAgIHJldHVybiB0aGlzLl90aW1lb3V0cztcbiAgfVxuICBwdWJsaWMgcHV0VGltZW91dHModmFsdWU6IERhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHMpIHtcbiAgICB0aGlzLl90aW1lb3V0cy5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0VGltZW91dHMoKSB7XG4gICAgdGhpcy5fdGltZW91dHMuaW50ZXJuYWxWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgdGltZW91dHNJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGltZW91dHMuaW50ZXJuYWxWYWx1ZTtcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheV9uYW1lOiBjZGt0bi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9kaXNwbGF5TmFtZSksXG4gICAgICBpZDogY2RrdG4uc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5faWQpLFxuICAgICAgb2JqZWN0X2lkOiBjZGt0bi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9vYmplY3RJZCksXG4gICAgICB0aW1lb3V0czogZGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0c1RvVGVycmFmb3JtKHRoaXMuX3RpbWVvdXRzLmludGVybmFsVmFsdWUpLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUhjbEF0dHJpYnV0ZXMoKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IGF0dHJzID0ge1xuICAgICAgZGlzcGxheV9uYW1lOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0bi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9kaXNwbGF5TmFtZSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGlkOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0bi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9pZCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIG9iamVjdF9pZDoge1xuICAgICAgICB2YWx1ZTogY2RrdG4uc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fb2JqZWN0SWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB0aW1lb3V0czoge1xuICAgICAgICB2YWx1ZTogZGF0YUF6dXJlYWRBY2Nlc3NQYWNrYWdlQ2F0YWxvZ1JvbGVUaW1lb3V0c1RvSGNsVGVycmFmb3JtKHRoaXMuX3RpbWVvdXRzLmludGVybmFsVmFsdWUpLFxuICAgICAgICBpc0Jsb2NrOiB0cnVlLFxuICAgICAgICB0eXBlOiBcInN0cnVjdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcIkRhdGFBenVyZWFkQWNjZXNzUGFja2FnZUNhdGFsb2dSb2xlVGltZW91dHNcIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIHJlbW92ZSB1bmRlZmluZWQgYXR0cmlidXRlc1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkICkpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Copyright IBM Corp. 2021, 2026
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+ import { Construct } from 'constructs';
6
+ import * as cdktn from 'cdktn';
7
+ export interface DataAzureadAdministrativeUnitConfig extends cdktn.TerraformMetaArguments {
8
+ /**
9
+ * The display name for the administrative unit
10
+ *
11
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#display_name DataAzureadAdministrativeUnit#display_name}
12
+ */
13
+ readonly displayName?: string;
14
+ /**
15
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#id DataAzureadAdministrativeUnit#id}
16
+ *
17
+ * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
18
+ * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
19
+ */
20
+ readonly id?: string;
21
+ /**
22
+ * The object ID of the administrative unit
23
+ *
24
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#object_id DataAzureadAdministrativeUnit#object_id}
25
+ */
26
+ readonly objectId?: string;
27
+ /**
28
+ * timeouts block
29
+ *
30
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#timeouts DataAzureadAdministrativeUnit#timeouts}
31
+ */
32
+ readonly timeouts?: DataAzureadAdministrativeUnitTimeouts;
33
+ }
34
+ export interface DataAzureadAdministrativeUnitTimeouts {
35
+ /**
36
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#create DataAzureadAdministrativeUnit#create}
37
+ */
38
+ readonly create?: string;
39
+ /**
40
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#delete DataAzureadAdministrativeUnit#delete}
41
+ */
42
+ readonly delete?: string;
43
+ /**
44
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#read DataAzureadAdministrativeUnit#read}
45
+ */
46
+ readonly read?: string;
47
+ /**
48
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#update DataAzureadAdministrativeUnit#update}
49
+ */
50
+ readonly update?: string;
51
+ }
52
+ export declare function dataAzureadAdministrativeUnitTimeoutsToTerraform(struct?: DataAzureadAdministrativeUnitTimeouts | cdktn.IResolvable): any;
53
+ export declare function dataAzureadAdministrativeUnitTimeoutsToHclTerraform(struct?: DataAzureadAdministrativeUnitTimeouts | cdktn.IResolvable): any;
54
+ export declare class DataAzureadAdministrativeUnitTimeoutsOutputReference extends cdktn.ComplexObject {
55
+ private isEmptyObject;
56
+ private resolvableValue?;
57
+ /**
58
+ * @param terraformResource The parent resource
59
+ * @param terraformAttribute The attribute on the parent resource this class is referencing
60
+ */
61
+ constructor(terraformResource: cdktn.IInterpolatingParent, terraformAttribute: string);
62
+ get internalValue(): DataAzureadAdministrativeUnitTimeouts | cdktn.IResolvable | undefined;
63
+ set internalValue(value: DataAzureadAdministrativeUnitTimeouts | cdktn.IResolvable | undefined);
64
+ private _create?;
65
+ get create(): string;
66
+ set create(value: string);
67
+ resetCreate(): void;
68
+ get createInput(): string | undefined;
69
+ private _delete?;
70
+ get delete(): string;
71
+ set delete(value: string);
72
+ resetDelete(): void;
73
+ get deleteInput(): string | undefined;
74
+ private _read?;
75
+ get read(): string;
76
+ set read(value: string);
77
+ resetRead(): void;
78
+ get readInput(): string | undefined;
79
+ private _update?;
80
+ get update(): string;
81
+ set update(value: string);
82
+ resetUpdate(): void;
83
+ get updateInput(): string | undefined;
84
+ }
85
+ /**
86
+ * Represents a {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit azuread_administrative_unit}
87
+ */
88
+ export declare class DataAzureadAdministrativeUnit extends cdktn.TerraformDataSource {
89
+ static readonly tfResourceType = "azuread_administrative_unit";
90
+ /**
91
+ * Generates CDKTN code for importing a DataAzureadAdministrativeUnit resource upon running "cdktn plan <stack-name>"
92
+ * @param scope The scope in which to define this construct
93
+ * @param importToId The construct id used in the generated config for the DataAzureadAdministrativeUnit to import
94
+ * @param importFromId The id of the existing DataAzureadAdministrativeUnit that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit#import import section} in the documentation of this resource for the id to use
95
+ * @param provider? Optional instance of the provider where the DataAzureadAdministrativeUnit to import is found
96
+ */
97
+ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktn.TerraformProvider): cdktn.ImportableResource;
98
+ /**
99
+ * Create a new {@link https://registry.terraform.io/providers/hashicorp/azuread/3.7.0/docs/data-sources/administrative_unit azuread_administrative_unit} Data Source
100
+ *
101
+ * @param scope The scope in which to define this construct
102
+ * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
103
+ * @param options DataAzureadAdministrativeUnitConfig = {}
104
+ */
105
+ constructor(scope: Construct, id: string, config?: DataAzureadAdministrativeUnitConfig);
106
+ get description(): string;
107
+ private _displayName?;
108
+ get displayName(): string;
109
+ set displayName(value: string);
110
+ resetDisplayName(): void;
111
+ get displayNameInput(): string | undefined;
112
+ private _id?;
113
+ get id(): string;
114
+ set id(value: string);
115
+ resetId(): void;
116
+ get idInput(): string | undefined;
117
+ get members(): string[];
118
+ private _objectId?;
119
+ get objectId(): string;
120
+ set objectId(value: string);
121
+ resetObjectId(): void;
122
+ get objectIdInput(): string | undefined;
123
+ get visibility(): string;
124
+ private _timeouts;
125
+ get timeouts(): DataAzureadAdministrativeUnitTimeoutsOutputReference;
126
+ putTimeouts(value: DataAzureadAdministrativeUnitTimeouts): void;
127
+ resetTimeouts(): void;
128
+ get timeoutsInput(): cdktn.IResolvable | DataAzureadAdministrativeUnitTimeouts | undefined;
129
+ protected synthesizeAttributes(): {
130
+ [name: string]: any;
131
+ };
132
+ protected synthesizeHclAttributes(): {
133
+ [name: string]: any;
134
+ };
135
+ }