stackit-postgresflex 1.6.0__tar.gz → 1.6.1__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 (77) hide show
  1. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/PKG-INFO +1 -1
  2. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/pyproject.toml +1 -1
  3. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_database_payload.py +16 -3
  4. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/database_roles.py +16 -3
  5. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/get_database_response.py +16 -3
  6. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_network_access_scope.py +1 -1
  7. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_database.py +16 -3
  8. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/partial_update_database_payload.py +20 -3
  9. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_database_payload.py +16 -3
  10. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/.gitignore +0 -0
  11. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/LICENSE.md +0 -0
  12. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/NOTICE.txt +0 -0
  13. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/README.md +0 -0
  14. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/__init__.py +0 -0
  15. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/api/__init__.py +0 -0
  16. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/api/default_api.py +0 -0
  17. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/api_client.py +0 -0
  18. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/api_response.py +0 -0
  19. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/configuration.py +0 -0
  20. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/exceptions.py +0 -0
  21. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/__init__.py +0 -0
  22. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/backup_data.py +0 -0
  23. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/backup_sort.py +0 -0
  24. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/clone_instance_overrides.py +0 -0
  25. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/clone_instance_payload.py +0 -0
  26. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/clone_instance_response.py +0 -0
  27. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_database_response.py +0 -0
  28. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_instance_payload.py +0 -0
  29. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_instance_response.py +0 -0
  30. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_user_payload.py +0 -0
  31. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/create_user_response.py +0 -0
  32. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/database_sort.py +0 -0
  33. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/error.py +0 -0
  34. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/flavor_sort.py +0 -0
  35. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/flavor_storage_classes_storage_class.py +0 -0
  36. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/get_instance_response.py +0 -0
  37. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/get_user_response.py +0 -0
  38. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_connection_info.py +0 -0
  39. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_connection_info_write.py +0 -0
  40. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_encryption.py +0 -0
  41. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_network.py +0 -0
  42. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_network_create.py +0 -0
  43. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_network_opt.py +0 -0
  44. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_network_update.py +0 -0
  45. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_sort.py +0 -0
  46. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/instance_storage_range.py +0 -0
  47. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_backups_response.py +0 -0
  48. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_collations_response.py +0 -0
  49. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_databases_response.py +0 -0
  50. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_flavors.py +0 -0
  51. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_flavors_response.py +0 -0
  52. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_instance.py +0 -0
  53. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_instances_response.py +0 -0
  54. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_roles_response.py +0 -0
  55. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_user.py +0 -0
  56. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_users_response.py +0 -0
  57. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/list_versions_response.py +0 -0
  58. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/pagination.py +0 -0
  59. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/partial_update_instance_payload.py +0 -0
  60. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/partial_update_user_payload.py +0 -0
  61. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/reset_user_password_response.py +0 -0
  62. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/state.py +0 -0
  63. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/storage.py +0 -0
  64. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/storage_create.py +0 -0
  65. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/storage_update.py +0 -0
  66. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_database_partially_response.py +0 -0
  67. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_database_response.py +0 -0
  68. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_instance_payload.py +0 -0
  69. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_instance_protection_payload.py +0 -0
  70. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_instance_protection_response.py +0 -0
  71. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/update_user_payload.py +0 -0
  72. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/user_sort.py +0 -0
  73. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/validation_error.py +0 -0
  74. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/validation_error_validation_inner.py +0 -0
  75. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/models/version.py +0 -0
  76. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/py.typed +0 -0
  77. {stackit_postgresflex-1.6.0 → stackit_postgresflex-1.6.1}/src/stackit/postgresflex/rest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stackit-postgresflex
3
- Version: 1.6.0
3
+ Version: 1.6.1
4
4
  Summary: STACKIT PostgreSQL Flex 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-postgresflex"
3
- version = "v1.6.0"
3
+ version = "v1.6.1"
4
4
  description = "STACKIT PostgreSQL Flex API"
5
5
  authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
6
6
  requires-python = ">=3.10,<4.0"
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class CreateDatabasePayload(BaseModel):
@@ -28,10 +29,22 @@ class CreateDatabasePayload(BaseModel):
28
29
  CreateDatabasePayload
29
30
  """ # noqa: E501
30
31
 
31
- name: StrictStr = Field(description="The name of the database.")
32
+ name: Annotated[str, Field(min_length=1, strict=True, max_length=63)] = Field(
33
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." '
34
+ )
32
35
  owner: Optional[StrictStr] = Field(default=None, description="The owner of the database.")
33
36
  __properties: ClassVar[List[str]] = ["name", "owner"]
34
37
 
38
+ @field_validator("name")
39
+ def name_validate_regular_expression(cls, value):
40
+ """Validates the regular expression"""
41
+ if not isinstance(value, str):
42
+ value = str(value)
43
+
44
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
45
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
46
+ return value
47
+
35
48
  model_config = ConfigDict(
36
49
  validate_by_name=True,
37
50
  validate_by_alias=True,
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class DatabaseRoles(BaseModel):
@@ -28,10 +29,22 @@ class DatabaseRoles(BaseModel):
28
29
  The name and the roles for a database for a user.
29
30
  """ # noqa: E501
30
31
 
31
- name: StrictStr = Field(description="The name of the database.")
32
+ name: Annotated[str, Field(min_length=1, strict=True, max_length=63)] = Field(
33
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." '
34
+ )
32
35
  roles: List[StrictStr] = Field(description="The name and the roles for a database")
33
36
  __properties: ClassVar[List[str]] = ["name", "roles"]
34
37
 
38
+ @field_validator("name")
39
+ def name_validate_regular_expression(cls, value):
40
+ """Validates the regular expression"""
41
+ if not isinstance(value, str):
42
+ value = str(value)
43
+
44
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
45
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
46
+ return value
47
+
35
48
  model_config = ConfigDict(
36
49
  validate_by_name=True,
37
50
  validate_by_alias=True,
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class GetDatabaseResponse(BaseModel):
@@ -29,10 +30,22 @@ class GetDatabaseResponse(BaseModel):
29
30
  """ # noqa: E501
30
31
 
31
32
  id: StrictInt = Field(description="The id of the database.")
32
- name: StrictStr = Field(description="The name of the database.")
33
+ name: Annotated[str, Field(min_length=1, strict=True, max_length=63)] = Field(
34
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." '
35
+ )
33
36
  owner: StrictStr = Field(description="The owner of the database.")
34
37
  __properties: ClassVar[List[str]] = ["id", "name", "owner"]
35
38
 
39
+ @field_validator("name")
40
+ def name_validate_regular_expression(cls, value):
41
+ """Validates the regular expression"""
42
+ if not isinstance(value, str):
43
+ value = str(value)
44
+
45
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
46
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
47
+ return value
48
+
36
49
  model_config = ConfigDict(
37
50
  validate_by_name=True,
38
51
  validate_by_alias=True,
@@ -22,7 +22,7 @@ from typing_extensions import Self
22
22
 
23
23
  class InstanceNetworkAccessScope(str, Enum):
24
24
  """
25
- The access scope of the instance. It defines if the instance is public or airgapped.
25
+ The access scope of the instance. It defines if the instance is public or airgapped. ⚠️ **Note:** \"SNA\" value for the \"network.accessScope\" field is only permitted for enabled accounts. If your account does not have access, the request will be rejected.
26
26
  """
27
27
 
28
28
  """
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class ListDatabase(BaseModel):
@@ -29,10 +30,22 @@ class ListDatabase(BaseModel):
29
30
  """ # noqa: E501
30
31
 
31
32
  id: StrictInt = Field(description="The id of the database.")
32
- name: StrictStr = Field(description="The name of the database.")
33
+ name: Annotated[str, Field(min_length=1, strict=True, max_length=63)] = Field(
34
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." '
35
+ )
33
36
  owner: StrictStr = Field(description="The owner of the database.")
34
37
  __properties: ClassVar[List[str]] = ["id", "name", "owner"]
35
38
 
39
+ @field_validator("name")
40
+ def name_validate_regular_expression(cls, value):
41
+ """Validates the regular expression"""
42
+ if not isinstance(value, str):
43
+ value = str(value)
44
+
45
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
46
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
47
+ return value
48
+
36
49
  model_config = ConfigDict(
37
50
  validate_by_name=True,
38
51
  validate_by_alias=True,
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class PartialUpdateDatabasePayload(BaseModel):
@@ -28,10 +29,26 @@ class PartialUpdateDatabasePayload(BaseModel):
28
29
  PartialUpdateDatabasePayload
29
30
  """ # noqa: E501
30
31
 
31
- name: Optional[StrictStr] = Field(default=None, description="The name of the database.")
32
+ name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=63)]] = Field(
33
+ default=None,
34
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." ',
35
+ )
32
36
  owner: Optional[StrictStr] = Field(default=None, description="The owner of the database.")
33
37
  __properties: ClassVar[List[str]] = ["name", "owner"]
34
38
 
39
+ @field_validator("name")
40
+ def name_validate_regular_expression(cls, value):
41
+ """Validates the regular expression"""
42
+ if value is None:
43
+ return value
44
+
45
+ if not isinstance(value, str):
46
+ value = str(value)
47
+
48
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
49
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
50
+ return value
51
+
35
52
  model_config = ConfigDict(
36
53
  validate_by_name=True,
37
54
  validate_by_alias=True,
@@ -16,11 +16,12 @@ from __future__ import annotations
16
16
 
17
17
  import json
18
18
  import pprint
19
+ import re # noqa: F401
19
20
  from typing import Any, ClassVar, Dict, List, Optional, Set
20
21
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
23
  from pydantic_core import to_jsonable_python
23
- from typing_extensions import Self
24
+ from typing_extensions import Annotated, Self
24
25
 
25
26
 
26
27
  class UpdateDatabasePayload(BaseModel):
@@ -28,10 +29,22 @@ class UpdateDatabasePayload(BaseModel):
28
29
  UpdateDatabasePayload
29
30
  """ # noqa: E501
30
31
 
31
- name: StrictStr = Field(description="The name of the database.")
32
+ name: Annotated[str, Field(min_length=1, strict=True, max_length=63)] = Field(
33
+ description='"The name of the database." "Database name must be 1–63 characters long, start with a lowercase letter or underscore, and contain only lowercase letters, numbers, or underscores." '
34
+ )
32
35
  owner: StrictStr = Field(description="The owner of the database.")
33
36
  __properties: ClassVar[List[str]] = ["name", "owner"]
34
37
 
38
+ @field_validator("name")
39
+ def name_validate_regular_expression(cls, value):
40
+ """Validates the regular expression"""
41
+ if not isinstance(value, str):
42
+ value = str(value)
43
+
44
+ if not re.match(r"^[a-z_][a-z0-9_]*$", value):
45
+ raise ValueError(r"must validate the regular expression /^[a-z_][a-z0-9_]*$/")
46
+ return value
47
+
35
48
  model_config = ConfigDict(
36
49
  validate_by_name=True,
37
50
  validate_by_alias=True,