waldur-api-client 7.7.5__py3-none-any.whl → 7.7.7__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.
Potentially problematic release.
This version of waldur-api-client might be problematic. Click here for more details.
- waldur_api_client/api/booking_resources/booking_resources_count.py +34 -11
- waldur_api_client/api/booking_resources/booking_resources_list.py +34 -11
- waldur_api_client/api/customers/customers_project_metadata_compliance_details_list.py +189 -0
- waldur_api_client/api/customers/customers_project_metadata_compliance_overview_list.py +189 -0
- waldur_api_client/api/customers/customers_project_metadata_compliance_projects_list.py +187 -0
- waldur_api_client/api/customers/customers_project_metadata_question_answers_list.py +187 -0
- waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_count.py +34 -11
- waldur_api_client/api/marketplace_integration_statuses/marketplace_integration_statuses_list.py +34 -11
- waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_count.py +34 -11
- waldur_api_client/api/marketplace_offering_files/marketplace_offering_files_list.py +34 -11
- waldur_api_client/api/marketplace_offering_terms_of_service/__init__.py +1 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_count.py +274 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_create.py +152 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_destroy.py +89 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_list.py +277 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_partial_update.py +164 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_retrieve.py +142 -0
- waldur_api_client/api/marketplace_offering_terms_of_service/marketplace_offering_terms_of_service_update.py +164 -0
- waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_count.py +34 -11
- waldur_api_client/api/marketplace_offering_user_roles/marketplace_offering_user_roles_list.py +34 -11
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_checklist_review_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_review_status_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_completion_status_retrieve.py +154 -0
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_count.py +34 -11
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_list.py +34 -11
- waldur_api_client/api/marketplace_offering_users/marketplace_offering_users_submit_answers.py +179 -0
- waldur_api_client/api/marketplace_orders/marketplace_orders_count.py +19 -0
- waldur_api_client/api/marketplace_orders/marketplace_orders_list.py +19 -0
- waldur_api_client/api/marketplace_plans/marketplace_plans_count.py +19 -0
- waldur_api_client/api/marketplace_plans/marketplace_plans_list.py +19 -0
- waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_count.py +19 -0
- waldur_api_client/api/marketplace_plans/marketplace_plans_usage_stats_list.py +19 -0
- waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_count.py +34 -11
- waldur_api_client/api/marketplace_provider_resources/marketplace_provider_resources_list.py +34 -11
- waldur_api_client/api/marketplace_resources/marketplace_resources_count.py +34 -11
- waldur_api_client/api/marketplace_resources/marketplace_resources_list.py +34 -11
- waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_list.py +23 -0
- waldur_api_client/api/marketplace_robot_accounts/marketplace_robot_accounts_retrieve.py +30 -1
- waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_count.py +34 -11
- waldur_api_client/api/marketplace_screenshots/marketplace_screenshots_list.py +34 -11
- waldur_api_client/api/marketplace_service_providers/marketplace_service_providers_project_service_accounts_list.py +276 -0
- waldur_api_client/api/marketplace_service_providers/service_provider_compliance_overview.py +189 -0
- waldur_api_client/api/marketplace_service_providers/service_provider_offering_users_compliance.py +222 -0
- waldur_api_client/api/marketplace_user_offering_consents/__init__.py +1 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_count.py +307 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_create.py +152 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_destroy.py +89 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_list.py +310 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_partial_update.py +164 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_retrieve.py +142 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_revoke.py +146 -0
- waldur_api_client/api/marketplace_user_offering_consents/marketplace_user_offering_consents_update.py +164 -0
- waldur_api_client/api/public_maintenance_announcements/__init__.py +1 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_count.py +325 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_list.py +328 -0
- waldur_api_client/api/public_maintenance_announcements/public_maintenance_announcements_retrieve.py +144 -0
- waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_order_status_retrieve.py +145 -0
- waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_status_retrieve.py +147 -0
- waldur_api_client/api/remote_waldur_api/remote_waldur_api_remote_resource_team_status_list.py +188 -0
- waldur_api_client/models/__init__.py +118 -4
- waldur_api_client/models/admin_announcement.py +109 -1
- waldur_api_client/models/admin_announcement_maintenance_affected_offerings_item.py +103 -0
- waldur_api_client/models/admin_announcements_list_field_item.py +8 -0
- waldur_api_client/models/admin_announcements_retrieve_field_item.py +8 -0
- waldur_api_client/models/azure_sql_server_create_order_attributes.py +83 -0
- waldur_api_client/models/azure_virtual_machine_create_order_attributes.py +99 -0
- waldur_api_client/models/basic_user.py +30 -21
- waldur_api_client/models/booking_offerings_list_field_item.py +1 -2
- waldur_api_client/models/booking_offerings_retrieve_field_item.py +1 -2
- waldur_api_client/models/booking_resource.py +10 -9
- waldur_api_client/models/booking_resources_list_field_item.py +1 -1
- waldur_api_client/models/booking_resources_retrieve_field_item.py +1 -1
- waldur_api_client/models/checklist_info.py +76 -0
- waldur_api_client/models/compliance_overview.py +91 -0
- waldur_api_client/models/create_router.py +1 -1
- waldur_api_client/models/create_router_request.py +1 -1
- waldur_api_client/models/customer.py +51 -0
- waldur_api_client/models/customers_list_field_item.py +2 -0
- waldur_api_client/models/customers_retrieve_field_item.py +2 -0
- waldur_api_client/models/fingerprint.py +19 -17
- waldur_api_client/models/generic_order_attributes.py +69 -0
- waldur_api_client/models/google_auth_authorize_retrieve_field_item.py +1 -0
- waldur_api_client/models/google_auth_list_field_item.py +1 -0
- waldur_api_client/models/google_auth_retrieve_field_item.py +1 -0
- waldur_api_client/models/google_credentials.py +9 -0
- waldur_api_client/models/group_invitation.py +24 -0
- waldur_api_client/models/group_invitation_request.py +10 -0
- waldur_api_client/models/instance_flavor_change_request.py +1 -1
- waldur_api_client/models/maintenance_announcement.py +8 -0
- waldur_api_client/models/marketplace_managed_rancher_create_order_attributes.py +144 -0
- waldur_api_client/models/marketplace_offering_terms_of_service_count_o_item.py +13 -0
- waldur_api_client/models/marketplace_offering_terms_of_service_list_o_item.py +13 -0
- waldur_api_client/models/marketplace_orders_list_field_item.py +1 -1
- waldur_api_client/models/marketplace_orders_retrieve_field_item.py +1 -1
- waldur_api_client/models/marketplace_provider_offerings_list_customer_service_accounts_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_offerings_list_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_offerings_list_project_service_accounts_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_offerings_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_offerings_stats_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_offerings_user_has_resource_access_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_provider_resources_details_retrieve_field_item.py +1 -1
- waldur_api_client/models/marketplace_provider_resources_list_field_item.py +1 -1
- waldur_api_client/models/marketplace_provider_resources_retrieve_field_item.py +1 -1
- waldur_api_client/models/marketplace_public_offerings_list_field_item.py +1 -2
- waldur_api_client/models/marketplace_public_offerings_retrieve_field_item.py +1 -2
- waldur_api_client/models/marketplace_rancher_create_order_attributes.py +145 -0
- waldur_api_client/models/marketplace_resources_details_retrieve_field_item.py +1 -1
- waldur_api_client/models/marketplace_resources_list_field_item.py +1 -1
- waldur_api_client/models/marketplace_resources_retrieve_field_item.py +1 -1
- waldur_api_client/models/marketplace_robot_accounts_list_field_item.py +32 -0
- waldur_api_client/models/marketplace_robot_accounts_retrieve_field_item.py +32 -0
- waldur_api_client/models/marketplace_service_providers_list_field_item.py +1 -0
- waldur_api_client/models/marketplace_service_providers_retrieve_field_item.py +1 -0
- waldur_api_client/models/marketplace_user_offering_consents_count_o_item.py +15 -0
- waldur_api_client/models/marketplace_user_offering_consents_list_o_item.py +15 -0
- waldur_api_client/models/offering.py +9 -18
- waldur_api_client/models/offering_create.py +8 -18
- waldur_api_client/models/offering_create_request.py +0 -18
- waldur_api_client/models/offering_overview_update_request.py +0 -18
- waldur_api_client/models/offering_terms_of_service.py +142 -0
- waldur_api_client/models/offering_terms_of_service_create.py +107 -0
- waldur_api_client/models/offering_terms_of_service_create_request.py +107 -0
- waldur_api_client/models/offering_terms_of_service_request.py +96 -0
- waldur_api_client/models/open_stack_backend_instance.py +2 -2
- waldur_api_client/models/open_stack_backend_volumes.py +3 -3
- waldur_api_client/models/open_stack_backup.py +1 -1
- waldur_api_client/models/open_stack_backup_restoration.py +8 -5
- waldur_api_client/models/open_stack_backup_restoration_request.py +28 -3
- waldur_api_client/models/open_stack_fixed_ip.py +2 -2
- waldur_api_client/models/open_stack_fixed_ip_request.py +2 -2
- waldur_api_client/models/open_stack_floating_ip.py +5 -4
- waldur_api_client/models/open_stack_instance.py +17 -15
- waldur_api_client/models/open_stack_instance_allowed_address_pairs_update_request.py +3 -2
- waldur_api_client/models/open_stack_instance_availability_zone.py +1 -1
- waldur_api_client/models/open_stack_instance_create_order_attributes.py +283 -0
- waldur_api_client/models/open_stack_instance_request.py +4 -3
- waldur_api_client/models/open_stack_instance_security_groups_update_request.py +1 -1
- waldur_api_client/models/open_stack_nested_floating_ip.py +3 -3
- waldur_api_client/models/open_stack_nested_instance.py +1 -1
- waldur_api_client/models/open_stack_nested_port.py +5 -5
- waldur_api_client/models/open_stack_nested_port_request.py +1 -1
- waldur_api_client/models/open_stack_nested_security_group.py +16 -16
- waldur_api_client/models/open_stack_nested_security_group_request.py +59 -0
- waldur_api_client/models/{nested_security_group_rule_request.py → open_stack_nested_security_group_rules_item.py} +73 -63
- waldur_api_client/models/open_stack_nested_sub_net.py +4 -4
- waldur_api_client/models/open_stack_nested_sub_net_request.py +4 -4
- waldur_api_client/models/open_stack_nested_volume.py +3 -3
- waldur_api_client/models/open_stack_nested_volume_request.py +3 -3
- waldur_api_client/models/open_stack_network.py +23 -3
- waldur_api_client/models/open_stack_port.py +10 -9
- waldur_api_client/models/open_stack_port_ip_update_request.py +2 -2
- waldur_api_client/models/open_stack_port_request.py +3 -3
- waldur_api_client/models/open_stack_router.py +2 -2
- waldur_api_client/models/open_stack_router_interface_request.py +4 -2
- waldur_api_client/models/open_stack_security_group_rule_create.py +6 -5
- waldur_api_client/models/open_stack_security_group_rule_create_request.py +6 -5
- waldur_api_client/models/open_stack_security_group_rule_update_request.py +10 -9
- waldur_api_client/models/open_stack_server_group.py +2 -1
- waldur_api_client/models/open_stack_server_group_request.py +2 -1
- waldur_api_client/models/open_stack_snapshot.py +2 -2
- waldur_api_client/models/open_stack_snapshot_restoration.py +1 -1
- waldur_api_client/models/open_stack_sub_net.py +5 -5
- waldur_api_client/models/open_stack_sub_net_request.py +2 -2
- waldur_api_client/models/open_stack_tenant.py +41 -3
- waldur_api_client/models/open_stack_tenant_create_order_attributes.py +130 -0
- waldur_api_client/models/open_stack_volume.py +9 -9
- waldur_api_client/models/open_stack_volume_create_order_attributes.py +155 -0
- waldur_api_client/models/open_stack_volume_request.py +1 -1
- waldur_api_client/models/openstack_networks_list_field_item.py +1 -0
- waldur_api_client/models/openstack_networks_retrieve_field_item.py +1 -0
- waldur_api_client/models/openstack_tenants_list_field_item.py +3 -0
- waldur_api_client/models/openstack_tenants_retrieve_field_item.py +3 -0
- waldur_api_client/models/order_create.py +0 -8
- waldur_api_client/models/order_create_request.py +181 -4
- waldur_api_client/models/order_details.py +0 -9
- waldur_api_client/models/patched_offering_terms_of_service_request.py +96 -0
- waldur_api_client/models/patched_open_stack_instance_request.py +4 -3
- waldur_api_client/models/patched_open_stack_server_group_request.py +2 -1
- waldur_api_client/models/patched_open_stack_sub_net_request.py +2 -2
- waldur_api_client/models/patched_open_stack_volume_request.py +1 -1
- waldur_api_client/models/patched_user_offering_consent_request.py +59 -0
- waldur_api_client/models/permission_project.py +147 -0
- waldur_api_client/models/permission_request.py +2 -2
- waldur_api_client/models/project_answer.py +122 -0
- waldur_api_client/models/project_detail.py +133 -0
- waldur_api_client/models/project_details_response.py +115 -0
- waldur_api_client/models/provider_offering_details.py +9 -18
- waldur_api_client/models/provider_offering_details_request.py +0 -18
- waldur_api_client/models/public_maintenance_announcement.py +217 -0
- waldur_api_client/models/public_maintenance_announcement_state_enum.py +10 -0
- waldur_api_client/models/public_maintenance_announcements_count_o_item.py +15 -0
- waldur_api_client/models/public_maintenance_announcements_count_state_item.py +12 -0
- waldur_api_client/models/public_maintenance_announcements_list_o_item.py +15 -0
- waldur_api_client/models/public_maintenance_announcements_list_state_item.py +12 -0
- waldur_api_client/models/public_offering_details.py +9 -18
- waldur_api_client/models/question_answer.py +176 -0
- waldur_api_client/models/question_answer_project_answers_item.py +44 -0
- waldur_api_client/models/question_answer_question_options_item.py +44 -0
- waldur_api_client/models/rancher_cluster_security_group_rule.py +5 -4
- waldur_api_client/models/rancher_cluster_security_group_rule_request.py +5 -4
- waldur_api_client/models/remote_project_update_request.py +2 -2
- waldur_api_client/models/remote_resource_order.py +88 -0
- waldur_api_client/models/remote_resource_order_remote_state_enum.py +15 -0
- waldur_api_client/models/remote_resource_sync_status.py +123 -0
- waldur_api_client/models/remote_resource_sync_status_remote_state_enum.py +13 -0
- waldur_api_client/models/remote_resource_team_member.py +85 -0
- waldur_api_client/models/resource.py +10 -9
- waldur_api_client/models/robot_account_details.py +226 -144
- waldur_api_client/models/service_provider.py +9 -0
- waldur_api_client/models/service_provider_compliance_overview.py +122 -0
- waldur_api_client/models/service_provider_offering_user_compliance.py +179 -0
- waldur_api_client/models/service_provider_offering_user_compliance_state_enum.py +17 -0
- waldur_api_client/models/slurm_invoices_slurm_package_create_order_attributes.py +75 -0
- waldur_api_client/models/sync_status_enum.py +10 -0
- waldur_api_client/models/user_offering_consent.py +202 -0
- waldur_api_client/models/user_offering_consent_create.py +60 -0
- waldur_api_client/models/user_offering_consent_create_request.py +60 -0
- waldur_api_client/models/user_offering_consent_request.py +59 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes.py +228 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_1.py +155 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_2_type_1.py +155 -0
- waldur_api_client/models/v_mware_virtual_machine_create_order_attributes_guest_os_type_3_type_1.py +155 -0
- waldur_api_client/models/volume_attach_request.py +1 -1
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/METADATA +1 -1
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/RECORD +228 -138
- waldur_api_client/models/nested_security_group_rule.py +0 -222
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/LICENSE +0 -0
- {waldur_api_client-7.7.5.dist-info → waldur_api_client-7.7.7.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
from collections.abc import Mapping
|
|
3
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
4
|
+
from uuid import UUID
|
|
5
|
+
|
|
6
|
+
from attrs import define as _attrs_define
|
|
7
|
+
from attrs import field as _attrs_field
|
|
8
|
+
from dateutil.parser import isoparse
|
|
9
|
+
|
|
10
|
+
from ..models.maintenance_type_enum import MaintenanceTypeEnum
|
|
11
|
+
from ..models.public_maintenance_announcement_state_enum import PublicMaintenanceAnnouncementStateEnum
|
|
12
|
+
|
|
13
|
+
if TYPE_CHECKING:
|
|
14
|
+
from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
T = TypeVar("T", bound="PublicMaintenanceAnnouncement")
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@_attrs_define
|
|
21
|
+
class PublicMaintenanceAnnouncement:
|
|
22
|
+
"""
|
|
23
|
+
Attributes:
|
|
24
|
+
url (str):
|
|
25
|
+
uuid (UUID):
|
|
26
|
+
name (str):
|
|
27
|
+
message (str):
|
|
28
|
+
maintenance_type (MaintenanceTypeEnum):
|
|
29
|
+
maintenance_type_display (str):
|
|
30
|
+
external_reference_url (str): Optional reference to an external maintenance tracker
|
|
31
|
+
state (PublicMaintenanceAnnouncementStateEnum):
|
|
32
|
+
scheduled_start (datetime.datetime): When the maintenance is scheduled to begin
|
|
33
|
+
scheduled_end (datetime.datetime): When the maintenance is scheduled to complete
|
|
34
|
+
actual_start (Union[None, datetime.datetime]): When the maintenance actually began
|
|
35
|
+
actual_end (Union[None, datetime.datetime]): When the maintenance actually completed
|
|
36
|
+
affected_offerings (list['MaintenanceAnnouncementOffering']):
|
|
37
|
+
service_provider_name (str):
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
url: str
|
|
41
|
+
uuid: UUID
|
|
42
|
+
name: str
|
|
43
|
+
message: str
|
|
44
|
+
maintenance_type: MaintenanceTypeEnum
|
|
45
|
+
maintenance_type_display: str
|
|
46
|
+
external_reference_url: str
|
|
47
|
+
state: PublicMaintenanceAnnouncementStateEnum
|
|
48
|
+
scheduled_start: datetime.datetime
|
|
49
|
+
scheduled_end: datetime.datetime
|
|
50
|
+
actual_start: Union[None, datetime.datetime]
|
|
51
|
+
actual_end: Union[None, datetime.datetime]
|
|
52
|
+
affected_offerings: list["MaintenanceAnnouncementOffering"]
|
|
53
|
+
service_provider_name: str
|
|
54
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> dict[str, Any]:
|
|
57
|
+
url = self.url
|
|
58
|
+
|
|
59
|
+
uuid = str(self.uuid)
|
|
60
|
+
|
|
61
|
+
name = self.name
|
|
62
|
+
|
|
63
|
+
message = self.message
|
|
64
|
+
|
|
65
|
+
maintenance_type = self.maintenance_type.value
|
|
66
|
+
|
|
67
|
+
maintenance_type_display = self.maintenance_type_display
|
|
68
|
+
|
|
69
|
+
external_reference_url = self.external_reference_url
|
|
70
|
+
|
|
71
|
+
state = self.state.value
|
|
72
|
+
|
|
73
|
+
scheduled_start = self.scheduled_start.isoformat()
|
|
74
|
+
|
|
75
|
+
scheduled_end = self.scheduled_end.isoformat()
|
|
76
|
+
|
|
77
|
+
actual_start: Union[None, str]
|
|
78
|
+
if isinstance(self.actual_start, datetime.datetime):
|
|
79
|
+
actual_start = self.actual_start.isoformat()
|
|
80
|
+
else:
|
|
81
|
+
actual_start = self.actual_start
|
|
82
|
+
|
|
83
|
+
actual_end: Union[None, str]
|
|
84
|
+
if isinstance(self.actual_end, datetime.datetime):
|
|
85
|
+
actual_end = self.actual_end.isoformat()
|
|
86
|
+
else:
|
|
87
|
+
actual_end = self.actual_end
|
|
88
|
+
|
|
89
|
+
affected_offerings = []
|
|
90
|
+
for affected_offerings_item_data in self.affected_offerings:
|
|
91
|
+
affected_offerings_item = affected_offerings_item_data.to_dict()
|
|
92
|
+
affected_offerings.append(affected_offerings_item)
|
|
93
|
+
|
|
94
|
+
service_provider_name = self.service_provider_name
|
|
95
|
+
|
|
96
|
+
field_dict: dict[str, Any] = {}
|
|
97
|
+
field_dict.update(self.additional_properties)
|
|
98
|
+
field_dict.update(
|
|
99
|
+
{
|
|
100
|
+
"url": url,
|
|
101
|
+
"uuid": uuid,
|
|
102
|
+
"name": name,
|
|
103
|
+
"message": message,
|
|
104
|
+
"maintenance_type": maintenance_type,
|
|
105
|
+
"maintenance_type_display": maintenance_type_display,
|
|
106
|
+
"external_reference_url": external_reference_url,
|
|
107
|
+
"state": state,
|
|
108
|
+
"scheduled_start": scheduled_start,
|
|
109
|
+
"scheduled_end": scheduled_end,
|
|
110
|
+
"actual_start": actual_start,
|
|
111
|
+
"actual_end": actual_end,
|
|
112
|
+
"affected_offerings": affected_offerings,
|
|
113
|
+
"service_provider_name": service_provider_name,
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
return field_dict
|
|
118
|
+
|
|
119
|
+
@classmethod
|
|
120
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
121
|
+
from ..models.maintenance_announcement_offering import MaintenanceAnnouncementOffering
|
|
122
|
+
|
|
123
|
+
d = dict(src_dict)
|
|
124
|
+
url = d.pop("url")
|
|
125
|
+
|
|
126
|
+
uuid = UUID(d.pop("uuid"))
|
|
127
|
+
|
|
128
|
+
name = d.pop("name")
|
|
129
|
+
|
|
130
|
+
message = d.pop("message")
|
|
131
|
+
|
|
132
|
+
maintenance_type = MaintenanceTypeEnum(d.pop("maintenance_type"))
|
|
133
|
+
|
|
134
|
+
maintenance_type_display = d.pop("maintenance_type_display")
|
|
135
|
+
|
|
136
|
+
external_reference_url = d.pop("external_reference_url")
|
|
137
|
+
|
|
138
|
+
state = PublicMaintenanceAnnouncementStateEnum(d.pop("state"))
|
|
139
|
+
|
|
140
|
+
scheduled_start = isoparse(d.pop("scheduled_start"))
|
|
141
|
+
|
|
142
|
+
scheduled_end = isoparse(d.pop("scheduled_end"))
|
|
143
|
+
|
|
144
|
+
def _parse_actual_start(data: object) -> Union[None, datetime.datetime]:
|
|
145
|
+
if data is None:
|
|
146
|
+
return data
|
|
147
|
+
try:
|
|
148
|
+
if not isinstance(data, str):
|
|
149
|
+
raise TypeError()
|
|
150
|
+
actual_start_type_0 = isoparse(data)
|
|
151
|
+
|
|
152
|
+
return actual_start_type_0
|
|
153
|
+
except: # noqa: E722
|
|
154
|
+
pass
|
|
155
|
+
return cast(Union[None, datetime.datetime], data)
|
|
156
|
+
|
|
157
|
+
actual_start = _parse_actual_start(d.pop("actual_start"))
|
|
158
|
+
|
|
159
|
+
def _parse_actual_end(data: object) -> Union[None, datetime.datetime]:
|
|
160
|
+
if data is None:
|
|
161
|
+
return data
|
|
162
|
+
try:
|
|
163
|
+
if not isinstance(data, str):
|
|
164
|
+
raise TypeError()
|
|
165
|
+
actual_end_type_0 = isoparse(data)
|
|
166
|
+
|
|
167
|
+
return actual_end_type_0
|
|
168
|
+
except: # noqa: E722
|
|
169
|
+
pass
|
|
170
|
+
return cast(Union[None, datetime.datetime], data)
|
|
171
|
+
|
|
172
|
+
actual_end = _parse_actual_end(d.pop("actual_end"))
|
|
173
|
+
|
|
174
|
+
affected_offerings = []
|
|
175
|
+
_affected_offerings = d.pop("affected_offerings")
|
|
176
|
+
for affected_offerings_item_data in _affected_offerings:
|
|
177
|
+
affected_offerings_item = MaintenanceAnnouncementOffering.from_dict(affected_offerings_item_data)
|
|
178
|
+
|
|
179
|
+
affected_offerings.append(affected_offerings_item)
|
|
180
|
+
|
|
181
|
+
service_provider_name = d.pop("service_provider_name")
|
|
182
|
+
|
|
183
|
+
public_maintenance_announcement = cls(
|
|
184
|
+
url=url,
|
|
185
|
+
uuid=uuid,
|
|
186
|
+
name=name,
|
|
187
|
+
message=message,
|
|
188
|
+
maintenance_type=maintenance_type,
|
|
189
|
+
maintenance_type_display=maintenance_type_display,
|
|
190
|
+
external_reference_url=external_reference_url,
|
|
191
|
+
state=state,
|
|
192
|
+
scheduled_start=scheduled_start,
|
|
193
|
+
scheduled_end=scheduled_end,
|
|
194
|
+
actual_start=actual_start,
|
|
195
|
+
actual_end=actual_end,
|
|
196
|
+
affected_offerings=affected_offerings,
|
|
197
|
+
service_provider_name=service_provider_name,
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
public_maintenance_announcement.additional_properties = d
|
|
201
|
+
return public_maintenance_announcement
|
|
202
|
+
|
|
203
|
+
@property
|
|
204
|
+
def additional_keys(self) -> list[str]:
|
|
205
|
+
return list(self.additional_properties.keys())
|
|
206
|
+
|
|
207
|
+
def __getitem__(self, key: str) -> Any:
|
|
208
|
+
return self.additional_properties[key]
|
|
209
|
+
|
|
210
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
211
|
+
self.additional_properties[key] = value
|
|
212
|
+
|
|
213
|
+
def __delitem__(self, key: str) -> None:
|
|
214
|
+
del self.additional_properties[key]
|
|
215
|
+
|
|
216
|
+
def __contains__(self, key: str) -> bool:
|
|
217
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PublicMaintenanceAnnouncementsCountOItem(str, Enum):
|
|
5
|
+
CREATED = "created"
|
|
6
|
+
NAME = "name"
|
|
7
|
+
SCHEDULED_END = "scheduled_end"
|
|
8
|
+
SCHEDULED_START = "scheduled_start"
|
|
9
|
+
VALUE_0 = "-created"
|
|
10
|
+
VALUE_1 = "-name"
|
|
11
|
+
VALUE_2 = "-scheduled_end"
|
|
12
|
+
VALUE_3 = "-scheduled_start"
|
|
13
|
+
|
|
14
|
+
def __str__(self) -> str:
|
|
15
|
+
return str(self.value)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PublicMaintenanceAnnouncementsCountStateItem(str, Enum):
|
|
5
|
+
CANCELLED = "Cancelled"
|
|
6
|
+
COMPLETED = "Completed"
|
|
7
|
+
DRAFT = "Draft"
|
|
8
|
+
IN_PROGRESS = "In progress"
|
|
9
|
+
SCHEDULED = "Scheduled"
|
|
10
|
+
|
|
11
|
+
def __str__(self) -> str:
|
|
12
|
+
return str(self.value)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PublicMaintenanceAnnouncementsListOItem(str, Enum):
|
|
5
|
+
CREATED = "created"
|
|
6
|
+
NAME = "name"
|
|
7
|
+
SCHEDULED_END = "scheduled_end"
|
|
8
|
+
SCHEDULED_START = "scheduled_start"
|
|
9
|
+
VALUE_0 = "-created"
|
|
10
|
+
VALUE_1 = "-name"
|
|
11
|
+
VALUE_2 = "-scheduled_end"
|
|
12
|
+
VALUE_3 = "-scheduled_start"
|
|
13
|
+
|
|
14
|
+
def __str__(self) -> str:
|
|
15
|
+
return str(self.value)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PublicMaintenanceAnnouncementsListStateItem(str, Enum):
|
|
5
|
+
CANCELLED = "Cancelled"
|
|
6
|
+
COMPLETED = "Completed"
|
|
7
|
+
DRAFT = "Draft"
|
|
8
|
+
IN_PROGRESS = "In progress"
|
|
9
|
+
SCHEDULED = "Scheduled"
|
|
10
|
+
|
|
11
|
+
def __str__(self) -> str:
|
|
12
|
+
return str(self.value)
|
|
@@ -42,8 +42,6 @@ class PublicOfferingDetails:
|
|
|
42
42
|
slug (Union[Unset, str]):
|
|
43
43
|
description (Union[Unset, str]):
|
|
44
44
|
full_description (Union[Unset, str]):
|
|
45
|
-
terms_of_service (Union[Unset, str]):
|
|
46
|
-
terms_of_service_link (Union[Unset, str]):
|
|
47
45
|
privacy_policy_link (Union[Unset, str]):
|
|
48
46
|
access_url (Union[Unset, str]): Publicly accessible offering access URL
|
|
49
47
|
endpoints (Union[Unset, list['NestedEndpoint']]):
|
|
@@ -96,6 +94,7 @@ class PublicOfferingDetails:
|
|
|
96
94
|
parent_uuid (Union[None, UUID, Unset]):
|
|
97
95
|
parent_name (Union[None, Unset, str]):
|
|
98
96
|
backend_metadata (Union[Unset, Any]):
|
|
97
|
+
has_compliance_requirements (Union[Unset, bool]):
|
|
99
98
|
google_calendar_is_public (Union[None, Unset, bool]):
|
|
100
99
|
google_calendar_link (Union[None, Unset, str]): Get the Google Calendar link for an offering.
|
|
101
100
|
promotion_campaigns (Union[Unset, list['NestedCampaign']]):
|
|
@@ -108,8 +107,6 @@ class PublicOfferingDetails:
|
|
|
108
107
|
slug: Union[Unset, str] = UNSET
|
|
109
108
|
description: Union[Unset, str] = UNSET
|
|
110
109
|
full_description: Union[Unset, str] = UNSET
|
|
111
|
-
terms_of_service: Union[Unset, str] = UNSET
|
|
112
|
-
terms_of_service_link: Union[Unset, str] = UNSET
|
|
113
110
|
privacy_policy_link: Union[Unset, str] = UNSET
|
|
114
111
|
access_url: Union[Unset, str] = UNSET
|
|
115
112
|
endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
|
|
@@ -162,6 +159,7 @@ class PublicOfferingDetails:
|
|
|
162
159
|
parent_uuid: Union[None, UUID, Unset] = UNSET
|
|
163
160
|
parent_name: Union[None, Unset, str] = UNSET
|
|
164
161
|
backend_metadata: Union[Unset, Any] = UNSET
|
|
162
|
+
has_compliance_requirements: Union[Unset, bool] = UNSET
|
|
165
163
|
google_calendar_is_public: Union[None, Unset, bool] = UNSET
|
|
166
164
|
google_calendar_link: Union[None, Unset, str] = UNSET
|
|
167
165
|
promotion_campaigns: Union[Unset, list["NestedCampaign"]] = UNSET
|
|
@@ -186,10 +184,6 @@ class PublicOfferingDetails:
|
|
|
186
184
|
|
|
187
185
|
full_description = self.full_description
|
|
188
186
|
|
|
189
|
-
terms_of_service = self.terms_of_service
|
|
190
|
-
|
|
191
|
-
terms_of_service_link = self.terms_of_service_link
|
|
192
|
-
|
|
193
187
|
privacy_policy_link = self.privacy_policy_link
|
|
194
188
|
|
|
195
189
|
access_url = self.access_url
|
|
@@ -444,6 +438,8 @@ class PublicOfferingDetails:
|
|
|
444
438
|
|
|
445
439
|
backend_metadata = self.backend_metadata
|
|
446
440
|
|
|
441
|
+
has_compliance_requirements = self.has_compliance_requirements
|
|
442
|
+
|
|
447
443
|
google_calendar_is_public: Union[None, Unset, bool]
|
|
448
444
|
if isinstance(self.google_calendar_is_public, Unset):
|
|
449
445
|
google_calendar_is_public = UNSET
|
|
@@ -480,10 +476,6 @@ class PublicOfferingDetails:
|
|
|
480
476
|
field_dict["description"] = description
|
|
481
477
|
if full_description is not UNSET:
|
|
482
478
|
field_dict["full_description"] = full_description
|
|
483
|
-
if terms_of_service is not UNSET:
|
|
484
|
-
field_dict["terms_of_service"] = terms_of_service
|
|
485
|
-
if terms_of_service_link is not UNSET:
|
|
486
|
-
field_dict["terms_of_service_link"] = terms_of_service_link
|
|
487
479
|
if privacy_policy_link is not UNSET:
|
|
488
480
|
field_dict["privacy_policy_link"] = privacy_policy_link
|
|
489
481
|
if access_url is not UNSET:
|
|
@@ -588,6 +580,8 @@ class PublicOfferingDetails:
|
|
|
588
580
|
field_dict["parent_name"] = parent_name
|
|
589
581
|
if backend_metadata is not UNSET:
|
|
590
582
|
field_dict["backend_metadata"] = backend_metadata
|
|
583
|
+
if has_compliance_requirements is not UNSET:
|
|
584
|
+
field_dict["has_compliance_requirements"] = has_compliance_requirements
|
|
591
585
|
if google_calendar_is_public is not UNSET:
|
|
592
586
|
field_dict["google_calendar_is_public"] = google_calendar_is_public
|
|
593
587
|
if google_calendar_link is not UNSET:
|
|
@@ -637,10 +631,6 @@ class PublicOfferingDetails:
|
|
|
637
631
|
|
|
638
632
|
full_description = d.pop("full_description", UNSET)
|
|
639
633
|
|
|
640
|
-
terms_of_service = d.pop("terms_of_service", UNSET)
|
|
641
|
-
|
|
642
|
-
terms_of_service_link = d.pop("terms_of_service_link", UNSET)
|
|
643
|
-
|
|
644
634
|
privacy_policy_link = d.pop("privacy_policy_link", UNSET)
|
|
645
635
|
|
|
646
636
|
access_url = d.pop("access_url", UNSET)
|
|
@@ -1020,6 +1010,8 @@ class PublicOfferingDetails:
|
|
|
1020
1010
|
|
|
1021
1011
|
backend_metadata = d.pop("backend_metadata", UNSET)
|
|
1022
1012
|
|
|
1013
|
+
has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
|
|
1014
|
+
|
|
1023
1015
|
def _parse_google_calendar_is_public(data: object) -> Union[None, Unset, bool]:
|
|
1024
1016
|
if data is None:
|
|
1025
1017
|
return data
|
|
@@ -1053,8 +1045,6 @@ class PublicOfferingDetails:
|
|
|
1053
1045
|
slug=slug,
|
|
1054
1046
|
description=description,
|
|
1055
1047
|
full_description=full_description,
|
|
1056
|
-
terms_of_service=terms_of_service,
|
|
1057
|
-
terms_of_service_link=terms_of_service_link,
|
|
1058
1048
|
privacy_policy_link=privacy_policy_link,
|
|
1059
1049
|
access_url=access_url,
|
|
1060
1050
|
endpoints=endpoints,
|
|
@@ -1107,6 +1097,7 @@ class PublicOfferingDetails:
|
|
|
1107
1097
|
parent_uuid=parent_uuid,
|
|
1108
1098
|
parent_name=parent_name,
|
|
1109
1099
|
backend_metadata=backend_metadata,
|
|
1100
|
+
has_compliance_requirements=has_compliance_requirements,
|
|
1110
1101
|
google_calendar_is_public=google_calendar_is_public,
|
|
1111
1102
|
google_calendar_link=google_calendar_link,
|
|
1112
1103
|
promotion_campaigns=promotion_campaigns,
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar, Union, cast
|
|
3
|
+
from uuid import UUID
|
|
4
|
+
|
|
5
|
+
from attrs import define as _attrs_define
|
|
6
|
+
from attrs import field as _attrs_field
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
|
|
10
|
+
from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
T = TypeVar("T", bound="QuestionAnswer")
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@_attrs_define
|
|
17
|
+
class QuestionAnswer:
|
|
18
|
+
"""
|
|
19
|
+
Attributes:
|
|
20
|
+
question_uuid (UUID):
|
|
21
|
+
question_description (str):
|
|
22
|
+
question_type (str):
|
|
23
|
+
required (bool):
|
|
24
|
+
order (int):
|
|
25
|
+
min_value (Union[None, str]):
|
|
26
|
+
max_value (Union[None, str]):
|
|
27
|
+
total_projects (int): Get total projects count.
|
|
28
|
+
answered_projects_count (int): Get count of projects that answered this question.
|
|
29
|
+
project_answers (list['QuestionAnswerProjectAnswersItem']): Get all project answers for this question.
|
|
30
|
+
question_options (list['QuestionAnswerQuestionOptionsItem']): Get question options for select-type questions.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
question_uuid: UUID
|
|
34
|
+
question_description: str
|
|
35
|
+
question_type: str
|
|
36
|
+
required: bool
|
|
37
|
+
order: int
|
|
38
|
+
min_value: Union[None, str]
|
|
39
|
+
max_value: Union[None, str]
|
|
40
|
+
total_projects: int
|
|
41
|
+
answered_projects_count: int
|
|
42
|
+
project_answers: list["QuestionAnswerProjectAnswersItem"]
|
|
43
|
+
question_options: list["QuestionAnswerQuestionOptionsItem"]
|
|
44
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
45
|
+
|
|
46
|
+
def to_dict(self) -> dict[str, Any]:
|
|
47
|
+
question_uuid = str(self.question_uuid)
|
|
48
|
+
|
|
49
|
+
question_description = self.question_description
|
|
50
|
+
|
|
51
|
+
question_type = self.question_type
|
|
52
|
+
|
|
53
|
+
required = self.required
|
|
54
|
+
|
|
55
|
+
order = self.order
|
|
56
|
+
|
|
57
|
+
min_value: Union[None, str]
|
|
58
|
+
min_value = self.min_value
|
|
59
|
+
|
|
60
|
+
max_value: Union[None, str]
|
|
61
|
+
max_value = self.max_value
|
|
62
|
+
|
|
63
|
+
total_projects = self.total_projects
|
|
64
|
+
|
|
65
|
+
answered_projects_count = self.answered_projects_count
|
|
66
|
+
|
|
67
|
+
project_answers = []
|
|
68
|
+
for project_answers_item_data in self.project_answers:
|
|
69
|
+
project_answers_item = project_answers_item_data.to_dict()
|
|
70
|
+
project_answers.append(project_answers_item)
|
|
71
|
+
|
|
72
|
+
question_options = []
|
|
73
|
+
for question_options_item_data in self.question_options:
|
|
74
|
+
question_options_item = question_options_item_data.to_dict()
|
|
75
|
+
question_options.append(question_options_item)
|
|
76
|
+
|
|
77
|
+
field_dict: dict[str, Any] = {}
|
|
78
|
+
field_dict.update(self.additional_properties)
|
|
79
|
+
field_dict.update(
|
|
80
|
+
{
|
|
81
|
+
"question_uuid": question_uuid,
|
|
82
|
+
"question_description": question_description,
|
|
83
|
+
"question_type": question_type,
|
|
84
|
+
"required": required,
|
|
85
|
+
"order": order,
|
|
86
|
+
"min_value": min_value,
|
|
87
|
+
"max_value": max_value,
|
|
88
|
+
"total_projects": total_projects,
|
|
89
|
+
"answered_projects_count": answered_projects_count,
|
|
90
|
+
"project_answers": project_answers,
|
|
91
|
+
"question_options": question_options,
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
return field_dict
|
|
96
|
+
|
|
97
|
+
@classmethod
|
|
98
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
99
|
+
from ..models.question_answer_project_answers_item import QuestionAnswerProjectAnswersItem
|
|
100
|
+
from ..models.question_answer_question_options_item import QuestionAnswerQuestionOptionsItem
|
|
101
|
+
|
|
102
|
+
d = dict(src_dict)
|
|
103
|
+
question_uuid = UUID(d.pop("question_uuid"))
|
|
104
|
+
|
|
105
|
+
question_description = d.pop("question_description")
|
|
106
|
+
|
|
107
|
+
question_type = d.pop("question_type")
|
|
108
|
+
|
|
109
|
+
required = d.pop("required")
|
|
110
|
+
|
|
111
|
+
order = d.pop("order")
|
|
112
|
+
|
|
113
|
+
def _parse_min_value(data: object) -> Union[None, str]:
|
|
114
|
+
if data is None:
|
|
115
|
+
return data
|
|
116
|
+
return cast(Union[None, str], data)
|
|
117
|
+
|
|
118
|
+
min_value = _parse_min_value(d.pop("min_value"))
|
|
119
|
+
|
|
120
|
+
def _parse_max_value(data: object) -> Union[None, str]:
|
|
121
|
+
if data is None:
|
|
122
|
+
return data
|
|
123
|
+
return cast(Union[None, str], data)
|
|
124
|
+
|
|
125
|
+
max_value = _parse_max_value(d.pop("max_value"))
|
|
126
|
+
|
|
127
|
+
total_projects = d.pop("total_projects")
|
|
128
|
+
|
|
129
|
+
answered_projects_count = d.pop("answered_projects_count")
|
|
130
|
+
|
|
131
|
+
project_answers = []
|
|
132
|
+
_project_answers = d.pop("project_answers")
|
|
133
|
+
for project_answers_item_data in _project_answers:
|
|
134
|
+
project_answers_item = QuestionAnswerProjectAnswersItem.from_dict(project_answers_item_data)
|
|
135
|
+
|
|
136
|
+
project_answers.append(project_answers_item)
|
|
137
|
+
|
|
138
|
+
question_options = []
|
|
139
|
+
_question_options = d.pop("question_options")
|
|
140
|
+
for question_options_item_data in _question_options:
|
|
141
|
+
question_options_item = QuestionAnswerQuestionOptionsItem.from_dict(question_options_item_data)
|
|
142
|
+
|
|
143
|
+
question_options.append(question_options_item)
|
|
144
|
+
|
|
145
|
+
question_answer = cls(
|
|
146
|
+
question_uuid=question_uuid,
|
|
147
|
+
question_description=question_description,
|
|
148
|
+
question_type=question_type,
|
|
149
|
+
required=required,
|
|
150
|
+
order=order,
|
|
151
|
+
min_value=min_value,
|
|
152
|
+
max_value=max_value,
|
|
153
|
+
total_projects=total_projects,
|
|
154
|
+
answered_projects_count=answered_projects_count,
|
|
155
|
+
project_answers=project_answers,
|
|
156
|
+
question_options=question_options,
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
question_answer.additional_properties = d
|
|
160
|
+
return question_answer
|
|
161
|
+
|
|
162
|
+
@property
|
|
163
|
+
def additional_keys(self) -> list[str]:
|
|
164
|
+
return list(self.additional_properties.keys())
|
|
165
|
+
|
|
166
|
+
def __getitem__(self, key: str) -> Any:
|
|
167
|
+
return self.additional_properties[key]
|
|
168
|
+
|
|
169
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
170
|
+
self.additional_properties[key] = value
|
|
171
|
+
|
|
172
|
+
def __delitem__(self, key: str) -> None:
|
|
173
|
+
del self.additional_properties[key]
|
|
174
|
+
|
|
175
|
+
def __contains__(self, key: str) -> bool:
|
|
176
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="QuestionAnswerProjectAnswersItem")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class QuestionAnswerProjectAnswersItem:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
question_answer_project_answers_item = cls()
|
|
26
|
+
|
|
27
|
+
question_answer_project_answers_item.additional_properties = d
|
|
28
|
+
return question_answer_project_answers_item
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> Any:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
T = TypeVar("T", bound="QuestionAnswerQuestionOptionsItem")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@_attrs_define
|
|
11
|
+
class QuestionAnswerQuestionOptionsItem:
|
|
12
|
+
""" """
|
|
13
|
+
|
|
14
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
15
|
+
|
|
16
|
+
def to_dict(self) -> dict[str, Any]:
|
|
17
|
+
field_dict: dict[str, Any] = {}
|
|
18
|
+
field_dict.update(self.additional_properties)
|
|
19
|
+
|
|
20
|
+
return field_dict
|
|
21
|
+
|
|
22
|
+
@classmethod
|
|
23
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
24
|
+
d = dict(src_dict)
|
|
25
|
+
question_answer_question_options_item = cls()
|
|
26
|
+
|
|
27
|
+
question_answer_question_options_item.additional_properties = d
|
|
28
|
+
return question_answer_question_options_item
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def additional_keys(self) -> list[str]:
|
|
32
|
+
return list(self.additional_properties.keys())
|
|
33
|
+
|
|
34
|
+
def __getitem__(self, key: str) -> Any:
|
|
35
|
+
return self.additional_properties[key]
|
|
36
|
+
|
|
37
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
38
|
+
self.additional_properties[key] = value
|
|
39
|
+
|
|
40
|
+
def __delitem__(self, key: str) -> None:
|
|
41
|
+
del self.additional_properties[key]
|
|
42
|
+
|
|
43
|
+
def __contains__(self, key: str) -> bool:
|
|
44
|
+
return key in self.additional_properties
|
|
@@ -21,10 +21,11 @@ class RancherClusterSecurityGroupRule:
|
|
|
21
21
|
uuid (UUID):
|
|
22
22
|
ethertype (Union[Unset, EthertypeEnum]):
|
|
23
23
|
direction (Union[Unset, DirectionEnum]):
|
|
24
|
-
protocol (Union[BlankEnum, ProtocolEnum, Unset]):
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
protocol (Union[BlankEnum, ProtocolEnum, Unset]): The network protocol (TCP, UDP, ICMP, or empty for any
|
|
25
|
+
protocol)
|
|
26
|
+
from_port (Union[None, Unset, int]): Starting port number in the range (1-65535)
|
|
27
|
+
to_port (Union[None, Unset, int]): Ending port number in the range (1-65535)
|
|
28
|
+
cidr (Union[None, Unset, str]): CIDR notation for the source/destination network address range
|
|
28
29
|
description (Union[Unset, str]):
|
|
29
30
|
"""
|
|
30
31
|
|