python3-core-api-client 8.0__py3-none-any.whl → 8.1__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.
@@ -320,6 +320,10 @@ class CoreApiConnector(CoreApiClient):
320
320
  ) -> resources.security_txt_policies.SecurityTxtPolicies:
321
321
  return resources.security_txt_policies.SecurityTxtPolicies(self)
322
322
 
323
+ @cached_property
324
+ def carbon_txts(self) -> resources.carbon_txts.CarbonTxts:
325
+ return resources.carbon_txts.CarbonTxts(self)
326
+
323
327
  @cached_property
324
328
  def firewall_groups(self) -> resources.firewall_groups.FirewallGroups:
325
329
  return resources.firewall_groups.FirewallGroups(self)
@@ -531,7 +531,7 @@ class DatabaseUserTotalConnectionMetricResource(BaseCoreApiModel):
531
531
  database_user_name: str
532
532
  node_hostname: str
533
533
  timestamp: int
534
- value: int
534
+ value: float
535
535
 
536
536
 
537
537
  class DatabaseUsersMetricsResource(BaseCoreApiModel):
@@ -570,6 +570,7 @@ class DomainRouterUpdateRequest(BaseCoreApiModel):
570
570
  node_id: Optional[int] = None
571
571
  certificate_id: Optional[int] = None
572
572
  security_txt_policy_id: Optional[int] = None
573
+ carbon_txt_id: Optional[int] = None
573
574
  firewall_groups_ids: Optional[List[int]] = None
574
575
  force_ssl: Optional[bool] = None
575
576
  quic_enabled: Optional[bool] = None
@@ -1197,6 +1198,7 @@ class ObjectModelNameEnum(StrEnum):
1197
1198
  TOMBSTONE = "Tombstone"
1198
1199
  MALWARE = "Malware"
1199
1200
  STANDARDS_SCAN = "StandardsScan"
1201
+ CARBON_TXT = "CarbonTxt"
1200
1202
 
1201
1203
 
1202
1204
  class PhpExtensionEnum(StrEnum):
@@ -3291,6 +3293,24 @@ class ClusterUnixUsersPropertiesResource(BaseCoreApiModel):
3291
3293
  includes: ClusterUnixUsersPropertiesIncludes
3292
3294
 
3293
3295
 
3296
+ class ClusterWebhookPropertiesIncludes(BaseCoreApiModel):
3297
+ pass
3298
+
3299
+
3300
+ class ClusterWebhookPropertiesResource(BaseCoreApiModel):
3301
+ id: int
3302
+ created_at: datetime
3303
+ updated_at: datetime
3304
+ callback_url: Optional[AnyUrl]
3305
+ cluster_id: int
3306
+ deployment_status: DeploymentStatusEnum
3307
+ includes: ClusterWebhookPropertiesIncludes
3308
+
3309
+
3310
+ class ClusterWebhookPropertiesUpdateRequest(BaseCoreApiModel):
3311
+ callback_url: Optional[AnyUrl] = None
3312
+
3313
+
3294
3314
  class SpecificationModeEnum(StrEnum):
3295
3315
  SINGLE = "Single"
3296
3316
  OR = "Or"
@@ -3432,6 +3452,10 @@ class BorgRepositoriesSearchRequest(BaseCoreApiModel):
3432
3452
  database_id: Optional[int] = None
3433
3453
 
3434
3454
 
3455
+ class CarbonTxtsSearchRequest(BaseCoreApiModel):
3456
+ cluster_id: Optional[int] = None
3457
+
3458
+
3435
3459
  class CertificatesSearchRequest(BaseCoreApiModel):
3436
3460
  main_common_name: Optional[str] = None
3437
3461
  common_names: Optional[str] = None
@@ -3585,6 +3609,7 @@ class DomainRoutersSearchRequest(BaseCoreApiModel):
3585
3609
  node_id: Optional[int] = None
3586
3610
  certificate_id: Optional[int] = None
3587
3611
  security_txt_policy_id: Optional[int] = None
3612
+ carbon_txt_id: Optional[int] = None
3588
3613
  firewall_group_id: Optional[int] = None
3589
3614
  force_ssl: Optional[bool] = None
3590
3615
  quic_enabled: Optional[bool] = None
@@ -3725,12 +3750,73 @@ class N8nInstanceResource(BaseCoreApiModel):
3725
3750
  includes: N8nInstanceIncludes
3726
3751
 
3727
3752
 
3753
+ class CarbonTxtDisclosureDocTypeEnum(StrEnum):
3754
+ WEB_PAGE = "web-page"
3755
+ ANNUAL_REPORT = "annual-report"
3756
+ SUSTAINABILITY_PAGE = "sustainability-page"
3757
+ CERTIFICATE = "certificate"
3758
+ CSRD_REPORT = "csrd-report"
3759
+ AI_MODEL_CARD = "ai-model-card"
3760
+ OTHER = "other"
3761
+
3762
+
3763
+ class CarbonTxtDisclosure(BaseCoreApiModel):
3764
+ doc_type: CarbonTxtDisclosureDocTypeEnum
3765
+ url: AnyUrl
3766
+ valid_until: Optional[datetime] = None
3767
+ title: Optional[constr(min_length=1, max_length=255)] = None
3768
+
3769
+
3770
+ class CarbonTxtUpstreamService(BaseCoreApiModel):
3771
+ domain: constr(min_length=1, max_length=255)
3772
+ service_type: Union[str, List[str]]
3773
+
3774
+
3775
+ class CarbonTxtCreateRequest(BaseCoreApiModel):
3776
+ cluster_id: int
3777
+ name: constr(pattern=r"^[a-zA-Z0-9-_ ]+$", min_length=1, max_length=32)
3778
+ is_default: bool
3779
+ disclosures: List[CarbonTxtDisclosure] = Field(
3780
+ [],
3781
+ )
3782
+ upstream_services: List[CarbonTxtUpstreamService] = Field(
3783
+ [],
3784
+ )
3785
+
3786
+
3787
+ class CarbonTxtUpdateRequest(BaseCoreApiModel):
3788
+ name: Optional[
3789
+ constr(pattern=r"^[a-zA-Z0-9-_ ]+$", min_length=1, max_length=32)
3790
+ ] = None
3791
+ disclosures: Optional[List[CarbonTxtDisclosure]] = None
3792
+ upstream_services: Optional[List[CarbonTxtUpstreamService]] = None
3793
+ is_default: Optional[bool] = None
3794
+
3795
+
3796
+ class CarbonTxtIncludes(BaseCoreApiModel):
3797
+ cluster: Optional[ClusterResource]
3798
+
3799
+
3800
+ class CarbonTxtResource(BaseCoreApiModel):
3801
+ id: int
3802
+ created_at: datetime
3803
+ updated_at: datetime
3804
+ cluster_id: int
3805
+ name: constr(pattern=r"^[a-zA-Z0-9-_ ]+$", min_length=1, max_length=32)
3806
+ disclosures: List[CarbonTxtDisclosure]
3807
+ upstream_services: List[CarbonTxtUpstreamService]
3808
+ is_default: bool
3809
+ deployment_status: DeploymentStatusEnum
3810
+ includes: CarbonTxtIncludes
3811
+
3812
+
3728
3813
  class DomainRouterIncludes(BaseCoreApiModel):
3729
3814
  virtual_host: Optional[VirtualHostResource]
3730
3815
  url_redirect: Optional[UrlRedirectResource]
3731
3816
  node: Optional[NodeResource]
3732
3817
  certificate: Optional[CertificateResource]
3733
3818
  security_txt_policy: Optional[SecurityTxtPolicyResource]
3819
+ carbon_txt: Optional[CarbonTxtResource]
3734
3820
  n8n_instance: Optional[N8nInstanceResource]
3735
3821
  cluster: Optional[ClusterResource]
3736
3822
 
@@ -3748,6 +3834,7 @@ class DomainRouterResource(BaseCoreApiModel):
3748
3834
  node_id: Optional[int]
3749
3835
  certificate_id: Optional[int]
3750
3836
  security_txt_policy_id: Optional[int]
3837
+ carbon_txt_id: Optional[int]
3751
3838
  firewall_groups_ids: Optional[List[int]]
3752
3839
  force_ssl: bool
3753
3840
  quic_enabled: bool
@@ -3885,6 +3972,10 @@ class ClustersUnixUsersPropertiesSearchRequest(BaseCoreApiModel):
3885
3972
  cluster_id: Optional[int] = None
3886
3973
 
3887
3974
 
3975
+ class ClustersWebhookPropertiesSearchRequest(BaseCoreApiModel):
3976
+ cluster_id: Optional[int] = None
3977
+
3978
+
3888
3979
  class CustomConfigSnippetsSearchRequest(BaseCoreApiModel):
3889
3980
  name: Optional[str] = None
3890
3981
  server_software_name: Optional[VirtualHostServerSoftwareNameEnum] = None
@@ -39,6 +39,7 @@ from . import (
39
39
  hosts_entries,
40
40
  database_users,
41
41
  security_txt_policies,
42
+ carbon_txts,
42
43
  customers,
43
44
  basic_authentication_realms,
44
45
  root_ssh_keys,
@@ -91,6 +92,7 @@ __all__ = [
91
92
  "n8n_instances",
92
93
  "root_ssh_keys",
93
94
  "security_txt_policies",
95
+ "carbon_txts",
94
96
  "regions",
95
97
  "ssh_keys",
96
98
  "standards_scans",
@@ -0,0 +1,83 @@
1
+ from cyberfusion.CoreApiClient import models
2
+ from cyberfusion.CoreApiClient.interfaces import Resource
3
+ from cyberfusion.CoreApiClient._helpers import construct_includes_query_parameter
4
+ from cyberfusion.CoreApiClient.http import DtoResponse
5
+
6
+
7
+ class CarbonTxts(Resource):
8
+ def create_carbon_txt_policy(
9
+ self,
10
+ request: models.CarbonTxtCreateRequest,
11
+ ) -> DtoResponse[models.CarbonTxtResource]:
12
+ local_response = self.api_connector.send_or_fail(
13
+ "POST",
14
+ "/api/v1/carbon-txts",
15
+ data=request.model_dump(exclude_unset=True),
16
+ query_parameters={},
17
+ )
18
+
19
+ return DtoResponse.from_responses(local_response, models.CarbonTxtResource)
20
+
21
+ def list_carbon_txt_policies(
22
+ self,
23
+ *,
24
+ include_filters: models.CarbonTxtsSearchRequest | None = None,
25
+ includes: list[str] | None = None,
26
+ ) -> DtoResponse[list[models.CarbonTxtResource]]:
27
+ local_responses = self.api_connector.send_or_fail_with_auto_pagination(
28
+ "GET",
29
+ "/api/v1/carbon-txts",
30
+ data=None,
31
+ query_parameters=(
32
+ include_filters.model_dump(exclude_unset=True)
33
+ if include_filters
34
+ else {}
35
+ )
36
+ | construct_includes_query_parameter(includes),
37
+ )
38
+
39
+ return DtoResponse.from_responses(local_responses, models.CarbonTxtResource)
40
+
41
+ def read_carbon_txt_policy(
42
+ self,
43
+ *,
44
+ id_: int,
45
+ includes: list[str] | None = None,
46
+ ) -> DtoResponse[models.CarbonTxtResource]:
47
+ local_response = self.api_connector.send_or_fail(
48
+ "GET",
49
+ f"/api/v1/carbon-txts/{id_}",
50
+ data=None,
51
+ query_parameters=construct_includes_query_parameter(includes),
52
+ )
53
+
54
+ return DtoResponse.from_responses(local_response, models.CarbonTxtResource)
55
+
56
+ def update_carbon_txt_policy(
57
+ self,
58
+ request: models.CarbonTxtUpdateRequest,
59
+ *,
60
+ id_: int,
61
+ ) -> DtoResponse[models.CarbonTxtResource]:
62
+ local_response = self.api_connector.send_or_fail(
63
+ "PATCH",
64
+ f"/api/v1/carbon-txts/{id_}",
65
+ data=request.model_dump(exclude_unset=True),
66
+ query_parameters={},
67
+ )
68
+
69
+ return DtoResponse.from_responses(local_response, models.CarbonTxtResource)
70
+
71
+ def delete_carbon_txt_policy(
72
+ self,
73
+ *,
74
+ id_: int,
75
+ ) -> DtoResponse[models.DetailMessage]:
76
+ local_response = self.api_connector.send_or_fail(
77
+ "DELETE",
78
+ f"/api/v1/carbon-txts/{id_}",
79
+ data=None,
80
+ query_parameters={},
81
+ )
82
+
83
+ return DtoResponse.from_responses(local_response, models.DetailMessage)
@@ -482,6 +482,20 @@ class Clusters(Resource):
482
482
  local_response, models.ClusterUnixUsersPropertiesResource
483
483
  )
484
484
 
485
+ def read_webhook_properties(
486
+ self, *, id_: int, includes: list[str] | None = None
487
+ ) -> DtoResponse[models.ClusterWebhookPropertiesResource]:
488
+ local_response = self.api_connector.send_or_fail(
489
+ "GET",
490
+ f"/api/v1/clusters/{id_}/properties/webhook",
491
+ data=None,
492
+ query_parameters=construct_includes_query_parameter(includes),
493
+ )
494
+
495
+ return DtoResponse.from_responses(
496
+ local_response, models.ClusterWebhookPropertiesResource
497
+ )
498
+
485
499
  def create_borg_properties(
486
500
  self,
487
501
  request: models.ClusterBorgPropertiesCreateRequest,
@@ -1154,6 +1168,28 @@ class Clusters(Resource):
1154
1168
  local_responses, models.ClusterUnixUsersPropertiesResource
1155
1169
  )
1156
1170
 
1171
+ def list_webhook_properties(
1172
+ self,
1173
+ *,
1174
+ include_filters: models.ClustersWebhookPropertiesSearchRequest | None = None,
1175
+ includes: list[str] | None = None,
1176
+ ) -> DtoResponse[list[models.ClusterWebhookPropertiesResource]]:
1177
+ local_responses = self.api_connector.send_or_fail_with_auto_pagination(
1178
+ "GET",
1179
+ "/api/v1/clusters/properties/webhook",
1180
+ data=None,
1181
+ query_parameters=(
1182
+ include_filters.model_dump(exclude_unset=True)
1183
+ if include_filters
1184
+ else {}
1185
+ )
1186
+ | construct_includes_query_parameter(includes),
1187
+ )
1188
+
1189
+ return DtoResponse.from_responses(
1190
+ local_responses, models.ClusterWebhookPropertiesResource
1191
+ )
1192
+
1157
1193
  def update_borg_properties(
1158
1194
  self,
1159
1195
  request: models.ClusterBorgPropertiesUpdateRequest,
@@ -1443,6 +1479,35 @@ class Clusters(Resource):
1443
1479
  local_response, models.ClusterRabbitmqPropertiesResource
1444
1480
  )
1445
1481
 
1482
+ def update_webhook_properties(
1483
+ self,
1484
+ request: models.ClusterWebhookPropertiesUpdateRequest,
1485
+ *,
1486
+ id_: int,
1487
+ ) -> DtoResponse[models.ClusterWebhookPropertiesResource]:
1488
+ local_response = self.api_connector.send_or_fail(
1489
+ "PATCH",
1490
+ f"/api/v1/clusters/{id_}/properties/webhook",
1491
+ data=request.model_dump(exclude_unset=True),
1492
+ query_parameters={},
1493
+ )
1494
+
1495
+ return DtoResponse.from_responses(
1496
+ local_response, models.ClusterWebhookPropertiesResource
1497
+ )
1498
+
1499
+ def read_current_deployment_task_collection(
1500
+ self, *, id_: int, includes: list[str] | None = None
1501
+ ) -> DtoResponse[models.TaskCollectionResource]:
1502
+ local_response = self.api_connector.send_or_fail(
1503
+ "GET",
1504
+ f"/api/v1/clusters/{id_}/deployments/current/task-collection",
1505
+ data=None,
1506
+ query_parameters=construct_includes_query_parameter(includes),
1507
+ )
1508
+
1509
+ return DtoResponse.from_responses(local_response, models.TaskCollectionResource)
1510
+
1446
1511
  def read_daemons_metrics_experimental(
1447
1512
  self,
1448
1513
  *,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-core-api-client
3
- Version: 8.0
3
+ Version: 8.1
4
4
  Summary: Python client for Core API.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-core-api-client
@@ -13,7 +13,7 @@ Requires-Dist: pydantic[email]==2.12.5
13
13
 
14
14
  Python client for Core API.
15
15
 
16
- This client was built for and tested on the **1.273.0** version of the API.
16
+ This client was built for and tested on the **1.276.0** version of the API.
17
17
 
18
18
  ## Support
19
19
 
@@ -1,19 +1,20 @@
1
1
  cyberfusion/CoreApiClient/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cyberfusion/CoreApiClient/_encoders.py,sha256=Cf52zbE5vs4WYXRNvFPt9bBo4TV-pOyCLa1IImYnaJU,467
3
3
  cyberfusion/CoreApiClient/_helpers.py,sha256=QZ5OsQB_THFyKOyplR3bbdnVI1YlieiQF2imMOzc5So,241
4
- cyberfusion/CoreApiClient/connector.py,sha256=SLwDSa3fjLJnGx4FUNTvsm5Yt2wBeslMe6fl6FDlQkc,13997
4
+ cyberfusion/CoreApiClient/connector.py,sha256=mk_yA3xF4g13yAhXXSvKqFUfd2Z_5ObqIDaSRB371hg,14136
5
5
  cyberfusion/CoreApiClient/exceptions.py,sha256=fNxPtzVL4SzPiVNZmBTu1l8D57dkCxMxflyIXDPLE4Q,204
6
6
  cyberfusion/CoreApiClient/http.py,sha256=I0eNtlqZ1cvhDCL7nJUCUxnV0MmLckNnZoMLj4ot-bk,1577
7
7
  cyberfusion/CoreApiClient/interfaces.py,sha256=P0wCbmSNEpB-eF49PHudc_qXM4blIXm4TsD2AB0z_7Q,269
8
- cyberfusion/CoreApiClient/models.py,sha256=cKhwMPMDBBnQSBfpk-SotailzYpp9GNA2xNZYQbFqP0,120869
9
- cyberfusion/CoreApiClient/resources/__init__.py,sha256=Y2MlLaTGVoqy0uDCZTUZdTML2KniON-rfb3nSzs2RRQ,1985
8
+ cyberfusion/CoreApiClient/models.py,sha256=PSn4650XsdsGN9eWjT2COR0XIKAi4Y6WS1eqLriiocc,123453
9
+ cyberfusion/CoreApiClient/resources/__init__.py,sha256=_252fCPmmkruW5pvog_wDCNuRvmAqu2T6oGkpi2jAZA,2021
10
10
  cyberfusion/CoreApiClient/resources/available_versions.py,sha256=vzsTL0j5oaG84_5crC29N3gCMnRvw49qMXuEwpywUCk,1838
11
11
  cyberfusion/CoreApiClient/resources/basic_authentication_realms.py,sha256=XRkECp58sdER3be7z7GON-GO9-zvVk2L1MzeJAdNoDY,3176
12
12
  cyberfusion/CoreApiClient/resources/borg_archives.py,sha256=asHM1dYVEFOB17EzhM7rF39uHAq2FZ5veMJLcsVsHLA,4130
13
13
  cyberfusion/CoreApiClient/resources/borg_repositories.py,sha256=QgOTJBqB3R1Nvi-7thi-CgYIMuGrgJQAzx1MPrfM-yI,4373
14
+ cyberfusion/CoreApiClient/resources/carbon_txts.py,sha256=-BP10iGqe5tKYNl-dXlWOJQt8DXvNJsVyS-S7qUD-aI,2770
14
15
  cyberfusion/CoreApiClient/resources/certificate_managers.py,sha256=U6mfeBRg4d5Hza1QcXkgWqNYakiT_dHp_L_I41tHEeQ,3440
15
16
  cyberfusion/CoreApiClient/resources/certificates.py,sha256=5MPfeMu6Wdvawz7l5EwPjm2kDdACA5PvASbRBzKeJWE,2251
16
- cyberfusion/CoreApiClient/resources/clusters.py,sha256=0Rlbm4nGhGMTz-pj-ROfIcKyt__98nRpqaGpkWWpCXM,51732
17
+ cyberfusion/CoreApiClient/resources/clusters.py,sha256=d8VrERL64W4crGSm9sykpfCJs5gSy9K34mq47Ho3YIU,54123
17
18
  cyberfusion/CoreApiClient/resources/cmses.py,sha256=G28flYuBmF1LN2cTJgkP3pWTy3DQquRGPUXaLA2LQlE,12096
18
19
  cyberfusion/CoreApiClient/resources/crons.py,sha256=NmWdqk6cArOjpw88JmsIB6l9PdEUGbmTd2kS-xuF6wY,2578
19
20
  cyberfusion/CoreApiClient/resources/custom_config_snippets.py,sha256=EZgPGsd9sjeBfEE2kobhvMf79N4stQAzAaIxHroS1UI,3185
@@ -56,7 +57,7 @@ cyberfusion/CoreApiClient/resources/task_collections.py,sha256=XmJ2JqssmWRxl5t_m
56
57
  cyberfusion/CoreApiClient/resources/unix_users.py,sha256=dJknxliUJpWaKzrZgRhZvnuTRgnC-25vXt1asUPDxmc,4092
57
58
  cyberfusion/CoreApiClient/resources/url_redirects.py,sha256=S113S_8-Xzy040Lt67AetenB-Cjsnyg34prDnr5yf84,2741
58
59
  cyberfusion/CoreApiClient/resources/virtual_hosts.py,sha256=mIFeF17_XJtQKkIDXJfrOFQ9M-uOifBKGRIytOnGjNk,5392
59
- python3_core_api_client-8.0.dist-info/METADATA,sha256=jK-HQOOvskZCdoFxs22Ucj9hrkauzU3mmyeobE7E7FE,8593
60
- python3_core_api_client-8.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
61
- python3_core_api_client-8.0.dist-info/top_level.txt,sha256=ss011q9S6SL_KIIyq7iujFmIYa0grSjlnInO7cDkeag,12
62
- python3_core_api_client-8.0.dist-info/RECORD,,
60
+ python3_core_api_client-8.1.dist-info/METADATA,sha256=3Eg-1oN31lXK0rExUwa1aezGszdxkYq57zqS9hUxF_8,8593
61
+ python3_core_api_client-8.1.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
62
+ python3_core_api_client-8.1.dist-info/top_level.txt,sha256=ss011q9S6SL_KIIyq7iujFmIYa0grSjlnInO7cDkeag,12
63
+ python3_core_api_client-8.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (82.0.1)
2
+ Generator: setuptools (83.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5