stackit-dns 0.7.0__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/PKG-INFO +2 -2
  2. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/pyproject.toml +1 -1
  3. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/__init__.py +4 -0
  4. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/api/default_api.py +30 -0
  5. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/__init__.py +1 -0
  6. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/create_label_payload.py +1 -1
  7. stackit_dns-0.9.0/src/stackit/dns/models/create_move_code_payload.py +86 -0
  8. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/create_zone_payload.py +2 -1
  9. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/domain_observability_extension.py +11 -1
  10. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/label.py +1 -1
  11. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/partial_update_zone_payload.py +2 -1
  12. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_observability_extension.py +2 -5
  13. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/.gitignore +0 -0
  14. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/LICENSE.md +0 -0
  15. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/NOTICE.txt +0 -0
  16. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/README.md +0 -0
  17. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/api/__init__.py +0 -0
  18. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/api_client.py +0 -0
  19. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/api_response.py +0 -0
  20. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/configuration.py +0 -0
  21. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/exceptions.py +0 -0
  22. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/clone_zone_payload.py +0 -0
  23. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/create_label_response.py +0 -0
  24. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/create_record_set_payload.py +0 -0
  25. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/delete_label_response.py +0 -0
  26. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/domain_extensions.py +0 -0
  27. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/error_message.py +0 -0
  28. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/export_record_sets_payload.py +0 -0
  29. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/import_record_sets_payload.py +0 -0
  30. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/import_record_sets_response.py +0 -0
  31. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/import_summary.py +0 -0
  32. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/list_labels_response.py +0 -0
  33. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/list_record_sets_response.py +0 -0
  34. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/list_zones_response.py +0 -0
  35. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/message.py +0 -0
  36. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/move_code_response.py +0 -0
  37. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/move_zone_payload.py +0 -0
  38. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/partial_update_record_payload.py +0 -0
  39. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/partial_update_record_set_payload.py +0 -0
  40. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/record.py +0 -0
  41. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/record_data_exchange.py +0 -0
  42. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/record_payload.py +0 -0
  43. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/record_set.py +0 -0
  44. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/record_set_response.py +0 -0
  45. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/validate_move_code_payload.py +0 -0
  46. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone.py +0 -0
  47. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_data_exchange.py +0 -0
  48. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_extensions.py +0 -0
  49. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_models_import_record_model.py +0 -0
  50. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_models_import_zone_json.py +0 -0
  51. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/models/zone_response.py +0 -0
  52. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/py.typed +0 -0
  53. {stackit_dns-0.7.0 → stackit_dns-0.9.0}/src/stackit/dns/rest.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: stackit-dns
3
- Version: 0.7.0
3
+ Version: 0.9.0
4
4
  Summary: STACKIT DNS API
5
5
  Project-URL: Homepage, https://github.com/stackitcloud/stackit-sdk-python
6
6
  Project-URL: Issues, https://github.com/stackitcloud/stackit-sdk-python/issues
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "stackit-dns"
3
- version = "v0.7.0"
3
+ version = "v0.9.0"
4
4
  description = "STACKIT DNS API"
5
5
  authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
6
6
  requires-python = ">=3.10,<4.0"
@@ -31,6 +31,7 @@ __all__ = [
31
31
  "CloneZonePayload",
32
32
  "CreateLabelPayload",
33
33
  "CreateLabelResponse",
34
+ "CreateMoveCodePayload",
34
35
  "CreateRecordSetPayload",
35
36
  "CreateZonePayload",
36
37
  "DeleteLabelResponse",
@@ -88,6 +89,9 @@ from stackit.dns.models.create_label_payload import (
88
89
  from stackit.dns.models.create_label_response import (
89
90
  CreateLabelResponse as CreateLabelResponse,
90
91
  )
92
+ from stackit.dns.models.create_move_code_payload import (
93
+ CreateMoveCodePayload as CreateMoveCodePayload,
94
+ )
91
95
  from stackit.dns.models.create_record_set_payload import (
92
96
  CreateRecordSetPayload as CreateRecordSetPayload,
93
97
  )
@@ -30,6 +30,7 @@ from stackit.dns.api_response import ApiResponse
30
30
  from stackit.dns.models.clone_zone_payload import CloneZonePayload
31
31
  from stackit.dns.models.create_label_payload import CreateLabelPayload
32
32
  from stackit.dns.models.create_label_response import CreateLabelResponse
33
+ from stackit.dns.models.create_move_code_payload import CreateMoveCodePayload
33
34
  from stackit.dns.models.create_record_set_payload import CreateRecordSetPayload
34
35
  from stackit.dns.models.create_zone_payload import CreateZonePayload
35
36
  from stackit.dns.models.delete_label_response import DeleteLabelResponse
@@ -627,6 +628,9 @@ class DefaultApi:
627
628
  self,
628
629
  project_id: Annotated[StrictStr, Field(description="project id")],
629
630
  zone_id: Annotated[StrictStr, Field(description="zone id")],
631
+ create_move_code_payload: Annotated[
632
+ Optional[CreateMoveCodePayload], Field(description="information about the movecode")
633
+ ] = None,
630
634
  _request_timeout: Union[
631
635
  None,
632
636
  Annotated[StrictFloat, Field(gt=0)],
@@ -645,6 +649,8 @@ class DefaultApi:
645
649
  :type project_id: str
646
650
  :param zone_id: zone id (required)
647
651
  :type zone_id: str
652
+ :param create_move_code_payload: information about the movecode
653
+ :type create_move_code_payload: CreateMoveCodePayload
648
654
  :param _request_timeout: timeout setting for this request. If one
649
655
  number provided, it will be total request
650
656
  timeout. It can also be a pair (tuple) of
@@ -670,6 +676,7 @@ class DefaultApi:
670
676
  _param = self._create_move_code_serialize(
671
677
  project_id=project_id,
672
678
  zone_id=zone_id,
679
+ create_move_code_payload=create_move_code_payload,
673
680
  _request_auth=_request_auth,
674
681
  _content_type=_content_type,
675
682
  _headers=_headers,
@@ -695,6 +702,9 @@ class DefaultApi:
695
702
  self,
696
703
  project_id: Annotated[StrictStr, Field(description="project id")],
697
704
  zone_id: Annotated[StrictStr, Field(description="zone id")],
705
+ create_move_code_payload: Annotated[
706
+ Optional[CreateMoveCodePayload], Field(description="information about the movecode")
707
+ ] = None,
698
708
  _request_timeout: Union[
699
709
  None,
700
710
  Annotated[StrictFloat, Field(gt=0)],
@@ -713,6 +723,8 @@ class DefaultApi:
713
723
  :type project_id: str
714
724
  :param zone_id: zone id (required)
715
725
  :type zone_id: str
726
+ :param create_move_code_payload: information about the movecode
727
+ :type create_move_code_payload: CreateMoveCodePayload
716
728
  :param _request_timeout: timeout setting for this request. If one
717
729
  number provided, it will be total request
718
730
  timeout. It can also be a pair (tuple) of
@@ -738,6 +750,7 @@ class DefaultApi:
738
750
  _param = self._create_move_code_serialize(
739
751
  project_id=project_id,
740
752
  zone_id=zone_id,
753
+ create_move_code_payload=create_move_code_payload,
741
754
  _request_auth=_request_auth,
742
755
  _content_type=_content_type,
743
756
  _headers=_headers,
@@ -763,6 +776,9 @@ class DefaultApi:
763
776
  self,
764
777
  project_id: Annotated[StrictStr, Field(description="project id")],
765
778
  zone_id: Annotated[StrictStr, Field(description="zone id")],
779
+ create_move_code_payload: Annotated[
780
+ Optional[CreateMoveCodePayload], Field(description="information about the movecode")
781
+ ] = None,
766
782
  _request_timeout: Union[
767
783
  None,
768
784
  Annotated[StrictFloat, Field(gt=0)],
@@ -781,6 +797,8 @@ class DefaultApi:
781
797
  :type project_id: str
782
798
  :param zone_id: zone id (required)
783
799
  :type zone_id: str
800
+ :param create_move_code_payload: information about the movecode
801
+ :type create_move_code_payload: CreateMoveCodePayload
784
802
  :param _request_timeout: timeout setting for this request. If one
785
803
  number provided, it will be total request
786
804
  timeout. It can also be a pair (tuple) of
@@ -806,6 +824,7 @@ class DefaultApi:
806
824
  _param = self._create_move_code_serialize(
807
825
  project_id=project_id,
808
826
  zone_id=zone_id,
827
+ create_move_code_payload=create_move_code_payload,
809
828
  _request_auth=_request_auth,
810
829
  _content_type=_content_type,
811
830
  _headers=_headers,
@@ -826,6 +845,7 @@ class DefaultApi:
826
845
  self,
827
846
  project_id,
828
847
  zone_id,
848
+ create_move_code_payload,
829
849
  _request_auth,
830
850
  _content_type,
831
851
  _headers,
@@ -852,11 +872,21 @@ class DefaultApi:
852
872
  # process the header parameters
853
873
  # process the form parameters
854
874
  # process the body parameter
875
+ if create_move_code_payload is not None:
876
+ _body_params = create_move_code_payload
855
877
 
856
878
  # set the HTTP header `Accept`
857
879
  if "Accept" not in _header_params:
858
880
  _header_params["Accept"] = self.api_client.select_header_accept(["application/json"])
859
881
 
882
+ # set the HTTP header `Content-Type`
883
+ if _content_type:
884
+ _header_params["Content-Type"] = _content_type
885
+ else:
886
+ _default_content_type = self.api_client.select_header_content_type(["application/json"])
887
+ if _default_content_type is not None:
888
+ _header_params["Content-Type"] = _default_content_type
889
+
860
890
  # authentication setting
861
891
  _auth_settings: List[str] = []
862
892
 
@@ -17,6 +17,7 @@ Do not edit the class manually.
17
17
  from stackit.dns.models.clone_zone_payload import CloneZonePayload
18
18
  from stackit.dns.models.create_label_payload import CreateLabelPayload
19
19
  from stackit.dns.models.create_label_response import CreateLabelResponse
20
+ from stackit.dns.models.create_move_code_payload import CreateMoveCodePayload
20
21
  from stackit.dns.models.create_record_set_payload import CreateRecordSetPayload
21
22
  from stackit.dns.models.create_zone_payload import CreateZonePayload
22
23
  from stackit.dns.models.delete_label_response import DeleteLabelResponse
@@ -29,7 +29,7 @@ class CreateLabelPayload(BaseModel):
29
29
  """ # noqa: E501
30
30
 
31
31
  key: Annotated[str, Field(min_length=1, strict=True, max_length=63)]
32
- value: Annotated[str, Field(min_length=1, strict=True, max_length=63)]
32
+ value: Optional[Annotated[str, Field(strict=True, max_length=63)]] = None
33
33
  __properties: ClassVar[List[str]] = ["key", "value"]
34
34
 
35
35
  model_config = ConfigDict(
@@ -0,0 +1,86 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ STACKIT DNS API
5
+
6
+ This api provides dns
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Contact: dns@stackit.cloud
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+ from __future__ import annotations
16
+
17
+ import json
18
+ import pprint
19
+ from typing import Any, ClassVar, Dict, List, Optional, Set
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field
22
+ from pydantic_core import to_jsonable_python
23
+ from typing_extensions import Annotated, Self
24
+
25
+
26
+ class CreateMoveCodePayload(BaseModel):
27
+ """
28
+ options for generating a move code.
29
+ """ # noqa: E501
30
+
31
+ ttl: Optional[Annotated[int, Field(le=2592000, strict=True, ge=1)]] = Field(
32
+ default=None,
33
+ description="TTL is the duration for which the move code is valid, represented as seconds. Min: 1, Max: 2592000 (30 days).",
34
+ )
35
+ __properties: ClassVar[List[str]] = ["ttl"]
36
+
37
+ model_config = ConfigDict(
38
+ validate_by_name=True,
39
+ validate_by_alias=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(to_jsonable_python(self.to_dict()))
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> Optional[Self]:
54
+ """Create an instance of CreateMoveCodePayload from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ """Return the dictionary representation of the model using alias.
59
+
60
+ This has the following differences from calling pydantic's
61
+ `self.model_dump(by_alias=True)`:
62
+
63
+ * `None` is only added to the output dict for nullable fields that
64
+ were set at model initialization. Other fields with value `None`
65
+ are ignored.
66
+ """
67
+ excluded_fields: Set[str] = set([])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of CreateMoveCodePayload from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({"ttl": obj.get("ttl")})
86
+ return _obj
@@ -38,7 +38,8 @@ class CreateZonePayload(BaseModel):
38
38
  """ # noqa: E501
39
39
 
40
40
  acl: Optional[Annotated[str, Field(strict=True, max_length=2000)]] = Field(
41
- default="0.0.0.0/0,::/0", description="access control list"
41
+ default="0.0.0.0/0,::/0",
42
+ description="the access control list (note: this field currently has no effect and does not enforce any access restrictions on the DNS zone)",
42
43
  )
43
44
  contact_email: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(
44
45
  default="hostmaster@stackit.cloud", description="contact e-mail for the zone", alias="contactEmail"
@@ -18,7 +18,7 @@ import json
18
18
  import pprint
19
19
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
22
  from pydantic_core import to_jsonable_python
23
23
  from typing_extensions import Self
24
24
 
@@ -32,6 +32,16 @@ class DomainObservabilityExtension(BaseModel):
32
32
  state: Optional[StrictStr] = None
33
33
  __properties: ClassVar[List[str]] = ["observabilityInstanceId", "state"]
34
34
 
35
+ @field_validator("state")
36
+ def state_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value is None:
39
+ return value
40
+
41
+ if value not in set(["CREATING", "CREATE_SUCCEEDED", "ERROR"]):
42
+ raise ValueError("must be one of enum values ('CREATING', 'CREATE_SUCCEEDED', 'ERROR')")
43
+ return value
44
+
35
45
  model_config = ConfigDict(
36
46
  validate_by_name=True,
37
47
  validate_by_alias=True,
@@ -29,7 +29,7 @@ class Label(BaseModel):
29
29
  """ # noqa: E501
30
30
 
31
31
  key: Annotated[str, Field(min_length=1, strict=True, max_length=63)]
32
- value: Annotated[str, Field(min_length=1, strict=True, max_length=63)]
32
+ value: Optional[Annotated[str, Field(strict=True, max_length=63)]] = None
33
33
  __properties: ClassVar[List[str]] = ["key", "value"]
34
34
 
35
35
  model_config = ConfigDict(
@@ -31,7 +31,8 @@ class PartialUpdateZonePayload(BaseModel):
31
31
  """ # noqa: E501
32
32
 
33
33
  acl: Optional[Annotated[str, Field(strict=True, max_length=2000)]] = Field(
34
- default="0.0.0.0/0,::/0", description="access control list"
34
+ default="0.0.0.0/0,::/0",
35
+ description="the access control list (note: this field currently has no effect and does not enforce any access restrictions on the DNS zone)",
35
36
  )
36
37
  contact_email: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(
37
38
  default="hostmaster@stackit.cloud", description="contact e-mail for the zone", alias="contactEmail"
@@ -29,8 +29,7 @@ class ZoneObservabilityExtension(BaseModel):
29
29
  """ # noqa: E501
30
30
 
31
31
  observability_instance_id: StrictStr = Field(alias="observabilityInstanceId")
32
- state: Optional[StrictStr] = None
33
- __properties: ClassVar[List[str]] = ["observabilityInstanceId", "state"]
32
+ __properties: ClassVar[List[str]] = ["observabilityInstanceId"]
34
33
 
35
34
  model_config = ConfigDict(
36
35
  validate_by_name=True,
@@ -80,7 +79,5 @@ class ZoneObservabilityExtension(BaseModel):
80
79
  if not isinstance(obj, dict):
81
80
  return cls.model_validate(obj)
82
81
 
83
- _obj = cls.model_validate(
84
- {"observabilityInstanceId": obj.get("observabilityInstanceId"), "state": obj.get("state")}
85
- )
82
+ _obj = cls.model_validate({"observabilityInstanceId": obj.get("observabilityInstanceId")})
86
83
  return _obj
File without changes
File without changes
File without changes
File without changes