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,122 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import 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
|
+
T = TypeVar("T", bound="ProjectAnswer")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@_attrs_define
|
|
12
|
+
class ProjectAnswer:
|
|
13
|
+
"""
|
|
14
|
+
Attributes:
|
|
15
|
+
project_uuid (UUID):
|
|
16
|
+
project_name (str):
|
|
17
|
+
completion_uuid (Union[None, str]): Get completion UUID.
|
|
18
|
+
completion_percentage (float): Get completion percentage.
|
|
19
|
+
is_completed (bool): Get completion status.
|
|
20
|
+
requires_review (bool): Get review requirement status.
|
|
21
|
+
answers_count (int): Get count of answers.
|
|
22
|
+
unanswered_required_count (int): Get count of unanswered required questions.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
project_uuid: UUID
|
|
26
|
+
project_name: str
|
|
27
|
+
completion_uuid: Union[None, str]
|
|
28
|
+
completion_percentage: float
|
|
29
|
+
is_completed: bool
|
|
30
|
+
requires_review: bool
|
|
31
|
+
answers_count: int
|
|
32
|
+
unanswered_required_count: int
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
project_uuid = str(self.project_uuid)
|
|
37
|
+
|
|
38
|
+
project_name = self.project_name
|
|
39
|
+
|
|
40
|
+
completion_uuid: Union[None, str]
|
|
41
|
+
completion_uuid = self.completion_uuid
|
|
42
|
+
|
|
43
|
+
completion_percentage = self.completion_percentage
|
|
44
|
+
|
|
45
|
+
is_completed = self.is_completed
|
|
46
|
+
|
|
47
|
+
requires_review = self.requires_review
|
|
48
|
+
|
|
49
|
+
answers_count = self.answers_count
|
|
50
|
+
|
|
51
|
+
unanswered_required_count = self.unanswered_required_count
|
|
52
|
+
|
|
53
|
+
field_dict: dict[str, Any] = {}
|
|
54
|
+
field_dict.update(self.additional_properties)
|
|
55
|
+
field_dict.update(
|
|
56
|
+
{
|
|
57
|
+
"project_uuid": project_uuid,
|
|
58
|
+
"project_name": project_name,
|
|
59
|
+
"completion_uuid": completion_uuid,
|
|
60
|
+
"completion_percentage": completion_percentage,
|
|
61
|
+
"is_completed": is_completed,
|
|
62
|
+
"requires_review": requires_review,
|
|
63
|
+
"answers_count": answers_count,
|
|
64
|
+
"unanswered_required_count": unanswered_required_count,
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
return field_dict
|
|
69
|
+
|
|
70
|
+
@classmethod
|
|
71
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
72
|
+
d = dict(src_dict)
|
|
73
|
+
project_uuid = UUID(d.pop("project_uuid"))
|
|
74
|
+
|
|
75
|
+
project_name = d.pop("project_name")
|
|
76
|
+
|
|
77
|
+
def _parse_completion_uuid(data: object) -> Union[None, str]:
|
|
78
|
+
if data is None:
|
|
79
|
+
return data
|
|
80
|
+
return cast(Union[None, str], data)
|
|
81
|
+
|
|
82
|
+
completion_uuid = _parse_completion_uuid(d.pop("completion_uuid"))
|
|
83
|
+
|
|
84
|
+
completion_percentage = d.pop("completion_percentage")
|
|
85
|
+
|
|
86
|
+
is_completed = d.pop("is_completed")
|
|
87
|
+
|
|
88
|
+
requires_review = d.pop("requires_review")
|
|
89
|
+
|
|
90
|
+
answers_count = d.pop("answers_count")
|
|
91
|
+
|
|
92
|
+
unanswered_required_count = d.pop("unanswered_required_count")
|
|
93
|
+
|
|
94
|
+
project_answer = cls(
|
|
95
|
+
project_uuid=project_uuid,
|
|
96
|
+
project_name=project_name,
|
|
97
|
+
completion_uuid=completion_uuid,
|
|
98
|
+
completion_percentage=completion_percentage,
|
|
99
|
+
is_completed=is_completed,
|
|
100
|
+
requires_review=requires_review,
|
|
101
|
+
answers_count=answers_count,
|
|
102
|
+
unanswered_required_count=unanswered_required_count,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
project_answer.additional_properties = d
|
|
106
|
+
return project_answer
|
|
107
|
+
|
|
108
|
+
@property
|
|
109
|
+
def additional_keys(self) -> list[str]:
|
|
110
|
+
return list(self.additional_properties.keys())
|
|
111
|
+
|
|
112
|
+
def __getitem__(self, key: str) -> Any:
|
|
113
|
+
return self.additional_properties[key]
|
|
114
|
+
|
|
115
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
116
|
+
self.additional_properties[key] = value
|
|
117
|
+
|
|
118
|
+
def __delitem__(self, key: str) -> None:
|
|
119
|
+
del self.additional_properties[key]
|
|
120
|
+
|
|
121
|
+
def __contains__(self, key: str) -> bool:
|
|
122
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import 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
|
+
T = TypeVar("T", bound="ProjectDetail")
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@_attrs_define
|
|
12
|
+
class ProjectDetail:
|
|
13
|
+
"""
|
|
14
|
+
Attributes:
|
|
15
|
+
project_uuid (UUID):
|
|
16
|
+
project_name (str):
|
|
17
|
+
completion_uuid (Union[None, UUID]):
|
|
18
|
+
completion_percentage (float):
|
|
19
|
+
is_completed (bool):
|
|
20
|
+
requires_review (bool):
|
|
21
|
+
answers (list[Any]):
|
|
22
|
+
unanswered_required_questions (list[Any]):
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
project_uuid: UUID
|
|
26
|
+
project_name: str
|
|
27
|
+
completion_uuid: Union[None, UUID]
|
|
28
|
+
completion_percentage: float
|
|
29
|
+
is_completed: bool
|
|
30
|
+
requires_review: bool
|
|
31
|
+
answers: list[Any]
|
|
32
|
+
unanswered_required_questions: list[Any]
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
project_uuid = str(self.project_uuid)
|
|
37
|
+
|
|
38
|
+
project_name = self.project_name
|
|
39
|
+
|
|
40
|
+
completion_uuid: Union[None, str]
|
|
41
|
+
if isinstance(self.completion_uuid, UUID):
|
|
42
|
+
completion_uuid = str(self.completion_uuid)
|
|
43
|
+
else:
|
|
44
|
+
completion_uuid = self.completion_uuid
|
|
45
|
+
|
|
46
|
+
completion_percentage = self.completion_percentage
|
|
47
|
+
|
|
48
|
+
is_completed = self.is_completed
|
|
49
|
+
|
|
50
|
+
requires_review = self.requires_review
|
|
51
|
+
|
|
52
|
+
answers = self.answers
|
|
53
|
+
|
|
54
|
+
unanswered_required_questions = self.unanswered_required_questions
|
|
55
|
+
|
|
56
|
+
field_dict: dict[str, Any] = {}
|
|
57
|
+
field_dict.update(self.additional_properties)
|
|
58
|
+
field_dict.update(
|
|
59
|
+
{
|
|
60
|
+
"project_uuid": project_uuid,
|
|
61
|
+
"project_name": project_name,
|
|
62
|
+
"completion_uuid": completion_uuid,
|
|
63
|
+
"completion_percentage": completion_percentage,
|
|
64
|
+
"is_completed": is_completed,
|
|
65
|
+
"requires_review": requires_review,
|
|
66
|
+
"answers": answers,
|
|
67
|
+
"unanswered_required_questions": unanswered_required_questions,
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
return field_dict
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
75
|
+
d = dict(src_dict)
|
|
76
|
+
project_uuid = UUID(d.pop("project_uuid"))
|
|
77
|
+
|
|
78
|
+
project_name = d.pop("project_name")
|
|
79
|
+
|
|
80
|
+
def _parse_completion_uuid(data: object) -> Union[None, UUID]:
|
|
81
|
+
if data is None:
|
|
82
|
+
return data
|
|
83
|
+
try:
|
|
84
|
+
if not isinstance(data, str):
|
|
85
|
+
raise TypeError()
|
|
86
|
+
completion_uuid_type_0 = UUID(data)
|
|
87
|
+
|
|
88
|
+
return completion_uuid_type_0
|
|
89
|
+
except: # noqa: E722
|
|
90
|
+
pass
|
|
91
|
+
return cast(Union[None, UUID], data)
|
|
92
|
+
|
|
93
|
+
completion_uuid = _parse_completion_uuid(d.pop("completion_uuid"))
|
|
94
|
+
|
|
95
|
+
completion_percentage = d.pop("completion_percentage")
|
|
96
|
+
|
|
97
|
+
is_completed = d.pop("is_completed")
|
|
98
|
+
|
|
99
|
+
requires_review = d.pop("requires_review")
|
|
100
|
+
|
|
101
|
+
answers = cast(list[Any], d.pop("answers"))
|
|
102
|
+
|
|
103
|
+
unanswered_required_questions = cast(list[Any], d.pop("unanswered_required_questions"))
|
|
104
|
+
|
|
105
|
+
project_detail = cls(
|
|
106
|
+
project_uuid=project_uuid,
|
|
107
|
+
project_name=project_name,
|
|
108
|
+
completion_uuid=completion_uuid,
|
|
109
|
+
completion_percentage=completion_percentage,
|
|
110
|
+
is_completed=is_completed,
|
|
111
|
+
requires_review=requires_review,
|
|
112
|
+
answers=answers,
|
|
113
|
+
unanswered_required_questions=unanswered_required_questions,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
project_detail.additional_properties = d
|
|
117
|
+
return project_detail
|
|
118
|
+
|
|
119
|
+
@property
|
|
120
|
+
def additional_keys(self) -> list[str]:
|
|
121
|
+
return list(self.additional_properties.keys())
|
|
122
|
+
|
|
123
|
+
def __getitem__(self, key: str) -> Any:
|
|
124
|
+
return self.additional_properties[key]
|
|
125
|
+
|
|
126
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
127
|
+
self.additional_properties[key] = value
|
|
128
|
+
|
|
129
|
+
def __delitem__(self, key: str) -> None:
|
|
130
|
+
del self.additional_properties[key]
|
|
131
|
+
|
|
132
|
+
def __contains__(self, key: str) -> bool:
|
|
133
|
+
return key in self.additional_properties
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
from collections.abc import Mapping
|
|
2
|
+
from typing import TYPE_CHECKING, Any, TypeVar
|
|
3
|
+
|
|
4
|
+
from attrs import define as _attrs_define
|
|
5
|
+
from attrs import field as _attrs_field
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from ..models.checklist_info import ChecklistInfo
|
|
9
|
+
from ..models.project_detail import ProjectDetail
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
T = TypeVar("T", bound="ProjectDetailsResponse")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@_attrs_define
|
|
16
|
+
class ProjectDetailsResponse:
|
|
17
|
+
"""
|
|
18
|
+
Attributes:
|
|
19
|
+
checklist (ChecklistInfo):
|
|
20
|
+
total_projects (int):
|
|
21
|
+
projects_with_completions (int):
|
|
22
|
+
fully_completed_projects (int):
|
|
23
|
+
projects_requiring_review (int):
|
|
24
|
+
project_details (list['ProjectDetail']):
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
checklist: "ChecklistInfo"
|
|
28
|
+
total_projects: int
|
|
29
|
+
projects_with_completions: int
|
|
30
|
+
fully_completed_projects: int
|
|
31
|
+
projects_requiring_review: int
|
|
32
|
+
project_details: list["ProjectDetail"]
|
|
33
|
+
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
|
|
34
|
+
|
|
35
|
+
def to_dict(self) -> dict[str, Any]:
|
|
36
|
+
checklist = self.checklist.to_dict()
|
|
37
|
+
|
|
38
|
+
total_projects = self.total_projects
|
|
39
|
+
|
|
40
|
+
projects_with_completions = self.projects_with_completions
|
|
41
|
+
|
|
42
|
+
fully_completed_projects = self.fully_completed_projects
|
|
43
|
+
|
|
44
|
+
projects_requiring_review = self.projects_requiring_review
|
|
45
|
+
|
|
46
|
+
project_details = []
|
|
47
|
+
for project_details_item_data in self.project_details:
|
|
48
|
+
project_details_item = project_details_item_data.to_dict()
|
|
49
|
+
project_details.append(project_details_item)
|
|
50
|
+
|
|
51
|
+
field_dict: dict[str, Any] = {}
|
|
52
|
+
field_dict.update(self.additional_properties)
|
|
53
|
+
field_dict.update(
|
|
54
|
+
{
|
|
55
|
+
"checklist": checklist,
|
|
56
|
+
"total_projects": total_projects,
|
|
57
|
+
"projects_with_completions": projects_with_completions,
|
|
58
|
+
"fully_completed_projects": fully_completed_projects,
|
|
59
|
+
"projects_requiring_review": projects_requiring_review,
|
|
60
|
+
"project_details": project_details,
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
return field_dict
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
|
|
68
|
+
from ..models.checklist_info import ChecklistInfo
|
|
69
|
+
from ..models.project_detail import ProjectDetail
|
|
70
|
+
|
|
71
|
+
d = dict(src_dict)
|
|
72
|
+
checklist = ChecklistInfo.from_dict(d.pop("checklist"))
|
|
73
|
+
|
|
74
|
+
total_projects = d.pop("total_projects")
|
|
75
|
+
|
|
76
|
+
projects_with_completions = d.pop("projects_with_completions")
|
|
77
|
+
|
|
78
|
+
fully_completed_projects = d.pop("fully_completed_projects")
|
|
79
|
+
|
|
80
|
+
projects_requiring_review = d.pop("projects_requiring_review")
|
|
81
|
+
|
|
82
|
+
project_details = []
|
|
83
|
+
_project_details = d.pop("project_details")
|
|
84
|
+
for project_details_item_data in _project_details:
|
|
85
|
+
project_details_item = ProjectDetail.from_dict(project_details_item_data)
|
|
86
|
+
|
|
87
|
+
project_details.append(project_details_item)
|
|
88
|
+
|
|
89
|
+
project_details_response = cls(
|
|
90
|
+
checklist=checklist,
|
|
91
|
+
total_projects=total_projects,
|
|
92
|
+
projects_with_completions=projects_with_completions,
|
|
93
|
+
fully_completed_projects=fully_completed_projects,
|
|
94
|
+
projects_requiring_review=projects_requiring_review,
|
|
95
|
+
project_details=project_details,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
project_details_response.additional_properties = d
|
|
99
|
+
return project_details_response
|
|
100
|
+
|
|
101
|
+
@property
|
|
102
|
+
def additional_keys(self) -> list[str]:
|
|
103
|
+
return list(self.additional_properties.keys())
|
|
104
|
+
|
|
105
|
+
def __getitem__(self, key: str) -> Any:
|
|
106
|
+
return self.additional_properties[key]
|
|
107
|
+
|
|
108
|
+
def __setitem__(self, key: str, value: Any) -> None:
|
|
109
|
+
self.additional_properties[key] = value
|
|
110
|
+
|
|
111
|
+
def __delitem__(self, key: str) -> None:
|
|
112
|
+
del self.additional_properties[key]
|
|
113
|
+
|
|
114
|
+
def __contains__(self, key: str) -> bool:
|
|
115
|
+
return key in self.additional_properties
|
|
@@ -44,8 +44,6 @@ class ProviderOfferingDetails:
|
|
|
44
44
|
slug (Union[Unset, str]):
|
|
45
45
|
description (Union[Unset, str]):
|
|
46
46
|
full_description (Union[Unset, str]):
|
|
47
|
-
terms_of_service (Union[Unset, str]):
|
|
48
|
-
terms_of_service_link (Union[Unset, str]):
|
|
49
47
|
privacy_policy_link (Union[Unset, str]):
|
|
50
48
|
access_url (Union[Unset, str]): Publicly accessible offering access URL
|
|
51
49
|
endpoints (Union[Unset, list['NestedEndpoint']]):
|
|
@@ -100,6 +98,7 @@ class ProviderOfferingDetails:
|
|
|
100
98
|
parent_uuid (Union[None, UUID, Unset]):
|
|
101
99
|
parent_name (Union[None, Unset, str]):
|
|
102
100
|
backend_metadata (Union[Unset, Any]):
|
|
101
|
+
has_compliance_requirements (Union[Unset, bool]):
|
|
103
102
|
integration_status (Union[None, Unset, list['IntegrationStatus']]):
|
|
104
103
|
google_calendar_is_public (Union[None, Unset, bool]):
|
|
105
104
|
google_calendar_link (Union[None, Unset, str]): Get the Google Calendar link for an offering.
|
|
@@ -112,8 +111,6 @@ class ProviderOfferingDetails:
|
|
|
112
111
|
slug: Union[Unset, str] = UNSET
|
|
113
112
|
description: Union[Unset, str] = UNSET
|
|
114
113
|
full_description: Union[Unset, str] = UNSET
|
|
115
|
-
terms_of_service: Union[Unset, str] = UNSET
|
|
116
|
-
terms_of_service_link: Union[Unset, str] = UNSET
|
|
117
114
|
privacy_policy_link: Union[Unset, str] = UNSET
|
|
118
115
|
access_url: Union[Unset, str] = UNSET
|
|
119
116
|
endpoints: Union[Unset, list["NestedEndpoint"]] = UNSET
|
|
@@ -168,6 +165,7 @@ class ProviderOfferingDetails:
|
|
|
168
165
|
parent_uuid: Union[None, UUID, Unset] = UNSET
|
|
169
166
|
parent_name: Union[None, Unset, str] = UNSET
|
|
170
167
|
backend_metadata: Union[Unset, Any] = UNSET
|
|
168
|
+
has_compliance_requirements: Union[Unset, bool] = UNSET
|
|
171
169
|
integration_status: Union[None, Unset, list["IntegrationStatus"]] = UNSET
|
|
172
170
|
google_calendar_is_public: Union[None, Unset, bool] = UNSET
|
|
173
171
|
google_calendar_link: Union[None, Unset, str] = UNSET
|
|
@@ -192,10 +190,6 @@ class ProviderOfferingDetails:
|
|
|
192
190
|
|
|
193
191
|
full_description = self.full_description
|
|
194
192
|
|
|
195
|
-
terms_of_service = self.terms_of_service
|
|
196
|
-
|
|
197
|
-
terms_of_service_link = self.terms_of_service_link
|
|
198
|
-
|
|
199
193
|
privacy_policy_link = self.privacy_policy_link
|
|
200
194
|
|
|
201
195
|
access_url = self.access_url
|
|
@@ -458,6 +452,8 @@ class ProviderOfferingDetails:
|
|
|
458
452
|
|
|
459
453
|
backend_metadata = self.backend_metadata
|
|
460
454
|
|
|
455
|
+
has_compliance_requirements = self.has_compliance_requirements
|
|
456
|
+
|
|
461
457
|
integration_status: Union[None, Unset, list[dict[str, Any]]]
|
|
462
458
|
if isinstance(self.integration_status, Unset):
|
|
463
459
|
integration_status = UNSET
|
|
@@ -499,10 +495,6 @@ class ProviderOfferingDetails:
|
|
|
499
495
|
field_dict["description"] = description
|
|
500
496
|
if full_description is not UNSET:
|
|
501
497
|
field_dict["full_description"] = full_description
|
|
502
|
-
if terms_of_service is not UNSET:
|
|
503
|
-
field_dict["terms_of_service"] = terms_of_service
|
|
504
|
-
if terms_of_service_link is not UNSET:
|
|
505
|
-
field_dict["terms_of_service_link"] = terms_of_service_link
|
|
506
498
|
if privacy_policy_link is not UNSET:
|
|
507
499
|
field_dict["privacy_policy_link"] = privacy_policy_link
|
|
508
500
|
if access_url is not UNSET:
|
|
@@ -611,6 +603,8 @@ class ProviderOfferingDetails:
|
|
|
611
603
|
field_dict["parent_name"] = parent_name
|
|
612
604
|
if backend_metadata is not UNSET:
|
|
613
605
|
field_dict["backend_metadata"] = backend_metadata
|
|
606
|
+
if has_compliance_requirements is not UNSET:
|
|
607
|
+
field_dict["has_compliance_requirements"] = has_compliance_requirements
|
|
614
608
|
if integration_status is not UNSET:
|
|
615
609
|
field_dict["integration_status"] = integration_status
|
|
616
610
|
if google_calendar_is_public is not UNSET:
|
|
@@ -662,10 +656,6 @@ class ProviderOfferingDetails:
|
|
|
662
656
|
|
|
663
657
|
full_description = d.pop("full_description", UNSET)
|
|
664
658
|
|
|
665
|
-
terms_of_service = d.pop("terms_of_service", UNSET)
|
|
666
|
-
|
|
667
|
-
terms_of_service_link = d.pop("terms_of_service_link", UNSET)
|
|
668
|
-
|
|
669
659
|
privacy_policy_link = d.pop("privacy_policy_link", UNSET)
|
|
670
660
|
|
|
671
661
|
access_url = d.pop("access_url", UNSET)
|
|
@@ -1059,6 +1049,8 @@ class ProviderOfferingDetails:
|
|
|
1059
1049
|
|
|
1060
1050
|
backend_metadata = d.pop("backend_metadata", UNSET)
|
|
1061
1051
|
|
|
1052
|
+
has_compliance_requirements = d.pop("has_compliance_requirements", UNSET)
|
|
1053
|
+
|
|
1062
1054
|
def _parse_integration_status(data: object) -> Union[None, Unset, list["IntegrationStatus"]]:
|
|
1063
1055
|
if data is None:
|
|
1064
1056
|
return data
|
|
@@ -1107,8 +1099,6 @@ class ProviderOfferingDetails:
|
|
|
1107
1099
|
slug=slug,
|
|
1108
1100
|
description=description,
|
|
1109
1101
|
full_description=full_description,
|
|
1110
|
-
terms_of_service=terms_of_service,
|
|
1111
|
-
terms_of_service_link=terms_of_service_link,
|
|
1112
1102
|
privacy_policy_link=privacy_policy_link,
|
|
1113
1103
|
access_url=access_url,
|
|
1114
1104
|
endpoints=endpoints,
|
|
@@ -1163,6 +1153,7 @@ class ProviderOfferingDetails:
|
|
|
1163
1153
|
parent_uuid=parent_uuid,
|
|
1164
1154
|
parent_name=parent_name,
|
|
1165
1155
|
backend_metadata=backend_metadata,
|
|
1156
|
+
has_compliance_requirements=has_compliance_requirements,
|
|
1166
1157
|
integration_status=integration_status,
|
|
1167
1158
|
google_calendar_is_public=google_calendar_is_public,
|
|
1168
1159
|
google_calendar_link=google_calendar_link,
|
|
@@ -27,8 +27,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
27
27
|
type_ (str):
|
|
28
28
|
description (Union[Unset, str]):
|
|
29
29
|
full_description (Union[Unset, str]):
|
|
30
|
-
terms_of_service (Union[Unset, str]):
|
|
31
|
-
terms_of_service_link (Union[Unset, str]):
|
|
32
30
|
privacy_policy_link (Union[Unset, str]):
|
|
33
31
|
access_url (Union[Unset, str]): Publicly accessible offering access URL
|
|
34
32
|
customer (Union[None, Unset, str]):
|
|
@@ -55,8 +53,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
55
53
|
type_: str
|
|
56
54
|
description: Union[Unset, str] = UNSET
|
|
57
55
|
full_description: Union[Unset, str] = UNSET
|
|
58
|
-
terms_of_service: Union[Unset, str] = UNSET
|
|
59
|
-
terms_of_service_link: Union[Unset, str] = UNSET
|
|
60
56
|
privacy_policy_link: Union[Unset, str] = UNSET
|
|
61
57
|
access_url: Union[Unset, str] = UNSET
|
|
62
58
|
customer: Union[None, Unset, str] = UNSET
|
|
@@ -89,10 +85,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
89
85
|
|
|
90
86
|
full_description = self.full_description
|
|
91
87
|
|
|
92
|
-
terms_of_service = self.terms_of_service
|
|
93
|
-
|
|
94
|
-
terms_of_service_link = self.terms_of_service_link
|
|
95
|
-
|
|
96
88
|
privacy_policy_link = self.privacy_policy_link
|
|
97
89
|
|
|
98
90
|
access_url = self.access_url
|
|
@@ -186,10 +178,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
186
178
|
field_dict["description"] = description
|
|
187
179
|
if full_description is not UNSET:
|
|
188
180
|
field_dict["full_description"] = full_description
|
|
189
|
-
if terms_of_service is not UNSET:
|
|
190
|
-
field_dict["terms_of_service"] = terms_of_service
|
|
191
|
-
if terms_of_service_link is not UNSET:
|
|
192
|
-
field_dict["terms_of_service_link"] = terms_of_service_link
|
|
193
181
|
if privacy_policy_link is not UNSET:
|
|
194
182
|
field_dict["privacy_policy_link"] = privacy_policy_link
|
|
195
183
|
if access_url is not UNSET:
|
|
@@ -247,10 +235,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
247
235
|
|
|
248
236
|
full_description = d.pop("full_description", UNSET)
|
|
249
237
|
|
|
250
|
-
terms_of_service = d.pop("terms_of_service", UNSET)
|
|
251
|
-
|
|
252
|
-
terms_of_service_link = d.pop("terms_of_service_link", UNSET)
|
|
253
|
-
|
|
254
238
|
privacy_policy_link = d.pop("privacy_policy_link", UNSET)
|
|
255
239
|
|
|
256
240
|
access_url = d.pop("access_url", UNSET)
|
|
@@ -373,8 +357,6 @@ class ProviderOfferingDetailsRequest:
|
|
|
373
357
|
type_=type_,
|
|
374
358
|
description=description,
|
|
375
359
|
full_description=full_description,
|
|
376
|
-
terms_of_service=terms_of_service,
|
|
377
|
-
terms_of_service_link=terms_of_service_link,
|
|
378
360
|
privacy_policy_link=privacy_policy_link,
|
|
379
361
|
access_url=access_url,
|
|
380
362
|
customer=customer,
|