qontract-reconcile 0.10.1rc753__py3-none-any.whl → 0.10.1rc754__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qontract-reconcile
3
- Version: 0.10.1rc753
3
+ Version: 0.10.1rc754
4
4
  Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
5
5
  Home-page: https://github.com/app-sre/qontract-reconcile
6
6
  Author: Red Hat App-SRE Team
@@ -10,7 +10,7 @@ reconcile/aws_iam_password_reset.py,sha256=NwErtrqgBiXr7eGCAHdtGGOx0S7-4JnSc29Ie
10
10
  reconcile/aws_support_cases_sos.py,sha256=Jk6_XjDeJSYxgRGqcEAOcynt9qJF2r5HPIPcSKmoBv8,2974
11
11
  reconcile/blackbox_exporter_endpoint_monitoring.py,sha256=W_VJagnsJR1v5oqjlI3RJJE0_nhtJ0m81RS8zWA5u5c,3538
12
12
  reconcile/checkpoint.py,sha256=R2WFXUXLTB4sWMi4GeA4eegsuf_1-Q4vH8M0Toh3Ij4,5036
13
- reconcile/cli.py,sha256=Vw8P6w0nPOGkMRvxpn4lR75jUeRoXLJ4R-WspWNX6Cg,98702
13
+ reconcile/cli.py,sha256=knLmE8YaI61Vg6tbcl5YW8HXIthq91yQknVtnXygCgY,99475
14
14
  reconcile/closedbox_endpoint_monitoring_base.py,sha256=SMhkcQqprWvThrIJa3U_3uh5w1h-alleW1QnCJFY4Qw,4909
15
15
  reconcile/cluster_deployment_mapper.py,sha256=2Ah-nu-Mdig0pjuiZl_XLrmVAjYzFjORR3dMlCgkmw0,2352
16
16
  reconcile/dashdotdb_base.py,sha256=a5aPLVxyqPSbjdB0Ty-uliOtxwvEbbEljHJKxdK3-Zk,4813
@@ -250,6 +250,10 @@ reconcile/gql_definitions/dashdotdb_slo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
250
250
  reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py,sha256=zUa-CmpOwiymVmOV6KwDHH5mMl06p000320FcOas6hU,4315
251
251
  reconcile/gql_definitions/dynatrace_token_provider/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
252
  reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py,sha256=38b9JR7gFTdID3EJO9zeqrCT1adbLrurOLYIGAKPxtA,2045
253
+ reconcile/gql_definitions/external_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
+ reconcile/gql_definitions/external_resources/external_resources_modules.py,sha256=2VIb3hC2MRNhYDZ1al4PvudT2oSfd3fPGpzv4CEJNiw,2341
255
+ reconcile/gql_definitions/external_resources/external_resources_namespaces.py,sha256=UyOAUY1rROenjTz6y-uSEFjrEwhh-lPsIQPbi6EQLFg,40915
256
+ reconcile/gql_definitions/external_resources/external_resources_settings.py,sha256=O6zPVHjQX4RY6lcLx5uNiExfx3nO3aoyucmKxhXsL60,2342
253
257
  reconcile/gql_definitions/fragments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
258
  reconcile/gql_definitions/fragments/aus_organization.py,sha256=ARI87YAbC0VjFri9eVGYrRPBc4s0kWsa25RR8FFoq7E,4433
255
259
  reconcile/gql_definitions/fragments/aws_account_common.py,sha256=d_FwpS_dY8o8DCLa3NERs93FVxQLiDUIPm5tGNac-iw,2320
@@ -560,6 +564,7 @@ reconcile/typed_queries/clusters.py,sha256=tptLP2Ov1lNqtDGuPKBOVvpDtREm5CQFDDVyp
560
564
  reconcile/typed_queries/clusters_minimal.py,sha256=flvs4oXVR4b971h-zMTK3C2GL3bjMnvZgrAeI3XgBQQ,517
561
565
  reconcile/typed_queries/clusters_with_dms.py,sha256=hyNPaHBgUIhnAeuOSY5SG46U1zDp9KytUXEobkZdRlQ,551
562
566
  reconcile/typed_queries/clusters_with_peering.py,sha256=lIai7SJJD0bqIJbe7virgrbYRqjLouSL2OpJD0itpAY,330
567
+ reconcile/typed_queries/external_resources.py,sha256=vQEQwedYx_zoo94qdTSI4TMEg-rgmOOVoy19cKBlvN8,1540
563
568
  reconcile/typed_queries/get_state_aws_account.py,sha256=CSJjVPWsUZ2rkGIt8ehoQt7hokFqrUDgG9HFlg2lVD8,492
564
569
  reconcile/typed_queries/github_orgs.py,sha256=UZhoPl8qvA_tcO7CZlN8GuMKckt3ywd47Suu61rgHsc,258
565
570
  reconcile/typed_queries/gitlab_instances.py,sha256=ZVQHy2W9xIp53f5qYkjKLHLHgOVtQpxTfcmM1C2046g,291
@@ -778,8 +783,8 @@ tools/test/test_app_interface_metrics_exporter.py,sha256=SX7qL3D1SIRKFo95FoQztvf
778
783
  tools/test/test_qontract_cli.py,sha256=w2l4BHB09k1d-BGJ1jBUNCqDv7zkqYrMHojQXg-21kQ,4155
779
784
  tools/test/test_sd_app_sre_alert_report.py,sha256=v363r9zM7__0kR5K6mvJoGFcM9BvE33fWAayrqkpojA,2116
780
785
  tools/test/test_sre_checkpoints.py,sha256=SKqPPTl9ua0RFdSSofnoQX-JZE6dFLO3LRhfQzqtfh8,2607
781
- qontract_reconcile-0.10.1rc753.dist-info/METADATA,sha256=XxOXxeAxSQyr7D4Nr7l5sIcfOoFqaHHIUydTxR7CrEQ,2382
782
- qontract_reconcile-0.10.1rc753.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
783
- qontract_reconcile-0.10.1rc753.dist-info/entry_points.txt,sha256=rIxI5zWtHNlfpDeq1a7pZXAPoqf7HG32KMTN3MeWK_8,429
784
- qontract_reconcile-0.10.1rc753.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
785
- qontract_reconcile-0.10.1rc753.dist-info/RECORD,,
786
+ qontract_reconcile-0.10.1rc754.dist-info/METADATA,sha256=OD3FoCxX0CTq2h4QAdvIIjPG_kpBIaUZmsRyAbRSduU,2382
787
+ qontract_reconcile-0.10.1rc754.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
788
+ qontract_reconcile-0.10.1rc754.dist-info/entry_points.txt,sha256=rIxI5zWtHNlfpDeq1a7pZXAPoqf7HG32KMTN3MeWK_8,429
789
+ qontract_reconcile-0.10.1rc754.dist-info/top_level.txt,sha256=l5ISPoXzt0SdR4jVdkfa7RPSKNc8zAHYWAnR-Dw8Ey8,24
790
+ qontract_reconcile-0.10.1rc754.dist-info/RECORD,,
reconcile/cli.py CHANGED
@@ -3512,6 +3512,33 @@ def deadmanssnitch(ctx):
3512
3512
  )
3513
3513
 
3514
3514
 
3515
+ @integration.command(short_help="Manages External Resources")
3516
+ @click.pass_context
3517
+ @threaded(default=5)
3518
+ @click.option("--cluster", help="Cluster where the Jobs will be created", default=None)
3519
+ @click.option(
3520
+ "--namespace", help="Namespace where the Jobs will be created", default=None
3521
+ )
3522
+ @click.option(
3523
+ "--dry-run-job-suffix",
3524
+ help="Suffix jons run in pr_checks. e.g: gitlab merge request id",
3525
+ default="",
3526
+ )
3527
+ def external_resources(
3528
+ ctx, cluster: str, namespace: str, dry_run_job_suffix: str, thread_pool_size: int
3529
+ ):
3530
+ import reconcile.external_resources.integration
3531
+
3532
+ run_integration(
3533
+ reconcile.external_resources.integration,
3534
+ ctx.obj,
3535
+ cluster,
3536
+ namespace,
3537
+ dry_run_job_suffix,
3538
+ thread_pool_size,
3539
+ )
3540
+
3541
+
3515
3542
  def get_integration_cli_meta() -> dict[str, IntegrationMeta]:
3516
3543
  """
3517
3544
  returns all integrations known to cli.py via click introspection
@@ -0,0 +1,72 @@
1
+ """
2
+ Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
3
+ """
4
+ from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
+ from datetime import datetime # noqa: F401 # pylint: disable=W0611
6
+ from enum import Enum # noqa: F401 # pylint: disable=W0611
7
+ from typing import ( # noqa: F401 # pylint: disable=W0611
8
+ Any,
9
+ Optional,
10
+ Union,
11
+ )
12
+
13
+ from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
+ BaseModel,
15
+ Extra,
16
+ Field,
17
+ Json,
18
+ )
19
+
20
+
21
+ DEFINITION = """
22
+ query ExternalResourcesModules {
23
+ modules: external_resources_modules_v1 {
24
+ provision_provider
25
+ provider
26
+ module_type
27
+ image
28
+ default_version
29
+ reconcile_drift_interval_minutes
30
+ reconcile_timeout_minutes
31
+ }
32
+ }
33
+ """
34
+
35
+
36
+ class ConfiguredBaseModel(BaseModel):
37
+ class Config:
38
+ smart_union=True
39
+ extra=Extra.forbid
40
+
41
+
42
+ class ExternalResourcesModuleV1(ConfiguredBaseModel):
43
+ provision_provider: str = Field(..., alias="provision_provider")
44
+ provider: str = Field(..., alias="provider")
45
+ module_type: str = Field(..., alias="module_type")
46
+ image: str = Field(..., alias="image")
47
+ default_version: str = Field(..., alias="default_version")
48
+ reconcile_drift_interval_minutes: str = Field(..., alias="reconcile_drift_interval_minutes")
49
+ reconcile_timeout_minutes: str = Field(..., alias="reconcile_timeout_minutes")
50
+
51
+
52
+ class ExternalResourcesModulesQueryData(ConfiguredBaseModel):
53
+ modules: Optional[list[ExternalResourcesModuleV1]] = Field(..., alias="modules")
54
+
55
+
56
+ def query(query_func: Callable, **kwargs: Any) -> ExternalResourcesModulesQueryData:
57
+ """
58
+ This is a convenience function which queries and parses the data into
59
+ concrete types. It should be compatible with most GQL clients.
60
+ You do not have to use it to consume the generated data classes.
61
+ Alternatively, you can also mime and alternate the behavior
62
+ of this function in the caller.
63
+
64
+ Parameters:
65
+ query_func (Callable): Function which queries your GQL Server
66
+ kwargs: optional arguments that will be passed to the query function
67
+
68
+ Returns:
69
+ ExternalResourcesModulesQueryData: queried data parsed into generated classes
70
+ """
71
+ raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
72
+ return ExternalResourcesModulesQueryData(**raw_data)
@@ -0,0 +1,1043 @@
1
+ """
2
+ Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
3
+ """
4
+ from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
+ from datetime import datetime # noqa: F401 # pylint: disable=W0611
6
+ from enum import Enum # noqa: F401 # pylint: disable=W0611
7
+ from typing import ( # noqa: F401 # pylint: disable=W0611
8
+ Any,
9
+ Optional,
10
+ Union,
11
+ )
12
+
13
+ from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
+ BaseModel,
15
+ Extra,
16
+ Field,
17
+ Json,
18
+ )
19
+
20
+ from reconcile.gql_definitions.fragments.aws_vpc import AWSVPC
21
+ from reconcile.gql_definitions.fragments.jumphost_common_fields import CommonJumphostFields
22
+ from reconcile.gql_definitions.fragments.vault_secret import VaultSecret
23
+
24
+
25
+ DEFINITION = """
26
+ fragment AWSVPC on AWSVPC_v1 {
27
+ name
28
+ description
29
+ account {
30
+ name
31
+ uid
32
+ terraformUsername
33
+ automationToken {
34
+ ... VaultSecret
35
+ }
36
+ }
37
+ region
38
+ vpc_id
39
+ cidr_block
40
+ subnets {
41
+ id
42
+ }
43
+ }
44
+
45
+ fragment CommonJumphostFields on ClusterJumpHost_v1 {
46
+ hostname
47
+ knownHosts
48
+ user
49
+ port
50
+ remotePort
51
+ identity {
52
+ ... VaultSecret
53
+ }
54
+ }
55
+
56
+ fragment VaultSecret on VaultSecret_v1 {
57
+ path
58
+ field
59
+ version
60
+ format
61
+ }
62
+
63
+ query ExternalResourcesNamespaces {
64
+ namespaces: namespaces_v1 {
65
+ name
66
+ delete
67
+ clusterAdmin
68
+ managedExternalResources
69
+ externalResources {
70
+ provider
71
+ ... on NamespaceTerraformProviderResourceAWS_v1 {
72
+ provisioner {
73
+ name
74
+ resourcesDefaultRegion
75
+ supportedDeploymentRegions
76
+ }
77
+ resources {
78
+ output_format {
79
+ provider
80
+ ... on NamespaceTerraformResourceGenericSecretOutputFormat_v1 {
81
+ data
82
+ }
83
+ }
84
+ provider
85
+ ... on NamespaceTerraformResourceRDS_v1 {
86
+ region
87
+ identifier
88
+ defaults
89
+ availability_zone
90
+ parameter_group
91
+ old_parameter_group
92
+ overrides
93
+ output_resource_name
94
+ enhanced_monitoring
95
+ replica_source
96
+ output_resource_db_name
97
+ reset_password
98
+ ca_cert {
99
+ ... VaultSecret
100
+ }
101
+ annotations
102
+ event_notifications {
103
+ destination
104
+ source_type
105
+ event_categories
106
+ }
107
+ data_classification {
108
+ loss_impact
109
+ }
110
+ managed_by_erv2
111
+ }
112
+ ... on NamespaceTerraformResourceS3_v1 {
113
+ region
114
+ identifier
115
+ defaults
116
+ overrides
117
+ sqs_identifier
118
+ s3_events
119
+ event_notifications {
120
+ destination_type
121
+ destination
122
+ event_type
123
+ filter_prefix
124
+ filter_suffix
125
+ }
126
+ bucket_policy
127
+ output_resource_name
128
+ storage_class
129
+ annotations
130
+ }
131
+ ... on NamespaceTerraformResourceElastiCache_v1 {
132
+ identifier
133
+ defaults
134
+ parameter_group
135
+ region
136
+ overrides
137
+ output_resource_name
138
+ annotations
139
+ }
140
+ ... on NamespaceTerraformResourceServiceAccount_v1 {
141
+ identifier
142
+ variables
143
+ policies
144
+ user_policy
145
+ output_resource_name
146
+ annotations
147
+ aws_infrastructure_access {
148
+ cluster {
149
+ name
150
+ }
151
+ access_level
152
+ assume_role
153
+ }
154
+ }
155
+ ... on NamespaceTerraformResourceSecretsManagerServiceAccount_v1 {
156
+ identifier
157
+ secrets_prefix
158
+ output_resource_name
159
+ annotations
160
+ }
161
+ ... on NamespaceTerraformResourceRole_v1 {
162
+ identifier
163
+ assume_role {
164
+ AWS
165
+ Service
166
+ Federated
167
+ }
168
+ assume_condition
169
+ assume_action
170
+ inline_policy
171
+ output_resource_name
172
+ annotations
173
+ managed_by_erv2
174
+ }
175
+ ... on NamespaceTerraformResourceSQS_v1 {
176
+ region
177
+ identifier
178
+ output_resource_name
179
+ annotations
180
+ specs {
181
+ defaults
182
+ queues {
183
+ key
184
+ value
185
+ }
186
+ }
187
+ }
188
+ ... on NamespaceTerraformResourceSNSTopic_v1 {
189
+ defaults
190
+ region
191
+ identifier
192
+ output_resource_name
193
+ fifo_topic
194
+ inline_policy
195
+ annotations
196
+ subscriptions
197
+ {
198
+ protocol
199
+ endpoint
200
+ }
201
+ }
202
+ ... on NamespaceTerraformResourceDynamoDB_v1 {
203
+ region
204
+ identifier
205
+ output_resource_name
206
+ annotations
207
+ specs {
208
+ defaults
209
+ tables {
210
+ key
211
+ value
212
+ }
213
+ }
214
+ }
215
+ ... on NamespaceTerraformResourceECR_v1 {
216
+ identifier
217
+ region
218
+ output_resource_name
219
+ public
220
+ annotations
221
+ }
222
+ ... on NamespaceTerraformResourceS3CloudFront_v1 {
223
+ region
224
+ identifier
225
+ defaults
226
+ output_resource_name
227
+ storage_class
228
+ annotations
229
+ }
230
+ ... on NamespaceTerraformResourceS3SQS_v1 {
231
+ region
232
+ identifier
233
+ defaults
234
+ kms_encryption
235
+ output_resource_name
236
+ storage_class
237
+ annotations
238
+ }
239
+ ... on NamespaceTerraformResourceCloudWatch_v1 {
240
+ region
241
+ identifier
242
+ defaults
243
+ es_identifier
244
+ filter_pattern
245
+ output_resource_name
246
+ annotations
247
+ }
248
+ ... on NamespaceTerraformResourceKMS_v1 {
249
+ region
250
+ identifier
251
+ defaults
252
+ overrides
253
+ output_resource_name
254
+ annotations
255
+ }
256
+ ... on NamespaceTerraformResourceElasticSearch_v1 {
257
+ region
258
+ identifier
259
+ defaults
260
+ output_resource_name
261
+ annotations
262
+ publish_log_types
263
+ }
264
+ ... on NamespaceTerraformResourceACM_v1 {
265
+ region
266
+ identifier
267
+ secret {
268
+ ... VaultSecret
269
+ }
270
+ domain {
271
+ domain_name
272
+ alternate_names
273
+ }
274
+ output_resource_name
275
+ annotations
276
+ }
277
+ ... on NamespaceTerraformResourceKinesis_v1 {
278
+ region
279
+ identifier
280
+ defaults
281
+ es_identifier
282
+ output_resource_name
283
+ annotations
284
+ }
285
+ ... on NamespaceTerraformResourceS3CloudFrontPublicKey_v1 {
286
+ region
287
+ identifier
288
+ secret {
289
+ ... VaultSecret
290
+ }
291
+ output_resource_name
292
+ annotations
293
+ }
294
+ ... on NamespaceTerraformResourceALB_v1 {
295
+ region
296
+ identifier
297
+ vpc {
298
+ ... AWSVPC
299
+ }
300
+ certificate_arn
301
+ ingress_cidr_blocks
302
+ idle_timeout
303
+ enable_http2
304
+ ip_address_type
305
+ access_logs
306
+ targets {
307
+ name
308
+ default
309
+ ips
310
+ openshift_service
311
+ protocol
312
+ protocol_version
313
+ }
314
+ rules {
315
+ condition {
316
+ type
317
+ ... on NamespaceTerraformResourceALBConditionHostHeader_v1 {
318
+ host_header
319
+ }
320
+ ... on NamespaceTerraformResourceALBConditionHTTPRequestMethod_v1 {
321
+ http_request_method
322
+ }
323
+ ... on NamespaceTerraformResourceALBConditionPathPattern_v1 {
324
+ path_pattern
325
+ }
326
+ ... on NamespaceTerraformResourceALBConditionSourceIP_v1 {
327
+ source_ip
328
+ }
329
+ }
330
+ action {
331
+ type
332
+ ... on NamespaceTerraformResourceALBActionForward_v1 {
333
+ forward {
334
+ target_group {
335
+ target
336
+ weight
337
+ }
338
+ }
339
+ }
340
+ ... on NamespaceTerraformResourceALBActionFixedResponse_v1 {
341
+ fixed_response {
342
+ content_type
343
+ message_body
344
+ status_code
345
+ }
346
+ }
347
+ }
348
+ }
349
+ output_resource_name
350
+ annotations
351
+ }
352
+ ... on NamespaceTerraformResourceSecretsManager_v1 {
353
+ region
354
+ identifier
355
+ secret {
356
+ ... VaultSecret
357
+ }
358
+ output_resource_name
359
+ annotations
360
+ }
361
+ ... on NamespaceTerraformResourceASG_v1 {
362
+ region
363
+ identifier
364
+ defaults
365
+ cloudinit_configs {
366
+ filename
367
+ content_type
368
+ content
369
+ }
370
+ variables
371
+ overrides
372
+ extra_tags
373
+ image {
374
+ provider
375
+ ... on ASGImageGit_v1 {
376
+ tag_name
377
+ url
378
+ ref
379
+ upstream {
380
+ instance {
381
+ name
382
+ token {
383
+ ... VaultSecret
384
+ }
385
+ }
386
+ name
387
+ }
388
+ }
389
+ ... on ASGImageStatic_v1 {
390
+ tag_name
391
+ value
392
+ }
393
+ }
394
+ output_resource_name
395
+ annotations
396
+ }
397
+ ... on NamespaceTerraformResourceRoute53Zone_v1 {
398
+ region
399
+ identifier
400
+ name
401
+ output_resource_name
402
+ annotations
403
+ records {
404
+ name
405
+ type
406
+ ttl
407
+ alias {
408
+ name
409
+ zone_id
410
+ evaluate_target_health
411
+ }
412
+ weighted_routing_policy {
413
+ weight
414
+ }
415
+ geolocation_routing_policy {
416
+ continent
417
+ country
418
+ subdivision
419
+ }
420
+ set_identifier
421
+ records
422
+ }
423
+ }
424
+ ... on NamespaceTerraformResourceRosaAuthenticator_V1 {
425
+ region
426
+ identifier
427
+ api_proxy_uri
428
+ cognito_callback_bucket_name
429
+ certificate_arn
430
+ domain_name
431
+ network_interface_ids
432
+ openshift_ingress_load_balancer_arn
433
+ insights_callback_urls
434
+ output_resource_name
435
+ annotations
436
+ vpc_id
437
+ subnet_ids
438
+ vpce_id
439
+ defaults
440
+ }
441
+ ... on NamespaceTerraformResourceRosaAuthenticatorVPCE_V1 {
442
+ region
443
+ identifier
444
+ subnet_ids,
445
+ vpc_id,
446
+ output_resource_name
447
+ annotations
448
+ defaults
449
+ }
450
+ ... on NamespaceTerraformResourceMsk_v1 {
451
+ region
452
+ identifier
453
+ output_resource_name
454
+ defaults
455
+ annotations
456
+ users {
457
+ name
458
+ secret {
459
+ ...VaultSecret
460
+ }
461
+ }
462
+ }
463
+ }
464
+ }
465
+ }
466
+ environment {
467
+ name
468
+ }
469
+ app {
470
+ name
471
+ }
472
+ cluster {
473
+ name
474
+ serverUrl
475
+ insecureSkipTLSVerify
476
+ jumpHost {
477
+ ... CommonJumphostFields
478
+ }
479
+ automationToken {
480
+ ... VaultSecret
481
+ }
482
+ clusterAdminAutomationToken {
483
+ ... VaultSecret
484
+ }
485
+ spec {
486
+ region
487
+ }
488
+ internal
489
+ disable {
490
+ integrations
491
+ }
492
+ }
493
+ }
494
+ }
495
+ """
496
+
497
+
498
+ class ConfiguredBaseModel(BaseModel):
499
+ class Config:
500
+ smart_union=True
501
+ extra=Extra.forbid
502
+
503
+
504
+ class NamespaceExternalResourceV1(ConfiguredBaseModel):
505
+ provider: str = Field(..., alias="provider")
506
+
507
+
508
+ class AWSAccountV1(ConfiguredBaseModel):
509
+ name: str = Field(..., alias="name")
510
+ resources_default_region: str = Field(..., alias="resourcesDefaultRegion")
511
+ supported_deployment_regions: Optional[list[str]] = Field(..., alias="supportedDeploymentRegions")
512
+
513
+
514
+ class NamespaceTerraformResourceOutputFormatV1(ConfiguredBaseModel):
515
+ provider: str = Field(..., alias="provider")
516
+
517
+
518
+ class NamespaceTerraformResourceGenericSecretOutputFormatV1(NamespaceTerraformResourceOutputFormatV1):
519
+ data: Optional[str] = Field(..., alias="data")
520
+
521
+
522
+ class NamespaceTerraformResourceAWSV1(ConfiguredBaseModel):
523
+ output_format: Optional[Union[NamespaceTerraformResourceGenericSecretOutputFormatV1, NamespaceTerraformResourceOutputFormatV1]] = Field(..., alias="output_format")
524
+ provider: str = Field(..., alias="provider")
525
+
526
+
527
+ class AWSRDSEventNotificationV1(ConfiguredBaseModel):
528
+ destination: str = Field(..., alias="destination")
529
+ source_type: Optional[str] = Field(..., alias="source_type")
530
+ event_categories: Optional[list[str]] = Field(..., alias="event_categories")
531
+
532
+
533
+ class AWSRDSDataClassificationV1(ConfiguredBaseModel):
534
+ loss_impact: Optional[str] = Field(..., alias="loss_impact")
535
+
536
+
537
+ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
538
+ region: Optional[str] = Field(..., alias="region")
539
+ identifier: str = Field(..., alias="identifier")
540
+ defaults: str = Field(..., alias="defaults")
541
+ availability_zone: Optional[str] = Field(..., alias="availability_zone")
542
+ parameter_group: Optional[str] = Field(..., alias="parameter_group")
543
+ old_parameter_group: Optional[str] = Field(..., alias="old_parameter_group")
544
+ overrides: Optional[str] = Field(..., alias="overrides")
545
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
546
+ enhanced_monitoring: Optional[bool] = Field(..., alias="enhanced_monitoring")
547
+ replica_source: Optional[str] = Field(..., alias="replica_source")
548
+ output_resource_db_name: Optional[str] = Field(..., alias="output_resource_db_name")
549
+ reset_password: Optional[str] = Field(..., alias="reset_password")
550
+ ca_cert: Optional[VaultSecret] = Field(..., alias="ca_cert")
551
+ annotations: Optional[str] = Field(..., alias="annotations")
552
+ event_notifications: Optional[list[AWSRDSEventNotificationV1]] = Field(..., alias="event_notifications")
553
+ data_classification: Optional[AWSRDSDataClassificationV1] = Field(..., alias="data_classification")
554
+ managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
555
+
556
+
557
+ class AWSS3EventNotificationV1(ConfiguredBaseModel):
558
+ destination_type: str = Field(..., alias="destination_type")
559
+ destination: str = Field(..., alias="destination")
560
+ event_type: list[str] = Field(..., alias="event_type")
561
+ filter_prefix: Optional[str] = Field(..., alias="filter_prefix")
562
+ filter_suffix: Optional[str] = Field(..., alias="filter_suffix")
563
+
564
+
565
+ class NamespaceTerraformResourceS3V1(NamespaceTerraformResourceAWSV1):
566
+ region: Optional[str] = Field(..., alias="region")
567
+ identifier: str = Field(..., alias="identifier")
568
+ defaults: str = Field(..., alias="defaults")
569
+ overrides: Optional[str] = Field(..., alias="overrides")
570
+ sqs_identifier: Optional[str] = Field(..., alias="sqs_identifier")
571
+ s3_events: Optional[list[str]] = Field(..., alias="s3_events")
572
+ event_notifications: Optional[list[AWSS3EventNotificationV1]] = Field(..., alias="event_notifications")
573
+ bucket_policy: Optional[str] = Field(..., alias="bucket_policy")
574
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
575
+ storage_class: Optional[str] = Field(..., alias="storage_class")
576
+ annotations: Optional[str] = Field(..., alias="annotations")
577
+
578
+
579
+ class NamespaceTerraformResourceElastiCacheV1(NamespaceTerraformResourceAWSV1):
580
+ identifier: str = Field(..., alias="identifier")
581
+ defaults: str = Field(..., alias="defaults")
582
+ parameter_group: Optional[str] = Field(..., alias="parameter_group")
583
+ region: Optional[str] = Field(..., alias="region")
584
+ overrides: Optional[str] = Field(..., alias="overrides")
585
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
586
+ annotations: Optional[str] = Field(..., alias="annotations")
587
+
588
+
589
+ class ClusterV1(ConfiguredBaseModel):
590
+ name: str = Field(..., alias="name")
591
+
592
+
593
+ class NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1(ConfiguredBaseModel):
594
+ cluster: Optional[ClusterV1] = Field(..., alias="cluster")
595
+ access_level: Optional[str] = Field(..., alias="access_level")
596
+ assume_role: Optional[str] = Field(..., alias="assume_role")
597
+
598
+
599
+ class NamespaceTerraformResourceServiceAccountV1(NamespaceTerraformResourceAWSV1):
600
+ identifier: str = Field(..., alias="identifier")
601
+ variables: Optional[str] = Field(..., alias="variables")
602
+ policies: Optional[list[str]] = Field(..., alias="policies")
603
+ user_policy: Optional[str] = Field(..., alias="user_policy")
604
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
605
+ annotations: Optional[str] = Field(..., alias="annotations")
606
+ aws_infrastructure_access: Optional[NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1] = Field(..., alias="aws_infrastructure_access")
607
+
608
+
609
+ class NamespaceTerraformResourceSecretsManagerServiceAccountV1(NamespaceTerraformResourceAWSV1):
610
+ identifier: str = Field(..., alias="identifier")
611
+ secrets_prefix: str = Field(..., alias="secrets_prefix")
612
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
613
+ annotations: Optional[str] = Field(..., alias="annotations")
614
+
615
+
616
+ class AssumeRoleV1(ConfiguredBaseModel):
617
+ aws: Optional[list[str]] = Field(..., alias="AWS")
618
+ service: Optional[list[str]] = Field(..., alias="Service")
619
+ federated: Optional[str] = Field(..., alias="Federated")
620
+
621
+
622
+ class NamespaceTerraformResourceRoleV1(NamespaceTerraformResourceAWSV1):
623
+ identifier: str = Field(..., alias="identifier")
624
+ assume_role: AssumeRoleV1 = Field(..., alias="assume_role")
625
+ assume_condition: Optional[str] = Field(..., alias="assume_condition")
626
+ assume_action: Optional[str] = Field(..., alias="assume_action")
627
+ inline_policy: Optional[str] = Field(..., alias="inline_policy")
628
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
629
+ annotations: Optional[str] = Field(..., alias="annotations")
630
+ managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
631
+
632
+
633
+ class KeyValueV1(ConfiguredBaseModel):
634
+ key: str = Field(..., alias="key")
635
+ value: str = Field(..., alias="value")
636
+
637
+
638
+ class SQSQueuesSpecsV1(ConfiguredBaseModel):
639
+ defaults: str = Field(..., alias="defaults")
640
+ queues: list[KeyValueV1] = Field(..., alias="queues")
641
+
642
+
643
+ class NamespaceTerraformResourceSQSV1(NamespaceTerraformResourceAWSV1):
644
+ region: Optional[str] = Field(..., alias="region")
645
+ identifier: str = Field(..., alias="identifier")
646
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
647
+ annotations: Optional[str] = Field(..., alias="annotations")
648
+ specs: list[SQSQueuesSpecsV1] = Field(..., alias="specs")
649
+
650
+
651
+ class NamespaceTerraformResourceSNSSubscriptionV1(ConfiguredBaseModel):
652
+ protocol: str = Field(..., alias="protocol")
653
+ endpoint: str = Field(..., alias="endpoint")
654
+
655
+
656
+ class NamespaceTerraformResourceSNSTopicV1(NamespaceTerraformResourceAWSV1):
657
+ defaults: str = Field(..., alias="defaults")
658
+ region: Optional[str] = Field(..., alias="region")
659
+ identifier: str = Field(..., alias="identifier")
660
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
661
+ fifo_topic: Optional[bool] = Field(..., alias="fifo_topic")
662
+ inline_policy: Optional[str] = Field(..., alias="inline_policy")
663
+ annotations: Optional[str] = Field(..., alias="annotations")
664
+ subscriptions: Optional[list[NamespaceTerraformResourceSNSSubscriptionV1]] = Field(..., alias="subscriptions")
665
+
666
+
667
+ class DynamoDBTableSpecsV1_KeyValueV1(ConfiguredBaseModel):
668
+ key: str = Field(..., alias="key")
669
+ value: str = Field(..., alias="value")
670
+
671
+
672
+ class DynamoDBTableSpecsV1(ConfiguredBaseModel):
673
+ defaults: str = Field(..., alias="defaults")
674
+ tables: list[DynamoDBTableSpecsV1_KeyValueV1] = Field(..., alias="tables")
675
+
676
+
677
+ class NamespaceTerraformResourceDynamoDBV1(NamespaceTerraformResourceAWSV1):
678
+ region: Optional[str] = Field(..., alias="region")
679
+ identifier: str = Field(..., alias="identifier")
680
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
681
+ annotations: Optional[str] = Field(..., alias="annotations")
682
+ specs: list[DynamoDBTableSpecsV1] = Field(..., alias="specs")
683
+
684
+
685
+ class NamespaceTerraformResourceECRV1(NamespaceTerraformResourceAWSV1):
686
+ identifier: str = Field(..., alias="identifier")
687
+ region: Optional[str] = Field(..., alias="region")
688
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
689
+ public: Optional[bool] = Field(..., alias="public")
690
+ annotations: Optional[str] = Field(..., alias="annotations")
691
+
692
+
693
+ class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
694
+ region: Optional[str] = Field(..., alias="region")
695
+ identifier: str = Field(..., alias="identifier")
696
+ defaults: str = Field(..., alias="defaults")
697
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
698
+ storage_class: Optional[str] = Field(..., alias="storage_class")
699
+ annotations: Optional[str] = Field(..., alias="annotations")
700
+
701
+
702
+ class NamespaceTerraformResourceS3SQSV1(NamespaceTerraformResourceAWSV1):
703
+ region: Optional[str] = Field(..., alias="region")
704
+ identifier: str = Field(..., alias="identifier")
705
+ defaults: str = Field(..., alias="defaults")
706
+ kms_encryption: Optional[bool] = Field(..., alias="kms_encryption")
707
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
708
+ storage_class: Optional[str] = Field(..., alias="storage_class")
709
+ annotations: Optional[str] = Field(..., alias="annotations")
710
+
711
+
712
+ class NamespaceTerraformResourceCloudWatchV1(NamespaceTerraformResourceAWSV1):
713
+ region: Optional[str] = Field(..., alias="region")
714
+ identifier: str = Field(..., alias="identifier")
715
+ defaults: str = Field(..., alias="defaults")
716
+ es_identifier: Optional[str] = Field(..., alias="es_identifier")
717
+ filter_pattern: Optional[str] = Field(..., alias="filter_pattern")
718
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
719
+ annotations: Optional[str] = Field(..., alias="annotations")
720
+
721
+
722
+ class NamespaceTerraformResourceKMSV1(NamespaceTerraformResourceAWSV1):
723
+ region: Optional[str] = Field(..., alias="region")
724
+ identifier: str = Field(..., alias="identifier")
725
+ defaults: str = Field(..., alias="defaults")
726
+ overrides: Optional[str] = Field(..., alias="overrides")
727
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
728
+ annotations: Optional[str] = Field(..., alias="annotations")
729
+
730
+
731
+ class NamespaceTerraformResourceElasticSearchV1(NamespaceTerraformResourceAWSV1):
732
+ region: Optional[str] = Field(..., alias="region")
733
+ identifier: str = Field(..., alias="identifier")
734
+ defaults: str = Field(..., alias="defaults")
735
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
736
+ annotations: Optional[str] = Field(..., alias="annotations")
737
+ publish_log_types: Optional[list[str]] = Field(..., alias="publish_log_types")
738
+
739
+
740
+ class ACMDomainV1(ConfiguredBaseModel):
741
+ domain_name: str = Field(..., alias="domain_name")
742
+ alternate_names: Optional[list[str]] = Field(..., alias="alternate_names")
743
+
744
+
745
+ class NamespaceTerraformResourceACMV1(NamespaceTerraformResourceAWSV1):
746
+ region: Optional[str] = Field(..., alias="region")
747
+ identifier: str = Field(..., alias="identifier")
748
+ secret: Optional[VaultSecret] = Field(..., alias="secret")
749
+ domain: Optional[ACMDomainV1] = Field(..., alias="domain")
750
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
751
+ annotations: Optional[str] = Field(..., alias="annotations")
752
+
753
+
754
+ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
755
+ region: Optional[str] = Field(..., alias="region")
756
+ identifier: str = Field(..., alias="identifier")
757
+ defaults: str = Field(..., alias="defaults")
758
+ es_identifier: Optional[str] = Field(..., alias="es_identifier")
759
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
760
+ annotations: Optional[str] = Field(..., alias="annotations")
761
+
762
+
763
+ class NamespaceTerraformResourceS3CloudFrontPublicKeyV1(NamespaceTerraformResourceAWSV1):
764
+ region: Optional[str] = Field(..., alias="region")
765
+ identifier: str = Field(..., alias="identifier")
766
+ secret: Optional[VaultSecret] = Field(..., alias="secret")
767
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
768
+ annotations: Optional[str] = Field(..., alias="annotations")
769
+
770
+
771
+ class NamespaceTerraformResourceALBTargetsV1(ConfiguredBaseModel):
772
+ name: str = Field(..., alias="name")
773
+ default: bool = Field(..., alias="default")
774
+ ips: Optional[list[str]] = Field(..., alias="ips")
775
+ openshift_service: Optional[str] = Field(..., alias="openshift_service")
776
+ protocol: Optional[str] = Field(..., alias="protocol")
777
+ protocol_version: Optional[str] = Field(..., alias="protocol_version")
778
+
779
+
780
+ class NamespaceTerraformResourceALBConditionV1(ConfiguredBaseModel):
781
+ q_type: str = Field(..., alias="type")
782
+
783
+
784
+ class NamespaceTerraformResourceALBConditionHostHeaderV1(NamespaceTerraformResourceALBConditionV1):
785
+ host_header: list[str] = Field(..., alias="host_header")
786
+
787
+
788
+ class NamespaceTerraformResourceALBConditionHTTPRequestMethodV1(NamespaceTerraformResourceALBConditionV1):
789
+ http_request_method: list[str] = Field(..., alias="http_request_method")
790
+
791
+
792
+ class NamespaceTerraformResourceALBConditionPathPatternV1(NamespaceTerraformResourceALBConditionV1):
793
+ path_pattern: list[str] = Field(..., alias="path_pattern")
794
+
795
+
796
+ class NamespaceTerraformResourceALBConditionSourceIPV1(NamespaceTerraformResourceALBConditionV1):
797
+ source_ip: list[str] = Field(..., alias="source_ip")
798
+
799
+
800
+ class NamespaceTerraformResourceALBActionV1(ConfiguredBaseModel):
801
+ q_type: str = Field(..., alias="type")
802
+
803
+
804
+ class NamespaceTerraformResourceALBTargetGroupV1(ConfiguredBaseModel):
805
+ target: str = Field(..., alias="target")
806
+ weight: int = Field(..., alias="weight")
807
+
808
+
809
+ class NamespaceTerraformResourceALBActionForwardSettingsV1(ConfiguredBaseModel):
810
+ target_group: list[NamespaceTerraformResourceALBTargetGroupV1] = Field(..., alias="target_group")
811
+
812
+
813
+ class NamespaceTerraformResourceALBActionForwardV1(NamespaceTerraformResourceALBActionV1):
814
+ forward: NamespaceTerraformResourceALBActionForwardSettingsV1 = Field(..., alias="forward")
815
+
816
+
817
+ class NamespaceTerraformResourceALBActionFixedResponseSettingsV1(ConfiguredBaseModel):
818
+ content_type: str = Field(..., alias="content_type")
819
+ message_body: str = Field(..., alias="message_body")
820
+ status_code: str = Field(..., alias="status_code")
821
+
822
+
823
+ class NamespaceTerraformResourceALBActionFixedResponseV1(NamespaceTerraformResourceALBActionV1):
824
+ fixed_response: NamespaceTerraformResourceALBActionFixedResponseSettingsV1 = Field(..., alias="fixed_response")
825
+
826
+
827
+ class NamespaceTerraformResourceALBRulesV1(ConfiguredBaseModel):
828
+ condition: list[Union[NamespaceTerraformResourceALBConditionHostHeaderV1, NamespaceTerraformResourceALBConditionHTTPRequestMethodV1, NamespaceTerraformResourceALBConditionPathPatternV1, NamespaceTerraformResourceALBConditionSourceIPV1, NamespaceTerraformResourceALBConditionV1]] = Field(..., alias="condition")
829
+ action: Union[NamespaceTerraformResourceALBActionForwardV1, NamespaceTerraformResourceALBActionFixedResponseV1, NamespaceTerraformResourceALBActionV1] = Field(..., alias="action")
830
+
831
+
832
+ class NamespaceTerraformResourceALBV1(NamespaceTerraformResourceAWSV1):
833
+ region: Optional[str] = Field(..., alias="region")
834
+ identifier: str = Field(..., alias="identifier")
835
+ vpc: AWSVPC = Field(..., alias="vpc")
836
+ certificate_arn: str = Field(..., alias="certificate_arn")
837
+ ingress_cidr_blocks: list[str] = Field(..., alias="ingress_cidr_blocks")
838
+ idle_timeout: Optional[int] = Field(..., alias="idle_timeout")
839
+ enable_http2: Optional[bool] = Field(..., alias="enable_http2")
840
+ ip_address_type: Optional[str] = Field(..., alias="ip_address_type")
841
+ access_logs: Optional[bool] = Field(..., alias="access_logs")
842
+ targets: list[NamespaceTerraformResourceALBTargetsV1] = Field(..., alias="targets")
843
+ rules: list[NamespaceTerraformResourceALBRulesV1] = Field(..., alias="rules")
844
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
845
+ annotations: Optional[str] = Field(..., alias="annotations")
846
+
847
+
848
+ class NamespaceTerraformResourceSecretsManagerV1(NamespaceTerraformResourceAWSV1):
849
+ region: Optional[str] = Field(..., alias="region")
850
+ identifier: str = Field(..., alias="identifier")
851
+ secret: Optional[VaultSecret] = Field(..., alias="secret")
852
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
853
+ annotations: Optional[str] = Field(..., alias="annotations")
854
+
855
+
856
+ class CloudinitConfigV1(ConfiguredBaseModel):
857
+ filename: Optional[str] = Field(..., alias="filename")
858
+ content_type: Optional[str] = Field(..., alias="content_type")
859
+ content: str = Field(..., alias="content")
860
+
861
+
862
+ class ASGImageV1(ConfiguredBaseModel):
863
+ provider: str = Field(..., alias="provider")
864
+
865
+
866
+ class JenkinsInstanceV1(ConfiguredBaseModel):
867
+ name: str = Field(..., alias="name")
868
+ token: VaultSecret = Field(..., alias="token")
869
+
870
+
871
+ class SaasResourceTemplateTargetUpstreamV1(ConfiguredBaseModel):
872
+ instance: JenkinsInstanceV1 = Field(..., alias="instance")
873
+ name: str = Field(..., alias="name")
874
+
875
+
876
+ class ASGImageGitV1(ASGImageV1):
877
+ tag_name: str = Field(..., alias="tag_name")
878
+ url: str = Field(..., alias="url")
879
+ ref: str = Field(..., alias="ref")
880
+ upstream: Optional[SaasResourceTemplateTargetUpstreamV1] = Field(..., alias="upstream")
881
+
882
+
883
+ class ASGImageStaticV1(ASGImageV1):
884
+ tag_name: str = Field(..., alias="tag_name")
885
+ value: str = Field(..., alias="value")
886
+
887
+
888
+ class NamespaceTerraformResourceASGV1(NamespaceTerraformResourceAWSV1):
889
+ region: Optional[str] = Field(..., alias="region")
890
+ identifier: str = Field(..., alias="identifier")
891
+ defaults: str = Field(..., alias="defaults")
892
+ cloudinit_configs: Optional[list[CloudinitConfigV1]] = Field(..., alias="cloudinit_configs")
893
+ variables: Optional[str] = Field(..., alias="variables")
894
+ overrides: Optional[str] = Field(..., alias="overrides")
895
+ extra_tags: Optional[str] = Field(..., alias="extra_tags")
896
+ image: list[Union[ASGImageGitV1, ASGImageStaticV1, ASGImageV1]] = Field(..., alias="image")
897
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
898
+ annotations: Optional[str] = Field(..., alias="annotations")
899
+
900
+
901
+ class DnsRecordAliasV1(ConfiguredBaseModel):
902
+ name: str = Field(..., alias="name")
903
+ zone_id: str = Field(..., alias="zone_id")
904
+ evaluate_target_health: bool = Field(..., alias="evaluate_target_health")
905
+
906
+
907
+ class DnsRecordWeightedRoutingPolicyV1(ConfiguredBaseModel):
908
+ weight: Optional[int] = Field(..., alias="weight")
909
+
910
+
911
+ class DnsRecordGeolocationRoutingPolicyV1(ConfiguredBaseModel):
912
+ continent: Optional[str] = Field(..., alias="continent")
913
+ country: Optional[str] = Field(..., alias="country")
914
+ subdivision: Optional[str] = Field(..., alias="subdivision")
915
+
916
+
917
+ class DnsRecordV1(ConfiguredBaseModel):
918
+ name: str = Field(..., alias="name")
919
+ q_type: str = Field(..., alias="type")
920
+ ttl: Optional[int] = Field(..., alias="ttl")
921
+ alias: Optional[DnsRecordAliasV1] = Field(..., alias="alias")
922
+ weighted_routing_policy: Optional[DnsRecordWeightedRoutingPolicyV1] = Field(..., alias="weighted_routing_policy")
923
+ geolocation_routing_policy: Optional[DnsRecordGeolocationRoutingPolicyV1] = Field(..., alias="geolocation_routing_policy")
924
+ set_identifier: Optional[str] = Field(..., alias="set_identifier")
925
+ records: Optional[list[str]] = Field(..., alias="records")
926
+
927
+
928
+ class NamespaceTerraformResourceRoute53ZoneV1(NamespaceTerraformResourceAWSV1):
929
+ region: Optional[str] = Field(..., alias="region")
930
+ identifier: str = Field(..., alias="identifier")
931
+ name: str = Field(..., alias="name")
932
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
933
+ annotations: Optional[str] = Field(..., alias="annotations")
934
+ records: Optional[list[DnsRecordV1]] = Field(..., alias="records")
935
+
936
+
937
+ class NamespaceTerraformResourceRosaAuthenticatorV1(NamespaceTerraformResourceAWSV1):
938
+ region: Optional[str] = Field(..., alias="region")
939
+ identifier: str = Field(..., alias="identifier")
940
+ api_proxy_uri: str = Field(..., alias="api_proxy_uri")
941
+ cognito_callback_bucket_name: str = Field(..., alias="cognito_callback_bucket_name")
942
+ certificate_arn: str = Field(..., alias="certificate_arn")
943
+ domain_name: str = Field(..., alias="domain_name")
944
+ network_interface_ids: Optional[list[str]] = Field(..., alias="network_interface_ids")
945
+ openshift_ingress_load_balancer_arn: Optional[str] = Field(..., alias="openshift_ingress_load_balancer_arn")
946
+ insights_callback_urls: Optional[list[str]] = Field(..., alias="insights_callback_urls")
947
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
948
+ annotations: Optional[str] = Field(..., alias="annotations")
949
+ vpc_id: str = Field(..., alias="vpc_id")
950
+ subnet_ids: list[str] = Field(..., alias="subnet_ids")
951
+ vpce_id: Optional[str] = Field(..., alias="vpce_id")
952
+ defaults: str = Field(..., alias="defaults")
953
+
954
+
955
+ class NamespaceTerraformResourceRosaAuthenticatorVPCEV1(NamespaceTerraformResourceAWSV1):
956
+ region: Optional[str] = Field(..., alias="region")
957
+ identifier: str = Field(..., alias="identifier")
958
+ subnet_ids: list[str] = Field(..., alias="subnet_ids")
959
+ vpc_id: str = Field(..., alias="vpc_id")
960
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
961
+ annotations: Optional[str] = Field(..., alias="annotations")
962
+ defaults: str = Field(..., alias="defaults")
963
+
964
+
965
+ class MskSecretParametersV1(ConfiguredBaseModel):
966
+ name: str = Field(..., alias="name")
967
+ secret: VaultSecret = Field(..., alias="secret")
968
+
969
+
970
+ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
971
+ region: Optional[str] = Field(..., alias="region")
972
+ identifier: str = Field(..., alias="identifier")
973
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
974
+ defaults: str = Field(..., alias="defaults")
975
+ annotations: Optional[str] = Field(..., alias="annotations")
976
+ users: Optional[list[MskSecretParametersV1]] = Field(..., alias="users")
977
+
978
+
979
+ class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
980
+ provisioner: AWSAccountV1 = Field(..., alias="provisioner")
981
+ resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
982
+
983
+
984
+ class EnvironmentV1(ConfiguredBaseModel):
985
+ name: str = Field(..., alias="name")
986
+
987
+
988
+ class AppV1(ConfiguredBaseModel):
989
+ name: str = Field(..., alias="name")
990
+
991
+
992
+ class ClusterSpecV1(ConfiguredBaseModel):
993
+ region: str = Field(..., alias="region")
994
+
995
+
996
+ class DisableClusterAutomationsV1(ConfiguredBaseModel):
997
+ integrations: Optional[list[str]] = Field(..., alias="integrations")
998
+
999
+
1000
+ class NamespaceV1_ClusterV1(ConfiguredBaseModel):
1001
+ name: str = Field(..., alias="name")
1002
+ server_url: str = Field(..., alias="serverUrl")
1003
+ insecure_skip_tls_verify: Optional[bool] = Field(..., alias="insecureSkipTLSVerify")
1004
+ jump_host: Optional[CommonJumphostFields] = Field(..., alias="jumpHost")
1005
+ automation_token: Optional[VaultSecret] = Field(..., alias="automationToken")
1006
+ cluster_admin_automation_token: Optional[VaultSecret] = Field(..., alias="clusterAdminAutomationToken")
1007
+ spec: Optional[ClusterSpecV1] = Field(..., alias="spec")
1008
+ internal: Optional[bool] = Field(..., alias="internal")
1009
+ disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable")
1010
+
1011
+
1012
+ class NamespaceV1(ConfiguredBaseModel):
1013
+ name: str = Field(..., alias="name")
1014
+ delete: Optional[bool] = Field(..., alias="delete")
1015
+ cluster_admin: Optional[bool] = Field(..., alias="clusterAdmin")
1016
+ managed_external_resources: Optional[bool] = Field(..., alias="managedExternalResources")
1017
+ external_resources: Optional[list[Union[NamespaceTerraformProviderResourceAWSV1, NamespaceExternalResourceV1]]] = Field(..., alias="externalResources")
1018
+ environment: EnvironmentV1 = Field(..., alias="environment")
1019
+ app: AppV1 = Field(..., alias="app")
1020
+ cluster: NamespaceV1_ClusterV1 = Field(..., alias="cluster")
1021
+
1022
+
1023
+ class ExternalResourcesNamespacesQueryData(ConfiguredBaseModel):
1024
+ namespaces: Optional[list[NamespaceV1]] = Field(..., alias="namespaces")
1025
+
1026
+
1027
+ def query(query_func: Callable, **kwargs: Any) -> ExternalResourcesNamespacesQueryData:
1028
+ """
1029
+ This is a convenience function which queries and parses the data into
1030
+ concrete types. It should be compatible with most GQL clients.
1031
+ You do not have to use it to consume the generated data classes.
1032
+ Alternatively, you can also mime and alternate the behavior
1033
+ of this function in the caller.
1034
+
1035
+ Parameters:
1036
+ query_func (Callable): Function which queries your GQL Server
1037
+ kwargs: optional arguments that will be passed to the query function
1038
+
1039
+ Returns:
1040
+ ExternalResourcesNamespacesQueryData: queried data parsed into generated classes
1041
+ """
1042
+ raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
1043
+ return ExternalResourcesNamespacesQueryData(**raw_data)
@@ -0,0 +1,70 @@
1
+ """
2
+ Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
3
+ """
4
+ from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
+ from datetime import datetime # noqa: F401 # pylint: disable=W0611
6
+ from enum import Enum # noqa: F401 # pylint: disable=W0611
7
+ from typing import ( # noqa: F401 # pylint: disable=W0611
8
+ Any,
9
+ Optional,
10
+ Union,
11
+ )
12
+
13
+ from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
+ BaseModel,
15
+ Extra,
16
+ Field,
17
+ Json,
18
+ )
19
+
20
+
21
+ DEFINITION = """
22
+ query ExternalResourcesSettings {
23
+ settings: external_resources_settings_v1 {
24
+ state_dynamodb_table
25
+ state_dynamodb_index
26
+ state_dynamodb_region
27
+ tf_state_bucket
28
+ tf_state_region
29
+ tf_state_dynamodb_table
30
+ }
31
+ }
32
+ """
33
+
34
+
35
+ class ConfiguredBaseModel(BaseModel):
36
+ class Config:
37
+ smart_union=True
38
+ extra=Extra.forbid
39
+
40
+
41
+ class ExternalResourcesSettingsV1(ConfiguredBaseModel):
42
+ state_dynamodb_table: str = Field(..., alias="state_dynamodb_table")
43
+ state_dynamodb_index: str = Field(..., alias="state_dynamodb_index")
44
+ state_dynamodb_region: str = Field(..., alias="state_dynamodb_region")
45
+ tf_state_bucket: Optional[str] = Field(..., alias="tf_state_bucket")
46
+ tf_state_region: Optional[str] = Field(..., alias="tf_state_region")
47
+ tf_state_dynamodb_table: Optional[str] = Field(..., alias="tf_state_dynamodb_table")
48
+
49
+
50
+ class ExternalResourcesSettingsQueryData(ConfiguredBaseModel):
51
+ settings: Optional[list[ExternalResourcesSettingsV1]] = Field(..., alias="settings")
52
+
53
+
54
+ def query(query_func: Callable, **kwargs: Any) -> ExternalResourcesSettingsQueryData:
55
+ """
56
+ This is a convenience function which queries and parses the data into
57
+ concrete types. It should be compatible with most GQL clients.
58
+ You do not have to use it to consume the generated data classes.
59
+ Alternatively, you can also mime and alternate the behavior
60
+ of this function in the caller.
61
+
62
+ Parameters:
63
+ query_func (Callable): Function which queries your GQL Server
64
+ kwargs: optional arguments that will be passed to the query function
65
+
66
+ Returns:
67
+ ExternalResourcesSettingsQueryData: queried data parsed into generated classes
68
+ """
69
+ raw_data: dict[Any, Any] = query_func(DEFINITION, **kwargs)
70
+ return ExternalResourcesSettingsQueryData(**raw_data)
@@ -0,0 +1,47 @@
1
+ from collections.abc import Callable
2
+ from typing import Optional
3
+
4
+ from reconcile.gql_definitions.external_resources.external_resources_modules import (
5
+ ExternalResourcesModuleV1,
6
+ )
7
+ from reconcile.gql_definitions.external_resources.external_resources_modules import (
8
+ query as query_modules,
9
+ )
10
+ from reconcile.gql_definitions.external_resources.external_resources_namespaces import (
11
+ NamespaceV1,
12
+ )
13
+ from reconcile.gql_definitions.external_resources.external_resources_namespaces import (
14
+ query as query_namespaces,
15
+ )
16
+ from reconcile.gql_definitions.external_resources.external_resources_settings import (
17
+ ExternalResourcesSettingsV1,
18
+ )
19
+ from reconcile.gql_definitions.external_resources.external_resources_settings import (
20
+ query as query_settings,
21
+ )
22
+ from reconcile.utils import gql
23
+
24
+
25
+ def get_namespaces(query_func: Optional[Callable] = None) -> list[NamespaceV1]:
26
+ if not query_func:
27
+ query_func = gql.get_api().query
28
+ data = query_namespaces(query_func=query_func)
29
+ return list(data.namespaces or [])
30
+
31
+
32
+ def get_settings(
33
+ query_func: Optional[Callable] = None,
34
+ ) -> list[ExternalResourcesSettingsV1]:
35
+ if not query_func:
36
+ query_func = gql.get_api().query
37
+ data = query_settings(query_func=query_func)
38
+ return list(data.settings or [])
39
+
40
+
41
+ def get_modules(
42
+ query_func: Optional[Callable] = None,
43
+ ) -> list[ExternalResourcesModuleV1]:
44
+ if not query_func:
45
+ query_func = gql.get_api().query
46
+ data = query_modules(query_func=query_func)
47
+ return list(data.modules or [])