cirro_api_client.v1.models

Contains all the data models used in inputs/outputs

  1"""Contains all the data models used in inputs/outputs"""
  2
  3from .agent import Agent
  4from .agent_detail import AgentDetail
  5from .agent_detail_environment_configuration import AgentDetailEnvironmentConfiguration
  6from .agent_detail_tags import AgentDetailTags
  7from .agent_input import AgentInput
  8from .agent_input_configuration_options_schema import AgentInputConfigurationOptionsSchema
  9from .agent_input_environment_configuration import AgentInputEnvironmentConfiguration
 10from .agent_input_tags import AgentInputTags
 11from .agent_registration import AgentRegistration
 12from .agent_status import AgentStatus
 13from .agent_tags import AgentTags
 14from .allowed_data_type import AllowedDataType
 15from .approve_project_access_request import ApproveProjectAccessRequest
 16from .artifact import Artifact
 17from .artifact_type import ArtifactType
 18from .audit_event import AuditEvent
 19from .audit_event_changes import AuditEventChanges
 20from .audit_event_event_detail import AuditEventEventDetail
 21from .auth_info import AuthInfo
 22from .aws_credentials import AWSCredentials
 23from .billing_account import BillingAccount
 24from .billing_account_request import BillingAccountRequest
 25from .billing_method import BillingMethod
 26from .budget_period import BudgetPeriod
 27from .calculate_pipeline_cost_request import CalculatePipelineCostRequest
 28from .classification_input import ClassificationInput
 29from .cloud_account import CloudAccount
 30from .cloud_account_type import CloudAccountType
 31from .column_definition import ColumnDefinition
 32from .compute_environment_configuration import ComputeEnvironmentConfiguration
 33from .compute_environment_configuration_input import ComputeEnvironmentConfigurationInput
 34from .compute_environment_configuration_input_properties import ComputeEnvironmentConfigurationInputProperties
 35from .compute_environment_configuration_properties import ComputeEnvironmentConfigurationProperties
 36from .contact import Contact
 37from .contact_input import ContactInput
 38from .create_notebook_instance_request import CreateNotebookInstanceRequest
 39from .create_project_access_request import CreateProjectAccessRequest
 40from .create_reference_request import CreateReferenceRequest
 41from .create_response import CreateResponse
 42from .custom_pipeline_settings import CustomPipelineSettings
 43from .custom_process_input import CustomProcessInput
 44from .customer_type import CustomerType
 45from .dashboard import Dashboard
 46from .dashboard_dashboard_data import DashboardDashboardData
 47from .dashboard_info import DashboardInfo
 48from .dashboard_request import DashboardRequest
 49from .dashboard_request_dashboard_data import DashboardRequestDashboardData
 50from .dashboard_request_info import DashboardRequestInfo
 51from .data_file import DataFile
 52from .data_file_metadata import DataFileMetadata
 53from .dataset import Dataset
 54from .dataset_assets_manifest import DatasetAssetsManifest
 55from .dataset_condition import DatasetCondition
 56from .dataset_condition_field import DatasetConditionField
 57from .dataset_detail import DatasetDetail
 58from .dataset_detail_info import DatasetDetailInfo
 59from .dataset_detail_params import DatasetDetailParams
 60from .dataset_viz import DatasetViz
 61from .environment_type import EnvironmentType
 62from .error_message import ErrorMessage
 63from .executor import Executor
 64from .feature_flags import FeatureFlags
 65from .file_entry import FileEntry
 66from .file_entry_metadata import FileEntryMetadata
 67from .file_mapping_rule import FileMappingRule
 68from .file_name_pattern import FileNamePattern
 69from .file_requirements import FileRequirements
 70from .form_schema import FormSchema
 71from .form_schema_form import FormSchemaForm
 72from .form_schema_ui import FormSchemaUi
 73from .fulfillment_response import FulfillmentResponse
 74from .generate_sftp_credentials_request import GenerateSftpCredentialsRequest
 75from .get_execution_logs_response import GetExecutionLogsResponse
 76from .get_project_summary_response_200 import GetProjectSummaryResponse200
 77from .governance_access_type import GovernanceAccessType
 78from .governance_classification import GovernanceClassification
 79from .governance_contact import GovernanceContact
 80from .governance_expiry import GovernanceExpiry
 81from .governance_expiry_type import GovernanceExpiryType
 82from .governance_file import GovernanceFile
 83from .governance_file_access_request import GovernanceFileAccessRequest
 84from .governance_file_type import GovernanceFileType
 85from .governance_requirement import GovernanceRequirement
 86from .governance_scope import GovernanceScope
 87from .governance_training_verification import GovernanceTrainingVerification
 88from .governance_type import GovernanceType
 89from .import_data_request import ImportDataRequest
 90from .invite_user_request import InviteUserRequest
 91from .invite_user_response import InviteUserResponse
 92from .list_events_entity_type import ListEventsEntityType
 93from .log_entry import LogEntry
 94from .login_provider import LoginProvider
 95from .metric_record import MetricRecord
 96from .metric_record_services import MetricRecordServices
 97from .move_dataset_input import MoveDatasetInput
 98from .move_dataset_response import MoveDatasetResponse
 99from .named_item import NamedItem
100from .notebook_instance import NotebookInstance
101from .notebook_instance_status_response import NotebookInstanceStatusResponse
102from .open_notebook_instance_response import OpenNotebookInstanceResponse
103from .paginated_response_dataset_list_dto import PaginatedResponseDatasetListDto
104from .paginated_response_sample_dto import PaginatedResponseSampleDto
105from .paginated_response_user_dto import PaginatedResponseUserDto
106from .pipeline_code import PipelineCode
107from .pipeline_cost import PipelineCost
108from .portal_error_response import PortalErrorResponse
109from .process import Process
110from .process_detail import ProcessDetail
111from .project import Project
112from .project_access_request import ProjectAccessRequest
113from .project_access_type import ProjectAccessType
114from .project_create_options import ProjectCreateOptions
115from .project_detail import ProjectDetail
116from .project_file_access_request import ProjectFileAccessRequest
117from .project_input import ProjectInput
118from .project_metrics import ProjectMetrics
119from .project_request import ProjectRequest
120from .project_requirement import ProjectRequirement
121from .project_role import ProjectRole
122from .project_settings import ProjectSettings
123from .project_user import ProjectUser
124from .reference import Reference
125from .reference_type import ReferenceType
126from .reference_type_validation_item import ReferenceTypeValidationItem
127from .repository_type import RepositoryType
128from .request_status import RequestStatus
129from .requirement_fulfillment_input import RequirementFulfillmentInput
130from .requirement_input import RequirementInput
131from .resources_info import ResourcesInfo
132from .run_analysis_request import RunAnalysisRequest
133from .run_analysis_request_params import RunAnalysisRequestParams
134from .sample import Sample
135from .sample_metadata import SampleMetadata
136from .sample_request import SampleRequest
137from .sample_request_metadata import SampleRequestMetadata
138from .service_connection import ServiceConnection
139from .set_user_project_role_request import SetUserProjectRoleRequest
140from .sftp_credentials import SftpCredentials
141from .share import Share
142from .share_detail import ShareDetail
143from .share_input import ShareInput
144from .share_type import ShareType
145from .status import Status
146from .stop_execution_response import StopExecutionResponse
147from .sync_status import SyncStatus
148from .system_info_response import SystemInfoResponse
149from .table import Table
150from .tag import Tag
151from .task import Task
152from .tenant_info import TenantInfo
153from .update_dataset_request import UpdateDatasetRequest
154from .update_user_request import UpdateUserRequest
155from .upload_dataset_create_response import UploadDatasetCreateResponse
156from .upload_dataset_request import UploadDatasetRequest
157from .user import User
158from .user_detail import UserDetail
159from .user_project_assignment import UserProjectAssignment
160from .user_settings import UserSettings
161from .validate_file_requirements_request import ValidateFileRequirementsRequest
162
163__all__ = (
164    "Agent",
165    "AgentDetail",
166    "AgentDetailEnvironmentConfiguration",
167    "AgentDetailTags",
168    "AgentInput",
169    "AgentInputConfigurationOptionsSchema",
170    "AgentInputEnvironmentConfiguration",
171    "AgentInputTags",
172    "AgentRegistration",
173    "AgentStatus",
174    "AgentTags",
175    "AllowedDataType",
176    "ApproveProjectAccessRequest",
177    "Artifact",
178    "ArtifactType",
179    "AuditEvent",
180    "AuditEventChanges",
181    "AuditEventEventDetail",
182    "AuthInfo",
183    "AWSCredentials",
184    "BillingAccount",
185    "BillingAccountRequest",
186    "BillingMethod",
187    "BudgetPeriod",
188    "CalculatePipelineCostRequest",
189    "ClassificationInput",
190    "CloudAccount",
191    "CloudAccountType",
192    "ColumnDefinition",
193    "ComputeEnvironmentConfiguration",
194    "ComputeEnvironmentConfigurationInput",
195    "ComputeEnvironmentConfigurationInputProperties",
196    "ComputeEnvironmentConfigurationProperties",
197    "Contact",
198    "ContactInput",
199    "CreateNotebookInstanceRequest",
200    "CreateProjectAccessRequest",
201    "CreateReferenceRequest",
202    "CreateResponse",
203    "CustomerType",
204    "CustomPipelineSettings",
205    "CustomProcessInput",
206    "Dashboard",
207    "DashboardDashboardData",
208    "DashboardInfo",
209    "DashboardRequest",
210    "DashboardRequestDashboardData",
211    "DashboardRequestInfo",
212    "DataFile",
213    "DataFileMetadata",
214    "Dataset",
215    "DatasetAssetsManifest",
216    "DatasetCondition",
217    "DatasetConditionField",
218    "DatasetDetail",
219    "DatasetDetailInfo",
220    "DatasetDetailParams",
221    "DatasetViz",
222    "EnvironmentType",
223    "ErrorMessage",
224    "Executor",
225    "FeatureFlags",
226    "FileEntry",
227    "FileEntryMetadata",
228    "FileMappingRule",
229    "FileNamePattern",
230    "FileRequirements",
231    "FormSchema",
232    "FormSchemaForm",
233    "FormSchemaUi",
234    "FulfillmentResponse",
235    "GenerateSftpCredentialsRequest",
236    "GetExecutionLogsResponse",
237    "GetProjectSummaryResponse200",
238    "GovernanceAccessType",
239    "GovernanceClassification",
240    "GovernanceContact",
241    "GovernanceExpiry",
242    "GovernanceExpiryType",
243    "GovernanceFile",
244    "GovernanceFileAccessRequest",
245    "GovernanceFileType",
246    "GovernanceRequirement",
247    "GovernanceScope",
248    "GovernanceTrainingVerification",
249    "GovernanceType",
250    "ImportDataRequest",
251    "InviteUserRequest",
252    "InviteUserResponse",
253    "ListEventsEntityType",
254    "LogEntry",
255    "LoginProvider",
256    "MetricRecord",
257    "MetricRecordServices",
258    "MoveDatasetInput",
259    "MoveDatasetResponse",
260    "NamedItem",
261    "NotebookInstance",
262    "NotebookInstanceStatusResponse",
263    "OpenNotebookInstanceResponse",
264    "PaginatedResponseDatasetListDto",
265    "PaginatedResponseSampleDto",
266    "PaginatedResponseUserDto",
267    "PipelineCode",
268    "PipelineCost",
269    "PortalErrorResponse",
270    "Process",
271    "ProcessDetail",
272    "Project",
273    "ProjectAccessRequest",
274    "ProjectAccessType",
275    "ProjectCreateOptions",
276    "ProjectDetail",
277    "ProjectFileAccessRequest",
278    "ProjectInput",
279    "ProjectMetrics",
280    "ProjectRequest",
281    "ProjectRequirement",
282    "ProjectRole",
283    "ProjectSettings",
284    "ProjectUser",
285    "Reference",
286    "ReferenceType",
287    "ReferenceTypeValidationItem",
288    "RepositoryType",
289    "RequestStatus",
290    "RequirementFulfillmentInput",
291    "RequirementInput",
292    "ResourcesInfo",
293    "RunAnalysisRequest",
294    "RunAnalysisRequestParams",
295    "Sample",
296    "SampleMetadata",
297    "SampleRequest",
298    "SampleRequestMetadata",
299    "ServiceConnection",
300    "SetUserProjectRoleRequest",
301    "SftpCredentials",
302    "Share",
303    "ShareDetail",
304    "ShareInput",
305    "ShareType",
306    "Status",
307    "StopExecutionResponse",
308    "SyncStatus",
309    "SystemInfoResponse",
310    "Table",
311    "Tag",
312    "Task",
313    "TenantInfo",
314    "UpdateDatasetRequest",
315    "UpdateUserRequest",
316    "UploadDatasetCreateResponse",
317    "UploadDatasetRequest",
318    "User",
319    "UserDetail",
320    "UserProjectAssignment",
321    "UserSettings",
322    "ValidateFileRequirementsRequest",
323)
class Agent:
17@_attrs_define
18class Agent:
19    """Details of the agent
20
21    Attributes:
22        status (AgentStatus): The status of the agent
23        id (Union[Unset, str]): The unique ID of the agent
24        name (Union[Unset, str]): The display name of the agent
25        tags (Union[Unset, AgentTags]): Tags associated with the agent
26    """
27
28    status: AgentStatus
29    id: Union[Unset, str] = UNSET
30    name: Union[Unset, str] = UNSET
31    tags: Union[Unset, "AgentTags"] = UNSET
32    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
33
34    def to_dict(self) -> Dict[str, Any]:
35        status = self.status.value
36
37        id = self.id
38
39        name = self.name
40
41        tags: Union[Unset, Dict[str, Any]] = UNSET
42        if not isinstance(self.tags, Unset):
43            tags = self.tags.to_dict()
44
45        field_dict: Dict[str, Any] = {}
46        field_dict.update(self.additional_properties)
47        field_dict.update(
48            {
49                "status": status,
50            }
51        )
52        if id is not UNSET:
53            field_dict["id"] = id
54        if name is not UNSET:
55            field_dict["name"] = name
56        if tags is not UNSET:
57            field_dict["tags"] = tags
58
59        return field_dict
60
61    @classmethod
62    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
63        from ..models.agent_tags import AgentTags
64
65        d = src_dict.copy()
66        status = AgentStatus(d.pop("status"))
67
68        id = d.pop("id", UNSET)
69
70        name = d.pop("name", UNSET)
71
72        _tags = d.pop("tags", UNSET)
73        tags: Union[Unset, AgentTags]
74        if isinstance(_tags, Unset):
75            tags = UNSET
76        else:
77            tags = AgentTags.from_dict(_tags)
78
79        agent = cls(
80            status=status,
81            id=id,
82            name=name,
83            tags=tags,
84        )
85
86        agent.additional_properties = d
87        return agent
88
89    @property
90    def additional_keys(self) -> List[str]:
91        return list(self.additional_properties.keys())

Details of the agent

Attributes:
  • status (AgentStatus): The status of the agent
  • id (Union[Unset, str]): The unique ID of the agent
  • name (Union[Unset, str]): The display name of the agent
  • tags (Union[Unset, AgentTags]): Tags associated with the agent
Agent( status: AgentStatus, id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, tags: Union[cirro_api_client.v1.types.Unset, AgentTags] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, status, id=attr_dict['id'].default, name=attr_dict['name'].default, tags=attr_dict['tags'].default):
28    self.status = status
29    self.id = id
30    self.name = name
31    self.tags = tags
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Agent.

status: AgentStatus
id: Union[cirro_api_client.v1.types.Unset, str]
name: Union[cirro_api_client.v1.types.Unset, str]
tags: Union[cirro_api_client.v1.types.Unset, AgentTags]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
34    def to_dict(self) -> Dict[str, Any]:
35        status = self.status.value
36
37        id = self.id
38
39        name = self.name
40
41        tags: Union[Unset, Dict[str, Any]] = UNSET
42        if not isinstance(self.tags, Unset):
43            tags = self.tags.to_dict()
44
45        field_dict: Dict[str, Any] = {}
46        field_dict.update(self.additional_properties)
47        field_dict.update(
48            {
49                "status": status,
50            }
51        )
52        if id is not UNSET:
53            field_dict["id"] = id
54        if name is not UNSET:
55            field_dict["name"] = name
56        if tags is not UNSET:
57            field_dict["tags"] = tags
58
59        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
61    @classmethod
62    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
63        from ..models.agent_tags import AgentTags
64
65        d = src_dict.copy()
66        status = AgentStatus(d.pop("status"))
67
68        id = d.pop("id", UNSET)
69
70        name = d.pop("name", UNSET)
71
72        _tags = d.pop("tags", UNSET)
73        tags: Union[Unset, AgentTags]
74        if isinstance(_tags, Unset):
75            tags = UNSET
76        else:
77            tags = AgentTags.from_dict(_tags)
78
79        agent = cls(
80            status=status,
81            id=id,
82            name=name,
83            tags=tags,
84        )
85
86        agent.additional_properties = d
87        return agent
additional_keys: List[str]
89    @property
90    def additional_keys(self) -> List[str]:
91        return list(self.additional_properties.keys())
class AgentDetail:
 21@_attrs_define
 22class AgentDetail:
 23    """
 24    Attributes:
 25        id (str):
 26        name (str):
 27        agent_role_arn (str):
 28        status (AgentStatus): The status of the agent
 29        created_by (str):
 30        created_at (datetime.datetime):
 31        updated_at (datetime.datetime):
 32        registration (Union['AgentRegistration', None, Unset]):
 33        tags (Union['AgentDetailTags', None, Unset]):
 34        environment_configuration (Union['AgentDetailEnvironmentConfiguration', None, Unset]):
 35    """
 36
 37    id: str
 38    name: str
 39    agent_role_arn: str
 40    status: AgentStatus
 41    created_by: str
 42    created_at: datetime.datetime
 43    updated_at: datetime.datetime
 44    registration: Union["AgentRegistration", None, Unset] = UNSET
 45    tags: Union["AgentDetailTags", None, Unset] = UNSET
 46    environment_configuration: Union["AgentDetailEnvironmentConfiguration", None, Unset] = UNSET
 47    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 48
 49    def to_dict(self) -> Dict[str, Any]:
 50        from ..models.agent_detail_environment_configuration import AgentDetailEnvironmentConfiguration
 51        from ..models.agent_detail_tags import AgentDetailTags
 52        from ..models.agent_registration import AgentRegistration
 53
 54        id = self.id
 55
 56        name = self.name
 57
 58        agent_role_arn = self.agent_role_arn
 59
 60        status = self.status.value
 61
 62        created_by = self.created_by
 63
 64        created_at = self.created_at.isoformat()
 65
 66        updated_at = self.updated_at.isoformat()
 67
 68        registration: Union[Dict[str, Any], None, Unset]
 69        if isinstance(self.registration, Unset):
 70            registration = UNSET
 71        elif isinstance(self.registration, AgentRegistration):
 72            registration = self.registration.to_dict()
 73        else:
 74            registration = self.registration
 75
 76        tags: Union[Dict[str, Any], None, Unset]
 77        if isinstance(self.tags, Unset):
 78            tags = UNSET
 79        elif isinstance(self.tags, AgentDetailTags):
 80            tags = self.tags.to_dict()
 81        else:
 82            tags = self.tags
 83
 84        environment_configuration: Union[Dict[str, Any], None, Unset]
 85        if isinstance(self.environment_configuration, Unset):
 86            environment_configuration = UNSET
 87        elif isinstance(self.environment_configuration, AgentDetailEnvironmentConfiguration):
 88            environment_configuration = self.environment_configuration.to_dict()
 89        else:
 90            environment_configuration = self.environment_configuration
 91
 92        field_dict: Dict[str, Any] = {}
 93        field_dict.update(self.additional_properties)
 94        field_dict.update(
 95            {
 96                "id": id,
 97                "name": name,
 98                "agentRoleArn": agent_role_arn,
 99                "status": status,
100                "createdBy": created_by,
101                "createdAt": created_at,
102                "updatedAt": updated_at,
103            }
104        )
105        if registration is not UNSET:
106            field_dict["registration"] = registration
107        if tags is not UNSET:
108            field_dict["tags"] = tags
109        if environment_configuration is not UNSET:
110            field_dict["environmentConfiguration"] = environment_configuration
111
112        return field_dict
113
114    @classmethod
115    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
116        from ..models.agent_detail_environment_configuration import AgentDetailEnvironmentConfiguration
117        from ..models.agent_detail_tags import AgentDetailTags
118        from ..models.agent_registration import AgentRegistration
119
120        d = src_dict.copy()
121        id = d.pop("id")
122
123        name = d.pop("name")
124
125        agent_role_arn = d.pop("agentRoleArn")
126
127        status = AgentStatus(d.pop("status"))
128
129        created_by = d.pop("createdBy")
130
131        created_at = isoparse(d.pop("createdAt"))
132
133        updated_at = isoparse(d.pop("updatedAt"))
134
135        def _parse_registration(data: object) -> Union["AgentRegistration", None, Unset]:
136            if data is None:
137                return data
138            if isinstance(data, Unset):
139                return data
140            try:
141                if not isinstance(data, dict):
142                    raise TypeError()
143                registration_type_1 = AgentRegistration.from_dict(data)
144
145                return registration_type_1
146            except:  # noqa: E722
147                pass
148            return cast(Union["AgentRegistration", None, Unset], data)
149
150        registration = _parse_registration(d.pop("registration", UNSET))
151
152        def _parse_tags(data: object) -> Union["AgentDetailTags", None, Unset]:
153            if data is None:
154                return data
155            if isinstance(data, Unset):
156                return data
157            try:
158                if not isinstance(data, dict):
159                    raise TypeError()
160                tags_type_0 = AgentDetailTags.from_dict(data)
161
162                return tags_type_0
163            except:  # noqa: E722
164                pass
165            return cast(Union["AgentDetailTags", None, Unset], data)
166
167        tags = _parse_tags(d.pop("tags", UNSET))
168
169        def _parse_environment_configuration(data: object) -> Union["AgentDetailEnvironmentConfiguration", None, Unset]:
170            if data is None:
171                return data
172            if isinstance(data, Unset):
173                return data
174            try:
175                if not isinstance(data, dict):
176                    raise TypeError()
177                environment_configuration_type_0 = AgentDetailEnvironmentConfiguration.from_dict(data)
178
179                return environment_configuration_type_0
180            except:  # noqa: E722
181                pass
182            return cast(Union["AgentDetailEnvironmentConfiguration", None, Unset], data)
183
184        environment_configuration = _parse_environment_configuration(d.pop("environmentConfiguration", UNSET))
185
186        agent_detail = cls(
187            id=id,
188            name=name,
189            agent_role_arn=agent_role_arn,
190            status=status,
191            created_by=created_by,
192            created_at=created_at,
193            updated_at=updated_at,
194            registration=registration,
195            tags=tags,
196            environment_configuration=environment_configuration,
197        )
198
199        agent_detail.additional_properties = d
200        return agent_detail
201
202    @property
203    def additional_keys(self) -> List[str]:
204        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • agent_role_arn (str):
  • status (AgentStatus): The status of the agent
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
  • registration (Union['AgentRegistration', None, Unset]):
  • tags (Union['AgentDetailTags', None, Unset]):
  • environment_configuration (Union['AgentDetailEnvironmentConfiguration', None, Unset]):
AgentDetail( id: str, name: str, agent_role_arn: str, status: AgentStatus, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime, registration: Union[AgentRegistration, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, tags: Union[AgentDetailTags, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, environment_configuration: Union[AgentDetailEnvironmentConfiguration, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
33def __init__(self, id, name, agent_role_arn, status, created_by, created_at, updated_at, registration=attr_dict['registration'].default, tags=attr_dict['tags'].default, environment_configuration=attr_dict['environment_configuration'].default):
34    self.id = id
35    self.name = name
36    self.agent_role_arn = agent_role_arn
37    self.status = status
38    self.created_by = created_by
39    self.created_at = created_at
40    self.updated_at = updated_at
41    self.registration = registration
42    self.tags = tags
43    self.environment_configuration = environment_configuration
44    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentDetail.

id: str
name: str
agent_role_arn: str
status: AgentStatus
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
registration: Union[AgentRegistration, NoneType, cirro_api_client.v1.types.Unset]
tags: Union[AgentDetailTags, NoneType, cirro_api_client.v1.types.Unset]
environment_configuration: Union[AgentDetailEnvironmentConfiguration, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 49    def to_dict(self) -> Dict[str, Any]:
 50        from ..models.agent_detail_environment_configuration import AgentDetailEnvironmentConfiguration
 51        from ..models.agent_detail_tags import AgentDetailTags
 52        from ..models.agent_registration import AgentRegistration
 53
 54        id = self.id
 55
 56        name = self.name
 57
 58        agent_role_arn = self.agent_role_arn
 59
 60        status = self.status.value
 61
 62        created_by = self.created_by
 63
 64        created_at = self.created_at.isoformat()
 65
 66        updated_at = self.updated_at.isoformat()
 67
 68        registration: Union[Dict[str, Any], None, Unset]
 69        if isinstance(self.registration, Unset):
 70            registration = UNSET
 71        elif isinstance(self.registration, AgentRegistration):
 72            registration = self.registration.to_dict()
 73        else:
 74            registration = self.registration
 75
 76        tags: Union[Dict[str, Any], None, Unset]
 77        if isinstance(self.tags, Unset):
 78            tags = UNSET
 79        elif isinstance(self.tags, AgentDetailTags):
 80            tags = self.tags.to_dict()
 81        else:
 82            tags = self.tags
 83
 84        environment_configuration: Union[Dict[str, Any], None, Unset]
 85        if isinstance(self.environment_configuration, Unset):
 86            environment_configuration = UNSET
 87        elif isinstance(self.environment_configuration, AgentDetailEnvironmentConfiguration):
 88            environment_configuration = self.environment_configuration.to_dict()
 89        else:
 90            environment_configuration = self.environment_configuration
 91
 92        field_dict: Dict[str, Any] = {}
 93        field_dict.update(self.additional_properties)
 94        field_dict.update(
 95            {
 96                "id": id,
 97                "name": name,
 98                "agentRoleArn": agent_role_arn,
 99                "status": status,
100                "createdBy": created_by,
101                "createdAt": created_at,
102                "updatedAt": updated_at,
103            }
104        )
105        if registration is not UNSET:
106            field_dict["registration"] = registration
107        if tags is not UNSET:
108            field_dict["tags"] = tags
109        if environment_configuration is not UNSET:
110            field_dict["environmentConfiguration"] = environment_configuration
111
112        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
114    @classmethod
115    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
116        from ..models.agent_detail_environment_configuration import AgentDetailEnvironmentConfiguration
117        from ..models.agent_detail_tags import AgentDetailTags
118        from ..models.agent_registration import AgentRegistration
119
120        d = src_dict.copy()
121        id = d.pop("id")
122
123        name = d.pop("name")
124
125        agent_role_arn = d.pop("agentRoleArn")
126
127        status = AgentStatus(d.pop("status"))
128
129        created_by = d.pop("createdBy")
130
131        created_at = isoparse(d.pop("createdAt"))
132
133        updated_at = isoparse(d.pop("updatedAt"))
134
135        def _parse_registration(data: object) -> Union["AgentRegistration", None, Unset]:
136            if data is None:
137                return data
138            if isinstance(data, Unset):
139                return data
140            try:
141                if not isinstance(data, dict):
142                    raise TypeError()
143                registration_type_1 = AgentRegistration.from_dict(data)
144
145                return registration_type_1
146            except:  # noqa: E722
147                pass
148            return cast(Union["AgentRegistration", None, Unset], data)
149
150        registration = _parse_registration(d.pop("registration", UNSET))
151
152        def _parse_tags(data: object) -> Union["AgentDetailTags", None, Unset]:
153            if data is None:
154                return data
155            if isinstance(data, Unset):
156                return data
157            try:
158                if not isinstance(data, dict):
159                    raise TypeError()
160                tags_type_0 = AgentDetailTags.from_dict(data)
161
162                return tags_type_0
163            except:  # noqa: E722
164                pass
165            return cast(Union["AgentDetailTags", None, Unset], data)
166
167        tags = _parse_tags(d.pop("tags", UNSET))
168
169        def _parse_environment_configuration(data: object) -> Union["AgentDetailEnvironmentConfiguration", None, Unset]:
170            if data is None:
171                return data
172            if isinstance(data, Unset):
173                return data
174            try:
175                if not isinstance(data, dict):
176                    raise TypeError()
177                environment_configuration_type_0 = AgentDetailEnvironmentConfiguration.from_dict(data)
178
179                return environment_configuration_type_0
180            except:  # noqa: E722
181                pass
182            return cast(Union["AgentDetailEnvironmentConfiguration", None, Unset], data)
183
184        environment_configuration = _parse_environment_configuration(d.pop("environmentConfiguration", UNSET))
185
186        agent_detail = cls(
187            id=id,
188            name=name,
189            agent_role_arn=agent_role_arn,
190            status=status,
191            created_by=created_by,
192            created_at=created_at,
193            updated_at=updated_at,
194            registration=registration,
195            tags=tags,
196            environment_configuration=environment_configuration,
197        )
198
199        agent_detail.additional_properties = d
200        return agent_detail
additional_keys: List[str]
202    @property
203    def additional_keys(self) -> List[str]:
204        return list(self.additional_properties.keys())
class AgentDetailEnvironmentConfiguration:
10@_attrs_define
11class AgentDetailEnvironmentConfiguration:
12    """ """
13
14    additional_properties: Dict[str, str] = _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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_detail_environment_configuration = cls()
27
28        agent_detail_environment_configuration.additional_properties = d
29        return agent_detail_environment_configuration
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
AgentDetailEnvironmentConfiguration()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentDetailEnvironmentConfiguration.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_detail_environment_configuration = cls()
27
28        agent_detail_environment_configuration.additional_properties = d
29        return agent_detail_environment_configuration
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class AgentDetailTags:
10@_attrs_define
11class AgentDetailTags:
12    """ """
13
14    additional_properties: Dict[str, str] = _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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_detail_tags = cls()
27
28        agent_detail_tags.additional_properties = d
29        return agent_detail_tags
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
AgentDetailTags()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentDetailTags.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_detail_tags = cls()
27
28        agent_detail_tags.additional_properties = d
29        return agent_detail_tags
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class AgentInput:
 18@_attrs_define
 19class AgentInput:
 20    """
 21    Attributes:
 22        name (str): The display name of the agent
 23        agent_role_arn (str): Arn of the AWS IAM role or user that the agent will use (JSONSchema format)
 24        id (Union[None, Unset, str]): The unique ID of the agent (required on create)
 25        configuration_options_schema (Union['AgentInputConfigurationOptionsSchema', None, Unset]): The configuration
 26            options available for the agent
 27        environment_configuration (Union['AgentInputEnvironmentConfiguration', None, Unset]): The environment
 28            configuration for the agent Example: {'PARTITION': 'restart'}.
 29        tags (Union['AgentInputTags', None, Unset]): The tags associated with the agent displayed to the user Example:
 30            {'Support Email': 'it@company.com'}.
 31    """
 32
 33    name: str
 34    agent_role_arn: str
 35    id: Union[None, Unset, str] = UNSET
 36    configuration_options_schema: Union["AgentInputConfigurationOptionsSchema", None, Unset] = UNSET
 37    environment_configuration: Union["AgentInputEnvironmentConfiguration", None, Unset] = UNSET
 38    tags: Union["AgentInputTags", None, Unset] = UNSET
 39    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 40
 41    def to_dict(self) -> Dict[str, Any]:
 42        from ..models.agent_input_configuration_options_schema import AgentInputConfigurationOptionsSchema
 43        from ..models.agent_input_environment_configuration import AgentInputEnvironmentConfiguration
 44        from ..models.agent_input_tags import AgentInputTags
 45
 46        name = self.name
 47
 48        agent_role_arn = self.agent_role_arn
 49
 50        id: Union[None, Unset, str]
 51        if isinstance(self.id, Unset):
 52            id = UNSET
 53        else:
 54            id = self.id
 55
 56        configuration_options_schema: Union[Dict[str, Any], None, Unset]
 57        if isinstance(self.configuration_options_schema, Unset):
 58            configuration_options_schema = UNSET
 59        elif isinstance(self.configuration_options_schema, AgentInputConfigurationOptionsSchema):
 60            configuration_options_schema = self.configuration_options_schema.to_dict()
 61        else:
 62            configuration_options_schema = self.configuration_options_schema
 63
 64        environment_configuration: Union[Dict[str, Any], None, Unset]
 65        if isinstance(self.environment_configuration, Unset):
 66            environment_configuration = UNSET
 67        elif isinstance(self.environment_configuration, AgentInputEnvironmentConfiguration):
 68            environment_configuration = self.environment_configuration.to_dict()
 69        else:
 70            environment_configuration = self.environment_configuration
 71
 72        tags: Union[Dict[str, Any], None, Unset]
 73        if isinstance(self.tags, Unset):
 74            tags = UNSET
 75        elif isinstance(self.tags, AgentInputTags):
 76            tags = self.tags.to_dict()
 77        else:
 78            tags = self.tags
 79
 80        field_dict: Dict[str, Any] = {}
 81        field_dict.update(self.additional_properties)
 82        field_dict.update(
 83            {
 84                "name": name,
 85                "agentRoleArn": agent_role_arn,
 86            }
 87        )
 88        if id is not UNSET:
 89            field_dict["id"] = id
 90        if configuration_options_schema is not UNSET:
 91            field_dict["configurationOptionsSchema"] = configuration_options_schema
 92        if environment_configuration is not UNSET:
 93            field_dict["environmentConfiguration"] = environment_configuration
 94        if tags is not UNSET:
 95            field_dict["tags"] = tags
 96
 97        return field_dict
 98
 99    @classmethod
100    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
101        from ..models.agent_input_configuration_options_schema import AgentInputConfigurationOptionsSchema
102        from ..models.agent_input_environment_configuration import AgentInputEnvironmentConfiguration
103        from ..models.agent_input_tags import AgentInputTags
104
105        d = src_dict.copy()
106        name = d.pop("name")
107
108        agent_role_arn = d.pop("agentRoleArn")
109
110        def _parse_id(data: object) -> Union[None, Unset, str]:
111            if data is None:
112                return data
113            if isinstance(data, Unset):
114                return data
115            return cast(Union[None, Unset, str], data)
116
117        id = _parse_id(d.pop("id", UNSET))
118
119        def _parse_configuration_options_schema(
120            data: object,
121        ) -> Union["AgentInputConfigurationOptionsSchema", None, Unset]:
122            if data is None:
123                return data
124            if isinstance(data, Unset):
125                return data
126            try:
127                if not isinstance(data, dict):
128                    raise TypeError()
129                configuration_options_schema_type_0 = AgentInputConfigurationOptionsSchema.from_dict(data)
130
131                return configuration_options_schema_type_0
132            except:  # noqa: E722
133                pass
134            return cast(Union["AgentInputConfigurationOptionsSchema", None, Unset], data)
135
136        configuration_options_schema = _parse_configuration_options_schema(d.pop("configurationOptionsSchema", UNSET))
137
138        def _parse_environment_configuration(data: object) -> Union["AgentInputEnvironmentConfiguration", None, Unset]:
139            if data is None:
140                return data
141            if isinstance(data, Unset):
142                return data
143            try:
144                if not isinstance(data, dict):
145                    raise TypeError()
146                environment_configuration_type_0 = AgentInputEnvironmentConfiguration.from_dict(data)
147
148                return environment_configuration_type_0
149            except:  # noqa: E722
150                pass
151            return cast(Union["AgentInputEnvironmentConfiguration", None, Unset], data)
152
153        environment_configuration = _parse_environment_configuration(d.pop("environmentConfiguration", UNSET))
154
155        def _parse_tags(data: object) -> Union["AgentInputTags", None, Unset]:
156            if data is None:
157                return data
158            if isinstance(data, Unset):
159                return data
160            try:
161                if not isinstance(data, dict):
162                    raise TypeError()
163                tags_type_0 = AgentInputTags.from_dict(data)
164
165                return tags_type_0
166            except:  # noqa: E722
167                pass
168            return cast(Union["AgentInputTags", None, Unset], data)
169
170        tags = _parse_tags(d.pop("tags", UNSET))
171
172        agent_input = cls(
173            name=name,
174            agent_role_arn=agent_role_arn,
175            id=id,
176            configuration_options_schema=configuration_options_schema,
177            environment_configuration=environment_configuration,
178            tags=tags,
179        )
180
181        agent_input.additional_properties = d
182        return agent_input
183
184    @property
185    def additional_keys(self) -> List[str]:
186        return list(self.additional_properties.keys())
Attributes:
  • name (str): The display name of the agent
  • agent_role_arn (str): Arn of the AWS IAM role or user that the agent will use (JSONSchema format)
  • id (Union[None, Unset, str]): The unique ID of the agent (required on create)
  • configuration_options_schema (Union['AgentInputConfigurationOptionsSchema', None, Unset]): The configuration options available for the agent
  • environment_configuration (Union['AgentInputEnvironmentConfiguration', None, Unset]): The environment configuration for the agent Example: {'PARTITION': 'restart'}.
  • tags (Union['AgentInputTags', None, Unset]): The tags associated with the agent displayed to the user Example: {'Support Email': 'it@company.com'}.
AgentInput( name: str, agent_role_arn: str, id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, configuration_options_schema: Union[AgentInputConfigurationOptionsSchema, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, environment_configuration: Union[AgentInputEnvironmentConfiguration, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, tags: Union[AgentInputTags, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
29def __init__(self, name, agent_role_arn, id=attr_dict['id'].default, configuration_options_schema=attr_dict['configuration_options_schema'].default, environment_configuration=attr_dict['environment_configuration'].default, tags=attr_dict['tags'].default):
30    self.name = name
31    self.agent_role_arn = agent_role_arn
32    self.id = id
33    self.configuration_options_schema = configuration_options_schema
34    self.environment_configuration = environment_configuration
35    self.tags = tags
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentInput.

name: str
agent_role_arn: str
id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
configuration_options_schema: Union[AgentInputConfigurationOptionsSchema, NoneType, cirro_api_client.v1.types.Unset]
environment_configuration: Union[AgentInputEnvironmentConfiguration, NoneType, cirro_api_client.v1.types.Unset]
tags: Union[AgentInputTags, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
41    def to_dict(self) -> Dict[str, Any]:
42        from ..models.agent_input_configuration_options_schema import AgentInputConfigurationOptionsSchema
43        from ..models.agent_input_environment_configuration import AgentInputEnvironmentConfiguration
44        from ..models.agent_input_tags import AgentInputTags
45
46        name = self.name
47
48        agent_role_arn = self.agent_role_arn
49
50        id: Union[None, Unset, str]
51        if isinstance(self.id, Unset):
52            id = UNSET
53        else:
54            id = self.id
55
56        configuration_options_schema: Union[Dict[str, Any], None, Unset]
57        if isinstance(self.configuration_options_schema, Unset):
58            configuration_options_schema = UNSET
59        elif isinstance(self.configuration_options_schema, AgentInputConfigurationOptionsSchema):
60            configuration_options_schema = self.configuration_options_schema.to_dict()
61        else:
62            configuration_options_schema = self.configuration_options_schema
63
64        environment_configuration: Union[Dict[str, Any], None, Unset]
65        if isinstance(self.environment_configuration, Unset):
66            environment_configuration = UNSET
67        elif isinstance(self.environment_configuration, AgentInputEnvironmentConfiguration):
68            environment_configuration = self.environment_configuration.to_dict()
69        else:
70            environment_configuration = self.environment_configuration
71
72        tags: Union[Dict[str, Any], None, Unset]
73        if isinstance(self.tags, Unset):
74            tags = UNSET
75        elif isinstance(self.tags, AgentInputTags):
76            tags = self.tags.to_dict()
77        else:
78            tags = self.tags
79
80        field_dict: Dict[str, Any] = {}
81        field_dict.update(self.additional_properties)
82        field_dict.update(
83            {
84                "name": name,
85                "agentRoleArn": agent_role_arn,
86            }
87        )
88        if id is not UNSET:
89            field_dict["id"] = id
90        if configuration_options_schema is not UNSET:
91            field_dict["configurationOptionsSchema"] = configuration_options_schema
92        if environment_configuration is not UNSET:
93            field_dict["environmentConfiguration"] = environment_configuration
94        if tags is not UNSET:
95            field_dict["tags"] = tags
96
97        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 99    @classmethod
100    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
101        from ..models.agent_input_configuration_options_schema import AgentInputConfigurationOptionsSchema
102        from ..models.agent_input_environment_configuration import AgentInputEnvironmentConfiguration
103        from ..models.agent_input_tags import AgentInputTags
104
105        d = src_dict.copy()
106        name = d.pop("name")
107
108        agent_role_arn = d.pop("agentRoleArn")
109
110        def _parse_id(data: object) -> Union[None, Unset, str]:
111            if data is None:
112                return data
113            if isinstance(data, Unset):
114                return data
115            return cast(Union[None, Unset, str], data)
116
117        id = _parse_id(d.pop("id", UNSET))
118
119        def _parse_configuration_options_schema(
120            data: object,
121        ) -> Union["AgentInputConfigurationOptionsSchema", None, Unset]:
122            if data is None:
123                return data
124            if isinstance(data, Unset):
125                return data
126            try:
127                if not isinstance(data, dict):
128                    raise TypeError()
129                configuration_options_schema_type_0 = AgentInputConfigurationOptionsSchema.from_dict(data)
130
131                return configuration_options_schema_type_0
132            except:  # noqa: E722
133                pass
134            return cast(Union["AgentInputConfigurationOptionsSchema", None, Unset], data)
135
136        configuration_options_schema = _parse_configuration_options_schema(d.pop("configurationOptionsSchema", UNSET))
137
138        def _parse_environment_configuration(data: object) -> Union["AgentInputEnvironmentConfiguration", None, Unset]:
139            if data is None:
140                return data
141            if isinstance(data, Unset):
142                return data
143            try:
144                if not isinstance(data, dict):
145                    raise TypeError()
146                environment_configuration_type_0 = AgentInputEnvironmentConfiguration.from_dict(data)
147
148                return environment_configuration_type_0
149            except:  # noqa: E722
150                pass
151            return cast(Union["AgentInputEnvironmentConfiguration", None, Unset], data)
152
153        environment_configuration = _parse_environment_configuration(d.pop("environmentConfiguration", UNSET))
154
155        def _parse_tags(data: object) -> Union["AgentInputTags", None, Unset]:
156            if data is None:
157                return data
158            if isinstance(data, Unset):
159                return data
160            try:
161                if not isinstance(data, dict):
162                    raise TypeError()
163                tags_type_0 = AgentInputTags.from_dict(data)
164
165                return tags_type_0
166            except:  # noqa: E722
167                pass
168            return cast(Union["AgentInputTags", None, Unset], data)
169
170        tags = _parse_tags(d.pop("tags", UNSET))
171
172        agent_input = cls(
173            name=name,
174            agent_role_arn=agent_role_arn,
175            id=id,
176            configuration_options_schema=configuration_options_schema,
177            environment_configuration=environment_configuration,
178            tags=tags,
179        )
180
181        agent_input.additional_properties = d
182        return agent_input
additional_keys: List[str]
184    @property
185    def additional_keys(self) -> List[str]:
186        return list(self.additional_properties.keys())
class AgentInputConfigurationOptionsSchema:
10@_attrs_define
11class AgentInputConfigurationOptionsSchema:
12    """The configuration options available for the agent"""
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_input_configuration_options_schema = cls()
27
28        agent_input_configuration_options_schema.additional_properties = d
29        return agent_input_configuration_options_schema
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

The configuration options available for the agent

AgentInputConfigurationOptionsSchema()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentInputConfigurationOptionsSchema.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_input_configuration_options_schema = cls()
27
28        agent_input_configuration_options_schema.additional_properties = d
29        return agent_input_configuration_options_schema
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class AgentInputEnvironmentConfiguration:
10@_attrs_define
11class AgentInputEnvironmentConfiguration:
12    """The environment configuration for the agent
13
14    Example:
15        {'PARTITION': 'restart'}
16
17    """
18
19    additional_properties: Dict[str, str] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
27
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        agent_input_environment_configuration = cls()
32
33        agent_input_environment_configuration.additional_properties = d
34        return agent_input_environment_configuration
35
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())

The environment configuration for the agent

Example:

{'PARTITION': 'restart'}

AgentInputEnvironmentConfiguration()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentInputEnvironmentConfiguration.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        agent_input_environment_configuration = cls()
32
33        agent_input_environment_configuration.additional_properties = d
34        return agent_input_environment_configuration
additional_keys: List[str]
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())
class AgentInputTags:
10@_attrs_define
11class AgentInputTags:
12    """The tags associated with the agent displayed to the user
13
14    Example:
15        {'Support Email': 'it@company.com'}
16
17    """
18
19    additional_properties: Dict[str, str] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
27
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        agent_input_tags = cls()
32
33        agent_input_tags.additional_properties = d
34        return agent_input_tags
35
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())

The tags associated with the agent displayed to the user

Example:

{'Support Email': 'it@company.com'}

AgentInputTags()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentInputTags.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        agent_input_tags = cls()
32
33        agent_input_tags.additional_properties = d
34        return agent_input_tags
additional_keys: List[str]
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())
class AgentRegistration:
10@_attrs_define
11class AgentRegistration:
12    """
13    Attributes:
14        local_ip (str):
15        remote_ip (str):
16        agent_version (str):
17        hostname (str):
18        os (str):
19    """
20
21    local_ip: str
22    remote_ip: str
23    agent_version: str
24    hostname: str
25    os: str
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        local_ip = self.local_ip
30
31        remote_ip = self.remote_ip
32
33        agent_version = self.agent_version
34
35        hostname = self.hostname
36
37        os = self.os
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "localIp": local_ip,
44                "remoteIp": remote_ip,
45                "agentVersion": agent_version,
46                "hostname": hostname,
47                "os": os,
48            }
49        )
50
51        return field_dict
52
53    @classmethod
54    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
55        d = src_dict.copy()
56        local_ip = d.pop("localIp")
57
58        remote_ip = d.pop("remoteIp")
59
60        agent_version = d.pop("agentVersion")
61
62        hostname = d.pop("hostname")
63
64        os = d.pop("os")
65
66        agent_registration = cls(
67            local_ip=local_ip,
68            remote_ip=remote_ip,
69            agent_version=agent_version,
70            hostname=hostname,
71            os=os,
72        )
73
74        agent_registration.additional_properties = d
75        return agent_registration
76
77    @property
78    def additional_keys(self) -> List[str]:
79        return list(self.additional_properties.keys())
Attributes:
  • local_ip (str):
  • remote_ip (str):
  • agent_version (str):
  • hostname (str):
  • os (str):
AgentRegistration( local_ip: str, remote_ip: str, agent_version: str, hostname: str, os: str)
28def __init__(self, local_ip, remote_ip, agent_version, hostname, os):
29    self.local_ip = local_ip
30    self.remote_ip = remote_ip
31    self.agent_version = agent_version
32    self.hostname = hostname
33    self.os = os
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentRegistration.

local_ip: str
remote_ip: str
agent_version: str
hostname: str
os: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        local_ip = self.local_ip
30
31        remote_ip = self.remote_ip
32
33        agent_version = self.agent_version
34
35        hostname = self.hostname
36
37        os = self.os
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "localIp": local_ip,
44                "remoteIp": remote_ip,
45                "agentVersion": agent_version,
46                "hostname": hostname,
47                "os": os,
48            }
49        )
50
51        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
53    @classmethod
54    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
55        d = src_dict.copy()
56        local_ip = d.pop("localIp")
57
58        remote_ip = d.pop("remoteIp")
59
60        agent_version = d.pop("agentVersion")
61
62        hostname = d.pop("hostname")
63
64        os = d.pop("os")
65
66        agent_registration = cls(
67            local_ip=local_ip,
68            remote_ip=remote_ip,
69            agent_version=agent_version,
70            hostname=hostname,
71            os=os,
72        )
73
74        agent_registration.additional_properties = d
75        return agent_registration
additional_keys: List[str]
77    @property
78    def additional_keys(self) -> List[str]:
79        return list(self.additional_properties.keys())
class AgentStatus(builtins.str, enum.Enum):
 5class AgentStatus(str, Enum):
 6    OFFLINE = "OFFLINE"
 7    ONLINE = "ONLINE"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

OFFLINE = <AgentStatus.OFFLINE: 'OFFLINE'>
ONLINE = <AgentStatus.ONLINE: 'ONLINE'>
UNKNOWN = <AgentStatus.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class AgentTags:
10@_attrs_define
11class AgentTags:
12    """Tags associated with the agent"""
13
14    additional_properties: Dict[str, str] = _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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_tags = cls()
27
28        agent_tags.additional_properties = d
29        return agent_tags
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

Tags associated with the agent

AgentTags()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AgentTags.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        agent_tags = cls()
27
28        agent_tags.additional_properties = d
29        return agent_tags
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class AllowedDataType:
14@_attrs_define
15class AllowedDataType:
16    """
17    Attributes:
18        description (str):
19        error_msg (str):
20        allowed_patterns (List['FileNamePattern']):
21    """
22
23    description: str
24    error_msg: str
25    allowed_patterns: List["FileNamePattern"]
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        description = self.description
30
31        error_msg = self.error_msg
32
33        allowed_patterns = []
34        for allowed_patterns_item_data in self.allowed_patterns:
35            allowed_patterns_item = allowed_patterns_item_data.to_dict()
36            allowed_patterns.append(allowed_patterns_item)
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "description": description,
43                "errorMsg": error_msg,
44                "allowedPatterns": allowed_patterns,
45            }
46        )
47
48        return field_dict
49
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        from ..models.file_name_pattern import FileNamePattern
53
54        d = src_dict.copy()
55        description = d.pop("description")
56
57        error_msg = d.pop("errorMsg")
58
59        allowed_patterns = []
60        _allowed_patterns = d.pop("allowedPatterns")
61        for allowed_patterns_item_data in _allowed_patterns:
62            allowed_patterns_item = FileNamePattern.from_dict(allowed_patterns_item_data)
63
64            allowed_patterns.append(allowed_patterns_item)
65
66        allowed_data_type = cls(
67            description=description,
68            error_msg=error_msg,
69            allowed_patterns=allowed_patterns,
70        )
71
72        allowed_data_type.additional_properties = d
73        return allowed_data_type
74
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
Attributes:
  • description (str):
  • error_msg (str):
  • allowed_patterns (List['FileNamePattern']):
AllowedDataType( description: str, error_msg: str, allowed_patterns: List[FileNamePattern])
26def __init__(self, description, error_msg, allowed_patterns):
27    self.description = description
28    self.error_msg = error_msg
29    self.allowed_patterns = allowed_patterns
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AllowedDataType.

description: str
error_msg: str
allowed_patterns: List[FileNamePattern]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        description = self.description
30
31        error_msg = self.error_msg
32
33        allowed_patterns = []
34        for allowed_patterns_item_data in self.allowed_patterns:
35            allowed_patterns_item = allowed_patterns_item_data.to_dict()
36            allowed_patterns.append(allowed_patterns_item)
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "description": description,
43                "errorMsg": error_msg,
44                "allowedPatterns": allowed_patterns,
45            }
46        )
47
48        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        from ..models.file_name_pattern import FileNamePattern
53
54        d = src_dict.copy()
55        description = d.pop("description")
56
57        error_msg = d.pop("errorMsg")
58
59        allowed_patterns = []
60        _allowed_patterns = d.pop("allowedPatterns")
61        for allowed_patterns_item_data in _allowed_patterns:
62            allowed_patterns_item = FileNamePattern.from_dict(allowed_patterns_item_data)
63
64            allowed_patterns.append(allowed_patterns_item)
65
66        allowed_data_type = cls(
67            description=description,
68            error_msg=error_msg,
69            allowed_patterns=allowed_patterns,
70        )
71
72        allowed_data_type.additional_properties = d
73        return allowed_data_type
additional_keys: List[str]
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
class ApproveProjectAccessRequest:
12@_attrs_define
13class ApproveProjectAccessRequest:
14    """
15    Attributes:
16        role (ProjectRole):
17    """
18
19    role: ProjectRole
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        role = self.role.value
24
25        field_dict: Dict[str, Any] = {}
26        field_dict.update(self.additional_properties)
27        field_dict.update(
28            {
29                "role": role,
30            }
31        )
32
33        return field_dict
34
35    @classmethod
36    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
37        d = src_dict.copy()
38        role = ProjectRole(d.pop("role"))
39
40        approve_project_access_request = cls(
41            role=role,
42        )
43
44        approve_project_access_request.additional_properties = d
45        return approve_project_access_request
46
47    @property
48    def additional_keys(self) -> List[str]:
49        return list(self.additional_properties.keys())
Attributes:
  • role (ProjectRole):
ApproveProjectAccessRequest(role: ProjectRole)
24def __init__(self, role):
25    self.role = role
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ApproveProjectAccessRequest.

role: ProjectRole
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        role = self.role.value
24
25        field_dict: Dict[str, Any] = {}
26        field_dict.update(self.additional_properties)
27        field_dict.update(
28            {
29                "role": role,
30            }
31        )
32
33        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
35    @classmethod
36    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
37        d = src_dict.copy()
38        role = ProjectRole(d.pop("role"))
39
40        approve_project_access_request = cls(
41            role=role,
42        )
43
44        approve_project_access_request.additional_properties = d
45        return approve_project_access_request
additional_keys: List[str]
47    @property
48    def additional_keys(self) -> List[str]:
49        return list(self.additional_properties.keys())
class Artifact:
12@_attrs_define
13class Artifact:
14    """A secondary file or resource associated with a dataset
15
16    Attributes:
17        type (ArtifactType):
18        path (str):
19    """
20
21    type: ArtifactType
22    path: str
23    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
25    def to_dict(self) -> Dict[str, Any]:
26        type = self.type.value
27
28        path = self.path
29
30        field_dict: Dict[str, Any] = {}
31        field_dict.update(self.additional_properties)
32        field_dict.update(
33            {
34                "type": type,
35                "path": path,
36            }
37        )
38
39        return field_dict
40
41    @classmethod
42    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43        d = src_dict.copy()
44        type = ArtifactType(d.pop("type"))
45
46        path = d.pop("path")
47
48        artifact = cls(
49            type=type,
50            path=path,
51        )
52
53        artifact.additional_properties = d
54        return artifact
55
56    @property
57    def additional_keys(self) -> List[str]:
58        return list(self.additional_properties.keys())

A secondary file or resource associated with a dataset

Attributes:
  • type (ArtifactType):
  • path (str):
Artifact( type: ArtifactType, path: str)
25def __init__(self, type, path):
26    self.type = type
27    self.path = path
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Artifact.

type: ArtifactType
path: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
25    def to_dict(self) -> Dict[str, Any]:
26        type = self.type.value
27
28        path = self.path
29
30        field_dict: Dict[str, Any] = {}
31        field_dict.update(self.additional_properties)
32        field_dict.update(
33            {
34                "type": type,
35                "path": path,
36            }
37        )
38
39        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
41    @classmethod
42    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43        d = src_dict.copy()
44        type = ArtifactType(d.pop("type"))
45
46        path = d.pop("path")
47
48        artifact = cls(
49            type=type,
50            path=path,
51        )
52
53        artifact.additional_properties = d
54        return artifact
additional_keys: List[str]
56    @property
57    def additional_keys(self) -> List[str]:
58        return list(self.additional_properties.keys())
class ArtifactType(builtins.str, enum.Enum):
 5class ArtifactType(str, Enum):
 6    FILES = "FILES"
 7    """ Files used in the workflow """
 8    INGEST_MANIFEST = "INGEST_MANIFEST"
 9    """ Files expected to upload """
10    METADATA = "METADATA"
11    """ Snapshot of metadata at the time of execution """
12    SAMPLE_SHEET = "SAMPLE_SHEET"
13    """ Samples used in the workflow """
14    WORKFLOW_COMPUTE_CONFIG = "WORKFLOW_COMPUTE_CONFIG"
15    """ Compute overrides used in the workflow """
16    WORKFLOW_DAG = "WORKFLOW_DAG"
17    """ Direct acyclic graph of workflow execution """
18    WORKFLOW_DEBUG_LOGS = "WORKFLOW_DEBUG_LOGS"
19    """ Debug logs from workflow engine """
20    WORKFLOW_LOGS = "WORKFLOW_LOGS"
21    """ Logs from workflow engine """
22    WORKFLOW_OPTIONS = "WORKFLOW_OPTIONS"
23    """ Options used in the workflow """
24    WORKFLOW_PARAMETERS = "WORKFLOW_PARAMETERS"
25    """ Parameters used in the workflow """
26    WORKFLOW_REPORT = "WORKFLOW_REPORT"
27    """ Execution report from workflow engine """
28    WORKFLOW_TIMELINE = "WORKFLOW_TIMELINE"
29    """ Timeline of workflow execution """
30    WORKFLOW_TRACE = "WORKFLOW_TRACE"
31    """ Trace of workflow execution """
32    UNKNOWN = "UNKNOWN"
33    """ This is a fallback value for when the value is not known, do not use this value when making requests """
34
35    def __str__(self) -> str:
36        return str(self.value)
37
38    @classmethod
39    def _missing_(cls, number):
40        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

FILES = <ArtifactType.FILES: 'FILES'>

Files used in the workflow

INGEST_MANIFEST = <ArtifactType.INGEST_MANIFEST: 'INGEST_MANIFEST'>

Files expected to upload

METADATA = <ArtifactType.METADATA: 'METADATA'>

Snapshot of metadata at the time of execution

SAMPLE_SHEET = <ArtifactType.SAMPLE_SHEET: 'SAMPLE_SHEET'>

Samples used in the workflow

WORKFLOW_COMPUTE_CONFIG = <ArtifactType.WORKFLOW_COMPUTE_CONFIG: 'WORKFLOW_COMPUTE_CONFIG'>

Compute overrides used in the workflow

WORKFLOW_DAG = <ArtifactType.WORKFLOW_DAG: 'WORKFLOW_DAG'>

Direct acyclic graph of workflow execution

WORKFLOW_DEBUG_LOGS = <ArtifactType.WORKFLOW_DEBUG_LOGS: 'WORKFLOW_DEBUG_LOGS'>

Debug logs from workflow engine

WORKFLOW_LOGS = <ArtifactType.WORKFLOW_LOGS: 'WORKFLOW_LOGS'>

Logs from workflow engine

WORKFLOW_OPTIONS = <ArtifactType.WORKFLOW_OPTIONS: 'WORKFLOW_OPTIONS'>

Options used in the workflow

WORKFLOW_PARAMETERS = <ArtifactType.WORKFLOW_PARAMETERS: 'WORKFLOW_PARAMETERS'>

Parameters used in the workflow

WORKFLOW_REPORT = <ArtifactType.WORKFLOW_REPORT: 'WORKFLOW_REPORT'>

Execution report from workflow engine

WORKFLOW_TIMELINE = <ArtifactType.WORKFLOW_TIMELINE: 'WORKFLOW_TIMELINE'>

Timeline of workflow execution

WORKFLOW_TRACE = <ArtifactType.WORKFLOW_TRACE: 'WORKFLOW_TRACE'>

Trace of workflow execution

UNKNOWN = <ArtifactType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class AuditEvent:
 19@_attrs_define
 20class AuditEvent:
 21    """
 22    Attributes:
 23        id (Union[Unset, str]): The unique identifier for the audit event
 24        event_type (Union[Unset, str]): The type of event Example: CREATE.
 25        project_id (Union[Unset, str]): The project ID associated with the event (if applicable)
 26        entity_id (Union[Unset, str]): The entity ID associated with the event
 27        entity_type (Union[Unset, str]): The entity type associated with the event Example: Project.
 28        event_detail (Union['AuditEventEventDetail', None, Unset]): The details of the event, such as the request
 29            details sent from the client
 30        changes (Union['AuditEventChanges', None, Unset]): The changes made to the entity (if applicable) Example:
 31            {'.settings.retentionPolicyDays': '1 -> 2'}.
 32        username (Union[Unset, str]): The username of the user who performed the action Example: admin@cirro.bio.
 33        ip_address (Union[Unset, str]): The IP address of the user who performed the action Example: 0.0.0.0.
 34        created_at (Union[Unset, datetime.datetime]): The date and time the event was created
 35    """
 36
 37    id: Union[Unset, str] = UNSET
 38    event_type: Union[Unset, str] = UNSET
 39    project_id: Union[Unset, str] = UNSET
 40    entity_id: Union[Unset, str] = UNSET
 41    entity_type: Union[Unset, str] = UNSET
 42    event_detail: Union["AuditEventEventDetail", None, Unset] = UNSET
 43    changes: Union["AuditEventChanges", None, Unset] = UNSET
 44    username: Union[Unset, str] = UNSET
 45    ip_address: Union[Unset, str] = UNSET
 46    created_at: Union[Unset, datetime.datetime] = UNSET
 47    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 48
 49    def to_dict(self) -> Dict[str, Any]:
 50        from ..models.audit_event_changes import AuditEventChanges
 51        from ..models.audit_event_event_detail import AuditEventEventDetail
 52
 53        id = self.id
 54
 55        event_type = self.event_type
 56
 57        project_id = self.project_id
 58
 59        entity_id = self.entity_id
 60
 61        entity_type = self.entity_type
 62
 63        event_detail: Union[Dict[str, Any], None, Unset]
 64        if isinstance(self.event_detail, Unset):
 65            event_detail = UNSET
 66        elif isinstance(self.event_detail, AuditEventEventDetail):
 67            event_detail = self.event_detail.to_dict()
 68        else:
 69            event_detail = self.event_detail
 70
 71        changes: Union[Dict[str, Any], None, Unset]
 72        if isinstance(self.changes, Unset):
 73            changes = UNSET
 74        elif isinstance(self.changes, AuditEventChanges):
 75            changes = self.changes.to_dict()
 76        else:
 77            changes = self.changes
 78
 79        username = self.username
 80
 81        ip_address = self.ip_address
 82
 83        created_at: Union[Unset, str] = UNSET
 84        if not isinstance(self.created_at, Unset):
 85            created_at = self.created_at.isoformat()
 86
 87        field_dict: Dict[str, Any] = {}
 88        field_dict.update(self.additional_properties)
 89        field_dict.update({})
 90        if id is not UNSET:
 91            field_dict["id"] = id
 92        if event_type is not UNSET:
 93            field_dict["eventType"] = event_type
 94        if project_id is not UNSET:
 95            field_dict["projectId"] = project_id
 96        if entity_id is not UNSET:
 97            field_dict["entityId"] = entity_id
 98        if entity_type is not UNSET:
 99            field_dict["entityType"] = entity_type
100        if event_detail is not UNSET:
101            field_dict["eventDetail"] = event_detail
102        if changes is not UNSET:
103            field_dict["changes"] = changes
104        if username is not UNSET:
105            field_dict["username"] = username
106        if ip_address is not UNSET:
107            field_dict["ipAddress"] = ip_address
108        if created_at is not UNSET:
109            field_dict["createdAt"] = created_at
110
111        return field_dict
112
113    @classmethod
114    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
115        from ..models.audit_event_changes import AuditEventChanges
116        from ..models.audit_event_event_detail import AuditEventEventDetail
117
118        d = src_dict.copy()
119        id = d.pop("id", UNSET)
120
121        event_type = d.pop("eventType", UNSET)
122
123        project_id = d.pop("projectId", UNSET)
124
125        entity_id = d.pop("entityId", UNSET)
126
127        entity_type = d.pop("entityType", UNSET)
128
129        def _parse_event_detail(data: object) -> Union["AuditEventEventDetail", None, Unset]:
130            if data is None:
131                return data
132            if isinstance(data, Unset):
133                return data
134            try:
135                if not isinstance(data, dict):
136                    raise TypeError()
137                event_detail_type_0 = AuditEventEventDetail.from_dict(data)
138
139                return event_detail_type_0
140            except:  # noqa: E722
141                pass
142            return cast(Union["AuditEventEventDetail", None, Unset], data)
143
144        event_detail = _parse_event_detail(d.pop("eventDetail", UNSET))
145
146        def _parse_changes(data: object) -> Union["AuditEventChanges", None, Unset]:
147            if data is None:
148                return data
149            if isinstance(data, Unset):
150                return data
151            try:
152                if not isinstance(data, dict):
153                    raise TypeError()
154                changes_type_0 = AuditEventChanges.from_dict(data)
155
156                return changes_type_0
157            except:  # noqa: E722
158                pass
159            return cast(Union["AuditEventChanges", None, Unset], data)
160
161        changes = _parse_changes(d.pop("changes", UNSET))
162
163        username = d.pop("username", UNSET)
164
165        ip_address = d.pop("ipAddress", UNSET)
166
167        _created_at = d.pop("createdAt", UNSET)
168        created_at: Union[Unset, datetime.datetime]
169        if isinstance(_created_at, Unset):
170            created_at = UNSET
171        else:
172            created_at = isoparse(_created_at)
173
174        audit_event = cls(
175            id=id,
176            event_type=event_type,
177            project_id=project_id,
178            entity_id=entity_id,
179            entity_type=entity_type,
180            event_detail=event_detail,
181            changes=changes,
182            username=username,
183            ip_address=ip_address,
184            created_at=created_at,
185        )
186
187        audit_event.additional_properties = d
188        return audit_event
189
190    @property
191    def additional_keys(self) -> List[str]:
192        return list(self.additional_properties.keys())
Attributes:
  • id (Union[Unset, str]): The unique identifier for the audit event
  • event_type (Union[Unset, str]): The type of event Example: CREATE.
  • project_id (Union[Unset, str]): The project ID associated with the event (if applicable)
  • entity_id (Union[Unset, str]): The entity ID associated with the event
  • entity_type (Union[Unset, str]): The entity type associated with the event Example: Project.
  • event_detail (Union['AuditEventEventDetail', None, Unset]): The details of the event, such as the request details sent from the client
  • changes (Union['AuditEventChanges', None, Unset]): The changes made to the entity (if applicable) Example: {'.settings.retentionPolicyDays': '1 -> 2'}.
  • username (Union[Unset, str]): The username of the user who performed the action Example: admin@cirro.bio.
  • ip_address (Union[Unset, str]): The IP address of the user who performed the action Example: 0.0.0.0.
  • created_at (Union[Unset, datetime.datetime]): The date and time the event was created
AuditEvent( id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, event_type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, project_id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, entity_id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, entity_type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, event_detail: Union[AuditEventEventDetail, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, changes: Union[AuditEventChanges, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, username: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, ip_address: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
33def __init__(self, id=attr_dict['id'].default, event_type=attr_dict['event_type'].default, project_id=attr_dict['project_id'].default, entity_id=attr_dict['entity_id'].default, entity_type=attr_dict['entity_type'].default, event_detail=attr_dict['event_detail'].default, changes=attr_dict['changes'].default, username=attr_dict['username'].default, ip_address=attr_dict['ip_address'].default, created_at=attr_dict['created_at'].default):
34    self.id = id
35    self.event_type = event_type
36    self.project_id = project_id
37    self.entity_id = entity_id
38    self.entity_type = entity_type
39    self.event_detail = event_detail
40    self.changes = changes
41    self.username = username
42    self.ip_address = ip_address
43    self.created_at = created_at
44    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AuditEvent.

id: Union[cirro_api_client.v1.types.Unset, str]
event_type: Union[cirro_api_client.v1.types.Unset, str]
project_id: Union[cirro_api_client.v1.types.Unset, str]
entity_id: Union[cirro_api_client.v1.types.Unset, str]
entity_type: Union[cirro_api_client.v1.types.Unset, str]
event_detail: Union[AuditEventEventDetail, NoneType, cirro_api_client.v1.types.Unset]
changes: Union[AuditEventChanges, NoneType, cirro_api_client.v1.types.Unset]
username: Union[cirro_api_client.v1.types.Unset, str]
ip_address: Union[cirro_api_client.v1.types.Unset, str]
created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 49    def to_dict(self) -> Dict[str, Any]:
 50        from ..models.audit_event_changes import AuditEventChanges
 51        from ..models.audit_event_event_detail import AuditEventEventDetail
 52
 53        id = self.id
 54
 55        event_type = self.event_type
 56
 57        project_id = self.project_id
 58
 59        entity_id = self.entity_id
 60
 61        entity_type = self.entity_type
 62
 63        event_detail: Union[Dict[str, Any], None, Unset]
 64        if isinstance(self.event_detail, Unset):
 65            event_detail = UNSET
 66        elif isinstance(self.event_detail, AuditEventEventDetail):
 67            event_detail = self.event_detail.to_dict()
 68        else:
 69            event_detail = self.event_detail
 70
 71        changes: Union[Dict[str, Any], None, Unset]
 72        if isinstance(self.changes, Unset):
 73            changes = UNSET
 74        elif isinstance(self.changes, AuditEventChanges):
 75            changes = self.changes.to_dict()
 76        else:
 77            changes = self.changes
 78
 79        username = self.username
 80
 81        ip_address = self.ip_address
 82
 83        created_at: Union[Unset, str] = UNSET
 84        if not isinstance(self.created_at, Unset):
 85            created_at = self.created_at.isoformat()
 86
 87        field_dict: Dict[str, Any] = {}
 88        field_dict.update(self.additional_properties)
 89        field_dict.update({})
 90        if id is not UNSET:
 91            field_dict["id"] = id
 92        if event_type is not UNSET:
 93            field_dict["eventType"] = event_type
 94        if project_id is not UNSET:
 95            field_dict["projectId"] = project_id
 96        if entity_id is not UNSET:
 97            field_dict["entityId"] = entity_id
 98        if entity_type is not UNSET:
 99            field_dict["entityType"] = entity_type
100        if event_detail is not UNSET:
101            field_dict["eventDetail"] = event_detail
102        if changes is not UNSET:
103            field_dict["changes"] = changes
104        if username is not UNSET:
105            field_dict["username"] = username
106        if ip_address is not UNSET:
107            field_dict["ipAddress"] = ip_address
108        if created_at is not UNSET:
109            field_dict["createdAt"] = created_at
110
111        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
113    @classmethod
114    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
115        from ..models.audit_event_changes import AuditEventChanges
116        from ..models.audit_event_event_detail import AuditEventEventDetail
117
118        d = src_dict.copy()
119        id = d.pop("id", UNSET)
120
121        event_type = d.pop("eventType", UNSET)
122
123        project_id = d.pop("projectId", UNSET)
124
125        entity_id = d.pop("entityId", UNSET)
126
127        entity_type = d.pop("entityType", UNSET)
128
129        def _parse_event_detail(data: object) -> Union["AuditEventEventDetail", None, Unset]:
130            if data is None:
131                return data
132            if isinstance(data, Unset):
133                return data
134            try:
135                if not isinstance(data, dict):
136                    raise TypeError()
137                event_detail_type_0 = AuditEventEventDetail.from_dict(data)
138
139                return event_detail_type_0
140            except:  # noqa: E722
141                pass
142            return cast(Union["AuditEventEventDetail", None, Unset], data)
143
144        event_detail = _parse_event_detail(d.pop("eventDetail", UNSET))
145
146        def _parse_changes(data: object) -> Union["AuditEventChanges", None, Unset]:
147            if data is None:
148                return data
149            if isinstance(data, Unset):
150                return data
151            try:
152                if not isinstance(data, dict):
153                    raise TypeError()
154                changes_type_0 = AuditEventChanges.from_dict(data)
155
156                return changes_type_0
157            except:  # noqa: E722
158                pass
159            return cast(Union["AuditEventChanges", None, Unset], data)
160
161        changes = _parse_changes(d.pop("changes", UNSET))
162
163        username = d.pop("username", UNSET)
164
165        ip_address = d.pop("ipAddress", UNSET)
166
167        _created_at = d.pop("createdAt", UNSET)
168        created_at: Union[Unset, datetime.datetime]
169        if isinstance(_created_at, Unset):
170            created_at = UNSET
171        else:
172            created_at = isoparse(_created_at)
173
174        audit_event = cls(
175            id=id,
176            event_type=event_type,
177            project_id=project_id,
178            entity_id=entity_id,
179            entity_type=entity_type,
180            event_detail=event_detail,
181            changes=changes,
182            username=username,
183            ip_address=ip_address,
184            created_at=created_at,
185        )
186
187        audit_event.additional_properties = d
188        return audit_event
additional_keys: List[str]
190    @property
191    def additional_keys(self) -> List[str]:
192        return list(self.additional_properties.keys())
class AuditEventChanges:
10@_attrs_define
11class AuditEventChanges:
12    """The changes made to the entity (if applicable)
13
14    Example:
15        {'.settings.retentionPolicyDays': '1 -> 2'}
16
17    """
18
19    additional_properties: Dict[str, str] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
27
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        audit_event_changes = cls()
32
33        audit_event_changes.additional_properties = d
34        return audit_event_changes
35
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())

The changes made to the entity (if applicable)

Example:

{'.settings.retentionPolicyDays': '1 -> 2'}

AuditEventChanges()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AuditEventChanges.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        audit_event_changes = cls()
32
33        audit_event_changes.additional_properties = d
34        return audit_event_changes
additional_keys: List[str]
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())
class AuditEventEventDetail:
10@_attrs_define
11class AuditEventEventDetail:
12    """The details of the event, such as the request details sent from the client"""
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        audit_event_event_detail = cls()
27
28        audit_event_event_detail.additional_properties = d
29        return audit_event_event_detail
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

The details of the event, such as the request details sent from the client

AuditEventEventDetail()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AuditEventEventDetail.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        audit_event_event_detail = cls()
27
28        audit_event_event_detail.additional_properties = d
29        return audit_event_event_detail
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class AuthInfo:
10@_attrs_define
11class AuthInfo:
12    """
13    Attributes:
14        user_pool_id (str):
15        sdk_app_id (str):
16        ui_app_id (str):
17        endpoint (str):
18    """
19
20    user_pool_id: str
21    sdk_app_id: str
22    ui_app_id: str
23    endpoint: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        user_pool_id = self.user_pool_id
28
29        sdk_app_id = self.sdk_app_id
30
31        ui_app_id = self.ui_app_id
32
33        endpoint = self.endpoint
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "userPoolId": user_pool_id,
40                "sdkAppId": sdk_app_id,
41                "uiAppId": ui_app_id,
42                "endpoint": endpoint,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        user_pool_id = d.pop("userPoolId")
52
53        sdk_app_id = d.pop("sdkAppId")
54
55        ui_app_id = d.pop("uiAppId")
56
57        endpoint = d.pop("endpoint")
58
59        auth_info = cls(
60            user_pool_id=user_pool_id,
61            sdk_app_id=sdk_app_id,
62            ui_app_id=ui_app_id,
63            endpoint=endpoint,
64        )
65
66        auth_info.additional_properties = d
67        return auth_info
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • user_pool_id (str):
  • sdk_app_id (str):
  • ui_app_id (str):
  • endpoint (str):
AuthInfo(user_pool_id: str, sdk_app_id: str, ui_app_id: str, endpoint: str)
27def __init__(self, user_pool_id, sdk_app_id, ui_app_id, endpoint):
28    self.user_pool_id = user_pool_id
29    self.sdk_app_id = sdk_app_id
30    self.ui_app_id = ui_app_id
31    self.endpoint = endpoint
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AuthInfo.

user_pool_id: str
sdk_app_id: str
ui_app_id: str
endpoint: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        user_pool_id = self.user_pool_id
28
29        sdk_app_id = self.sdk_app_id
30
31        ui_app_id = self.ui_app_id
32
33        endpoint = self.endpoint
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "userPoolId": user_pool_id,
40                "sdkAppId": sdk_app_id,
41                "uiAppId": ui_app_id,
42                "endpoint": endpoint,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        user_pool_id = d.pop("userPoolId")
52
53        sdk_app_id = d.pop("sdkAppId")
54
55        ui_app_id = d.pop("uiAppId")
56
57        endpoint = d.pop("endpoint")
58
59        auth_info = cls(
60            user_pool_id=user_pool_id,
61            sdk_app_id=sdk_app_id,
62            ui_app_id=ui_app_id,
63            endpoint=endpoint,
64        )
65
66        auth_info.additional_properties = d
67        return auth_info
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class AWSCredentials:
14@_attrs_define
15class AWSCredentials:
16    """
17    Attributes:
18        access_key_id (str):
19        secret_access_key (str):
20        session_token (str):
21        expiration (datetime.datetime):
22        region (Union[Unset, str]): Region of requested resource (i.e., S3 Bucket)
23    """
24
25    access_key_id: str
26    secret_access_key: str
27    session_token: str
28    expiration: datetime.datetime
29    region: Union[Unset, str] = UNSET
30    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
31
32    def to_dict(self) -> Dict[str, Any]:
33        access_key_id = self.access_key_id
34
35        secret_access_key = self.secret_access_key
36
37        session_token = self.session_token
38
39        expiration = self.expiration.isoformat()
40
41        region = self.region
42
43        field_dict: Dict[str, Any] = {}
44        field_dict.update(self.additional_properties)
45        field_dict.update(
46            {
47                "accessKeyId": access_key_id,
48                "secretAccessKey": secret_access_key,
49                "sessionToken": session_token,
50                "expiration": expiration,
51            }
52        )
53        if region is not UNSET:
54            field_dict["region"] = region
55
56        return field_dict
57
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        access_key_id = d.pop("accessKeyId")
62
63        secret_access_key = d.pop("secretAccessKey")
64
65        session_token = d.pop("sessionToken")
66
67        expiration = isoparse(d.pop("expiration"))
68
69        region = d.pop("region", UNSET)
70
71        aws_credentials = cls(
72            access_key_id=access_key_id,
73            secret_access_key=secret_access_key,
74            session_token=session_token,
75            expiration=expiration,
76            region=region,
77        )
78
79        aws_credentials.additional_properties = d
80        return aws_credentials
81
82    @property
83    def additional_keys(self) -> List[str]:
84        return list(self.additional_properties.keys())
Attributes:
  • access_key_id (str):
  • secret_access_key (str):
  • session_token (str):
  • expiration (datetime.datetime):
  • region (Union[Unset, str]): Region of requested resource (i.e., S3 Bucket)
AWSCredentials( access_key_id: str, secret_access_key: str, session_token: str, expiration: datetime.datetime, region: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
28def __init__(self, access_key_id, secret_access_key, session_token, expiration, region=attr_dict['region'].default):
29    self.access_key_id = access_key_id
30    self.secret_access_key = secret_access_key
31    self.session_token = session_token
32    self.expiration = expiration
33    self.region = region
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class AWSCredentials.

access_key_id: str
secret_access_key: str
session_token: str
expiration: datetime.datetime
region: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
32    def to_dict(self) -> Dict[str, Any]:
33        access_key_id = self.access_key_id
34
35        secret_access_key = self.secret_access_key
36
37        session_token = self.session_token
38
39        expiration = self.expiration.isoformat()
40
41        region = self.region
42
43        field_dict: Dict[str, Any] = {}
44        field_dict.update(self.additional_properties)
45        field_dict.update(
46            {
47                "accessKeyId": access_key_id,
48                "secretAccessKey": secret_access_key,
49                "sessionToken": session_token,
50                "expiration": expiration,
51            }
52        )
53        if region is not UNSET:
54            field_dict["region"] = region
55
56        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        access_key_id = d.pop("accessKeyId")
62
63        secret_access_key = d.pop("secretAccessKey")
64
65        session_token = d.pop("sessionToken")
66
67        expiration = isoparse(d.pop("expiration"))
68
69        region = d.pop("region", UNSET)
70
71        aws_credentials = cls(
72            access_key_id=access_key_id,
73            secret_access_key=secret_access_key,
74            session_token=session_token,
75            expiration=expiration,
76            region=region,
77        )
78
79        aws_credentials.additional_properties = d
80        return aws_credentials
additional_keys: List[str]
82    @property
83    def additional_keys(self) -> List[str]:
84        return list(self.additional_properties.keys())
class BillingAccount:
 17@_attrs_define
 18class BillingAccount:
 19    """
 20    Attributes:
 21        id (str):
 22        name (str):
 23        organization (str):
 24        contacts (List['Contact']):
 25        customer_type (CustomerType):
 26        billing_method (BillingMethod):
 27        primary_budget_number (str):
 28        owner (str):
 29        shared_with (List[str]):
 30        is_archived (bool):
 31    """
 32
 33    id: str
 34    name: str
 35    organization: str
 36    contacts: List["Contact"]
 37    customer_type: CustomerType
 38    billing_method: BillingMethod
 39    primary_budget_number: str
 40    owner: str
 41    shared_with: List[str]
 42    is_archived: bool
 43    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 44
 45    def to_dict(self) -> Dict[str, Any]:
 46        id = self.id
 47
 48        name = self.name
 49
 50        organization = self.organization
 51
 52        contacts = []
 53        for contacts_item_data in self.contacts:
 54            contacts_item = contacts_item_data.to_dict()
 55            contacts.append(contacts_item)
 56
 57        customer_type = self.customer_type.value
 58
 59        billing_method = self.billing_method.value
 60
 61        primary_budget_number = self.primary_budget_number
 62
 63        owner = self.owner
 64
 65        shared_with = self.shared_with
 66
 67        is_archived = self.is_archived
 68
 69        field_dict: Dict[str, Any] = {}
 70        field_dict.update(self.additional_properties)
 71        field_dict.update(
 72            {
 73                "id": id,
 74                "name": name,
 75                "organization": organization,
 76                "contacts": contacts,
 77                "customerType": customer_type,
 78                "billingMethod": billing_method,
 79                "primaryBudgetNumber": primary_budget_number,
 80                "owner": owner,
 81                "sharedWith": shared_with,
 82                "isArchived": is_archived,
 83            }
 84        )
 85
 86        return field_dict
 87
 88    @classmethod
 89    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 90        from ..models.contact import Contact
 91
 92        d = src_dict.copy()
 93        id = d.pop("id")
 94
 95        name = d.pop("name")
 96
 97        organization = d.pop("organization")
 98
 99        contacts = []
100        _contacts = d.pop("contacts")
101        for contacts_item_data in _contacts:
102            contacts_item = Contact.from_dict(contacts_item_data)
103
104            contacts.append(contacts_item)
105
106        customer_type = CustomerType(d.pop("customerType"))
107
108        billing_method = BillingMethod(d.pop("billingMethod"))
109
110        primary_budget_number = d.pop("primaryBudgetNumber")
111
112        owner = d.pop("owner")
113
114        shared_with = cast(List[str], d.pop("sharedWith"))
115
116        is_archived = d.pop("isArchived")
117
118        billing_account = cls(
119            id=id,
120            name=name,
121            organization=organization,
122            contacts=contacts,
123            customer_type=customer_type,
124            billing_method=billing_method,
125            primary_budget_number=primary_budget_number,
126            owner=owner,
127            shared_with=shared_with,
128            is_archived=is_archived,
129        )
130
131        billing_account.additional_properties = d
132        return billing_account
133
134    @property
135    def additional_keys(self) -> List[str]:
136        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • organization (str):
  • contacts (List['Contact']):
  • customer_type (CustomerType):
  • billing_method (BillingMethod):
  • primary_budget_number (str):
  • owner (str):
  • shared_with (List[str]):
  • is_archived (bool):
BillingAccount( id: str, name: str, organization: str, contacts: List[Contact], customer_type: CustomerType, billing_method: BillingMethod, primary_budget_number: str, owner: str, shared_with: List[str], is_archived: bool)
33def __init__(self, id, name, organization, contacts, customer_type, billing_method, primary_budget_number, owner, shared_with, is_archived):
34    self.id = id
35    self.name = name
36    self.organization = organization
37    self.contacts = contacts
38    self.customer_type = customer_type
39    self.billing_method = billing_method
40    self.primary_budget_number = primary_budget_number
41    self.owner = owner
42    self.shared_with = shared_with
43    self.is_archived = is_archived
44    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class BillingAccount.

id: str
name: str
organization: str
contacts: List[Contact]
customer_type: CustomerType
billing_method: BillingMethod
primary_budget_number: str
owner: str
shared_with: List[str]
is_archived: bool
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
45    def to_dict(self) -> Dict[str, Any]:
46        id = self.id
47
48        name = self.name
49
50        organization = self.organization
51
52        contacts = []
53        for contacts_item_data in self.contacts:
54            contacts_item = contacts_item_data.to_dict()
55            contacts.append(contacts_item)
56
57        customer_type = self.customer_type.value
58
59        billing_method = self.billing_method.value
60
61        primary_budget_number = self.primary_budget_number
62
63        owner = self.owner
64
65        shared_with = self.shared_with
66
67        is_archived = self.is_archived
68
69        field_dict: Dict[str, Any] = {}
70        field_dict.update(self.additional_properties)
71        field_dict.update(
72            {
73                "id": id,
74                "name": name,
75                "organization": organization,
76                "contacts": contacts,
77                "customerType": customer_type,
78                "billingMethod": billing_method,
79                "primaryBudgetNumber": primary_budget_number,
80                "owner": owner,
81                "sharedWith": shared_with,
82                "isArchived": is_archived,
83            }
84        )
85
86        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 88    @classmethod
 89    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 90        from ..models.contact import Contact
 91
 92        d = src_dict.copy()
 93        id = d.pop("id")
 94
 95        name = d.pop("name")
 96
 97        organization = d.pop("organization")
 98
 99        contacts = []
100        _contacts = d.pop("contacts")
101        for contacts_item_data in _contacts:
102            contacts_item = Contact.from_dict(contacts_item_data)
103
104            contacts.append(contacts_item)
105
106        customer_type = CustomerType(d.pop("customerType"))
107
108        billing_method = BillingMethod(d.pop("billingMethod"))
109
110        primary_budget_number = d.pop("primaryBudgetNumber")
111
112        owner = d.pop("owner")
113
114        shared_with = cast(List[str], d.pop("sharedWith"))
115
116        is_archived = d.pop("isArchived")
117
118        billing_account = cls(
119            id=id,
120            name=name,
121            organization=organization,
122            contacts=contacts,
123            customer_type=customer_type,
124            billing_method=billing_method,
125            primary_budget_number=primary_budget_number,
126            owner=owner,
127            shared_with=shared_with,
128            is_archived=is_archived,
129        )
130
131        billing_account.additional_properties = d
132        return billing_account
additional_keys: List[str]
134    @property
135    def additional_keys(self) -> List[str]:
136        return list(self.additional_properties.keys())
class BillingAccountRequest:
 17@_attrs_define
 18class BillingAccountRequest:
 19    """
 20    Attributes:
 21        name (str):
 22        contacts (List['Contact']):
 23        customer_type (CustomerType):
 24        billing_method (BillingMethod):
 25        primary_budget_number (str):
 26        owner (str):
 27        shared_with (List[str]):
 28    """
 29
 30    name: str
 31    contacts: List["Contact"]
 32    customer_type: CustomerType
 33    billing_method: BillingMethod
 34    primary_budget_number: str
 35    owner: str
 36    shared_with: List[str]
 37    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 38
 39    def to_dict(self) -> Dict[str, Any]:
 40        name = self.name
 41
 42        contacts = []
 43        for contacts_item_data in self.contacts:
 44            contacts_item = contacts_item_data.to_dict()
 45            contacts.append(contacts_item)
 46
 47        customer_type = self.customer_type.value
 48
 49        billing_method = self.billing_method.value
 50
 51        primary_budget_number = self.primary_budget_number
 52
 53        owner = self.owner
 54
 55        shared_with = self.shared_with
 56
 57        field_dict: Dict[str, Any] = {}
 58        field_dict.update(self.additional_properties)
 59        field_dict.update(
 60            {
 61                "name": name,
 62                "contacts": contacts,
 63                "customerType": customer_type,
 64                "billingMethod": billing_method,
 65                "primaryBudgetNumber": primary_budget_number,
 66                "owner": owner,
 67                "sharedWith": shared_with,
 68            }
 69        )
 70
 71        return field_dict
 72
 73    @classmethod
 74    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 75        from ..models.contact import Contact
 76
 77        d = src_dict.copy()
 78        name = d.pop("name")
 79
 80        contacts = []
 81        _contacts = d.pop("contacts")
 82        for contacts_item_data in _contacts:
 83            contacts_item = Contact.from_dict(contacts_item_data)
 84
 85            contacts.append(contacts_item)
 86
 87        customer_type = CustomerType(d.pop("customerType"))
 88
 89        billing_method = BillingMethod(d.pop("billingMethod"))
 90
 91        primary_budget_number = d.pop("primaryBudgetNumber")
 92
 93        owner = d.pop("owner")
 94
 95        shared_with = cast(List[str], d.pop("sharedWith"))
 96
 97        billing_account_request = cls(
 98            name=name,
 99            contacts=contacts,
100            customer_type=customer_type,
101            billing_method=billing_method,
102            primary_budget_number=primary_budget_number,
103            owner=owner,
104            shared_with=shared_with,
105        )
106
107        billing_account_request.additional_properties = d
108        return billing_account_request
109
110    @property
111    def additional_keys(self) -> List[str]:
112        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • contacts (List['Contact']):
  • customer_type (CustomerType):
  • billing_method (BillingMethod):
  • primary_budget_number (str):
  • owner (str):
  • shared_with (List[str]):
BillingAccountRequest( name: str, contacts: List[Contact], customer_type: CustomerType, billing_method: BillingMethod, primary_budget_number: str, owner: str, shared_with: List[str])
30def __init__(self, name, contacts, customer_type, billing_method, primary_budget_number, owner, shared_with):
31    self.name = name
32    self.contacts = contacts
33    self.customer_type = customer_type
34    self.billing_method = billing_method
35    self.primary_budget_number = primary_budget_number
36    self.owner = owner
37    self.shared_with = shared_with
38    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class BillingAccountRequest.

name: str
contacts: List[Contact]
customer_type: CustomerType
billing_method: BillingMethod
primary_budget_number: str
owner: str
shared_with: List[str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
39    def to_dict(self) -> Dict[str, Any]:
40        name = self.name
41
42        contacts = []
43        for contacts_item_data in self.contacts:
44            contacts_item = contacts_item_data.to_dict()
45            contacts.append(contacts_item)
46
47        customer_type = self.customer_type.value
48
49        billing_method = self.billing_method.value
50
51        primary_budget_number = self.primary_budget_number
52
53        owner = self.owner
54
55        shared_with = self.shared_with
56
57        field_dict: Dict[str, Any] = {}
58        field_dict.update(self.additional_properties)
59        field_dict.update(
60            {
61                "name": name,
62                "contacts": contacts,
63                "customerType": customer_type,
64                "billingMethod": billing_method,
65                "primaryBudgetNumber": primary_budget_number,
66                "owner": owner,
67                "sharedWith": shared_with,
68            }
69        )
70
71        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 73    @classmethod
 74    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 75        from ..models.contact import Contact
 76
 77        d = src_dict.copy()
 78        name = d.pop("name")
 79
 80        contacts = []
 81        _contacts = d.pop("contacts")
 82        for contacts_item_data in _contacts:
 83            contacts_item = Contact.from_dict(contacts_item_data)
 84
 85            contacts.append(contacts_item)
 86
 87        customer_type = CustomerType(d.pop("customerType"))
 88
 89        billing_method = BillingMethod(d.pop("billingMethod"))
 90
 91        primary_budget_number = d.pop("primaryBudgetNumber")
 92
 93        owner = d.pop("owner")
 94
 95        shared_with = cast(List[str], d.pop("sharedWith"))
 96
 97        billing_account_request = cls(
 98            name=name,
 99            contacts=contacts,
100            customer_type=customer_type,
101            billing_method=billing_method,
102            primary_budget_number=primary_budget_number,
103            owner=owner,
104            shared_with=shared_with,
105        )
106
107        billing_account_request.additional_properties = d
108        return billing_account_request
additional_keys: List[str]
110    @property
111    def additional_keys(self) -> List[str]:
112        return list(self.additional_properties.keys())
class BillingMethod(builtins.str, enum.Enum):
 5class BillingMethod(str, Enum):
 6    BUDGET_NUMBER = "BUDGET_NUMBER"
 7    CREDIT = "CREDIT"
 8    PURCHASE_ORDER = "PURCHASE_ORDER"
 9    UNKNOWN = "UNKNOWN"
10    """ This is a fallback value for when the value is not known, do not use this value when making requests """
11
12    def __str__(self) -> str:
13        return str(self.value)
14
15    @classmethod
16    def _missing_(cls, number):
17        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

BUDGET_NUMBER = <BillingMethod.BUDGET_NUMBER: 'BUDGET_NUMBER'>
CREDIT = <BillingMethod.CREDIT: 'CREDIT'>
PURCHASE_ORDER = <BillingMethod.PURCHASE_ORDER: 'PURCHASE_ORDER'>
UNKNOWN = <BillingMethod.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class BudgetPeriod(builtins.str, enum.Enum):
 5class BudgetPeriod(str, Enum):
 6    ANNUALLY = "ANNUALLY"
 7    MONTHLY = "MONTHLY"
 8    QUARTERLY = "QUARTERLY"
 9    UNKNOWN = "UNKNOWN"
10    """ This is a fallback value for when the value is not known, do not use this value when making requests """
11
12    def __str__(self) -> str:
13        return str(self.value)
14
15    @classmethod
16    def _missing_(cls, number):
17        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

ANNUALLY = <BudgetPeriod.ANNUALLY: 'ANNUALLY'>
MONTHLY = <BudgetPeriod.MONTHLY: 'MONTHLY'>
QUARTERLY = <BudgetPeriod.QUARTERLY: 'QUARTERLY'>
UNKNOWN = <BudgetPeriod.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class CalculatePipelineCostRequest:
10@_attrs_define
11class CalculatePipelineCostRequest:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        calculate_pipeline_cost_request = cls()
27
28        calculate_pipeline_cost_request.additional_properties = d
29        return calculate_pipeline_cost_request
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
CalculatePipelineCostRequest()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CalculatePipelineCostRequest.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        calculate_pipeline_cost_request = cls()
27
28        calculate_pipeline_cost_request.additional_properties = d
29        return calculate_pipeline_cost_request
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class ClassificationInput:
10@_attrs_define
11class ClassificationInput:
12    """
13    Attributes:
14        name (str):
15        description (str):
16        requirement_ids (List[str]):
17    """
18
19    name: str
20    description: str
21    requirement_ids: List[str]
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        name = self.name
26
27        description = self.description
28
29        requirement_ids = self.requirement_ids
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "description": description,
37                "requirementIds": requirement_ids,
38            }
39        )
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        name = d.pop("name")
47
48        description = d.pop("description")
49
50        requirement_ids = cast(List[str], d.pop("requirementIds"))
51
52        classification_input = cls(
53            name=name,
54            description=description,
55            requirement_ids=requirement_ids,
56        )
57
58        classification_input.additional_properties = d
59        return classification_input
60
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • requirement_ids (List[str]):
ClassificationInput(name: str, description: str, requirement_ids: List[str])
26def __init__(self, name, description, requirement_ids):
27    self.name = name
28    self.description = description
29    self.requirement_ids = requirement_ids
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ClassificationInput.

name: str
description: str
requirement_ids: List[str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        name = self.name
26
27        description = self.description
28
29        requirement_ids = self.requirement_ids
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "description": description,
37                "requirementIds": requirement_ids,
38            }
39        )
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        name = d.pop("name")
47
48        description = d.pop("description")
49
50        requirement_ids = cast(List[str], d.pop("requirementIds"))
51
52        classification_input = cls(
53            name=name,
54            description=description,
55            requirement_ids=requirement_ids,
56        )
57
58        classification_input.additional_properties = d
59        return classification_input
additional_keys: List[str]
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
class CloudAccount:
13@_attrs_define
14class CloudAccount:
15    """
16    Attributes:
17        account_type (CloudAccountType): Type of cloud account (Hosted by Cirro, or Bring your own account)
18        account_id (Union[Unset, str]): AWS Account ID
19        account_name (Union[Unset, str]): Name used to describe the account, useful when the account hosts multiple
20            projects
21        region_name (Union[Unset, str]): AWS Region Code (defaults to region of Cirro app) Example: us-west-2.
22    """
23
24    account_type: CloudAccountType
25    account_id: Union[Unset, str] = UNSET
26    account_name: Union[Unset, str] = UNSET
27    region_name: Union[Unset, str] = UNSET
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        account_type = self.account_type.value
32
33        account_id = self.account_id
34
35        account_name = self.account_name
36
37        region_name = self.region_name
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "accountType": account_type,
44            }
45        )
46        if account_id is not UNSET:
47            field_dict["accountId"] = account_id
48        if account_name is not UNSET:
49            field_dict["accountName"] = account_name
50        if region_name is not UNSET:
51            field_dict["regionName"] = region_name
52
53        return field_dict
54
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        d = src_dict.copy()
58        account_type = CloudAccountType(d.pop("accountType"))
59
60        account_id = d.pop("accountId", UNSET)
61
62        account_name = d.pop("accountName", UNSET)
63
64        region_name = d.pop("regionName", UNSET)
65
66        cloud_account = cls(
67            account_type=account_type,
68            account_id=account_id,
69            account_name=account_name,
70            region_name=region_name,
71        )
72
73        cloud_account.additional_properties = d
74        return cloud_account
75
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
Attributes:
  • account_type (CloudAccountType): Type of cloud account (Hosted by Cirro, or Bring your own account)
  • account_id (Union[Unset, str]): AWS Account ID
  • account_name (Union[Unset, str]): Name used to describe the account, useful when the account hosts multiple projects
  • region_name (Union[Unset, str]): AWS Region Code (defaults to region of Cirro app) Example: us-west-2.
CloudAccount( account_type: CloudAccountType, account_id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, account_name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, region_name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, account_type, account_id=attr_dict['account_id'].default, account_name=attr_dict['account_name'].default, region_name=attr_dict['region_name'].default):
28    self.account_type = account_type
29    self.account_id = account_id
30    self.account_name = account_name
31    self.region_name = region_name
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CloudAccount.

account_type: CloudAccountType
account_id: Union[cirro_api_client.v1.types.Unset, str]
account_name: Union[cirro_api_client.v1.types.Unset, str]
region_name: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        account_type = self.account_type.value
32
33        account_id = self.account_id
34
35        account_name = self.account_name
36
37        region_name = self.region_name
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "accountType": account_type,
44            }
45        )
46        if account_id is not UNSET:
47            field_dict["accountId"] = account_id
48        if account_name is not UNSET:
49            field_dict["accountName"] = account_name
50        if region_name is not UNSET:
51            field_dict["regionName"] = region_name
52
53        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        d = src_dict.copy()
58        account_type = CloudAccountType(d.pop("accountType"))
59
60        account_id = d.pop("accountId", UNSET)
61
62        account_name = d.pop("accountName", UNSET)
63
64        region_name = d.pop("regionName", UNSET)
65
66        cloud_account = cls(
67            account_type=account_type,
68            account_id=account_id,
69            account_name=account_name,
70            region_name=region_name,
71        )
72
73        cloud_account.additional_properties = d
74        return cloud_account
additional_keys: List[str]
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
class CloudAccountType(builtins.str, enum.Enum):
 5class CloudAccountType(str, Enum):
 6    BYOA = "BYOA"
 7    HOSTED = "HOSTED"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

BYOA = <CloudAccountType.BYOA: 'BYOA'>
HOSTED = <CloudAccountType.HOSTED: 'HOSTED'>
UNKNOWN = <CloudAccountType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class ColumnDefinition:
12@_attrs_define
13class ColumnDefinition:
14    """
15    Attributes:
16        col (Union[Unset, str]): Column name in asset file
17        name (Union[Unset, str]): User-friendly column name
18        desc (Union[Unset, str]): Description of the column
19    """
20
21    col: Union[Unset, str] = UNSET
22    name: Union[Unset, str] = UNSET
23    desc: Union[Unset, str] = UNSET
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        col = self.col
28
29        name = self.name
30
31        desc = self.desc
32
33        field_dict: Dict[str, Any] = {}
34        field_dict.update(self.additional_properties)
35        field_dict.update({})
36        if col is not UNSET:
37            field_dict["col"] = col
38        if name is not UNSET:
39            field_dict["name"] = name
40        if desc is not UNSET:
41            field_dict["desc"] = desc
42
43        return field_dict
44
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        d = src_dict.copy()
48        col = d.pop("col", UNSET)
49
50        name = d.pop("name", UNSET)
51
52        desc = d.pop("desc", UNSET)
53
54        column_definition = cls(
55            col=col,
56            name=name,
57            desc=desc,
58        )
59
60        column_definition.additional_properties = d
61        return column_definition
62
63    @property
64    def additional_keys(self) -> List[str]:
65        return list(self.additional_properties.keys())
Attributes:
  • col (Union[Unset, str]): Column name in asset file
  • name (Union[Unset, str]): User-friendly column name
  • desc (Union[Unset, str]): Description of the column
ColumnDefinition( col: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, desc: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, col=attr_dict['col'].default, name=attr_dict['name'].default, desc=attr_dict['desc'].default):
27    self.col = col
28    self.name = name
29    self.desc = desc
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ColumnDefinition.

col: Union[cirro_api_client.v1.types.Unset, str]
name: Union[cirro_api_client.v1.types.Unset, str]
desc: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        col = self.col
28
29        name = self.name
30
31        desc = self.desc
32
33        field_dict: Dict[str, Any] = {}
34        field_dict.update(self.additional_properties)
35        field_dict.update({})
36        if col is not UNSET:
37            field_dict["col"] = col
38        if name is not UNSET:
39            field_dict["name"] = name
40        if desc is not UNSET:
41            field_dict["desc"] = desc
42
43        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        d = src_dict.copy()
48        col = d.pop("col", UNSET)
49
50        name = d.pop("name", UNSET)
51
52        desc = d.pop("desc", UNSET)
53
54        column_definition = cls(
55            col=col,
56            name=name,
57            desc=desc,
58        )
59
60        column_definition.additional_properties = d
61        return column_definition
additional_keys: List[str]
63    @property
64    def additional_keys(self) -> List[str]:
65        return list(self.additional_properties.keys())
class ComputeEnvironmentConfiguration:
 20@_attrs_define
 21class ComputeEnvironmentConfiguration:
 22    """
 23    Attributes:
 24        environment_type (EnvironmentType): The type of compute environment
 25        created_at (datetime.datetime):
 26        updated_at (datetime.datetime):
 27        id (Union[Unset, str]): The unique ID of the environment
 28        name (Union[Unset, str]): The display name of the environment
 29        properties (Union[Unset, ComputeEnvironmentConfigurationProperties]): Configuration properties passed to the
 30            environment
 31        agent (Union['Agent', None, Unset]):
 32        created_by (Union[Unset, str]): The user who created the environment
 33    """
 34
 35    environment_type: EnvironmentType
 36    created_at: datetime.datetime
 37    updated_at: datetime.datetime
 38    id: Union[Unset, str] = UNSET
 39    name: Union[Unset, str] = UNSET
 40    properties: Union[Unset, "ComputeEnvironmentConfigurationProperties"] = UNSET
 41    agent: Union["Agent", None, Unset] = UNSET
 42    created_by: Union[Unset, str] = UNSET
 43    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 44
 45    def to_dict(self) -> Dict[str, Any]:
 46        from ..models.agent import Agent
 47
 48        environment_type = self.environment_type.value
 49
 50        created_at = self.created_at.isoformat()
 51
 52        updated_at = self.updated_at.isoformat()
 53
 54        id = self.id
 55
 56        name = self.name
 57
 58        properties: Union[Unset, Dict[str, Any]] = UNSET
 59        if not isinstance(self.properties, Unset):
 60            properties = self.properties.to_dict()
 61
 62        agent: Union[Dict[str, Any], None, Unset]
 63        if isinstance(self.agent, Unset):
 64            agent = UNSET
 65        elif isinstance(self.agent, Agent):
 66            agent = self.agent.to_dict()
 67        else:
 68            agent = self.agent
 69
 70        created_by = self.created_by
 71
 72        field_dict: Dict[str, Any] = {}
 73        field_dict.update(self.additional_properties)
 74        field_dict.update(
 75            {
 76                "environmentType": environment_type,
 77                "createdAt": created_at,
 78                "updatedAt": updated_at,
 79            }
 80        )
 81        if id is not UNSET:
 82            field_dict["id"] = id
 83        if name is not UNSET:
 84            field_dict["name"] = name
 85        if properties is not UNSET:
 86            field_dict["properties"] = properties
 87        if agent is not UNSET:
 88            field_dict["agent"] = agent
 89        if created_by is not UNSET:
 90            field_dict["createdBy"] = created_by
 91
 92        return field_dict
 93
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.agent import Agent
 97        from ..models.compute_environment_configuration_properties import ComputeEnvironmentConfigurationProperties
 98
 99        d = src_dict.copy()
100        environment_type = EnvironmentType(d.pop("environmentType"))
101
102        created_at = isoparse(d.pop("createdAt"))
103
104        updated_at = isoparse(d.pop("updatedAt"))
105
106        id = d.pop("id", UNSET)
107
108        name = d.pop("name", UNSET)
109
110        _properties = d.pop("properties", UNSET)
111        properties: Union[Unset, ComputeEnvironmentConfigurationProperties]
112        if isinstance(_properties, Unset):
113            properties = UNSET
114        else:
115            properties = ComputeEnvironmentConfigurationProperties.from_dict(_properties)
116
117        def _parse_agent(data: object) -> Union["Agent", None, Unset]:
118            if data is None:
119                return data
120            if isinstance(data, Unset):
121                return data
122            try:
123                if not isinstance(data, dict):
124                    raise TypeError()
125                agent_type_1 = Agent.from_dict(data)
126
127                return agent_type_1
128            except:  # noqa: E722
129                pass
130            return cast(Union["Agent", None, Unset], data)
131
132        agent = _parse_agent(d.pop("agent", UNSET))
133
134        created_by = d.pop("createdBy", UNSET)
135
136        compute_environment_configuration = cls(
137            environment_type=environment_type,
138            created_at=created_at,
139            updated_at=updated_at,
140            id=id,
141            name=name,
142            properties=properties,
143            agent=agent,
144            created_by=created_by,
145        )
146
147        compute_environment_configuration.additional_properties = d
148        return compute_environment_configuration
149
150    @property
151    def additional_keys(self) -> List[str]:
152        return list(self.additional_properties.keys())
Attributes:
  • environment_type (EnvironmentType): The type of compute environment
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
  • id (Union[Unset, str]): The unique ID of the environment
  • name (Union[Unset, str]): The display name of the environment
  • properties (Union[Unset, ComputeEnvironmentConfigurationProperties]): Configuration properties passed to the environment
  • agent (Union['Agent', None, Unset]):
  • created_by (Union[Unset, str]): The user who created the environment
ComputeEnvironmentConfiguration( environment_type: EnvironmentType, created_at: datetime.datetime, updated_at: datetime.datetime, id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, properties: Union[cirro_api_client.v1.types.Unset, ComputeEnvironmentConfigurationProperties] = <cirro_api_client.v1.types.Unset object>, agent: Union[Agent, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, created_by: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
31def __init__(self, environment_type, created_at, updated_at, id=attr_dict['id'].default, name=attr_dict['name'].default, properties=attr_dict['properties'].default, agent=attr_dict['agent'].default, created_by=attr_dict['created_by'].default):
32    self.environment_type = environment_type
33    self.created_at = created_at
34    self.updated_at = updated_at
35    self.id = id
36    self.name = name
37    self.properties = properties
38    self.agent = agent
39    self.created_by = created_by
40    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ComputeEnvironmentConfiguration.

environment_type: EnvironmentType
created_at: datetime.datetime
updated_at: datetime.datetime
id: Union[cirro_api_client.v1.types.Unset, str]
name: Union[cirro_api_client.v1.types.Unset, str]
properties: Union[cirro_api_client.v1.types.Unset, ComputeEnvironmentConfigurationProperties]
agent: Union[Agent, NoneType, cirro_api_client.v1.types.Unset]
created_by: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
45    def to_dict(self) -> Dict[str, Any]:
46        from ..models.agent import Agent
47
48        environment_type = self.environment_type.value
49
50        created_at = self.created_at.isoformat()
51
52        updated_at = self.updated_at.isoformat()
53
54        id = self.id
55
56        name = self.name
57
58        properties: Union[Unset, Dict[str, Any]] = UNSET
59        if not isinstance(self.properties, Unset):
60            properties = self.properties.to_dict()
61
62        agent: Union[Dict[str, Any], None, Unset]
63        if isinstance(self.agent, Unset):
64            agent = UNSET
65        elif isinstance(self.agent, Agent):
66            agent = self.agent.to_dict()
67        else:
68            agent = self.agent
69
70        created_by = self.created_by
71
72        field_dict: Dict[str, Any] = {}
73        field_dict.update(self.additional_properties)
74        field_dict.update(
75            {
76                "environmentType": environment_type,
77                "createdAt": created_at,
78                "updatedAt": updated_at,
79            }
80        )
81        if id is not UNSET:
82            field_dict["id"] = id
83        if name is not UNSET:
84            field_dict["name"] = name
85        if properties is not UNSET:
86            field_dict["properties"] = properties
87        if agent is not UNSET:
88            field_dict["agent"] = agent
89        if created_by is not UNSET:
90            field_dict["createdBy"] = created_by
91
92        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.agent import Agent
 97        from ..models.compute_environment_configuration_properties import ComputeEnvironmentConfigurationProperties
 98
 99        d = src_dict.copy()
100        environment_type = EnvironmentType(d.pop("environmentType"))
101
102        created_at = isoparse(d.pop("createdAt"))
103
104        updated_at = isoparse(d.pop("updatedAt"))
105
106        id = d.pop("id", UNSET)
107
108        name = d.pop("name", UNSET)
109
110        _properties = d.pop("properties", UNSET)
111        properties: Union[Unset, ComputeEnvironmentConfigurationProperties]
112        if isinstance(_properties, Unset):
113            properties = UNSET
114        else:
115            properties = ComputeEnvironmentConfigurationProperties.from_dict(_properties)
116
117        def _parse_agent(data: object) -> Union["Agent", None, Unset]:
118            if data is None:
119                return data
120            if isinstance(data, Unset):
121                return data
122            try:
123                if not isinstance(data, dict):
124                    raise TypeError()
125                agent_type_1 = Agent.from_dict(data)
126
127                return agent_type_1
128            except:  # noqa: E722
129                pass
130            return cast(Union["Agent", None, Unset], data)
131
132        agent = _parse_agent(d.pop("agent", UNSET))
133
134        created_by = d.pop("createdBy", UNSET)
135
136        compute_environment_configuration = cls(
137            environment_type=environment_type,
138            created_at=created_at,
139            updated_at=updated_at,
140            id=id,
141            name=name,
142            properties=properties,
143            agent=agent,
144            created_by=created_by,
145        )
146
147        compute_environment_configuration.additional_properties = d
148        return compute_environment_configuration
additional_keys: List[str]
150    @property
151    def additional_keys(self) -> List[str]:
152        return list(self.additional_properties.keys())
class ComputeEnvironmentConfigurationInput:
 18@_attrs_define
 19class ComputeEnvironmentConfigurationInput:
 20    """
 21    Attributes:
 22        name (str):
 23        agent_id (Union[None, Unset, str]):
 24        properties (Union['ComputeEnvironmentConfigurationInputProperties', None, Unset]):
 25    """
 26
 27    name: str
 28    agent_id: Union[None, Unset, str] = UNSET
 29    properties: Union["ComputeEnvironmentConfigurationInputProperties", None, Unset] = UNSET
 30    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 31
 32    def to_dict(self) -> Dict[str, Any]:
 33        from ..models.compute_environment_configuration_input_properties import (
 34            ComputeEnvironmentConfigurationInputProperties,
 35        )
 36
 37        name = self.name
 38
 39        agent_id: Union[None, Unset, str]
 40        if isinstance(self.agent_id, Unset):
 41            agent_id = UNSET
 42        else:
 43            agent_id = self.agent_id
 44
 45        properties: Union[Dict[str, Any], None, Unset]
 46        if isinstance(self.properties, Unset):
 47            properties = UNSET
 48        elif isinstance(self.properties, ComputeEnvironmentConfigurationInputProperties):
 49            properties = self.properties.to_dict()
 50        else:
 51            properties = self.properties
 52
 53        field_dict: Dict[str, Any] = {}
 54        field_dict.update(self.additional_properties)
 55        field_dict.update(
 56            {
 57                "name": name,
 58            }
 59        )
 60        if agent_id is not UNSET:
 61            field_dict["agentId"] = agent_id
 62        if properties is not UNSET:
 63            field_dict["properties"] = properties
 64
 65        return field_dict
 66
 67    @classmethod
 68    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 69        from ..models.compute_environment_configuration_input_properties import (
 70            ComputeEnvironmentConfigurationInputProperties,
 71        )
 72
 73        d = src_dict.copy()
 74        name = d.pop("name")
 75
 76        def _parse_agent_id(data: object) -> Union[None, Unset, str]:
 77            if data is None:
 78                return data
 79            if isinstance(data, Unset):
 80                return data
 81            return cast(Union[None, Unset, str], data)
 82
 83        agent_id = _parse_agent_id(d.pop("agentId", UNSET))
 84
 85        def _parse_properties(data: object) -> Union["ComputeEnvironmentConfigurationInputProperties", None, Unset]:
 86            if data is None:
 87                return data
 88            if isinstance(data, Unset):
 89                return data
 90            try:
 91                if not isinstance(data, dict):
 92                    raise TypeError()
 93                properties_type_0 = ComputeEnvironmentConfigurationInputProperties.from_dict(data)
 94
 95                return properties_type_0
 96            except:  # noqa: E722
 97                pass
 98            return cast(Union["ComputeEnvironmentConfigurationInputProperties", None, Unset], data)
 99
100        properties = _parse_properties(d.pop("properties", UNSET))
101
102        compute_environment_configuration_input = cls(
103            name=name,
104            agent_id=agent_id,
105            properties=properties,
106        )
107
108        compute_environment_configuration_input.additional_properties = d
109        return compute_environment_configuration_input
110
111    @property
112    def additional_keys(self) -> List[str]:
113        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • agent_id (Union[None, Unset, str]):
  • properties (Union['ComputeEnvironmentConfigurationInputProperties', None, Unset]):
ComputeEnvironmentConfigurationInput( name: str, agent_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, properties: Union[ComputeEnvironmentConfigurationInputProperties, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, name, agent_id=attr_dict['agent_id'].default, properties=attr_dict['properties'].default):
27    self.name = name
28    self.agent_id = agent_id
29    self.properties = properties
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ComputeEnvironmentConfigurationInput.

name: str
agent_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
properties: Union[ComputeEnvironmentConfigurationInputProperties, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
32    def to_dict(self) -> Dict[str, Any]:
33        from ..models.compute_environment_configuration_input_properties import (
34            ComputeEnvironmentConfigurationInputProperties,
35        )
36
37        name = self.name
38
39        agent_id: Union[None, Unset, str]
40        if isinstance(self.agent_id, Unset):
41            agent_id = UNSET
42        else:
43            agent_id = self.agent_id
44
45        properties: Union[Dict[str, Any], None, Unset]
46        if isinstance(self.properties, Unset):
47            properties = UNSET
48        elif isinstance(self.properties, ComputeEnvironmentConfigurationInputProperties):
49            properties = self.properties.to_dict()
50        else:
51            properties = self.properties
52
53        field_dict: Dict[str, Any] = {}
54        field_dict.update(self.additional_properties)
55        field_dict.update(
56            {
57                "name": name,
58            }
59        )
60        if agent_id is not UNSET:
61            field_dict["agentId"] = agent_id
62        if properties is not UNSET:
63            field_dict["properties"] = properties
64
65        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 67    @classmethod
 68    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 69        from ..models.compute_environment_configuration_input_properties import (
 70            ComputeEnvironmentConfigurationInputProperties,
 71        )
 72
 73        d = src_dict.copy()
 74        name = d.pop("name")
 75
 76        def _parse_agent_id(data: object) -> Union[None, Unset, str]:
 77            if data is None:
 78                return data
 79            if isinstance(data, Unset):
 80                return data
 81            return cast(Union[None, Unset, str], data)
 82
 83        agent_id = _parse_agent_id(d.pop("agentId", UNSET))
 84
 85        def _parse_properties(data: object) -> Union["ComputeEnvironmentConfigurationInputProperties", None, Unset]:
 86            if data is None:
 87                return data
 88            if isinstance(data, Unset):
 89                return data
 90            try:
 91                if not isinstance(data, dict):
 92                    raise TypeError()
 93                properties_type_0 = ComputeEnvironmentConfigurationInputProperties.from_dict(data)
 94
 95                return properties_type_0
 96            except:  # noqa: E722
 97                pass
 98            return cast(Union["ComputeEnvironmentConfigurationInputProperties", None, Unset], data)
 99
100        properties = _parse_properties(d.pop("properties", UNSET))
101
102        compute_environment_configuration_input = cls(
103            name=name,
104            agent_id=agent_id,
105            properties=properties,
106        )
107
108        compute_environment_configuration_input.additional_properties = d
109        return compute_environment_configuration_input
additional_keys: List[str]
111    @property
112    def additional_keys(self) -> List[str]:
113        return list(self.additional_properties.keys())
class ComputeEnvironmentConfigurationInputProperties:
10@_attrs_define
11class ComputeEnvironmentConfigurationInputProperties:
12    """ """
13
14    additional_properties: Dict[str, str] = _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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        compute_environment_configuration_input_properties = cls()
27
28        compute_environment_configuration_input_properties.additional_properties = d
29        return compute_environment_configuration_input_properties
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
ComputeEnvironmentConfigurationInputProperties()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ComputeEnvironmentConfigurationInputProperties.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        compute_environment_configuration_input_properties = cls()
27
28        compute_environment_configuration_input_properties.additional_properties = d
29        return compute_environment_configuration_input_properties
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class ComputeEnvironmentConfigurationProperties:
10@_attrs_define
11class ComputeEnvironmentConfigurationProperties:
12    """Configuration properties passed to the environment"""
13
14    additional_properties: Dict[str, str] = _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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        compute_environment_configuration_properties = cls()
27
28        compute_environment_configuration_properties.additional_properties = d
29        return compute_environment_configuration_properties
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

Configuration properties passed to the environment

ComputeEnvironmentConfigurationProperties()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ComputeEnvironmentConfigurationProperties.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        compute_environment_configuration_properties = cls()
27
28        compute_environment_configuration_properties.additional_properties = d
29        return compute_environment_configuration_properties
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class Contact:
10@_attrs_define
11class Contact:
12    """
13    Attributes:
14        name (str):
15        organization (str):
16        email (str):
17        phone (str):
18    """
19
20    name: str
21    organization: str
22    email: str
23    phone: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        organization = self.organization
30
31        email = self.email
32
33        phone = self.phone
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "organization": organization,
41                "email": email,
42                "phone": phone,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        organization = d.pop("organization")
54
55        email = d.pop("email")
56
57        phone = d.pop("phone")
58
59        contact = cls(
60            name=name,
61            organization=organization,
62            email=email,
63            phone=phone,
64        )
65
66        contact.additional_properties = d
67        return contact
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • organization (str):
  • email (str):
  • phone (str):
Contact(name: str, organization: str, email: str, phone: str)
27def __init__(self, name, organization, email, phone):
28    self.name = name
29    self.organization = organization
30    self.email = email
31    self.phone = phone
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Contact.

name: str
organization: str
email: str
phone: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        organization = self.organization
30
31        email = self.email
32
33        phone = self.phone
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "organization": organization,
41                "email": email,
42                "phone": phone,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        organization = d.pop("organization")
54
55        email = d.pop("email")
56
57        phone = d.pop("phone")
58
59        contact = cls(
60            name=name,
61            organization=organization,
62            email=email,
63            phone=phone,
64        )
65
66        contact.additional_properties = d
67        return contact
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class ContactInput:
10@_attrs_define
11class ContactInput:
12    """
13    Attributes:
14        title (str):
15        description (str):
16        name (str):
17        phone (str):
18        email (str):
19    """
20
21    title: str
22    description: str
23    name: str
24    phone: str
25    email: str
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        title = self.title
30
31        description = self.description
32
33        name = self.name
34
35        phone = self.phone
36
37        email = self.email
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "title": title,
44                "description": description,
45                "name": name,
46                "phone": phone,
47                "email": email,
48            }
49        )
50
51        return field_dict
52
53    @classmethod
54    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
55        d = src_dict.copy()
56        title = d.pop("title")
57
58        description = d.pop("description")
59
60        name = d.pop("name")
61
62        phone = d.pop("phone")
63
64        email = d.pop("email")
65
66        contact_input = cls(
67            title=title,
68            description=description,
69            name=name,
70            phone=phone,
71            email=email,
72        )
73
74        contact_input.additional_properties = d
75        return contact_input
76
77    @property
78    def additional_keys(self) -> List[str]:
79        return list(self.additional_properties.keys())
Attributes:
  • title (str):
  • description (str):
  • name (str):
  • phone (str):
  • email (str):
ContactInput(title: str, description: str, name: str, phone: str, email: str)
28def __init__(self, title, description, name, phone, email):
29    self.title = title
30    self.description = description
31    self.name = name
32    self.phone = phone
33    self.email = email
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ContactInput.

title: str
description: str
name: str
phone: str
email: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        title = self.title
30
31        description = self.description
32
33        name = self.name
34
35        phone = self.phone
36
37        email = self.email
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update(
42            {
43                "title": title,
44                "description": description,
45                "name": name,
46                "phone": phone,
47                "email": email,
48            }
49        )
50
51        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
53    @classmethod
54    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
55        d = src_dict.copy()
56        title = d.pop("title")
57
58        description = d.pop("description")
59
60        name = d.pop("name")
61
62        phone = d.pop("phone")
63
64        email = d.pop("email")
65
66        contact_input = cls(
67            title=title,
68            description=description,
69            name=name,
70            phone=phone,
71            email=email,
72        )
73
74        contact_input.additional_properties = d
75        return contact_input
additional_keys: List[str]
77    @property
78    def additional_keys(self) -> List[str]:
79        return list(self.additional_properties.keys())
class CreateNotebookInstanceRequest:
 12@_attrs_define
 13class CreateNotebookInstanceRequest:
 14    """
 15    Attributes:
 16        name (str):
 17        instance_type (str): AWS EC2 Instance Type (see list of available options) Example: ml.t3.medium.
 18        accelerator_types (List[str]):
 19        volume_size_gb (int):
 20        git_repositories (Union[List[str], None, Unset]): List of public git repositories to clone into the notebook
 21            instance.
 22        is_shared_with_project (Union[Unset, bool]): Whether the notebook is shared with the project Default: False.
 23    """
 24
 25    name: str
 26    instance_type: str
 27    accelerator_types: List[str]
 28    volume_size_gb: int
 29    git_repositories: Union[List[str], None, Unset] = UNSET
 30    is_shared_with_project: Union[Unset, bool] = False
 31    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 32
 33    def to_dict(self) -> Dict[str, Any]:
 34        name = self.name
 35
 36        instance_type = self.instance_type
 37
 38        accelerator_types = self.accelerator_types
 39
 40        volume_size_gb = self.volume_size_gb
 41
 42        git_repositories: Union[List[str], None, Unset]
 43        if isinstance(self.git_repositories, Unset):
 44            git_repositories = UNSET
 45        elif isinstance(self.git_repositories, list):
 46            git_repositories = self.git_repositories
 47
 48        else:
 49            git_repositories = self.git_repositories
 50
 51        is_shared_with_project = self.is_shared_with_project
 52
 53        field_dict: Dict[str, Any] = {}
 54        field_dict.update(self.additional_properties)
 55        field_dict.update(
 56            {
 57                "name": name,
 58                "instanceType": instance_type,
 59                "acceleratorTypes": accelerator_types,
 60                "volumeSizeGB": volume_size_gb,
 61            }
 62        )
 63        if git_repositories is not UNSET:
 64            field_dict["gitRepositories"] = git_repositories
 65        if is_shared_with_project is not UNSET:
 66            field_dict["isSharedWithProject"] = is_shared_with_project
 67
 68        return field_dict
 69
 70    @classmethod
 71    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 72        d = src_dict.copy()
 73        name = d.pop("name")
 74
 75        instance_type = d.pop("instanceType")
 76
 77        accelerator_types = cast(List[str], d.pop("acceleratorTypes"))
 78
 79        volume_size_gb = d.pop("volumeSizeGB")
 80
 81        def _parse_git_repositories(data: object) -> Union[List[str], None, Unset]:
 82            if data is None:
 83                return data
 84            if isinstance(data, Unset):
 85                return data
 86            try:
 87                if not isinstance(data, list):
 88                    raise TypeError()
 89                git_repositories_type_0 = cast(List[str], data)
 90
 91                return git_repositories_type_0
 92            except:  # noqa: E722
 93                pass
 94            return cast(Union[List[str], None, Unset], data)
 95
 96        git_repositories = _parse_git_repositories(d.pop("gitRepositories", UNSET))
 97
 98        is_shared_with_project = d.pop("isSharedWithProject", UNSET)
 99
100        create_notebook_instance_request = cls(
101            name=name,
102            instance_type=instance_type,
103            accelerator_types=accelerator_types,
104            volume_size_gb=volume_size_gb,
105            git_repositories=git_repositories,
106            is_shared_with_project=is_shared_with_project,
107        )
108
109        create_notebook_instance_request.additional_properties = d
110        return create_notebook_instance_request
111
112    @property
113    def additional_keys(self) -> List[str]:
114        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • instance_type (str): AWS EC2 Instance Type (see list of available options) Example: ml.t3.medium.
  • accelerator_types (List[str]):
  • volume_size_gb (int):
  • git_repositories (Union[List[str], None, Unset]): List of public git repositories to clone into the notebook instance.
  • is_shared_with_project (Union[Unset, bool]): Whether the notebook is shared with the project Default: False.
CreateNotebookInstanceRequest( name: str, instance_type: str, accelerator_types: List[str], volume_size_gb: int, git_repositories: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, is_shared_with_project: Union[cirro_api_client.v1.types.Unset, bool] = False)
29def __init__(self, name, instance_type, accelerator_types, volume_size_gb, git_repositories=attr_dict['git_repositories'].default, is_shared_with_project=attr_dict['is_shared_with_project'].default):
30    self.name = name
31    self.instance_type = instance_type
32    self.accelerator_types = accelerator_types
33    self.volume_size_gb = volume_size_gb
34    self.git_repositories = git_repositories
35    self.is_shared_with_project = is_shared_with_project
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CreateNotebookInstanceRequest.

name: str
instance_type: str
accelerator_types: List[str]
volume_size_gb: int
git_repositories: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
is_shared_with_project: Union[cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
33    def to_dict(self) -> Dict[str, Any]:
34        name = self.name
35
36        instance_type = self.instance_type
37
38        accelerator_types = self.accelerator_types
39
40        volume_size_gb = self.volume_size_gb
41
42        git_repositories: Union[List[str], None, Unset]
43        if isinstance(self.git_repositories, Unset):
44            git_repositories = UNSET
45        elif isinstance(self.git_repositories, list):
46            git_repositories = self.git_repositories
47
48        else:
49            git_repositories = self.git_repositories
50
51        is_shared_with_project = self.is_shared_with_project
52
53        field_dict: Dict[str, Any] = {}
54        field_dict.update(self.additional_properties)
55        field_dict.update(
56            {
57                "name": name,
58                "instanceType": instance_type,
59                "acceleratorTypes": accelerator_types,
60                "volumeSizeGB": volume_size_gb,
61            }
62        )
63        if git_repositories is not UNSET:
64            field_dict["gitRepositories"] = git_repositories
65        if is_shared_with_project is not UNSET:
66            field_dict["isSharedWithProject"] = is_shared_with_project
67
68        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 70    @classmethod
 71    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 72        d = src_dict.copy()
 73        name = d.pop("name")
 74
 75        instance_type = d.pop("instanceType")
 76
 77        accelerator_types = cast(List[str], d.pop("acceleratorTypes"))
 78
 79        volume_size_gb = d.pop("volumeSizeGB")
 80
 81        def _parse_git_repositories(data: object) -> Union[List[str], None, Unset]:
 82            if data is None:
 83                return data
 84            if isinstance(data, Unset):
 85                return data
 86            try:
 87                if not isinstance(data, list):
 88                    raise TypeError()
 89                git_repositories_type_0 = cast(List[str], data)
 90
 91                return git_repositories_type_0
 92            except:  # noqa: E722
 93                pass
 94            return cast(Union[List[str], None, Unset], data)
 95
 96        git_repositories = _parse_git_repositories(d.pop("gitRepositories", UNSET))
 97
 98        is_shared_with_project = d.pop("isSharedWithProject", UNSET)
 99
100        create_notebook_instance_request = cls(
101            name=name,
102            instance_type=instance_type,
103            accelerator_types=accelerator_types,
104            volume_size_gb=volume_size_gb,
105            git_repositories=git_repositories,
106            is_shared_with_project=is_shared_with_project,
107        )
108
109        create_notebook_instance_request.additional_properties = d
110        return create_notebook_instance_request
additional_keys: List[str]
112    @property
113    def additional_keys(self) -> List[str]:
114        return list(self.additional_properties.keys())
class CreateProjectAccessRequest:
12@_attrs_define
13class CreateProjectAccessRequest:
14    """
15    Attributes:
16        role (ProjectRole):
17        message (str):
18    """
19
20    role: ProjectRole
21    message: str
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        role = self.role.value
26
27        message = self.message
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "role": role,
34                "message": message,
35            }
36        )
37
38        return field_dict
39
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        d = src_dict.copy()
43        role = ProjectRole(d.pop("role"))
44
45        message = d.pop("message")
46
47        create_project_access_request = cls(
48            role=role,
49            message=message,
50        )
51
52        create_project_access_request.additional_properties = d
53        return create_project_access_request
54
55    @property
56    def additional_keys(self) -> List[str]:
57        return list(self.additional_properties.keys())
Attributes:
  • role (ProjectRole):
  • message (str):
CreateProjectAccessRequest( role: ProjectRole, message: str)
25def __init__(self, role, message):
26    self.role = role
27    self.message = message
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CreateProjectAccessRequest.

role: ProjectRole
message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        role = self.role.value
26
27        message = self.message
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "role": role,
34                "message": message,
35            }
36        )
37
38        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        d = src_dict.copy()
43        role = ProjectRole(d.pop("role"))
44
45        message = d.pop("message")
46
47        create_project_access_request = cls(
48            role=role,
49            message=message,
50        )
51
52        create_project_access_request.additional_properties = d
53        return create_project_access_request
additional_keys: List[str]
55    @property
56    def additional_keys(self) -> List[str]:
57        return list(self.additional_properties.keys())
class CreateReferenceRequest:
10@_attrs_define
11class CreateReferenceRequest:
12    """
13    Attributes:
14        name (str):
15        description (str):
16        type (str):
17        expected_files (List[str]):
18    """
19
20    name: str
21    description: str
22    type: str
23    expected_files: List[str]
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        description = self.description
30
31        type = self.type
32
33        expected_files = self.expected_files
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "description": description,
41                "type": type,
42                "expectedFiles": expected_files,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        description = d.pop("description")
54
55        type = d.pop("type")
56
57        expected_files = cast(List[str], d.pop("expectedFiles"))
58
59        create_reference_request = cls(
60            name=name,
61            description=description,
62            type=type,
63            expected_files=expected_files,
64        )
65
66        create_reference_request.additional_properties = d
67        return create_reference_request
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • type (str):
  • expected_files (List[str]):
CreateReferenceRequest(name: str, description: str, type: str, expected_files: List[str])
27def __init__(self, name, description, type, expected_files):
28    self.name = name
29    self.description = description
30    self.type = type
31    self.expected_files = expected_files
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CreateReferenceRequest.

name: str
description: str
type: str
expected_files: List[str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        description = self.description
30
31        type = self.type
32
33        expected_files = self.expected_files
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "description": description,
41                "type": type,
42                "expectedFiles": expected_files,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        description = d.pop("description")
54
55        type = d.pop("type")
56
57        expected_files = cast(List[str], d.pop("expectedFiles"))
58
59        create_reference_request = cls(
60            name=name,
61            description=description,
62            type=type,
63            expected_files=expected_files,
64        )
65
66        create_reference_request.additional_properties = d
67        return create_reference_request
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class CreateResponse:
10@_attrs_define
11class CreateResponse:
12    """
13    Attributes:
14        id (str):
15        message (str):
16    """
17
18    id: str
19    message: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        id = self.id
24
25        message = self.message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "id": id,
32                "message": message,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        id = d.pop("id")
42
43        message = d.pop("message")
44
45        create_response = cls(
46            id=id,
47            message=message,
48        )
49
50        create_response.additional_properties = d
51        return create_response
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • message (str):
CreateResponse(id: str, message: str)
25def __init__(self, id, message):
26    self.id = id
27    self.message = message
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CreateResponse.

id: str
message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        id = self.id
24
25        message = self.message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "id": id,
32                "message": message,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        id = d.pop("id")
42
43        message = d.pop("message")
44
45        create_response = cls(
46            id=id,
47            message=message,
48        )
49
50        create_response.additional_properties = d
51        return create_response
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class CustomerType(builtins.str, enum.Enum):
 5class CustomerType(str, Enum):
 6    CONSORTIUM = "CONSORTIUM"
 7    EXTERNAL = "EXTERNAL"
 8    INTERNAL = "INTERNAL"
 9    UNKNOWN = "UNKNOWN"
10    """ This is a fallback value for when the value is not known, do not use this value when making requests """
11
12    def __str__(self) -> str:
13        return str(self.value)
14
15    @classmethod
16    def _missing_(cls, number):
17        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

CONSORTIUM = <CustomerType.CONSORTIUM: 'CONSORTIUM'>
EXTERNAL = <CustomerType.EXTERNAL: 'EXTERNAL'>
INTERNAL = <CustomerType.INTERNAL: 'INTERNAL'>
UNKNOWN = <CustomerType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class CustomPipelineSettings:
 16@_attrs_define
 17class CustomPipelineSettings:
 18    """Used to describe the location of the process definition dependencies
 19
 20    Attributes:
 21        repository (str): GitHub repository that contains the process definition Example: CirroBio/my-pipeline.
 22        branch (Union[Unset, str]): Branch, tag, or commit hash of the repo that contains the process definition
 23            Default: 'main'.
 24        folder (Union[Unset, str]): Folder within the repo that contains the process definition Default: '.cirro'.
 25        repository_type (Union[None, RepositoryType, Unset]):
 26        last_sync (Union[None, Unset, datetime.datetime]): Time of last sync
 27        sync_status (Union[None, SyncStatus, Unset]):
 28        commit_hash (Union[None, Unset, str]): Commit hash of the last successful sync
 29        is_authorized (Union[Unset, bool]): Whether we are authorized to access the repository Default: False.
 30    """
 31
 32    repository: str
 33    branch: Union[Unset, str] = "main"
 34    folder: Union[Unset, str] = ".cirro"
 35    repository_type: Union[None, RepositoryType, Unset] = UNSET
 36    last_sync: Union[None, Unset, datetime.datetime] = UNSET
 37    sync_status: Union[None, SyncStatus, Unset] = UNSET
 38    commit_hash: Union[None, Unset, str] = UNSET
 39    is_authorized: Union[Unset, bool] = False
 40    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 41
 42    def to_dict(self) -> Dict[str, Any]:
 43        repository = self.repository
 44
 45        branch = self.branch
 46
 47        folder = self.folder
 48
 49        repository_type: Union[None, Unset, str]
 50        if isinstance(self.repository_type, Unset):
 51            repository_type = UNSET
 52        elif isinstance(self.repository_type, RepositoryType):
 53            repository_type = self.repository_type.value
 54        else:
 55            repository_type = self.repository_type
 56
 57        last_sync: Union[None, Unset, str]
 58        if isinstance(self.last_sync, Unset):
 59            last_sync = UNSET
 60        elif isinstance(self.last_sync, datetime.datetime):
 61            last_sync = self.last_sync.isoformat()
 62        else:
 63            last_sync = self.last_sync
 64
 65        sync_status: Union[None, Unset, str]
 66        if isinstance(self.sync_status, Unset):
 67            sync_status = UNSET
 68        elif isinstance(self.sync_status, SyncStatus):
 69            sync_status = self.sync_status.value
 70        else:
 71            sync_status = self.sync_status
 72
 73        commit_hash: Union[None, Unset, str]
 74        if isinstance(self.commit_hash, Unset):
 75            commit_hash = UNSET
 76        else:
 77            commit_hash = self.commit_hash
 78
 79        is_authorized = self.is_authorized
 80
 81        field_dict: Dict[str, Any] = {}
 82        field_dict.update(self.additional_properties)
 83        field_dict.update(
 84            {
 85                "repository": repository,
 86            }
 87        )
 88        if branch is not UNSET:
 89            field_dict["branch"] = branch
 90        if folder is not UNSET:
 91            field_dict["folder"] = folder
 92        if repository_type is not UNSET:
 93            field_dict["repositoryType"] = repository_type
 94        if last_sync is not UNSET:
 95            field_dict["lastSync"] = last_sync
 96        if sync_status is not UNSET:
 97            field_dict["syncStatus"] = sync_status
 98        if commit_hash is not UNSET:
 99            field_dict["commitHash"] = commit_hash
100        if is_authorized is not UNSET:
101            field_dict["isAuthorized"] = is_authorized
102
103        return field_dict
104
105    @classmethod
106    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
107        d = src_dict.copy()
108        repository = d.pop("repository")
109
110        branch = d.pop("branch", UNSET)
111
112        folder = d.pop("folder", UNSET)
113
114        def _parse_repository_type(data: object) -> Union[None, RepositoryType, Unset]:
115            if data is None:
116                return data
117            if isinstance(data, Unset):
118                return data
119            try:
120                if not isinstance(data, str):
121                    raise TypeError()
122                repository_type_type_1 = RepositoryType(data)
123
124                return repository_type_type_1
125            except:  # noqa: E722
126                pass
127            return cast(Union[None, RepositoryType, Unset], data)
128
129        repository_type = _parse_repository_type(d.pop("repositoryType", UNSET))
130
131        def _parse_last_sync(data: object) -> Union[None, Unset, datetime.datetime]:
132            if data is None:
133                return data
134            if isinstance(data, Unset):
135                return data
136            try:
137                if not isinstance(data, str):
138                    raise TypeError()
139                last_sync_type_0 = isoparse(data)
140
141                return last_sync_type_0
142            except:  # noqa: E722
143                pass
144            return cast(Union[None, Unset, datetime.datetime], data)
145
146        last_sync = _parse_last_sync(d.pop("lastSync", UNSET))
147
148        def _parse_sync_status(data: object) -> Union[None, SyncStatus, Unset]:
149            if data is None:
150                return data
151            if isinstance(data, Unset):
152                return data
153            try:
154                if not isinstance(data, str):
155                    raise TypeError()
156                sync_status_type_1 = SyncStatus(data)
157
158                return sync_status_type_1
159            except:  # noqa: E722
160                pass
161            return cast(Union[None, SyncStatus, Unset], data)
162
163        sync_status = _parse_sync_status(d.pop("syncStatus", UNSET))
164
165        def _parse_commit_hash(data: object) -> Union[None, Unset, str]:
166            if data is None:
167                return data
168            if isinstance(data, Unset):
169                return data
170            return cast(Union[None, Unset, str], data)
171
172        commit_hash = _parse_commit_hash(d.pop("commitHash", UNSET))
173
174        is_authorized = d.pop("isAuthorized", UNSET)
175
176        custom_pipeline_settings = cls(
177            repository=repository,
178            branch=branch,
179            folder=folder,
180            repository_type=repository_type,
181            last_sync=last_sync,
182            sync_status=sync_status,
183            commit_hash=commit_hash,
184            is_authorized=is_authorized,
185        )
186
187        custom_pipeline_settings.additional_properties = d
188        return custom_pipeline_settings
189
190    @property
191    def additional_keys(self) -> List[str]:
192        return list(self.additional_properties.keys())

Used to describe the location of the process definition dependencies

Attributes:
  • repository (str): GitHub repository that contains the process definition Example: CirroBio/my-pipeline.
  • branch (Union[Unset, str]): Branch, tag, or commit hash of the repo that contains the process definition Default: 'main'.
  • folder (Union[Unset, str]): Folder within the repo that contains the process definition Default: '.cirro'.
  • repository_type (Union[None, RepositoryType, Unset]):
  • last_sync (Union[None, Unset, datetime.datetime]): Time of last sync
  • sync_status (Union[None, SyncStatus, Unset]):
  • commit_hash (Union[None, Unset, str]): Commit hash of the last successful sync
  • is_authorized (Union[Unset, bool]): Whether we are authorized to access the repository Default: False.
CustomPipelineSettings( repository: str, branch: Union[cirro_api_client.v1.types.Unset, str] = 'main', folder: Union[cirro_api_client.v1.types.Unset, str] = '.cirro', repository_type: Union[NoneType, RepositoryType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, last_sync: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, sync_status: Union[NoneType, SyncStatus, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, commit_hash: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, is_authorized: Union[cirro_api_client.v1.types.Unset, bool] = False)
31def __init__(self, repository, branch=attr_dict['branch'].default, folder=attr_dict['folder'].default, repository_type=attr_dict['repository_type'].default, last_sync=attr_dict['last_sync'].default, sync_status=attr_dict['sync_status'].default, commit_hash=attr_dict['commit_hash'].default, is_authorized=attr_dict['is_authorized'].default):
32    self.repository = repository
33    self.branch = branch
34    self.folder = folder
35    self.repository_type = repository_type
36    self.last_sync = last_sync
37    self.sync_status = sync_status
38    self.commit_hash = commit_hash
39    self.is_authorized = is_authorized
40    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CustomPipelineSettings.

repository: str
branch: Union[cirro_api_client.v1.types.Unset, str]
folder: Union[cirro_api_client.v1.types.Unset, str]
repository_type: Union[NoneType, RepositoryType, cirro_api_client.v1.types.Unset]
last_sync: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
sync_status: Union[NoneType, SyncStatus, cirro_api_client.v1.types.Unset]
commit_hash: Union[NoneType, cirro_api_client.v1.types.Unset, str]
is_authorized: Union[cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 42    def to_dict(self) -> Dict[str, Any]:
 43        repository = self.repository
 44
 45        branch = self.branch
 46
 47        folder = self.folder
 48
 49        repository_type: Union[None, Unset, str]
 50        if isinstance(self.repository_type, Unset):
 51            repository_type = UNSET
 52        elif isinstance(self.repository_type, RepositoryType):
 53            repository_type = self.repository_type.value
 54        else:
 55            repository_type = self.repository_type
 56
 57        last_sync: Union[None, Unset, str]
 58        if isinstance(self.last_sync, Unset):
 59            last_sync = UNSET
 60        elif isinstance(self.last_sync, datetime.datetime):
 61            last_sync = self.last_sync.isoformat()
 62        else:
 63            last_sync = self.last_sync
 64
 65        sync_status: Union[None, Unset, str]
 66        if isinstance(self.sync_status, Unset):
 67            sync_status = UNSET
 68        elif isinstance(self.sync_status, SyncStatus):
 69            sync_status = self.sync_status.value
 70        else:
 71            sync_status = self.sync_status
 72
 73        commit_hash: Union[None, Unset, str]
 74        if isinstance(self.commit_hash, Unset):
 75            commit_hash = UNSET
 76        else:
 77            commit_hash = self.commit_hash
 78
 79        is_authorized = self.is_authorized
 80
 81        field_dict: Dict[str, Any] = {}
 82        field_dict.update(self.additional_properties)
 83        field_dict.update(
 84            {
 85                "repository": repository,
 86            }
 87        )
 88        if branch is not UNSET:
 89            field_dict["branch"] = branch
 90        if folder is not UNSET:
 91            field_dict["folder"] = folder
 92        if repository_type is not UNSET:
 93            field_dict["repositoryType"] = repository_type
 94        if last_sync is not UNSET:
 95            field_dict["lastSync"] = last_sync
 96        if sync_status is not UNSET:
 97            field_dict["syncStatus"] = sync_status
 98        if commit_hash is not UNSET:
 99            field_dict["commitHash"] = commit_hash
100        if is_authorized is not UNSET:
101            field_dict["isAuthorized"] = is_authorized
102
103        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
105    @classmethod
106    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
107        d = src_dict.copy()
108        repository = d.pop("repository")
109
110        branch = d.pop("branch", UNSET)
111
112        folder = d.pop("folder", UNSET)
113
114        def _parse_repository_type(data: object) -> Union[None, RepositoryType, Unset]:
115            if data is None:
116                return data
117            if isinstance(data, Unset):
118                return data
119            try:
120                if not isinstance(data, str):
121                    raise TypeError()
122                repository_type_type_1 = RepositoryType(data)
123
124                return repository_type_type_1
125            except:  # noqa: E722
126                pass
127            return cast(Union[None, RepositoryType, Unset], data)
128
129        repository_type = _parse_repository_type(d.pop("repositoryType", UNSET))
130
131        def _parse_last_sync(data: object) -> Union[None, Unset, datetime.datetime]:
132            if data is None:
133                return data
134            if isinstance(data, Unset):
135                return data
136            try:
137                if not isinstance(data, str):
138                    raise TypeError()
139                last_sync_type_0 = isoparse(data)
140
141                return last_sync_type_0
142            except:  # noqa: E722
143                pass
144            return cast(Union[None, Unset, datetime.datetime], data)
145
146        last_sync = _parse_last_sync(d.pop("lastSync", UNSET))
147
148        def _parse_sync_status(data: object) -> Union[None, SyncStatus, Unset]:
149            if data is None:
150                return data
151            if isinstance(data, Unset):
152                return data
153            try:
154                if not isinstance(data, str):
155                    raise TypeError()
156                sync_status_type_1 = SyncStatus(data)
157
158                return sync_status_type_1
159            except:  # noqa: E722
160                pass
161            return cast(Union[None, SyncStatus, Unset], data)
162
163        sync_status = _parse_sync_status(d.pop("syncStatus", UNSET))
164
165        def _parse_commit_hash(data: object) -> Union[None, Unset, str]:
166            if data is None:
167                return data
168            if isinstance(data, Unset):
169                return data
170            return cast(Union[None, Unset, str], data)
171
172        commit_hash = _parse_commit_hash(d.pop("commitHash", UNSET))
173
174        is_authorized = d.pop("isAuthorized", UNSET)
175
176        custom_pipeline_settings = cls(
177            repository=repository,
178            branch=branch,
179            folder=folder,
180            repository_type=repository_type,
181            last_sync=last_sync,
182            sync_status=sync_status,
183            commit_hash=commit_hash,
184            is_authorized=is_authorized,
185        )
186
187        custom_pipeline_settings.additional_properties = d
188        return custom_pipeline_settings
additional_keys: List[str]
190    @property
191    def additional_keys(self) -> List[str]:
192        return list(self.additional_properties.keys())
class CustomProcessInput:
 19@_attrs_define
 20class CustomProcessInput:
 21    """
 22    Attributes:
 23        id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
 24        name (str): Friendly name for the process Example: MAGeCK Flute.
 25        description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential
 26            genes with their related biological functions.
 27        executor (Executor): How the workflow is executed
 28        child_process_ids (List[str]): IDs of pipelines that can be run downstream
 29        parent_process_ids (List[str]): IDs of processes that can run this pipeline
 30        linked_project_ids (List[str]): Projects that can run this process
 31        data_type (Union[None, Unset, str]): Name of the data type this pipeline produces (if it is not defined, use the
 32            name)
 33        category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
 34        documentation_url (Union[None, Unset, str]): Link to process documentation Example:
 35            https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
 36        file_requirements_message (Union[None, Unset, str]): Description of the files to be uploaded (optional)
 37        pipeline_code (Union['PipelineCode', None, Unset]):
 38        is_tenant_wide (Union[Unset, bool]): Whether the process is shared with the tenant
 39        allow_multiple_sources (Union[Unset, bool]): Whether the pipeline is allowed to have multiple dataset sources
 40        uses_sample_sheet (Union[Unset, bool]): Whether the pipeline uses the Cirro-provided sample sheet
 41        custom_settings (Union['CustomPipelineSettings', None, Unset]):
 42        file_mapping_rules (Union[List['FileMappingRule'], None, Unset]):
 43    """
 44
 45    id: str
 46    name: str
 47    description: str
 48    executor: Executor
 49    child_process_ids: List[str]
 50    parent_process_ids: List[str]
 51    linked_project_ids: List[str]
 52    data_type: Union[None, Unset, str] = UNSET
 53    category: Union[Unset, str] = UNSET
 54    documentation_url: Union[None, Unset, str] = UNSET
 55    file_requirements_message: Union[None, Unset, str] = UNSET
 56    pipeline_code: Union["PipelineCode", None, Unset] = UNSET
 57    is_tenant_wide: Union[Unset, bool] = UNSET
 58    allow_multiple_sources: Union[Unset, bool] = UNSET
 59    uses_sample_sheet: Union[Unset, bool] = UNSET
 60    custom_settings: Union["CustomPipelineSettings", None, Unset] = UNSET
 61    file_mapping_rules: Union[List["FileMappingRule"], None, Unset] = UNSET
 62    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 63
 64    def to_dict(self) -> Dict[str, Any]:
 65        from ..models.custom_pipeline_settings import CustomPipelineSettings
 66        from ..models.pipeline_code import PipelineCode
 67
 68        id = self.id
 69
 70        name = self.name
 71
 72        description = self.description
 73
 74        executor = self.executor.value
 75
 76        child_process_ids = self.child_process_ids
 77
 78        parent_process_ids = self.parent_process_ids
 79
 80        linked_project_ids = self.linked_project_ids
 81
 82        data_type: Union[None, Unset, str]
 83        if isinstance(self.data_type, Unset):
 84            data_type = UNSET
 85        else:
 86            data_type = self.data_type
 87
 88        category = self.category
 89
 90        documentation_url: Union[None, Unset, str]
 91        if isinstance(self.documentation_url, Unset):
 92            documentation_url = UNSET
 93        else:
 94            documentation_url = self.documentation_url
 95
 96        file_requirements_message: Union[None, Unset, str]
 97        if isinstance(self.file_requirements_message, Unset):
 98            file_requirements_message = UNSET
 99        else:
100            file_requirements_message = self.file_requirements_message
101
102        pipeline_code: Union[Dict[str, Any], None, Unset]
103        if isinstance(self.pipeline_code, Unset):
104            pipeline_code = UNSET
105        elif isinstance(self.pipeline_code, PipelineCode):
106            pipeline_code = self.pipeline_code.to_dict()
107        else:
108            pipeline_code = self.pipeline_code
109
110        is_tenant_wide = self.is_tenant_wide
111
112        allow_multiple_sources = self.allow_multiple_sources
113
114        uses_sample_sheet = self.uses_sample_sheet
115
116        custom_settings: Union[Dict[str, Any], None, Unset]
117        if isinstance(self.custom_settings, Unset):
118            custom_settings = UNSET
119        elif isinstance(self.custom_settings, CustomPipelineSettings):
120            custom_settings = self.custom_settings.to_dict()
121        else:
122            custom_settings = self.custom_settings
123
124        file_mapping_rules: Union[List[Dict[str, Any]], None, Unset]
125        if isinstance(self.file_mapping_rules, Unset):
126            file_mapping_rules = UNSET
127        elif isinstance(self.file_mapping_rules, list):
128            file_mapping_rules = []
129            for file_mapping_rules_type_0_item_data in self.file_mapping_rules:
130                file_mapping_rules_type_0_item = file_mapping_rules_type_0_item_data.to_dict()
131                file_mapping_rules.append(file_mapping_rules_type_0_item)
132
133        else:
134            file_mapping_rules = self.file_mapping_rules
135
136        field_dict: Dict[str, Any] = {}
137        field_dict.update(self.additional_properties)
138        field_dict.update(
139            {
140                "id": id,
141                "name": name,
142                "description": description,
143                "executor": executor,
144                "childProcessIds": child_process_ids,
145                "parentProcessIds": parent_process_ids,
146                "linkedProjectIds": linked_project_ids,
147            }
148        )
149        if data_type is not UNSET:
150            field_dict["dataType"] = data_type
151        if category is not UNSET:
152            field_dict["category"] = category
153        if documentation_url is not UNSET:
154            field_dict["documentationUrl"] = documentation_url
155        if file_requirements_message is not UNSET:
156            field_dict["fileRequirementsMessage"] = file_requirements_message
157        if pipeline_code is not UNSET:
158            field_dict["pipelineCode"] = pipeline_code
159        if is_tenant_wide is not UNSET:
160            field_dict["isTenantWide"] = is_tenant_wide
161        if allow_multiple_sources is not UNSET:
162            field_dict["allowMultipleSources"] = allow_multiple_sources
163        if uses_sample_sheet is not UNSET:
164            field_dict["usesSampleSheet"] = uses_sample_sheet
165        if custom_settings is not UNSET:
166            field_dict["customSettings"] = custom_settings
167        if file_mapping_rules is not UNSET:
168            field_dict["fileMappingRules"] = file_mapping_rules
169
170        return field_dict
171
172    @classmethod
173    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
174        from ..models.custom_pipeline_settings import CustomPipelineSettings
175        from ..models.file_mapping_rule import FileMappingRule
176        from ..models.pipeline_code import PipelineCode
177
178        d = src_dict.copy()
179        id = d.pop("id")
180
181        name = d.pop("name")
182
183        description = d.pop("description")
184
185        executor = Executor(d.pop("executor"))
186
187        child_process_ids = cast(List[str], d.pop("childProcessIds"))
188
189        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
190
191        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
192
193        def _parse_data_type(data: object) -> Union[None, Unset, str]:
194            if data is None:
195                return data
196            if isinstance(data, Unset):
197                return data
198            return cast(Union[None, Unset, str], data)
199
200        data_type = _parse_data_type(d.pop("dataType", UNSET))
201
202        category = d.pop("category", UNSET)
203
204        def _parse_documentation_url(data: object) -> Union[None, Unset, str]:
205            if data is None:
206                return data
207            if isinstance(data, Unset):
208                return data
209            return cast(Union[None, Unset, str], data)
210
211        documentation_url = _parse_documentation_url(d.pop("documentationUrl", UNSET))
212
213        def _parse_file_requirements_message(data: object) -> Union[None, Unset, str]:
214            if data is None:
215                return data
216            if isinstance(data, Unset):
217                return data
218            return cast(Union[None, Unset, str], data)
219
220        file_requirements_message = _parse_file_requirements_message(d.pop("fileRequirementsMessage", UNSET))
221
222        def _parse_pipeline_code(data: object) -> Union["PipelineCode", None, Unset]:
223            if data is None:
224                return data
225            if isinstance(data, Unset):
226                return data
227            try:
228                if not isinstance(data, dict):
229                    raise TypeError()
230                pipeline_code_type_1 = PipelineCode.from_dict(data)
231
232                return pipeline_code_type_1
233            except:  # noqa: E722
234                pass
235            return cast(Union["PipelineCode", None, Unset], data)
236
237        pipeline_code = _parse_pipeline_code(d.pop("pipelineCode", UNSET))
238
239        is_tenant_wide = d.pop("isTenantWide", UNSET)
240
241        allow_multiple_sources = d.pop("allowMultipleSources", UNSET)
242
243        uses_sample_sheet = d.pop("usesSampleSheet", UNSET)
244
245        def _parse_custom_settings(data: object) -> Union["CustomPipelineSettings", None, Unset]:
246            if data is None:
247                return data
248            if isinstance(data, Unset):
249                return data
250            try:
251                if not isinstance(data, dict):
252                    raise TypeError()
253                custom_settings_type_1 = CustomPipelineSettings.from_dict(data)
254
255                return custom_settings_type_1
256            except:  # noqa: E722
257                pass
258            return cast(Union["CustomPipelineSettings", None, Unset], data)
259
260        custom_settings = _parse_custom_settings(d.pop("customSettings", UNSET))
261
262        def _parse_file_mapping_rules(data: object) -> Union[List["FileMappingRule"], None, Unset]:
263            if data is None:
264                return data
265            if isinstance(data, Unset):
266                return data
267            try:
268                if not isinstance(data, list):
269                    raise TypeError()
270                file_mapping_rules_type_0 = []
271                _file_mapping_rules_type_0 = data
272                for file_mapping_rules_type_0_item_data in _file_mapping_rules_type_0:
273                    file_mapping_rules_type_0_item = FileMappingRule.from_dict(file_mapping_rules_type_0_item_data)
274
275                    file_mapping_rules_type_0.append(file_mapping_rules_type_0_item)
276
277                return file_mapping_rules_type_0
278            except:  # noqa: E722
279                pass
280            return cast(Union[List["FileMappingRule"], None, Unset], data)
281
282        file_mapping_rules = _parse_file_mapping_rules(d.pop("fileMappingRules", UNSET))
283
284        custom_process_input = cls(
285            id=id,
286            name=name,
287            description=description,
288            executor=executor,
289            child_process_ids=child_process_ids,
290            parent_process_ids=parent_process_ids,
291            linked_project_ids=linked_project_ids,
292            data_type=data_type,
293            category=category,
294            documentation_url=documentation_url,
295            file_requirements_message=file_requirements_message,
296            pipeline_code=pipeline_code,
297            is_tenant_wide=is_tenant_wide,
298            allow_multiple_sources=allow_multiple_sources,
299            uses_sample_sheet=uses_sample_sheet,
300            custom_settings=custom_settings,
301            file_mapping_rules=file_mapping_rules,
302        )
303
304        custom_process_input.additional_properties = d
305        return custom_process_input
306
307    @property
308    def additional_keys(self) -> List[str]:
309        return list(self.additional_properties.keys())
Attributes:
  • id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
  • name (str): Friendly name for the process Example: MAGeCK Flute.
  • description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential genes with their related biological functions.
  • executor (Executor): How the workflow is executed
  • child_process_ids (List[str]): IDs of pipelines that can be run downstream
  • parent_process_ids (List[str]): IDs of processes that can run this pipeline
  • linked_project_ids (List[str]): Projects that can run this process
  • data_type (Union[None, Unset, str]): Name of the data type this pipeline produces (if it is not defined, use the name)
  • category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
  • documentation_url (Union[None, Unset, str]): Link to process documentation Example: https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
  • file_requirements_message (Union[None, Unset, str]): Description of the files to be uploaded (optional)
  • pipeline_code (Union['PipelineCode', None, Unset]):
  • is_tenant_wide (Union[Unset, bool]): Whether the process is shared with the tenant
  • allow_multiple_sources (Union[Unset, bool]): Whether the pipeline is allowed to have multiple dataset sources
  • uses_sample_sheet (Union[Unset, bool]): Whether the pipeline uses the Cirro-provided sample sheet
  • custom_settings (Union['CustomPipelineSettings', None, Unset]):
  • file_mapping_rules (Union[List['FileMappingRule'], None, Unset]):
CustomProcessInput( id: str, name: str, description: str, executor: Executor, child_process_ids: List[str], parent_process_ids: List[str], linked_project_ids: List[str], data_type: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, category: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, documentation_url: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, file_requirements_message: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, pipeline_code: Union[PipelineCode, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, is_tenant_wide: Union[cirro_api_client.v1.types.Unset, bool] = <cirro_api_client.v1.types.Unset object>, allow_multiple_sources: Union[cirro_api_client.v1.types.Unset, bool] = <cirro_api_client.v1.types.Unset object>, uses_sample_sheet: Union[cirro_api_client.v1.types.Unset, bool] = <cirro_api_client.v1.types.Unset object>, custom_settings: Union[CustomPipelineSettings, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, file_mapping_rules: Union[List[FileMappingRule], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
40def __init__(self, id, name, description, executor, child_process_ids, parent_process_ids, linked_project_ids, data_type=attr_dict['data_type'].default, category=attr_dict['category'].default, documentation_url=attr_dict['documentation_url'].default, file_requirements_message=attr_dict['file_requirements_message'].default, pipeline_code=attr_dict['pipeline_code'].default, is_tenant_wide=attr_dict['is_tenant_wide'].default, allow_multiple_sources=attr_dict['allow_multiple_sources'].default, uses_sample_sheet=attr_dict['uses_sample_sheet'].default, custom_settings=attr_dict['custom_settings'].default, file_mapping_rules=attr_dict['file_mapping_rules'].default):
41    self.id = id
42    self.name = name
43    self.description = description
44    self.executor = executor
45    self.child_process_ids = child_process_ids
46    self.parent_process_ids = parent_process_ids
47    self.linked_project_ids = linked_project_ids
48    self.data_type = data_type
49    self.category = category
50    self.documentation_url = documentation_url
51    self.file_requirements_message = file_requirements_message
52    self.pipeline_code = pipeline_code
53    self.is_tenant_wide = is_tenant_wide
54    self.allow_multiple_sources = allow_multiple_sources
55    self.uses_sample_sheet = uses_sample_sheet
56    self.custom_settings = custom_settings
57    self.file_mapping_rules = file_mapping_rules
58    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class CustomProcessInput.

id: str
name: str
description: str
executor: Executor
child_process_ids: List[str]
parent_process_ids: List[str]
linked_project_ids: List[str]
data_type: Union[NoneType, cirro_api_client.v1.types.Unset, str]
category: Union[cirro_api_client.v1.types.Unset, str]
documentation_url: Union[NoneType, cirro_api_client.v1.types.Unset, str]
file_requirements_message: Union[NoneType, cirro_api_client.v1.types.Unset, str]
pipeline_code: Union[PipelineCode, NoneType, cirro_api_client.v1.types.Unset]
is_tenant_wide: Union[cirro_api_client.v1.types.Unset, bool]
allow_multiple_sources: Union[cirro_api_client.v1.types.Unset, bool]
uses_sample_sheet: Union[cirro_api_client.v1.types.Unset, bool]
custom_settings: Union[CustomPipelineSettings, NoneType, cirro_api_client.v1.types.Unset]
file_mapping_rules: Union[List[FileMappingRule], NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 64    def to_dict(self) -> Dict[str, Any]:
 65        from ..models.custom_pipeline_settings import CustomPipelineSettings
 66        from ..models.pipeline_code import PipelineCode
 67
 68        id = self.id
 69
 70        name = self.name
 71
 72        description = self.description
 73
 74        executor = self.executor.value
 75
 76        child_process_ids = self.child_process_ids
 77
 78        parent_process_ids = self.parent_process_ids
 79
 80        linked_project_ids = self.linked_project_ids
 81
 82        data_type: Union[None, Unset, str]
 83        if isinstance(self.data_type, Unset):
 84            data_type = UNSET
 85        else:
 86            data_type = self.data_type
 87
 88        category = self.category
 89
 90        documentation_url: Union[None, Unset, str]
 91        if isinstance(self.documentation_url, Unset):
 92            documentation_url = UNSET
 93        else:
 94            documentation_url = self.documentation_url
 95
 96        file_requirements_message: Union[None, Unset, str]
 97        if isinstance(self.file_requirements_message, Unset):
 98            file_requirements_message = UNSET
 99        else:
100            file_requirements_message = self.file_requirements_message
101
102        pipeline_code: Union[Dict[str, Any], None, Unset]
103        if isinstance(self.pipeline_code, Unset):
104            pipeline_code = UNSET
105        elif isinstance(self.pipeline_code, PipelineCode):
106            pipeline_code = self.pipeline_code.to_dict()
107        else:
108            pipeline_code = self.pipeline_code
109
110        is_tenant_wide = self.is_tenant_wide
111
112        allow_multiple_sources = self.allow_multiple_sources
113
114        uses_sample_sheet = self.uses_sample_sheet
115
116        custom_settings: Union[Dict[str, Any], None, Unset]
117        if isinstance(self.custom_settings, Unset):
118            custom_settings = UNSET
119        elif isinstance(self.custom_settings, CustomPipelineSettings):
120            custom_settings = self.custom_settings.to_dict()
121        else:
122            custom_settings = self.custom_settings
123
124        file_mapping_rules: Union[List[Dict[str, Any]], None, Unset]
125        if isinstance(self.file_mapping_rules, Unset):
126            file_mapping_rules = UNSET
127        elif isinstance(self.file_mapping_rules, list):
128            file_mapping_rules = []
129            for file_mapping_rules_type_0_item_data in self.file_mapping_rules:
130                file_mapping_rules_type_0_item = file_mapping_rules_type_0_item_data.to_dict()
131                file_mapping_rules.append(file_mapping_rules_type_0_item)
132
133        else:
134            file_mapping_rules = self.file_mapping_rules
135
136        field_dict: Dict[str, Any] = {}
137        field_dict.update(self.additional_properties)
138        field_dict.update(
139            {
140                "id": id,
141                "name": name,
142                "description": description,
143                "executor": executor,
144                "childProcessIds": child_process_ids,
145                "parentProcessIds": parent_process_ids,
146                "linkedProjectIds": linked_project_ids,
147            }
148        )
149        if data_type is not UNSET:
150            field_dict["dataType"] = data_type
151        if category is not UNSET:
152            field_dict["category"] = category
153        if documentation_url is not UNSET:
154            field_dict["documentationUrl"] = documentation_url
155        if file_requirements_message is not UNSET:
156            field_dict["fileRequirementsMessage"] = file_requirements_message
157        if pipeline_code is not UNSET:
158            field_dict["pipelineCode"] = pipeline_code
159        if is_tenant_wide is not UNSET:
160            field_dict["isTenantWide"] = is_tenant_wide
161        if allow_multiple_sources is not UNSET:
162            field_dict["allowMultipleSources"] = allow_multiple_sources
163        if uses_sample_sheet is not UNSET:
164            field_dict["usesSampleSheet"] = uses_sample_sheet
165        if custom_settings is not UNSET:
166            field_dict["customSettings"] = custom_settings
167        if file_mapping_rules is not UNSET:
168            field_dict["fileMappingRules"] = file_mapping_rules
169
170        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
172    @classmethod
173    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
174        from ..models.custom_pipeline_settings import CustomPipelineSettings
175        from ..models.file_mapping_rule import FileMappingRule
176        from ..models.pipeline_code import PipelineCode
177
178        d = src_dict.copy()
179        id = d.pop("id")
180
181        name = d.pop("name")
182
183        description = d.pop("description")
184
185        executor = Executor(d.pop("executor"))
186
187        child_process_ids = cast(List[str], d.pop("childProcessIds"))
188
189        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
190
191        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
192
193        def _parse_data_type(data: object) -> Union[None, Unset, str]:
194            if data is None:
195                return data
196            if isinstance(data, Unset):
197                return data
198            return cast(Union[None, Unset, str], data)
199
200        data_type = _parse_data_type(d.pop("dataType", UNSET))
201
202        category = d.pop("category", UNSET)
203
204        def _parse_documentation_url(data: object) -> Union[None, Unset, str]:
205            if data is None:
206                return data
207            if isinstance(data, Unset):
208                return data
209            return cast(Union[None, Unset, str], data)
210
211        documentation_url = _parse_documentation_url(d.pop("documentationUrl", UNSET))
212
213        def _parse_file_requirements_message(data: object) -> Union[None, Unset, str]:
214            if data is None:
215                return data
216            if isinstance(data, Unset):
217                return data
218            return cast(Union[None, Unset, str], data)
219
220        file_requirements_message = _parse_file_requirements_message(d.pop("fileRequirementsMessage", UNSET))
221
222        def _parse_pipeline_code(data: object) -> Union["PipelineCode", None, Unset]:
223            if data is None:
224                return data
225            if isinstance(data, Unset):
226                return data
227            try:
228                if not isinstance(data, dict):
229                    raise TypeError()
230                pipeline_code_type_1 = PipelineCode.from_dict(data)
231
232                return pipeline_code_type_1
233            except:  # noqa: E722
234                pass
235            return cast(Union["PipelineCode", None, Unset], data)
236
237        pipeline_code = _parse_pipeline_code(d.pop("pipelineCode", UNSET))
238
239        is_tenant_wide = d.pop("isTenantWide", UNSET)
240
241        allow_multiple_sources = d.pop("allowMultipleSources", UNSET)
242
243        uses_sample_sheet = d.pop("usesSampleSheet", UNSET)
244
245        def _parse_custom_settings(data: object) -> Union["CustomPipelineSettings", None, Unset]:
246            if data is None:
247                return data
248            if isinstance(data, Unset):
249                return data
250            try:
251                if not isinstance(data, dict):
252                    raise TypeError()
253                custom_settings_type_1 = CustomPipelineSettings.from_dict(data)
254
255                return custom_settings_type_1
256            except:  # noqa: E722
257                pass
258            return cast(Union["CustomPipelineSettings", None, Unset], data)
259
260        custom_settings = _parse_custom_settings(d.pop("customSettings", UNSET))
261
262        def _parse_file_mapping_rules(data: object) -> Union[List["FileMappingRule"], None, Unset]:
263            if data is None:
264                return data
265            if isinstance(data, Unset):
266                return data
267            try:
268                if not isinstance(data, list):
269                    raise TypeError()
270                file_mapping_rules_type_0 = []
271                _file_mapping_rules_type_0 = data
272                for file_mapping_rules_type_0_item_data in _file_mapping_rules_type_0:
273                    file_mapping_rules_type_0_item = FileMappingRule.from_dict(file_mapping_rules_type_0_item_data)
274
275                    file_mapping_rules_type_0.append(file_mapping_rules_type_0_item)
276
277                return file_mapping_rules_type_0
278            except:  # noqa: E722
279                pass
280            return cast(Union[List["FileMappingRule"], None, Unset], data)
281
282        file_mapping_rules = _parse_file_mapping_rules(d.pop("fileMappingRules", UNSET))
283
284        custom_process_input = cls(
285            id=id,
286            name=name,
287            description=description,
288            executor=executor,
289            child_process_ids=child_process_ids,
290            parent_process_ids=parent_process_ids,
291            linked_project_ids=linked_project_ids,
292            data_type=data_type,
293            category=category,
294            documentation_url=documentation_url,
295            file_requirements_message=file_requirements_message,
296            pipeline_code=pipeline_code,
297            is_tenant_wide=is_tenant_wide,
298            allow_multiple_sources=allow_multiple_sources,
299            uses_sample_sheet=uses_sample_sheet,
300            custom_settings=custom_settings,
301            file_mapping_rules=file_mapping_rules,
302        )
303
304        custom_process_input.additional_properties = d
305        return custom_process_input
additional_keys: List[str]
307    @property
308    def additional_keys(self) -> List[str]:
309        return list(self.additional_properties.keys())
class Dashboard:
 17@_attrs_define
 18class Dashboard:
 19    """
 20    Attributes:
 21        id (str):
 22        name (str):
 23        description (str):
 24        process_ids (List[str]):
 25        dashboard_data (DashboardDashboardData):
 26        info (DashboardInfo):
 27        created_by (str):
 28        created_at (datetime.datetime):
 29        updated_at (datetime.datetime):
 30    """
 31
 32    id: str
 33    name: str
 34    description: str
 35    process_ids: List[str]
 36    dashboard_data: "DashboardDashboardData"
 37    info: "DashboardInfo"
 38    created_by: str
 39    created_at: datetime.datetime
 40    updated_at: datetime.datetime
 41    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 42
 43    def to_dict(self) -> Dict[str, Any]:
 44        id = self.id
 45
 46        name = self.name
 47
 48        description = self.description
 49
 50        process_ids = self.process_ids
 51
 52        dashboard_data = self.dashboard_data.to_dict()
 53
 54        info = self.info.to_dict()
 55
 56        created_by = self.created_by
 57
 58        created_at = self.created_at.isoformat()
 59
 60        updated_at = self.updated_at.isoformat()
 61
 62        field_dict: Dict[str, Any] = {}
 63        field_dict.update(self.additional_properties)
 64        field_dict.update(
 65            {
 66                "id": id,
 67                "name": name,
 68                "description": description,
 69                "processIds": process_ids,
 70                "dashboardData": dashboard_data,
 71                "info": info,
 72                "createdBy": created_by,
 73                "createdAt": created_at,
 74                "updatedAt": updated_at,
 75            }
 76        )
 77
 78        return field_dict
 79
 80    @classmethod
 81    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 82        from ..models.dashboard_dashboard_data import DashboardDashboardData
 83        from ..models.dashboard_info import DashboardInfo
 84
 85        d = src_dict.copy()
 86        id = d.pop("id")
 87
 88        name = d.pop("name")
 89
 90        description = d.pop("description")
 91
 92        process_ids = cast(List[str], d.pop("processIds"))
 93
 94        dashboard_data = DashboardDashboardData.from_dict(d.pop("dashboardData"))
 95
 96        info = DashboardInfo.from_dict(d.pop("info"))
 97
 98        created_by = d.pop("createdBy")
 99
100        created_at = isoparse(d.pop("createdAt"))
101
102        updated_at = isoparse(d.pop("updatedAt"))
103
104        dashboard = cls(
105            id=id,
106            name=name,
107            description=description,
108            process_ids=process_ids,
109            dashboard_data=dashboard_data,
110            info=info,
111            created_by=created_by,
112            created_at=created_at,
113            updated_at=updated_at,
114        )
115
116        dashboard.additional_properties = d
117        return dashboard
118
119    @property
120    def additional_keys(self) -> List[str]:
121        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • process_ids (List[str]):
  • dashboard_data (DashboardDashboardData):
  • info (DashboardInfo):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
Dashboard( id: str, name: str, description: str, process_ids: List[str], dashboard_data: DashboardDashboardData, info: DashboardInfo, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
32def __init__(self, id, name, description, process_ids, dashboard_data, info, created_by, created_at, updated_at):
33    self.id = id
34    self.name = name
35    self.description = description
36    self.process_ids = process_ids
37    self.dashboard_data = dashboard_data
38    self.info = info
39    self.created_by = created_by
40    self.created_at = created_at
41    self.updated_at = updated_at
42    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Dashboard.

id: str
name: str
description: str
process_ids: List[str]
dashboard_data: DashboardDashboardData
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
43    def to_dict(self) -> Dict[str, Any]:
44        id = self.id
45
46        name = self.name
47
48        description = self.description
49
50        process_ids = self.process_ids
51
52        dashboard_data = self.dashboard_data.to_dict()
53
54        info = self.info.to_dict()
55
56        created_by = self.created_by
57
58        created_at = self.created_at.isoformat()
59
60        updated_at = self.updated_at.isoformat()
61
62        field_dict: Dict[str, Any] = {}
63        field_dict.update(self.additional_properties)
64        field_dict.update(
65            {
66                "id": id,
67                "name": name,
68                "description": description,
69                "processIds": process_ids,
70                "dashboardData": dashboard_data,
71                "info": info,
72                "createdBy": created_by,
73                "createdAt": created_at,
74                "updatedAt": updated_at,
75            }
76        )
77
78        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 80    @classmethod
 81    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 82        from ..models.dashboard_dashboard_data import DashboardDashboardData
 83        from ..models.dashboard_info import DashboardInfo
 84
 85        d = src_dict.copy()
 86        id = d.pop("id")
 87
 88        name = d.pop("name")
 89
 90        description = d.pop("description")
 91
 92        process_ids = cast(List[str], d.pop("processIds"))
 93
 94        dashboard_data = DashboardDashboardData.from_dict(d.pop("dashboardData"))
 95
 96        info = DashboardInfo.from_dict(d.pop("info"))
 97
 98        created_by = d.pop("createdBy")
 99
100        created_at = isoparse(d.pop("createdAt"))
101
102        updated_at = isoparse(d.pop("updatedAt"))
103
104        dashboard = cls(
105            id=id,
106            name=name,
107            description=description,
108            process_ids=process_ids,
109            dashboard_data=dashboard_data,
110            info=info,
111            created_by=created_by,
112            created_at=created_at,
113            updated_at=updated_at,
114        )
115
116        dashboard.additional_properties = d
117        return dashboard
additional_keys: List[str]
119    @property
120    def additional_keys(self) -> List[str]:
121        return list(self.additional_properties.keys())
class DashboardDashboardData:
10@_attrs_define
11class DashboardDashboardData:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_dashboard_data = cls()
27
28        dashboard_dashboard_data.additional_properties = d
29        return dashboard_dashboard_data
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DashboardDashboardData()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DashboardDashboardData.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_dashboard_data = cls()
27
28        dashboard_dashboard_data.additional_properties = d
29        return dashboard_dashboard_data
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DashboardInfo:
10@_attrs_define
11class DashboardInfo:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_info = cls()
27
28        dashboard_info.additional_properties = d
29        return dashboard_info
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DashboardInfo()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DashboardInfo.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_info = cls()
27
28        dashboard_info.additional_properties = d
29        return dashboard_info
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DashboardRequest:
15@_attrs_define
16class DashboardRequest:
17    """
18    Attributes:
19        name (str):
20        description (str):
21        process_ids (List[str]):
22        dashboard_data (DashboardRequestDashboardData):
23        info (DashboardRequestInfo):
24    """
25
26    name: str
27    description: str
28    process_ids: List[str]
29    dashboard_data: "DashboardRequestDashboardData"
30    info: "DashboardRequestInfo"
31    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
32
33    def to_dict(self) -> Dict[str, Any]:
34        name = self.name
35
36        description = self.description
37
38        process_ids = self.process_ids
39
40        dashboard_data = self.dashboard_data.to_dict()
41
42        info = self.info.to_dict()
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "name": name,
49                "description": description,
50                "processIds": process_ids,
51                "dashboardData": dashboard_data,
52                "info": info,
53            }
54        )
55
56        return field_dict
57
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        from ..models.dashboard_request_dashboard_data import DashboardRequestDashboardData
61        from ..models.dashboard_request_info import DashboardRequestInfo
62
63        d = src_dict.copy()
64        name = d.pop("name")
65
66        description = d.pop("description")
67
68        process_ids = cast(List[str], d.pop("processIds"))
69
70        dashboard_data = DashboardRequestDashboardData.from_dict(d.pop("dashboardData"))
71
72        info = DashboardRequestInfo.from_dict(d.pop("info"))
73
74        dashboard_request = cls(
75            name=name,
76            description=description,
77            process_ids=process_ids,
78            dashboard_data=dashboard_data,
79            info=info,
80        )
81
82        dashboard_request.additional_properties = d
83        return dashboard_request
84
85    @property
86    def additional_keys(self) -> List[str]:
87        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • process_ids (List[str]):
  • dashboard_data (DashboardRequestDashboardData):
  • info (DashboardRequestInfo):
DashboardRequest( name: str, description: str, process_ids: List[str], dashboard_data: DashboardRequestDashboardData, info: DashboardRequestInfo)
28def __init__(self, name, description, process_ids, dashboard_data, info):
29    self.name = name
30    self.description = description
31    self.process_ids = process_ids
32    self.dashboard_data = dashboard_data
33    self.info = info
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DashboardRequest.

name: str
description: str
process_ids: List[str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
33    def to_dict(self) -> Dict[str, Any]:
34        name = self.name
35
36        description = self.description
37
38        process_ids = self.process_ids
39
40        dashboard_data = self.dashboard_data.to_dict()
41
42        info = self.info.to_dict()
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "name": name,
49                "description": description,
50                "processIds": process_ids,
51                "dashboardData": dashboard_data,
52                "info": info,
53            }
54        )
55
56        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        from ..models.dashboard_request_dashboard_data import DashboardRequestDashboardData
61        from ..models.dashboard_request_info import DashboardRequestInfo
62
63        d = src_dict.copy()
64        name = d.pop("name")
65
66        description = d.pop("description")
67
68        process_ids = cast(List[str], d.pop("processIds"))
69
70        dashboard_data = DashboardRequestDashboardData.from_dict(d.pop("dashboardData"))
71
72        info = DashboardRequestInfo.from_dict(d.pop("info"))
73
74        dashboard_request = cls(
75            name=name,
76            description=description,
77            process_ids=process_ids,
78            dashboard_data=dashboard_data,
79            info=info,
80        )
81
82        dashboard_request.additional_properties = d
83        return dashboard_request
additional_keys: List[str]
85    @property
86    def additional_keys(self) -> List[str]:
87        return list(self.additional_properties.keys())
class DashboardRequestDashboardData:
10@_attrs_define
11class DashboardRequestDashboardData:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_request_dashboard_data = cls()
27
28        dashboard_request_dashboard_data.additional_properties = d
29        return dashboard_request_dashboard_data
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DashboardRequestDashboardData()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DashboardRequestDashboardData.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_request_dashboard_data = cls()
27
28        dashboard_request_dashboard_data.additional_properties = d
29        return dashboard_request_dashboard_data
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DashboardRequestInfo:
10@_attrs_define
11class DashboardRequestInfo:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_request_info = cls()
27
28        dashboard_request_info.additional_properties = d
29        return dashboard_request_info
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DashboardRequestInfo()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DashboardRequestInfo.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dashboard_request_info = cls()
27
28        dashboard_request_info.additional_properties = d
29        return dashboard_request_info
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DataFile:
14@_attrs_define
15class DataFile:
16    """
17    Attributes:
18        path (str):
19        metadata (DataFileMetadata):
20    """
21
22    path: str
23    metadata: "DataFileMetadata"
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        path = self.path
28
29        metadata = self.metadata.to_dict()
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "path": path,
36                "metadata": metadata,
37            }
38        )
39
40        return field_dict
41
42    @classmethod
43    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44        from ..models.data_file_metadata import DataFileMetadata
45
46        d = src_dict.copy()
47        path = d.pop("path")
48
49        metadata = DataFileMetadata.from_dict(d.pop("metadata"))
50
51        data_file = cls(
52            path=path,
53            metadata=metadata,
54        )
55
56        data_file.additional_properties = d
57        return data_file
58
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
Attributes:
  • path (str):
  • metadata (DataFileMetadata):
DataFile( path: str, metadata: DataFileMetadata)
25def __init__(self, path, metadata):
26    self.path = path
27    self.metadata = metadata
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DataFile.

path: str
metadata: DataFileMetadata
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        path = self.path
28
29        metadata = self.metadata.to_dict()
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "path": path,
36                "metadata": metadata,
37            }
38        )
39
40        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
42    @classmethod
43    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44        from ..models.data_file_metadata import DataFileMetadata
45
46        d = src_dict.copy()
47        path = d.pop("path")
48
49        metadata = DataFileMetadata.from_dict(d.pop("metadata"))
50
51        data_file = cls(
52            path=path,
53            metadata=metadata,
54        )
55
56        data_file.additional_properties = d
57        return data_file
additional_keys: List[str]
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
class DataFileMetadata:
10@_attrs_define
11class DataFileMetadata:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        data_file_metadata = cls()
27
28        data_file_metadata.additional_properties = d
29        return data_file_metadata
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DataFileMetadata()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DataFileMetadata.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        data_file_metadata = cls()
27
28        data_file_metadata.additional_properties = d
29        return data_file_metadata
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class Dataset:
 18@_attrs_define
 19class Dataset:
 20    """
 21    Attributes:
 22        id (str):
 23        name (str):
 24        description (str):
 25        project_id (str):
 26        process_id (str):
 27        source_dataset_ids (List[str]):
 28        status (Status):
 29        tags (List['Tag']):
 30        created_by (str):
 31        created_at (datetime.datetime):
 32        updated_at (datetime.datetime):
 33    """
 34
 35    id: str
 36    name: str
 37    description: str
 38    project_id: str
 39    process_id: str
 40    source_dataset_ids: List[str]
 41    status: Status
 42    tags: List["Tag"]
 43    created_by: str
 44    created_at: datetime.datetime
 45    updated_at: datetime.datetime
 46    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 47
 48    def to_dict(self) -> Dict[str, Any]:
 49        id = self.id
 50
 51        name = self.name
 52
 53        description = self.description
 54
 55        project_id = self.project_id
 56
 57        process_id = self.process_id
 58
 59        source_dataset_ids = self.source_dataset_ids
 60
 61        status = self.status.value
 62
 63        tags = []
 64        for tags_item_data in self.tags:
 65            tags_item = tags_item_data.to_dict()
 66            tags.append(tags_item)
 67
 68        created_by = self.created_by
 69
 70        created_at = self.created_at.isoformat()
 71
 72        updated_at = self.updated_at.isoformat()
 73
 74        field_dict: Dict[str, Any] = {}
 75        field_dict.update(self.additional_properties)
 76        field_dict.update(
 77            {
 78                "id": id,
 79                "name": name,
 80                "description": description,
 81                "projectId": project_id,
 82                "processId": process_id,
 83                "sourceDatasetIds": source_dataset_ids,
 84                "status": status,
 85                "tags": tags,
 86                "createdBy": created_by,
 87                "createdAt": created_at,
 88                "updatedAt": updated_at,
 89            }
 90        )
 91
 92        return field_dict
 93
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.tag import Tag
 97
 98        d = src_dict.copy()
 99        id = d.pop("id")
100
101        name = d.pop("name")
102
103        description = d.pop("description")
104
105        project_id = d.pop("projectId")
106
107        process_id = d.pop("processId")
108
109        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
110
111        status = Status(d.pop("status"))
112
113        tags = []
114        _tags = d.pop("tags")
115        for tags_item_data in _tags:
116            tags_item = Tag.from_dict(tags_item_data)
117
118            tags.append(tags_item)
119
120        created_by = d.pop("createdBy")
121
122        created_at = isoparse(d.pop("createdAt"))
123
124        updated_at = isoparse(d.pop("updatedAt"))
125
126        dataset = cls(
127            id=id,
128            name=name,
129            description=description,
130            project_id=project_id,
131            process_id=process_id,
132            source_dataset_ids=source_dataset_ids,
133            status=status,
134            tags=tags,
135            created_by=created_by,
136            created_at=created_at,
137            updated_at=updated_at,
138        )
139
140        dataset.additional_properties = d
141        return dataset
142
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • project_id (str):
  • process_id (str):
  • source_dataset_ids (List[str]):
  • status (Status):
  • tags (List['Tag']):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
Dataset( id: str, name: str, description: str, project_id: str, process_id: str, source_dataset_ids: List[str], status: Status, tags: List[Tag], created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
34def __init__(self, id, name, description, project_id, process_id, source_dataset_ids, status, tags, created_by, created_at, updated_at):
35    self.id = id
36    self.name = name
37    self.description = description
38    self.project_id = project_id
39    self.process_id = process_id
40    self.source_dataset_ids = source_dataset_ids
41    self.status = status
42    self.tags = tags
43    self.created_by = created_by
44    self.created_at = created_at
45    self.updated_at = updated_at
46    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Dataset.

id: str
name: str
description: str
project_id: str
process_id: str
source_dataset_ids: List[str]
status: Status
tags: List[Tag]
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
48    def to_dict(self) -> Dict[str, Any]:
49        id = self.id
50
51        name = self.name
52
53        description = self.description
54
55        project_id = self.project_id
56
57        process_id = self.process_id
58
59        source_dataset_ids = self.source_dataset_ids
60
61        status = self.status.value
62
63        tags = []
64        for tags_item_data in self.tags:
65            tags_item = tags_item_data.to_dict()
66            tags.append(tags_item)
67
68        created_by = self.created_by
69
70        created_at = self.created_at.isoformat()
71
72        updated_at = self.updated_at.isoformat()
73
74        field_dict: Dict[str, Any] = {}
75        field_dict.update(self.additional_properties)
76        field_dict.update(
77            {
78                "id": id,
79                "name": name,
80                "description": description,
81                "projectId": project_id,
82                "processId": process_id,
83                "sourceDatasetIds": source_dataset_ids,
84                "status": status,
85                "tags": tags,
86                "createdBy": created_by,
87                "createdAt": created_at,
88                "updatedAt": updated_at,
89            }
90        )
91
92        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.tag import Tag
 97
 98        d = src_dict.copy()
 99        id = d.pop("id")
100
101        name = d.pop("name")
102
103        description = d.pop("description")
104
105        project_id = d.pop("projectId")
106
107        process_id = d.pop("processId")
108
109        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
110
111        status = Status(d.pop("status"))
112
113        tags = []
114        _tags = d.pop("tags")
115        for tags_item_data in _tags:
116            tags_item = Tag.from_dict(tags_item_data)
117
118            tags.append(tags_item)
119
120        created_by = d.pop("createdBy")
121
122        created_at = isoparse(d.pop("createdAt"))
123
124        updated_at = isoparse(d.pop("updatedAt"))
125
126        dataset = cls(
127            id=id,
128            name=name,
129            description=description,
130            project_id=project_id,
131            process_id=process_id,
132            source_dataset_ids=source_dataset_ids,
133            status=status,
134            tags=tags,
135            created_by=created_by,
136            created_at=created_at,
137            updated_at=updated_at,
138        )
139
140        dataset.additional_properties = d
141        return dataset
additional_keys: List[str]
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
class DatasetAssetsManifest:
 19@_attrs_define
 20class DatasetAssetsManifest:
 21    """
 22    Attributes:
 23        domain (Union[Unset, str]): Base URL for files Example: s3://project-1a1a/datasets/1a1a.
 24        files (Union[Unset, List['FileEntry']]): List of files in the dataset, including metadata
 25        total_files (Union[Unset, int]): Total number of files in the dataset, used for pagination
 26        viz (Union[Unset, List['DatasetViz']]): List of viz to render for the dataset
 27        tables (Union[Unset, List['Table']]): List of web optimized tables for the dataset
 28        artifacts (Union[Unset, List['Artifact']]): Artifacts associated with the dataset
 29    """
 30
 31    domain: Union[Unset, str] = UNSET
 32    files: Union[Unset, List["FileEntry"]] = UNSET
 33    total_files: Union[Unset, int] = UNSET
 34    viz: Union[Unset, List["DatasetViz"]] = UNSET
 35    tables: Union[Unset, List["Table"]] = UNSET
 36    artifacts: Union[Unset, List["Artifact"]] = UNSET
 37    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 38
 39    def to_dict(self) -> Dict[str, Any]:
 40        domain = self.domain
 41
 42        files: Union[Unset, List[Dict[str, Any]]] = UNSET
 43        if not isinstance(self.files, Unset):
 44            files = []
 45            for files_item_data in self.files:
 46                files_item = files_item_data.to_dict()
 47                files.append(files_item)
 48
 49        total_files = self.total_files
 50
 51        viz: Union[Unset, List[Dict[str, Any]]] = UNSET
 52        if not isinstance(self.viz, Unset):
 53            viz = []
 54            for viz_item_data in self.viz:
 55                viz_item = viz_item_data.to_dict()
 56                viz.append(viz_item)
 57
 58        tables: Union[Unset, List[Dict[str, Any]]] = UNSET
 59        if not isinstance(self.tables, Unset):
 60            tables = []
 61            for tables_item_data in self.tables:
 62                tables_item = tables_item_data.to_dict()
 63                tables.append(tables_item)
 64
 65        artifacts: Union[Unset, List[Dict[str, Any]]] = UNSET
 66        if not isinstance(self.artifacts, Unset):
 67            artifacts = []
 68            for artifacts_item_data in self.artifacts:
 69                artifacts_item = artifacts_item_data.to_dict()
 70                artifacts.append(artifacts_item)
 71
 72        field_dict: Dict[str, Any] = {}
 73        field_dict.update(self.additional_properties)
 74        field_dict.update({})
 75        if domain is not UNSET:
 76            field_dict["domain"] = domain
 77        if files is not UNSET:
 78            field_dict["files"] = files
 79        if total_files is not UNSET:
 80            field_dict["totalFiles"] = total_files
 81        if viz is not UNSET:
 82            field_dict["viz"] = viz
 83        if tables is not UNSET:
 84            field_dict["tables"] = tables
 85        if artifacts is not UNSET:
 86            field_dict["artifacts"] = artifacts
 87
 88        return field_dict
 89
 90    @classmethod
 91    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 92        from ..models.artifact import Artifact
 93        from ..models.dataset_viz import DatasetViz
 94        from ..models.file_entry import FileEntry
 95        from ..models.table import Table
 96
 97        d = src_dict.copy()
 98        domain = d.pop("domain", UNSET)
 99
100        files = []
101        _files = d.pop("files", UNSET)
102        for files_item_data in _files or []:
103            files_item = FileEntry.from_dict(files_item_data)
104
105            files.append(files_item)
106
107        total_files = d.pop("totalFiles", UNSET)
108
109        viz = []
110        _viz = d.pop("viz", UNSET)
111        for viz_item_data in _viz or []:
112            viz_item = DatasetViz.from_dict(viz_item_data)
113
114            viz.append(viz_item)
115
116        tables = []
117        _tables = d.pop("tables", UNSET)
118        for tables_item_data in _tables or []:
119            tables_item = Table.from_dict(tables_item_data)
120
121            tables.append(tables_item)
122
123        artifacts = []
124        _artifacts = d.pop("artifacts", UNSET)
125        for artifacts_item_data in _artifacts or []:
126            artifacts_item = Artifact.from_dict(artifacts_item_data)
127
128            artifacts.append(artifacts_item)
129
130        dataset_assets_manifest = cls(
131            domain=domain,
132            files=files,
133            total_files=total_files,
134            viz=viz,
135            tables=tables,
136            artifacts=artifacts,
137        )
138
139        dataset_assets_manifest.additional_properties = d
140        return dataset_assets_manifest
141
142    @property
143    def additional_keys(self) -> List[str]:
144        return list(self.additional_properties.keys())
Attributes:
  • domain (Union[Unset, str]): Base URL for files Example: s3://project-1a1a/datasets/1a1a.
  • files (Union[Unset, List['FileEntry']]): List of files in the dataset, including metadata
  • total_files (Union[Unset, int]): Total number of files in the dataset, used for pagination
  • viz (Union[Unset, List['DatasetViz']]): List of viz to render for the dataset
  • tables (Union[Unset, List['Table']]): List of web optimized tables for the dataset
  • artifacts (Union[Unset, List['Artifact']]): Artifacts associated with the dataset
DatasetAssetsManifest( domain: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, files: Union[cirro_api_client.v1.types.Unset, List[FileEntry]] = <cirro_api_client.v1.types.Unset object>, total_files: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, viz: Union[cirro_api_client.v1.types.Unset, List[DatasetViz]] = <cirro_api_client.v1.types.Unset object>, tables: Union[cirro_api_client.v1.types.Unset, List[Table]] = <cirro_api_client.v1.types.Unset object>, artifacts: Union[cirro_api_client.v1.types.Unset, List[Artifact]] = <cirro_api_client.v1.types.Unset object>)
29def __init__(self, domain=attr_dict['domain'].default, files=attr_dict['files'].default, total_files=attr_dict['total_files'].default, viz=attr_dict['viz'].default, tables=attr_dict['tables'].default, artifacts=attr_dict['artifacts'].default):
30    self.domain = domain
31    self.files = files
32    self.total_files = total_files
33    self.viz = viz
34    self.tables = tables
35    self.artifacts = artifacts
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetAssetsManifest.

domain: Union[cirro_api_client.v1.types.Unset, str]
files: Union[cirro_api_client.v1.types.Unset, List[FileEntry]]
total_files: Union[cirro_api_client.v1.types.Unset, int]
viz: Union[cirro_api_client.v1.types.Unset, List[DatasetViz]]
tables: Union[cirro_api_client.v1.types.Unset, List[Table]]
artifacts: Union[cirro_api_client.v1.types.Unset, List[Artifact]]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
39    def to_dict(self) -> Dict[str, Any]:
40        domain = self.domain
41
42        files: Union[Unset, List[Dict[str, Any]]] = UNSET
43        if not isinstance(self.files, Unset):
44            files = []
45            for files_item_data in self.files:
46                files_item = files_item_data.to_dict()
47                files.append(files_item)
48
49        total_files = self.total_files
50
51        viz: Union[Unset, List[Dict[str, Any]]] = UNSET
52        if not isinstance(self.viz, Unset):
53            viz = []
54            for viz_item_data in self.viz:
55                viz_item = viz_item_data.to_dict()
56                viz.append(viz_item)
57
58        tables: Union[Unset, List[Dict[str, Any]]] = UNSET
59        if not isinstance(self.tables, Unset):
60            tables = []
61            for tables_item_data in self.tables:
62                tables_item = tables_item_data.to_dict()
63                tables.append(tables_item)
64
65        artifacts: Union[Unset, List[Dict[str, Any]]] = UNSET
66        if not isinstance(self.artifacts, Unset):
67            artifacts = []
68            for artifacts_item_data in self.artifacts:
69                artifacts_item = artifacts_item_data.to_dict()
70                artifacts.append(artifacts_item)
71
72        field_dict: Dict[str, Any] = {}
73        field_dict.update(self.additional_properties)
74        field_dict.update({})
75        if domain is not UNSET:
76            field_dict["domain"] = domain
77        if files is not UNSET:
78            field_dict["files"] = files
79        if total_files is not UNSET:
80            field_dict["totalFiles"] = total_files
81        if viz is not UNSET:
82            field_dict["viz"] = viz
83        if tables is not UNSET:
84            field_dict["tables"] = tables
85        if artifacts is not UNSET:
86            field_dict["artifacts"] = artifacts
87
88        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 90    @classmethod
 91    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 92        from ..models.artifact import Artifact
 93        from ..models.dataset_viz import DatasetViz
 94        from ..models.file_entry import FileEntry
 95        from ..models.table import Table
 96
 97        d = src_dict.copy()
 98        domain = d.pop("domain", UNSET)
 99
100        files = []
101        _files = d.pop("files", UNSET)
102        for files_item_data in _files or []:
103            files_item = FileEntry.from_dict(files_item_data)
104
105            files.append(files_item)
106
107        total_files = d.pop("totalFiles", UNSET)
108
109        viz = []
110        _viz = d.pop("viz", UNSET)
111        for viz_item_data in _viz or []:
112            viz_item = DatasetViz.from_dict(viz_item_data)
113
114            viz.append(viz_item)
115
116        tables = []
117        _tables = d.pop("tables", UNSET)
118        for tables_item_data in _tables or []:
119            tables_item = Table.from_dict(tables_item_data)
120
121            tables.append(tables_item)
122
123        artifacts = []
124        _artifacts = d.pop("artifacts", UNSET)
125        for artifacts_item_data in _artifacts or []:
126            artifacts_item = Artifact.from_dict(artifacts_item_data)
127
128            artifacts.append(artifacts_item)
129
130        dataset_assets_manifest = cls(
131            domain=domain,
132            files=files,
133            total_files=total_files,
134            viz=viz,
135            tables=tables,
136            artifacts=artifacts,
137        )
138
139        dataset_assets_manifest.additional_properties = d
140        return dataset_assets_manifest
additional_keys: List[str]
142    @property
143    def additional_keys(self) -> List[str]:
144        return list(self.additional_properties.keys())
class DatasetCondition:
12@_attrs_define
13class DatasetCondition:
14    """
15    Attributes:
16        field (DatasetConditionField):
17        value (str):
18    """
19
20    field: DatasetConditionField
21    value: str
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        field = self.field.value
26
27        value = self.value
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "field": field,
34                "value": value,
35            }
36        )
37
38        return field_dict
39
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        d = src_dict.copy()
43        field = DatasetConditionField(d.pop("field"))
44
45        value = d.pop("value")
46
47        dataset_condition = cls(
48            field=field,
49            value=value,
50        )
51
52        dataset_condition.additional_properties = d
53        return dataset_condition
54
55    @property
56    def additional_keys(self) -> List[str]:
57        return list(self.additional_properties.keys())
Attributes:
  • field (DatasetConditionField):
  • value (str):
DatasetCondition( field: DatasetConditionField, value: str)
25def __init__(self, field, value):
26    self.field = field
27    self.value = value
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetCondition.

value: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        field = self.field.value
26
27        value = self.value
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "field": field,
34                "value": value,
35            }
36        )
37
38        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        d = src_dict.copy()
43        field = DatasetConditionField(d.pop("field"))
44
45        value = d.pop("value")
46
47        dataset_condition = cls(
48            field=field,
49            value=value,
50        )
51
52        dataset_condition.additional_properties = d
53        return dataset_condition
additional_keys: List[str]
55    @property
56    def additional_keys(self) -> List[str]:
57        return list(self.additional_properties.keys())
class DatasetConditionField(builtins.str, enum.Enum):
 5class DatasetConditionField(str, Enum):
 6    CREATED_BY = "CREATED_BY"
 7    DATASET_ID = "DATASET_ID"
 8    PROCESS_ID = "PROCESS_ID"
 9    TAG = "TAG"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

CREATED_BY = <DatasetConditionField.CREATED_BY: 'CREATED_BY'>
DATASET_ID = <DatasetConditionField.DATASET_ID: 'DATASET_ID'>
PROCESS_ID = <DatasetConditionField.PROCESS_ID: 'PROCESS_ID'>
TAG = <DatasetConditionField.TAG: 'TAG'>
UNKNOWN = <DatasetConditionField.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class DatasetDetail:
 22@_attrs_define
 23class DatasetDetail:
 24    """
 25    Attributes:
 26        id (str):
 27        name (str):
 28        description (str):
 29        s3 (str):
 30        process_id (str):
 31        project_id (str):
 32        source_dataset_ids (List[str]):
 33        source_datasets (List['NamedItem']):
 34        source_sample_ids (List[str]):
 35        status (Status):
 36        status_message (str):
 37        tags (List['Tag']):
 38        params (DatasetDetailParams):
 39        info (DatasetDetailInfo):
 40        is_view_restricted (bool):
 41        created_by (str):
 42        created_at (datetime.datetime):
 43        updated_at (datetime.datetime):
 44        share (Union['NamedItem', None, Unset]):
 45    """
 46
 47    id: str
 48    name: str
 49    description: str
 50    s3: str
 51    process_id: str
 52    project_id: str
 53    source_dataset_ids: List[str]
 54    source_datasets: List["NamedItem"]
 55    source_sample_ids: List[str]
 56    status: Status
 57    status_message: str
 58    tags: List["Tag"]
 59    params: "DatasetDetailParams"
 60    info: "DatasetDetailInfo"
 61    is_view_restricted: bool
 62    created_by: str
 63    created_at: datetime.datetime
 64    updated_at: datetime.datetime
 65    share: Union["NamedItem", None, Unset] = UNSET
 66    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 67
 68    def to_dict(self) -> Dict[str, Any]:
 69        from ..models.named_item import NamedItem
 70
 71        id = self.id
 72
 73        name = self.name
 74
 75        description = self.description
 76
 77        s3 = self.s3
 78
 79        process_id = self.process_id
 80
 81        project_id = self.project_id
 82
 83        source_dataset_ids = self.source_dataset_ids
 84
 85        source_datasets = []
 86        for source_datasets_item_data in self.source_datasets:
 87            source_datasets_item = source_datasets_item_data.to_dict()
 88            source_datasets.append(source_datasets_item)
 89
 90        source_sample_ids = self.source_sample_ids
 91
 92        status = self.status.value
 93
 94        status_message = self.status_message
 95
 96        tags = []
 97        for tags_item_data in self.tags:
 98            tags_item = tags_item_data.to_dict()
 99            tags.append(tags_item)
100
101        params = self.params.to_dict()
102
103        info = self.info.to_dict()
104
105        is_view_restricted = self.is_view_restricted
106
107        created_by = self.created_by
108
109        created_at = self.created_at.isoformat()
110
111        updated_at = self.updated_at.isoformat()
112
113        share: Union[Dict[str, Any], None, Unset]
114        if isinstance(self.share, Unset):
115            share = UNSET
116        elif isinstance(self.share, NamedItem):
117            share = self.share.to_dict()
118        else:
119            share = self.share
120
121        field_dict: Dict[str, Any] = {}
122        field_dict.update(self.additional_properties)
123        field_dict.update(
124            {
125                "id": id,
126                "name": name,
127                "description": description,
128                "s3": s3,
129                "processId": process_id,
130                "projectId": project_id,
131                "sourceDatasetIds": source_dataset_ids,
132                "sourceDatasets": source_datasets,
133                "sourceSampleIds": source_sample_ids,
134                "status": status,
135                "statusMessage": status_message,
136                "tags": tags,
137                "params": params,
138                "info": info,
139                "isViewRestricted": is_view_restricted,
140                "createdBy": created_by,
141                "createdAt": created_at,
142                "updatedAt": updated_at,
143            }
144        )
145        if share is not UNSET:
146            field_dict["share"] = share
147
148        return field_dict
149
150    @classmethod
151    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
152        from ..models.dataset_detail_info import DatasetDetailInfo
153        from ..models.dataset_detail_params import DatasetDetailParams
154        from ..models.named_item import NamedItem
155        from ..models.tag import Tag
156
157        d = src_dict.copy()
158        id = d.pop("id")
159
160        name = d.pop("name")
161
162        description = d.pop("description")
163
164        s3 = d.pop("s3")
165
166        process_id = d.pop("processId")
167
168        project_id = d.pop("projectId")
169
170        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
171
172        source_datasets = []
173        _source_datasets = d.pop("sourceDatasets")
174        for source_datasets_item_data in _source_datasets:
175            source_datasets_item = NamedItem.from_dict(source_datasets_item_data)
176
177            source_datasets.append(source_datasets_item)
178
179        source_sample_ids = cast(List[str], d.pop("sourceSampleIds"))
180
181        status = Status(d.pop("status"))
182
183        status_message = d.pop("statusMessage")
184
185        tags = []
186        _tags = d.pop("tags")
187        for tags_item_data in _tags:
188            tags_item = Tag.from_dict(tags_item_data)
189
190            tags.append(tags_item)
191
192        params = DatasetDetailParams.from_dict(d.pop("params"))
193
194        info = DatasetDetailInfo.from_dict(d.pop("info"))
195
196        is_view_restricted = d.pop("isViewRestricted")
197
198        created_by = d.pop("createdBy")
199
200        created_at = isoparse(d.pop("createdAt"))
201
202        updated_at = isoparse(d.pop("updatedAt"))
203
204        def _parse_share(data: object) -> Union["NamedItem", None, Unset]:
205            if data is None:
206                return data
207            if isinstance(data, Unset):
208                return data
209            try:
210                if not isinstance(data, dict):
211                    raise TypeError()
212                share_type_1 = NamedItem.from_dict(data)
213
214                return share_type_1
215            except:  # noqa: E722
216                pass
217            return cast(Union["NamedItem", None, Unset], data)
218
219        share = _parse_share(d.pop("share", UNSET))
220
221        dataset_detail = cls(
222            id=id,
223            name=name,
224            description=description,
225            s3=s3,
226            process_id=process_id,
227            project_id=project_id,
228            source_dataset_ids=source_dataset_ids,
229            source_datasets=source_datasets,
230            source_sample_ids=source_sample_ids,
231            status=status,
232            status_message=status_message,
233            tags=tags,
234            params=params,
235            info=info,
236            is_view_restricted=is_view_restricted,
237            created_by=created_by,
238            created_at=created_at,
239            updated_at=updated_at,
240            share=share,
241        )
242
243        dataset_detail.additional_properties = d
244        return dataset_detail
245
246    @property
247    def additional_keys(self) -> List[str]:
248        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • s3 (str):
  • process_id (str):
  • project_id (str):
  • source_dataset_ids (List[str]):
  • source_datasets (List['NamedItem']):
  • source_sample_ids (List[str]):
  • status (Status):
  • status_message (str):
  • tags (List['Tag']):
  • params (DatasetDetailParams):
  • info (DatasetDetailInfo):
  • is_view_restricted (bool):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
  • share (Union['NamedItem', None, Unset]):
DatasetDetail( id: str, name: str, description: str, s3: str, process_id: str, project_id: str, source_dataset_ids: List[str], source_datasets: List[NamedItem], source_sample_ids: List[str], status: Status, status_message: str, tags: List[Tag], params: DatasetDetailParams, info: DatasetDetailInfo, is_view_restricted: bool, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime, share: Union[NamedItem, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
42def __init__(self, id, name, description, s3, process_id, project_id, source_dataset_ids, source_datasets, source_sample_ids, status, status_message, tags, params, info, is_view_restricted, created_by, created_at, updated_at, share=attr_dict['share'].default):
43    self.id = id
44    self.name = name
45    self.description = description
46    self.s3 = s3
47    self.process_id = process_id
48    self.project_id = project_id
49    self.source_dataset_ids = source_dataset_ids
50    self.source_datasets = source_datasets
51    self.source_sample_ids = source_sample_ids
52    self.status = status
53    self.status_message = status_message
54    self.tags = tags
55    self.params = params
56    self.info = info
57    self.is_view_restricted = is_view_restricted
58    self.created_by = created_by
59    self.created_at = created_at
60    self.updated_at = updated_at
61    self.share = share
62    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetDetail.

id: str
name: str
description: str
s3: str
process_id: str
project_id: str
source_dataset_ids: List[str]
source_datasets: List[NamedItem]
source_sample_ids: List[str]
status: Status
status_message: str
tags: List[Tag]
is_view_restricted: bool
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
share: Union[NamedItem, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 68    def to_dict(self) -> Dict[str, Any]:
 69        from ..models.named_item import NamedItem
 70
 71        id = self.id
 72
 73        name = self.name
 74
 75        description = self.description
 76
 77        s3 = self.s3
 78
 79        process_id = self.process_id
 80
 81        project_id = self.project_id
 82
 83        source_dataset_ids = self.source_dataset_ids
 84
 85        source_datasets = []
 86        for source_datasets_item_data in self.source_datasets:
 87            source_datasets_item = source_datasets_item_data.to_dict()
 88            source_datasets.append(source_datasets_item)
 89
 90        source_sample_ids = self.source_sample_ids
 91
 92        status = self.status.value
 93
 94        status_message = self.status_message
 95
 96        tags = []
 97        for tags_item_data in self.tags:
 98            tags_item = tags_item_data.to_dict()
 99            tags.append(tags_item)
100
101        params = self.params.to_dict()
102
103        info = self.info.to_dict()
104
105        is_view_restricted = self.is_view_restricted
106
107        created_by = self.created_by
108
109        created_at = self.created_at.isoformat()
110
111        updated_at = self.updated_at.isoformat()
112
113        share: Union[Dict[str, Any], None, Unset]
114        if isinstance(self.share, Unset):
115            share = UNSET
116        elif isinstance(self.share, NamedItem):
117            share = self.share.to_dict()
118        else:
119            share = self.share
120
121        field_dict: Dict[str, Any] = {}
122        field_dict.update(self.additional_properties)
123        field_dict.update(
124            {
125                "id": id,
126                "name": name,
127                "description": description,
128                "s3": s3,
129                "processId": process_id,
130                "projectId": project_id,
131                "sourceDatasetIds": source_dataset_ids,
132                "sourceDatasets": source_datasets,
133                "sourceSampleIds": source_sample_ids,
134                "status": status,
135                "statusMessage": status_message,
136                "tags": tags,
137                "params": params,
138                "info": info,
139                "isViewRestricted": is_view_restricted,
140                "createdBy": created_by,
141                "createdAt": created_at,
142                "updatedAt": updated_at,
143            }
144        )
145        if share is not UNSET:
146            field_dict["share"] = share
147
148        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
150    @classmethod
151    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
152        from ..models.dataset_detail_info import DatasetDetailInfo
153        from ..models.dataset_detail_params import DatasetDetailParams
154        from ..models.named_item import NamedItem
155        from ..models.tag import Tag
156
157        d = src_dict.copy()
158        id = d.pop("id")
159
160        name = d.pop("name")
161
162        description = d.pop("description")
163
164        s3 = d.pop("s3")
165
166        process_id = d.pop("processId")
167
168        project_id = d.pop("projectId")
169
170        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
171
172        source_datasets = []
173        _source_datasets = d.pop("sourceDatasets")
174        for source_datasets_item_data in _source_datasets:
175            source_datasets_item = NamedItem.from_dict(source_datasets_item_data)
176
177            source_datasets.append(source_datasets_item)
178
179        source_sample_ids = cast(List[str], d.pop("sourceSampleIds"))
180
181        status = Status(d.pop("status"))
182
183        status_message = d.pop("statusMessage")
184
185        tags = []
186        _tags = d.pop("tags")
187        for tags_item_data in _tags:
188            tags_item = Tag.from_dict(tags_item_data)
189
190            tags.append(tags_item)
191
192        params = DatasetDetailParams.from_dict(d.pop("params"))
193
194        info = DatasetDetailInfo.from_dict(d.pop("info"))
195
196        is_view_restricted = d.pop("isViewRestricted")
197
198        created_by = d.pop("createdBy")
199
200        created_at = isoparse(d.pop("createdAt"))
201
202        updated_at = isoparse(d.pop("updatedAt"))
203
204        def _parse_share(data: object) -> Union["NamedItem", None, Unset]:
205            if data is None:
206                return data
207            if isinstance(data, Unset):
208                return data
209            try:
210                if not isinstance(data, dict):
211                    raise TypeError()
212                share_type_1 = NamedItem.from_dict(data)
213
214                return share_type_1
215            except:  # noqa: E722
216                pass
217            return cast(Union["NamedItem", None, Unset], data)
218
219        share = _parse_share(d.pop("share", UNSET))
220
221        dataset_detail = cls(
222            id=id,
223            name=name,
224            description=description,
225            s3=s3,
226            process_id=process_id,
227            project_id=project_id,
228            source_dataset_ids=source_dataset_ids,
229            source_datasets=source_datasets,
230            source_sample_ids=source_sample_ids,
231            status=status,
232            status_message=status_message,
233            tags=tags,
234            params=params,
235            info=info,
236            is_view_restricted=is_view_restricted,
237            created_by=created_by,
238            created_at=created_at,
239            updated_at=updated_at,
240            share=share,
241        )
242
243        dataset_detail.additional_properties = d
244        return dataset_detail
additional_keys: List[str]
246    @property
247    def additional_keys(self) -> List[str]:
248        return list(self.additional_properties.keys())
class DatasetDetailInfo:
10@_attrs_define
11class DatasetDetailInfo:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dataset_detail_info = cls()
27
28        dataset_detail_info.additional_properties = d
29        return dataset_detail_info
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DatasetDetailInfo()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetDetailInfo.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dataset_detail_info = cls()
27
28        dataset_detail_info.additional_properties = d
29        return dataset_detail_info
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DatasetDetailParams:
10@_attrs_define
11class DatasetDetailParams:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dataset_detail_params = cls()
27
28        dataset_detail_params.additional_properties = d
29        return dataset_detail_params
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
DatasetDetailParams()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetDetailParams.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        dataset_detail_params = cls()
27
28        dataset_detail_params.additional_properties = d
29        return dataset_detail_params
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class DatasetViz:
12@_attrs_define
13class DatasetViz:
14    """
15    Attributes:
16        name (Union[Unset, str]): Name of viz
17        desc (Union[Unset, str]): Description of viz
18        type (Union[Unset, str]): Type of viz Example: vitescce.
19        config (Union[Unset, Any]): Config or path to config used to render viz
20    """
21
22    name: Union[Unset, str] = UNSET
23    desc: Union[Unset, str] = UNSET
24    type: Union[Unset, str] = UNSET
25    config: Union[Unset, Any] = UNSET
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        name = self.name
30
31        desc = self.desc
32
33        type = self.type
34
35        config = self.config
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update({})
40        if name is not UNSET:
41            field_dict["name"] = name
42        if desc is not UNSET:
43            field_dict["desc"] = desc
44        if type is not UNSET:
45            field_dict["type"] = type
46        if config is not UNSET:
47            field_dict["config"] = config
48
49        return field_dict
50
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        name = d.pop("name", UNSET)
55
56        desc = d.pop("desc", UNSET)
57
58        type = d.pop("type", UNSET)
59
60        config = d.pop("config", UNSET)
61
62        dataset_viz = cls(
63            name=name,
64            desc=desc,
65            type=type,
66            config=config,
67        )
68
69        dataset_viz.additional_properties = d
70        return dataset_viz
71
72    @property
73    def additional_keys(self) -> List[str]:
74        return list(self.additional_properties.keys())
Attributes:
  • name (Union[Unset, str]): Name of viz
  • desc (Union[Unset, str]): Description of viz
  • type (Union[Unset, str]): Type of viz Example: vitescce.
  • config (Union[Unset, Any]): Config or path to config used to render viz
DatasetViz( name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, desc: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, config: Union[cirro_api_client.v1.types.Unset, Any] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, name=attr_dict['name'].default, desc=attr_dict['desc'].default, type=attr_dict['type'].default, config=attr_dict['config'].default):
28    self.name = name
29    self.desc = desc
30    self.type = type
31    self.config = config
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class DatasetViz.

name: Union[cirro_api_client.v1.types.Unset, str]
desc: Union[cirro_api_client.v1.types.Unset, str]
type: Union[cirro_api_client.v1.types.Unset, str]
config: Union[cirro_api_client.v1.types.Unset, Any]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        name = self.name
30
31        desc = self.desc
32
33        type = self.type
34
35        config = self.config
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update({})
40        if name is not UNSET:
41            field_dict["name"] = name
42        if desc is not UNSET:
43            field_dict["desc"] = desc
44        if type is not UNSET:
45            field_dict["type"] = type
46        if config is not UNSET:
47            field_dict["config"] = config
48
49        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        name = d.pop("name", UNSET)
55
56        desc = d.pop("desc", UNSET)
57
58        type = d.pop("type", UNSET)
59
60        config = d.pop("config", UNSET)
61
62        dataset_viz = cls(
63            name=name,
64            desc=desc,
65            type=type,
66            config=config,
67        )
68
69        dataset_viz.additional_properties = d
70        return dataset_viz
additional_keys: List[str]
72    @property
73    def additional_keys(self) -> List[str]:
74        return list(self.additional_properties.keys())
class EnvironmentType(builtins.str, enum.Enum):
 5class EnvironmentType(str, Enum):
 6    AWS_BATCH = "AWS_BATCH"
 7    AWS_OMICS = "AWS_OMICS"
 8    LOCAL_AGENT = "LOCAL_AGENT"
 9    NONE = "NONE"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

AWS_BATCH = <EnvironmentType.AWS_BATCH: 'AWS_BATCH'>
AWS_OMICS = <EnvironmentType.AWS_OMICS: 'AWS_OMICS'>
LOCAL_AGENT = <EnvironmentType.LOCAL_AGENT: 'LOCAL_AGENT'>
NONE = <EnvironmentType.NONE: 'NONE'>
UNKNOWN = <EnvironmentType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class ErrorMessage:
10@_attrs_define
11class ErrorMessage:
12    """
13    Attributes:
14        message (str):
15    """
16
17    message: str
18    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
19
20    def to_dict(self) -> Dict[str, Any]:
21        message = self.message
22
23        field_dict: Dict[str, Any] = {}
24        field_dict.update(self.additional_properties)
25        field_dict.update(
26            {
27                "message": message,
28            }
29        )
30
31        return field_dict
32
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        message = d.pop("message")
37
38        error_message = cls(
39            message=message,
40        )
41
42        error_message.additional_properties = d
43        return error_message
44
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
Attributes:
  • message (str):
ErrorMessage(message: str)
24def __init__(self, message):
25    self.message = message
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ErrorMessage.

message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
20    def to_dict(self) -> Dict[str, Any]:
21        message = self.message
22
23        field_dict: Dict[str, Any] = {}
24        field_dict.update(self.additional_properties)
25        field_dict.update(
26            {
27                "message": message,
28            }
29        )
30
31        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        message = d.pop("message")
37
38        error_message = cls(
39            message=message,
40        )
41
42        error_message.additional_properties = d
43        return error_message
additional_keys: List[str]
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
class Executor(builtins.str, enum.Enum):
 5class Executor(str, Enum):
 6    CROMWELL = "CROMWELL"
 7    INGEST = "INGEST"
 8    NEXTFLOW = "NEXTFLOW"
 9    OMICS_READY2RUN = "OMICS_READY2RUN"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

CROMWELL = <Executor.CROMWELL: 'CROMWELL'>
INGEST = <Executor.INGEST: 'INGEST'>
NEXTFLOW = <Executor.NEXTFLOW: 'NEXTFLOW'>
OMICS_READY2RUN = <Executor.OMICS_READY2RUN: 'OMICS_READY2RUN'>
UNKNOWN = <Executor.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class FeatureFlags:
10@_attrs_define
11class FeatureFlags:
12    """
13    Attributes:
14        sftp_enabled (bool):
15        governance_enabled (bool):
16        project_requests_enabled (bool):
17    """
18
19    sftp_enabled: bool
20    governance_enabled: bool
21    project_requests_enabled: bool
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        sftp_enabled = self.sftp_enabled
26
27        governance_enabled = self.governance_enabled
28
29        project_requests_enabled = self.project_requests_enabled
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "sftpEnabled": sftp_enabled,
36                "governanceEnabled": governance_enabled,
37                "projectRequestsEnabled": project_requests_enabled,
38            }
39        )
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        sftp_enabled = d.pop("sftpEnabled")
47
48        governance_enabled = d.pop("governanceEnabled")
49
50        project_requests_enabled = d.pop("projectRequestsEnabled")
51
52        feature_flags = cls(
53            sftp_enabled=sftp_enabled,
54            governance_enabled=governance_enabled,
55            project_requests_enabled=project_requests_enabled,
56        )
57
58        feature_flags.additional_properties = d
59        return feature_flags
60
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
Attributes:
  • sftp_enabled (bool):
  • governance_enabled (bool):
  • project_requests_enabled (bool):
FeatureFlags( sftp_enabled: bool, governance_enabled: bool, project_requests_enabled: bool)
26def __init__(self, sftp_enabled, governance_enabled, project_requests_enabled):
27    self.sftp_enabled = sftp_enabled
28    self.governance_enabled = governance_enabled
29    self.project_requests_enabled = project_requests_enabled
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FeatureFlags.

sftp_enabled: bool
governance_enabled: bool
project_requests_enabled: bool
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        sftp_enabled = self.sftp_enabled
26
27        governance_enabled = self.governance_enabled
28
29        project_requests_enabled = self.project_requests_enabled
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "sftpEnabled": sftp_enabled,
36                "governanceEnabled": governance_enabled,
37                "projectRequestsEnabled": project_requests_enabled,
38            }
39        )
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        sftp_enabled = d.pop("sftpEnabled")
47
48        governance_enabled = d.pop("governanceEnabled")
49
50        project_requests_enabled = d.pop("projectRequestsEnabled")
51
52        feature_flags = cls(
53            sftp_enabled=sftp_enabled,
54            governance_enabled=governance_enabled,
55            project_requests_enabled=project_requests_enabled,
56        )
57
58        feature_flags.additional_properties = d
59        return feature_flags
additional_keys: List[str]
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
class FileEntry:
16@_attrs_define
17class FileEntry:
18    """
19    Attributes:
20        path (Union[Unset, str]): Relative path to file Example: data/fastq/SRX12875516_SRR16674827_1.fastq.gz.
21        size (Union[Unset, int]): File size (in bytes) Example: 1435658507.
22        metadata (Union[Unset, FileEntryMetadata]): Metadata associated with the file Example: {'read': 1}.
23    """
24
25    path: Union[Unset, str] = UNSET
26    size: Union[Unset, int] = UNSET
27    metadata: Union[Unset, "FileEntryMetadata"] = UNSET
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        path = self.path
32
33        size = self.size
34
35        metadata: Union[Unset, Dict[str, Any]] = UNSET
36        if not isinstance(self.metadata, Unset):
37            metadata = self.metadata.to_dict()
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update({})
42        if path is not UNSET:
43            field_dict["path"] = path
44        if size is not UNSET:
45            field_dict["size"] = size
46        if metadata is not UNSET:
47            field_dict["metadata"] = metadata
48
49        return field_dict
50
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        from ..models.file_entry_metadata import FileEntryMetadata
54
55        d = src_dict.copy()
56        path = d.pop("path", UNSET)
57
58        size = d.pop("size", UNSET)
59
60        _metadata = d.pop("metadata", UNSET)
61        metadata: Union[Unset, FileEntryMetadata]
62        if isinstance(_metadata, Unset):
63            metadata = UNSET
64        else:
65            metadata = FileEntryMetadata.from_dict(_metadata)
66
67        file_entry = cls(
68            path=path,
69            size=size,
70            metadata=metadata,
71        )
72
73        file_entry.additional_properties = d
74        return file_entry
75
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
Attributes:
  • path (Union[Unset, str]): Relative path to file Example: data/fastq/SRX12875516_SRR16674827_1.fastq.gz.
  • size (Union[Unset, int]): File size (in bytes) Example: 1435658507.
  • metadata (Union[Unset, FileEntryMetadata]): Metadata associated with the file Example: {'read': 1}.
FileEntry( path: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, size: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, metadata: Union[cirro_api_client.v1.types.Unset, FileEntryMetadata] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, path=attr_dict['path'].default, size=attr_dict['size'].default, metadata=attr_dict['metadata'].default):
27    self.path = path
28    self.size = size
29    self.metadata = metadata
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FileEntry.

path: Union[cirro_api_client.v1.types.Unset, str]
size: Union[cirro_api_client.v1.types.Unset, int]
metadata: Union[cirro_api_client.v1.types.Unset, FileEntryMetadata]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        path = self.path
32
33        size = self.size
34
35        metadata: Union[Unset, Dict[str, Any]] = UNSET
36        if not isinstance(self.metadata, Unset):
37            metadata = self.metadata.to_dict()
38
39        field_dict: Dict[str, Any] = {}
40        field_dict.update(self.additional_properties)
41        field_dict.update({})
42        if path is not UNSET:
43            field_dict["path"] = path
44        if size is not UNSET:
45            field_dict["size"] = size
46        if metadata is not UNSET:
47            field_dict["metadata"] = metadata
48
49        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        from ..models.file_entry_metadata import FileEntryMetadata
54
55        d = src_dict.copy()
56        path = d.pop("path", UNSET)
57
58        size = d.pop("size", UNSET)
59
60        _metadata = d.pop("metadata", UNSET)
61        metadata: Union[Unset, FileEntryMetadata]
62        if isinstance(_metadata, Unset):
63            metadata = UNSET
64        else:
65            metadata = FileEntryMetadata.from_dict(_metadata)
66
67        file_entry = cls(
68            path=path,
69            size=size,
70            metadata=metadata,
71        )
72
73        file_entry.additional_properties = d
74        return file_entry
additional_keys: List[str]
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
class FileEntryMetadata:
10@_attrs_define
11class FileEntryMetadata:
12    """Metadata associated with the file
13
14    Example:
15        {'read': 1}
16
17    """
18
19    additional_properties: Dict[str, str] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
27
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        file_entry_metadata = cls()
32
33        file_entry_metadata.additional_properties = d
34        return file_entry_metadata
35
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())

Metadata associated with the file

Example:

{'read': 1}

FileEntryMetadata()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FileEntryMetadata.

additional_properties: Dict[str, str]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        file_entry_metadata = cls()
32
33        file_entry_metadata.additional_properties = d
34        return file_entry_metadata
additional_keys: List[str]
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())
class FileMappingRule:
16@_attrs_define
17class FileMappingRule:
18    """
19    Attributes:
20        description (str): Describes the group of possible files that meet a single file type criteria.
21        file_name_patterns (List['FileNamePattern']): Describes the possible file patterns to expect for the file type
22            group.
23        min_ (Union[Unset, int]): Minimum number of files to expect for the file type group.
24        max_ (Union[Unset, int]): Maximum number of files to expect for the file type group.
25        is_sample (Union[Unset, bool]): Specifies if the file type will be associated with a sample.
26    """
27
28    description: str
29    file_name_patterns: List["FileNamePattern"]
30    min_: Union[Unset, int] = UNSET
31    max_: Union[Unset, int] = UNSET
32    is_sample: Union[Unset, bool] = UNSET
33    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
34
35    def to_dict(self) -> Dict[str, Any]:
36        description = self.description
37
38        file_name_patterns = []
39        for file_name_patterns_item_data in self.file_name_patterns:
40            file_name_patterns_item = file_name_patterns_item_data.to_dict()
41            file_name_patterns.append(file_name_patterns_item)
42
43        min_ = self.min_
44
45        max_ = self.max_
46
47        is_sample = self.is_sample
48
49        field_dict: Dict[str, Any] = {}
50        field_dict.update(self.additional_properties)
51        field_dict.update(
52            {
53                "description": description,
54                "fileNamePatterns": file_name_patterns,
55            }
56        )
57        if min_ is not UNSET:
58            field_dict["min"] = min_
59        if max_ is not UNSET:
60            field_dict["max"] = max_
61        if is_sample is not UNSET:
62            field_dict["isSample"] = is_sample
63
64        return field_dict
65
66    @classmethod
67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
68        from ..models.file_name_pattern import FileNamePattern
69
70        d = src_dict.copy()
71        description = d.pop("description")
72
73        file_name_patterns = []
74        _file_name_patterns = d.pop("fileNamePatterns")
75        for file_name_patterns_item_data in _file_name_patterns:
76            file_name_patterns_item = FileNamePattern.from_dict(file_name_patterns_item_data)
77
78            file_name_patterns.append(file_name_patterns_item)
79
80        min_ = d.pop("min", UNSET)
81
82        max_ = d.pop("max", UNSET)
83
84        is_sample = d.pop("isSample", UNSET)
85
86        file_mapping_rule = cls(
87            description=description,
88            file_name_patterns=file_name_patterns,
89            min_=min_,
90            max_=max_,
91            is_sample=is_sample,
92        )
93
94        file_mapping_rule.additional_properties = d
95        return file_mapping_rule
96
97    @property
98    def additional_keys(self) -> List[str]:
99        return list(self.additional_properties.keys())
Attributes:
  • description (str): Describes the group of possible files that meet a single file type criteria.
  • file_name_patterns (List['FileNamePattern']): Describes the possible file patterns to expect for the file type group.
  • min_ (Union[Unset, int]): Minimum number of files to expect for the file type group.
  • max_ (Union[Unset, int]): Maximum number of files to expect for the file type group.
  • is_sample (Union[Unset, bool]): Specifies if the file type will be associated with a sample.
FileMappingRule( description: str, file_name_patterns: List[FileNamePattern], min_: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, max_: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, is_sample: Union[cirro_api_client.v1.types.Unset, bool] = <cirro_api_client.v1.types.Unset object>)
28def __init__(self, description, file_name_patterns, min_=attr_dict['min_'].default, max_=attr_dict['max_'].default, is_sample=attr_dict['is_sample'].default):
29    self.description = description
30    self.file_name_patterns = file_name_patterns
31    self.min_ = min_
32    self.max_ = max_
33    self.is_sample = is_sample
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FileMappingRule.

description: str
file_name_patterns: List[FileNamePattern]
min_: Union[cirro_api_client.v1.types.Unset, int]
max_: Union[cirro_api_client.v1.types.Unset, int]
is_sample: Union[cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
35    def to_dict(self) -> Dict[str, Any]:
36        description = self.description
37
38        file_name_patterns = []
39        for file_name_patterns_item_data in self.file_name_patterns:
40            file_name_patterns_item = file_name_patterns_item_data.to_dict()
41            file_name_patterns.append(file_name_patterns_item)
42
43        min_ = self.min_
44
45        max_ = self.max_
46
47        is_sample = self.is_sample
48
49        field_dict: Dict[str, Any] = {}
50        field_dict.update(self.additional_properties)
51        field_dict.update(
52            {
53                "description": description,
54                "fileNamePatterns": file_name_patterns,
55            }
56        )
57        if min_ is not UNSET:
58            field_dict["min"] = min_
59        if max_ is not UNSET:
60            field_dict["max"] = max_
61        if is_sample is not UNSET:
62            field_dict["isSample"] = is_sample
63
64        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
66    @classmethod
67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
68        from ..models.file_name_pattern import FileNamePattern
69
70        d = src_dict.copy()
71        description = d.pop("description")
72
73        file_name_patterns = []
74        _file_name_patterns = d.pop("fileNamePatterns")
75        for file_name_patterns_item_data in _file_name_patterns:
76            file_name_patterns_item = FileNamePattern.from_dict(file_name_patterns_item_data)
77
78            file_name_patterns.append(file_name_patterns_item)
79
80        min_ = d.pop("min", UNSET)
81
82        max_ = d.pop("max", UNSET)
83
84        is_sample = d.pop("isSample", UNSET)
85
86        file_mapping_rule = cls(
87            description=description,
88            file_name_patterns=file_name_patterns,
89            min_=min_,
90            max_=max_,
91            is_sample=is_sample,
92        )
93
94        file_mapping_rule.additional_properties = d
95        return file_mapping_rule
additional_keys: List[str]
97    @property
98    def additional_keys(self) -> List[str]:
99        return list(self.additional_properties.keys())
class FileNamePattern:
10@_attrs_define
11class FileNamePattern:
12    """
13    Attributes:
14        example_name (str): User-readable name for the file type used for display.
15        description (str): File description.
16        sample_matching_pattern (str): File name pattern, formatted as a valid regex, to extract sample name and other
17            metadata.
18    """
19
20    example_name: str
21    description: str
22    sample_matching_pattern: str
23    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
25    def to_dict(self) -> Dict[str, Any]:
26        example_name = self.example_name
27
28        description = self.description
29
30        sample_matching_pattern = self.sample_matching_pattern
31
32        field_dict: Dict[str, Any] = {}
33        field_dict.update(self.additional_properties)
34        field_dict.update(
35            {
36                "exampleName": example_name,
37                "description": description,
38                "sampleMatchingPattern": sample_matching_pattern,
39            }
40        )
41
42        return field_dict
43
44    @classmethod
45    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
46        d = src_dict.copy()
47        example_name = d.pop("exampleName")
48
49        description = d.pop("description")
50
51        sample_matching_pattern = d.pop("sampleMatchingPattern")
52
53        file_name_pattern = cls(
54            example_name=example_name,
55            description=description,
56            sample_matching_pattern=sample_matching_pattern,
57        )
58
59        file_name_pattern.additional_properties = d
60        return file_name_pattern
61
62    @property
63    def additional_keys(self) -> List[str]:
64        return list(self.additional_properties.keys())
Attributes:
  • example_name (str): User-readable name for the file type used for display.
  • description (str): File description.
  • sample_matching_pattern (str): File name pattern, formatted as a valid regex, to extract sample name and other metadata.
FileNamePattern(example_name: str, description: str, sample_matching_pattern: str)
26def __init__(self, example_name, description, sample_matching_pattern):
27    self.example_name = example_name
28    self.description = description
29    self.sample_matching_pattern = sample_matching_pattern
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FileNamePattern.

example_name: str
description: str
sample_matching_pattern: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
25    def to_dict(self) -> Dict[str, Any]:
26        example_name = self.example_name
27
28        description = self.description
29
30        sample_matching_pattern = self.sample_matching_pattern
31
32        field_dict: Dict[str, Any] = {}
33        field_dict.update(self.additional_properties)
34        field_dict.update(
35            {
36                "exampleName": example_name,
37                "description": description,
38                "sampleMatchingPattern": sample_matching_pattern,
39            }
40        )
41
42        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
44    @classmethod
45    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
46        d = src_dict.copy()
47        example_name = d.pop("exampleName")
48
49        description = d.pop("description")
50
51        sample_matching_pattern = d.pop("sampleMatchingPattern")
52
53        file_name_pattern = cls(
54            example_name=example_name,
55            description=description,
56            sample_matching_pattern=sample_matching_pattern,
57        )
58
59        file_name_pattern.additional_properties = d
60        return file_name_pattern
additional_keys: List[str]
62    @property
63    def additional_keys(self) -> List[str]:
64        return list(self.additional_properties.keys())
class FileRequirements:
14@_attrs_define
15class FileRequirements:
16    """
17    Attributes:
18        files (List[str]):
19        error_msg (str):
20        allowed_data_types (List['AllowedDataType']):
21    """
22
23    files: List[str]
24    error_msg: str
25    allowed_data_types: List["AllowedDataType"]
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        files = self.files
30
31        error_msg = self.error_msg
32
33        allowed_data_types = []
34        for allowed_data_types_item_data in self.allowed_data_types:
35            allowed_data_types_item = allowed_data_types_item_data.to_dict()
36            allowed_data_types.append(allowed_data_types_item)
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "files": files,
43                "errorMsg": error_msg,
44                "allowedDataTypes": allowed_data_types,
45            }
46        )
47
48        return field_dict
49
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        from ..models.allowed_data_type import AllowedDataType
53
54        d = src_dict.copy()
55        files = cast(List[str], d.pop("files"))
56
57        error_msg = d.pop("errorMsg")
58
59        allowed_data_types = []
60        _allowed_data_types = d.pop("allowedDataTypes")
61        for allowed_data_types_item_data in _allowed_data_types:
62            allowed_data_types_item = AllowedDataType.from_dict(allowed_data_types_item_data)
63
64            allowed_data_types.append(allowed_data_types_item)
65
66        file_requirements = cls(
67            files=files,
68            error_msg=error_msg,
69            allowed_data_types=allowed_data_types,
70        )
71
72        file_requirements.additional_properties = d
73        return file_requirements
74
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
Attributes:
  • files (List[str]):
  • error_msg (str):
  • allowed_data_types (List['AllowedDataType']):
FileRequirements( files: List[str], error_msg: str, allowed_data_types: List[AllowedDataType])
26def __init__(self, files, error_msg, allowed_data_types):
27    self.files = files
28    self.error_msg = error_msg
29    self.allowed_data_types = allowed_data_types
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FileRequirements.

files: List[str]
error_msg: str
allowed_data_types: List[AllowedDataType]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        files = self.files
30
31        error_msg = self.error_msg
32
33        allowed_data_types = []
34        for allowed_data_types_item_data in self.allowed_data_types:
35            allowed_data_types_item = allowed_data_types_item_data.to_dict()
36            allowed_data_types.append(allowed_data_types_item)
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "files": files,
43                "errorMsg": error_msg,
44                "allowedDataTypes": allowed_data_types,
45            }
46        )
47
48        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        from ..models.allowed_data_type import AllowedDataType
53
54        d = src_dict.copy()
55        files = cast(List[str], d.pop("files"))
56
57        error_msg = d.pop("errorMsg")
58
59        allowed_data_types = []
60        _allowed_data_types = d.pop("allowedDataTypes")
61        for allowed_data_types_item_data in _allowed_data_types:
62            allowed_data_types_item = AllowedDataType.from_dict(allowed_data_types_item_data)
63
64            allowed_data_types.append(allowed_data_types_item)
65
66        file_requirements = cls(
67            files=files,
68            error_msg=error_msg,
69            allowed_data_types=allowed_data_types,
70        )
71
72        file_requirements.additional_properties = d
73        return file_requirements
additional_keys: List[str]
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
class FormSchema:
17@_attrs_define
18class FormSchema:
19    """
20    Attributes:
21        form (Union[Unset, FormSchemaForm]): JSONSchema representation of the parameters
22        ui (Union[Unset, FormSchemaUi]): Describes how the form should be rendered, see rjsf
23    """
24
25    form: Union[Unset, "FormSchemaForm"] = UNSET
26    ui: Union[Unset, "FormSchemaUi"] = UNSET
27    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
28
29    def to_dict(self) -> Dict[str, Any]:
30        form: Union[Unset, Dict[str, Any]] = UNSET
31        if not isinstance(self.form, Unset):
32            form = self.form.to_dict()
33
34        ui: Union[Unset, Dict[str, Any]] = UNSET
35        if not isinstance(self.ui, Unset):
36            ui = self.ui.to_dict()
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update({})
41        if form is not UNSET:
42            field_dict["form"] = form
43        if ui is not UNSET:
44            field_dict["ui"] = ui
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        from ..models.form_schema_form import FormSchemaForm
51        from ..models.form_schema_ui import FormSchemaUi
52
53        d = src_dict.copy()
54        _form = d.pop("form", UNSET)
55        form: Union[Unset, FormSchemaForm]
56        if isinstance(_form, Unset):
57            form = UNSET
58        else:
59            form = FormSchemaForm.from_dict(_form)
60
61        _ui = d.pop("ui", UNSET)
62        ui: Union[Unset, FormSchemaUi]
63        if isinstance(_ui, Unset):
64            ui = UNSET
65        else:
66            ui = FormSchemaUi.from_dict(_ui)
67
68        form_schema = cls(
69            form=form,
70            ui=ui,
71        )
72
73        form_schema.additional_properties = d
74        return form_schema
75
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
Attributes:
  • form (Union[Unset, FormSchemaForm]): JSONSchema representation of the parameters
  • ui (Union[Unset, FormSchemaUi]): Describes how the form should be rendered, see rjsf
FormSchema( form: Union[cirro_api_client.v1.types.Unset, FormSchemaForm] = <cirro_api_client.v1.types.Unset object>, ui: Union[cirro_api_client.v1.types.Unset, FormSchemaUi] = <cirro_api_client.v1.types.Unset object>)
25def __init__(self, form=attr_dict['form'].default, ui=attr_dict['ui'].default):
26    self.form = form
27    self.ui = ui
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FormSchema.

form: Union[cirro_api_client.v1.types.Unset, FormSchemaForm]
ui: Union[cirro_api_client.v1.types.Unset, FormSchemaUi]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
29    def to_dict(self) -> Dict[str, Any]:
30        form: Union[Unset, Dict[str, Any]] = UNSET
31        if not isinstance(self.form, Unset):
32            form = self.form.to_dict()
33
34        ui: Union[Unset, Dict[str, Any]] = UNSET
35        if not isinstance(self.ui, Unset):
36            ui = self.ui.to_dict()
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update({})
41        if form is not UNSET:
42            field_dict["form"] = form
43        if ui is not UNSET:
44            field_dict["ui"] = ui
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        from ..models.form_schema_form import FormSchemaForm
51        from ..models.form_schema_ui import FormSchemaUi
52
53        d = src_dict.copy()
54        _form = d.pop("form", UNSET)
55        form: Union[Unset, FormSchemaForm]
56        if isinstance(_form, Unset):
57            form = UNSET
58        else:
59            form = FormSchemaForm.from_dict(_form)
60
61        _ui = d.pop("ui", UNSET)
62        ui: Union[Unset, FormSchemaUi]
63        if isinstance(_ui, Unset):
64            ui = UNSET
65        else:
66            ui = FormSchemaUi.from_dict(_ui)
67
68        form_schema = cls(
69            form=form,
70            ui=ui,
71        )
72
73        form_schema.additional_properties = d
74        return form_schema
additional_keys: List[str]
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
class FormSchemaForm:
10@_attrs_define
11class FormSchemaForm:
12    """JSONSchema representation of the parameters"""
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        form_schema_form = cls()
27
28        form_schema_form.additional_properties = d
29        return form_schema_form
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

JSONSchema representation of the parameters

FormSchemaForm()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FormSchemaForm.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        form_schema_form = cls()
27
28        form_schema_form.additional_properties = d
29        return form_schema_form
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class FormSchemaUi:
10@_attrs_define
11class FormSchemaUi:
12    """Describes how the form should be rendered, see rjsf"""
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        form_schema_ui = cls()
27
28        form_schema_ui.additional_properties = d
29        return form_schema_ui
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

Describes how the form should be rendered, see rjsf

FormSchemaUi()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FormSchemaUi.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        form_schema_ui = cls()
27
28        form_schema_ui.additional_properties = d
29        return form_schema_ui
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class FulfillmentResponse:
10@_attrs_define
11class FulfillmentResponse:
12    """
13    Attributes:
14        fulfillment_id (str):
15        path (str):
16    """
17
18    fulfillment_id: str
19    path: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        fulfillment_id = self.fulfillment_id
24
25        path = self.path
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "fulfillmentId": fulfillment_id,
32                "path": path,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        fulfillment_id = d.pop("fulfillmentId")
42
43        path = d.pop("path")
44
45        fulfillment_response = cls(
46            fulfillment_id=fulfillment_id,
47            path=path,
48        )
49
50        fulfillment_response.additional_properties = d
51        return fulfillment_response
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • fulfillment_id (str):
  • path (str):
FulfillmentResponse(fulfillment_id: str, path: str)
25def __init__(self, fulfillment_id, path):
26    self.fulfillment_id = fulfillment_id
27    self.path = path
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class FulfillmentResponse.

fulfillment_id: str
path: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        fulfillment_id = self.fulfillment_id
24
25        path = self.path
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "fulfillmentId": fulfillment_id,
32                "path": path,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        fulfillment_id = d.pop("fulfillmentId")
42
43        path = d.pop("path")
44
45        fulfillment_response = cls(
46            fulfillment_id=fulfillment_id,
47            path=path,
48        )
49
50        fulfillment_response.additional_properties = d
51        return fulfillment_response
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class GenerateSftpCredentialsRequest:
12@_attrs_define
13class GenerateSftpCredentialsRequest:
14    """
15    Attributes:
16        lifetime_days (Union[Unset, int]): Number of days the credentials are valid for Default: 1.
17    """
18
19    lifetime_days: Union[Unset, int] = 1
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        lifetime_days = self.lifetime_days
24
25        field_dict: Dict[str, Any] = {}
26        field_dict.update(self.additional_properties)
27        field_dict.update({})
28        if lifetime_days is not UNSET:
29            field_dict["lifetimeDays"] = lifetime_days
30
31        return field_dict
32
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        lifetime_days = d.pop("lifetimeDays", UNSET)
37
38        generate_sftp_credentials_request = cls(
39            lifetime_days=lifetime_days,
40        )
41
42        generate_sftp_credentials_request.additional_properties = d
43        return generate_sftp_credentials_request
44
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
Attributes:
  • lifetime_days (Union[Unset, int]): Number of days the credentials are valid for Default: 1.
GenerateSftpCredentialsRequest(lifetime_days: Union[cirro_api_client.v1.types.Unset, int] = 1)
24def __init__(self, lifetime_days=attr_dict['lifetime_days'].default):
25    self.lifetime_days = lifetime_days
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GenerateSftpCredentialsRequest.

lifetime_days: Union[cirro_api_client.v1.types.Unset, int]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        lifetime_days = self.lifetime_days
24
25        field_dict: Dict[str, Any] = {}
26        field_dict.update(self.additional_properties)
27        field_dict.update({})
28        if lifetime_days is not UNSET:
29            field_dict["lifetimeDays"] = lifetime_days
30
31        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        lifetime_days = d.pop("lifetimeDays", UNSET)
37
38        generate_sftp_credentials_request = cls(
39            lifetime_days=lifetime_days,
40        )
41
42        generate_sftp_credentials_request.additional_properties = d
43        return generate_sftp_credentials_request
additional_keys: List[str]
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
class GetExecutionLogsResponse:
14@_attrs_define
15class GetExecutionLogsResponse:
16    """
17    Attributes:
18        events (List['LogEntry']):
19    """
20
21    events: List["LogEntry"]
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        events = []
26        for events_item_data in self.events:
27            events_item = events_item_data.to_dict()
28            events.append(events_item)
29
30        field_dict: Dict[str, Any] = {}
31        field_dict.update(self.additional_properties)
32        field_dict.update(
33            {
34                "events": events,
35            }
36        )
37
38        return field_dict
39
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        from ..models.log_entry import LogEntry
43
44        d = src_dict.copy()
45        events = []
46        _events = d.pop("events")
47        for events_item_data in _events:
48            events_item = LogEntry.from_dict(events_item_data)
49
50            events.append(events_item)
51
52        get_execution_logs_response = cls(
53            events=events,
54        )
55
56        get_execution_logs_response.additional_properties = d
57        return get_execution_logs_response
58
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
Attributes:
  • events (List['LogEntry']):
GetExecutionLogsResponse(events: List[LogEntry])
24def __init__(self, events):
25    self.events = events
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GetExecutionLogsResponse.

events: List[LogEntry]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        events = []
26        for events_item_data in self.events:
27            events_item = events_item_data.to_dict()
28            events.append(events_item)
29
30        field_dict: Dict[str, Any] = {}
31        field_dict.update(self.additional_properties)
32        field_dict.update(
33            {
34                "events": events,
35            }
36        )
37
38        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
40    @classmethod
41    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
42        from ..models.log_entry import LogEntry
43
44        d = src_dict.copy()
45        events = []
46        _events = d.pop("events")
47        for events_item_data in _events:
48            events_item = LogEntry.from_dict(events_item_data)
49
50            events.append(events_item)
51
52        get_execution_logs_response = cls(
53            events=events,
54        )
55
56        get_execution_logs_response.additional_properties = d
57        return get_execution_logs_response
additional_keys: List[str]
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
class GetProjectSummaryResponse200:
14@_attrs_define
15class GetProjectSummaryResponse200:
16    """ """
17
18    additional_properties: Dict[str, List["Task"]] = _attrs_field(init=False, factory=dict)
19
20    def to_dict(self) -> Dict[str, Any]:
21        field_dict: Dict[str, Any] = {}
22        for prop_name, prop in self.additional_properties.items():
23            field_dict[prop_name] = []
24            for additional_property_item_data in prop:
25                additional_property_item = additional_property_item_data.to_dict()
26                field_dict[prop_name].append(additional_property_item)
27
28        field_dict.update({})
29
30        return field_dict
31
32    @classmethod
33    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34        from ..models.task import Task
35
36        d = src_dict.copy()
37        get_project_summary_response_200 = cls()
38
39        additional_properties = {}
40        for prop_name, prop_dict in d.items():
41            additional_property = []
42            _additional_property = prop_dict
43            for additional_property_item_data in _additional_property:
44                additional_property_item = Task.from_dict(additional_property_item_data)
45
46                additional_property.append(additional_property_item)
47
48            additional_properties[prop_name] = additional_property
49
50        get_project_summary_response_200.additional_properties = additional_properties
51        return get_project_summary_response_200
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
GetProjectSummaryResponse200()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GetProjectSummaryResponse200.

additional_properties: Dict[str, List[Task]]
def to_dict(self) -> Dict[str, Any]:
20    def to_dict(self) -> Dict[str, Any]:
21        field_dict: Dict[str, Any] = {}
22        for prop_name, prop in self.additional_properties.items():
23            field_dict[prop_name] = []
24            for additional_property_item_data in prop:
25                additional_property_item = additional_property_item_data.to_dict()
26                field_dict[prop_name].append(additional_property_item)
27
28        field_dict.update({})
29
30        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
32    @classmethod
33    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34        from ..models.task import Task
35
36        d = src_dict.copy()
37        get_project_summary_response_200 = cls()
38
39        additional_properties = {}
40        for prop_name, prop_dict in d.items():
41            additional_property = []
42            _additional_property = prop_dict
43            for additional_property_item_data in _additional_property:
44                additional_property_item = Task.from_dict(additional_property_item_data)
45
46                additional_property.append(additional_property_item)
47
48            additional_properties[prop_name] = additional_property
49
50        get_project_summary_response_200.additional_properties = additional_properties
51        return get_project_summary_response_200
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class GovernanceAccessType(builtins.str, enum.Enum):
 5class GovernanceAccessType(str, Enum):
 6    FULFILLMENT_DOWNLOAD = "FULFILLMENT_DOWNLOAD"
 7    FULFILLMENT_UPLOAD = "FULFILLMENT_UPLOAD"
 8    GOVERNANCE_DOWNLOAD = "GOVERNANCE_DOWNLOAD"
 9    GOVERNANCE_UPLOAD = "GOVERNANCE_UPLOAD"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

FULFILLMENT_DOWNLOAD = <GovernanceAccessType.FULFILLMENT_DOWNLOAD: 'FULFILLMENT_DOWNLOAD'>
FULFILLMENT_UPLOAD = <GovernanceAccessType.FULFILLMENT_UPLOAD: 'FULFILLMENT_UPLOAD'>
GOVERNANCE_DOWNLOAD = <GovernanceAccessType.GOVERNANCE_DOWNLOAD: 'GOVERNANCE_DOWNLOAD'>
GOVERNANCE_UPLOAD = <GovernanceAccessType.GOVERNANCE_UPLOAD: 'GOVERNANCE_UPLOAD'>
UNKNOWN = <GovernanceAccessType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class GovernanceClassification:
12@_attrs_define
13class GovernanceClassification:
14    """
15    Attributes:
16        id (str):
17        name (str):
18        description (str):
19        requirement_ids (List[str]):
20        created_by (str):
21        created_at (datetime.datetime):
22        updated_at (datetime.datetime):
23    """
24
25    id: str
26    name: str
27    description: str
28    requirement_ids: List[str]
29    created_by: str
30    created_at: datetime.datetime
31    updated_at: datetime.datetime
32    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
33
34    def to_dict(self) -> Dict[str, Any]:
35        id = self.id
36
37        name = self.name
38
39        description = self.description
40
41        requirement_ids = self.requirement_ids
42
43        created_by = self.created_by
44
45        created_at = self.created_at.isoformat()
46
47        updated_at = self.updated_at.isoformat()
48
49        field_dict: Dict[str, Any] = {}
50        field_dict.update(self.additional_properties)
51        field_dict.update(
52            {
53                "id": id,
54                "name": name,
55                "description": description,
56                "requirementIds": requirement_ids,
57                "createdBy": created_by,
58                "createdAt": created_at,
59                "updatedAt": updated_at,
60            }
61        )
62
63        return field_dict
64
65    @classmethod
66    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
67        d = src_dict.copy()
68        id = d.pop("id")
69
70        name = d.pop("name")
71
72        description = d.pop("description")
73
74        requirement_ids = cast(List[str], d.pop("requirementIds"))
75
76        created_by = d.pop("createdBy")
77
78        created_at = isoparse(d.pop("createdAt"))
79
80        updated_at = isoparse(d.pop("updatedAt"))
81
82        governance_classification = cls(
83            id=id,
84            name=name,
85            description=description,
86            requirement_ids=requirement_ids,
87            created_by=created_by,
88            created_at=created_at,
89            updated_at=updated_at,
90        )
91
92        governance_classification.additional_properties = d
93        return governance_classification
94
95    @property
96    def additional_keys(self) -> List[str]:
97        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • requirement_ids (List[str]):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
GovernanceClassification( id: str, name: str, description: str, requirement_ids: List[str], created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
30def __init__(self, id, name, description, requirement_ids, created_by, created_at, updated_at):
31    self.id = id
32    self.name = name
33    self.description = description
34    self.requirement_ids = requirement_ids
35    self.created_by = created_by
36    self.created_at = created_at
37    self.updated_at = updated_at
38    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceClassification.

id: str
name: str
description: str
requirement_ids: List[str]
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
34    def to_dict(self) -> Dict[str, Any]:
35        id = self.id
36
37        name = self.name
38
39        description = self.description
40
41        requirement_ids = self.requirement_ids
42
43        created_by = self.created_by
44
45        created_at = self.created_at.isoformat()
46
47        updated_at = self.updated_at.isoformat()
48
49        field_dict: Dict[str, Any] = {}
50        field_dict.update(self.additional_properties)
51        field_dict.update(
52            {
53                "id": id,
54                "name": name,
55                "description": description,
56                "requirementIds": requirement_ids,
57                "createdBy": created_by,
58                "createdAt": created_at,
59                "updatedAt": updated_at,
60            }
61        )
62
63        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
65    @classmethod
66    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
67        d = src_dict.copy()
68        id = d.pop("id")
69
70        name = d.pop("name")
71
72        description = d.pop("description")
73
74        requirement_ids = cast(List[str], d.pop("requirementIds"))
75
76        created_by = d.pop("createdBy")
77
78        created_at = isoparse(d.pop("createdAt"))
79
80        updated_at = isoparse(d.pop("updatedAt"))
81
82        governance_classification = cls(
83            id=id,
84            name=name,
85            description=description,
86            requirement_ids=requirement_ids,
87            created_by=created_by,
88            created_at=created_at,
89            updated_at=updated_at,
90        )
91
92        governance_classification.additional_properties = d
93        return governance_classification
additional_keys: List[str]
95    @property
96    def additional_keys(self) -> List[str]:
97        return list(self.additional_properties.keys())
class GovernanceContact:
 12@_attrs_define
 13class GovernanceContact:
 14    """
 15    Attributes:
 16        id (str):
 17        title (str):
 18        description (str):
 19        name (str):
 20        phone (str):
 21        email (str):
 22        created_by (str):
 23        created_at (datetime.datetime):
 24        updated_at (datetime.datetime):
 25    """
 26
 27    id: str
 28    title: str
 29    description: str
 30    name: str
 31    phone: str
 32    email: str
 33    created_by: str
 34    created_at: datetime.datetime
 35    updated_at: datetime.datetime
 36    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 37
 38    def to_dict(self) -> Dict[str, Any]:
 39        id = self.id
 40
 41        title = self.title
 42
 43        description = self.description
 44
 45        name = self.name
 46
 47        phone = self.phone
 48
 49        email = self.email
 50
 51        created_by = self.created_by
 52
 53        created_at = self.created_at.isoformat()
 54
 55        updated_at = self.updated_at.isoformat()
 56
 57        field_dict: Dict[str, Any] = {}
 58        field_dict.update(self.additional_properties)
 59        field_dict.update(
 60            {
 61                "id": id,
 62                "title": title,
 63                "description": description,
 64                "name": name,
 65                "phone": phone,
 66                "email": email,
 67                "createdBy": created_by,
 68                "createdAt": created_at,
 69                "updatedAt": updated_at,
 70            }
 71        )
 72
 73        return field_dict
 74
 75    @classmethod
 76    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 77        d = src_dict.copy()
 78        id = d.pop("id")
 79
 80        title = d.pop("title")
 81
 82        description = d.pop("description")
 83
 84        name = d.pop("name")
 85
 86        phone = d.pop("phone")
 87
 88        email = d.pop("email")
 89
 90        created_by = d.pop("createdBy")
 91
 92        created_at = isoparse(d.pop("createdAt"))
 93
 94        updated_at = isoparse(d.pop("updatedAt"))
 95
 96        governance_contact = cls(
 97            id=id,
 98            title=title,
 99            description=description,
100            name=name,
101            phone=phone,
102            email=email,
103            created_by=created_by,
104            created_at=created_at,
105            updated_at=updated_at,
106        )
107
108        governance_contact.additional_properties = d
109        return governance_contact
110
111    @property
112    def additional_keys(self) -> List[str]:
113        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • title (str):
  • description (str):
  • name (str):
  • phone (str):
  • email (str):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
GovernanceContact( id: str, title: str, description: str, name: str, phone: str, email: str, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
32def __init__(self, id, title, description, name, phone, email, created_by, created_at, updated_at):
33    self.id = id
34    self.title = title
35    self.description = description
36    self.name = name
37    self.phone = phone
38    self.email = email
39    self.created_by = created_by
40    self.created_at = created_at
41    self.updated_at = updated_at
42    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceContact.

id: str
title: str
description: str
name: str
phone: str
email: str
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
38    def to_dict(self) -> Dict[str, Any]:
39        id = self.id
40
41        title = self.title
42
43        description = self.description
44
45        name = self.name
46
47        phone = self.phone
48
49        email = self.email
50
51        created_by = self.created_by
52
53        created_at = self.created_at.isoformat()
54
55        updated_at = self.updated_at.isoformat()
56
57        field_dict: Dict[str, Any] = {}
58        field_dict.update(self.additional_properties)
59        field_dict.update(
60            {
61                "id": id,
62                "title": title,
63                "description": description,
64                "name": name,
65                "phone": phone,
66                "email": email,
67                "createdBy": created_by,
68                "createdAt": created_at,
69                "updatedAt": updated_at,
70            }
71        )
72
73        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 75    @classmethod
 76    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 77        d = src_dict.copy()
 78        id = d.pop("id")
 79
 80        title = d.pop("title")
 81
 82        description = d.pop("description")
 83
 84        name = d.pop("name")
 85
 86        phone = d.pop("phone")
 87
 88        email = d.pop("email")
 89
 90        created_by = d.pop("createdBy")
 91
 92        created_at = isoparse(d.pop("createdAt"))
 93
 94        updated_at = isoparse(d.pop("updatedAt"))
 95
 96        governance_contact = cls(
 97            id=id,
 98            title=title,
 99            description=description,
100            name=name,
101            phone=phone,
102            email=email,
103            created_by=created_by,
104            created_at=created_at,
105            updated_at=updated_at,
106        )
107
108        governance_contact.additional_properties = d
109        return governance_contact
additional_keys: List[str]
111    @property
112    def additional_keys(self) -> List[str]:
113        return list(self.additional_properties.keys())
class GovernanceExpiry:
 15@_attrs_define
 16class GovernanceExpiry:
 17    """
 18    Attributes:
 19        type (Union[Unset, GovernanceExpiryType]): The expiry conditions that can be applied to governance requirements.
 20        days (Union[None, Unset, int]): The number of days for a relative expiration
 21        date (Union[None, Unset, datetime.datetime]): The date for an absolute expiration
 22    """
 23
 24    type: Union[Unset, GovernanceExpiryType] = UNSET
 25    days: Union[None, Unset, int] = UNSET
 26    date: Union[None, Unset, datetime.datetime] = UNSET
 27    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 28
 29    def to_dict(self) -> Dict[str, Any]:
 30        type: Union[Unset, str] = UNSET
 31        if not isinstance(self.type, Unset):
 32            type = self.type.value
 33
 34        days: Union[None, Unset, int]
 35        if isinstance(self.days, Unset):
 36            days = UNSET
 37        else:
 38            days = self.days
 39
 40        date: Union[None, Unset, str]
 41        if isinstance(self.date, Unset):
 42            date = UNSET
 43        elif isinstance(self.date, datetime.datetime):
 44            date = self.date.isoformat()
 45        else:
 46            date = self.date
 47
 48        field_dict: Dict[str, Any] = {}
 49        field_dict.update(self.additional_properties)
 50        field_dict.update({})
 51        if type is not UNSET:
 52            field_dict["type"] = type
 53        if days is not UNSET:
 54            field_dict["days"] = days
 55        if date is not UNSET:
 56            field_dict["date"] = date
 57
 58        return field_dict
 59
 60    @classmethod
 61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 62        d = src_dict.copy()
 63        _type = d.pop("type", UNSET)
 64        type: Union[Unset, GovernanceExpiryType]
 65        if isinstance(_type, Unset):
 66            type = UNSET
 67        else:
 68            type = GovernanceExpiryType(_type)
 69
 70        def _parse_days(data: object) -> Union[None, Unset, int]:
 71            if data is None:
 72                return data
 73            if isinstance(data, Unset):
 74                return data
 75            return cast(Union[None, Unset, int], data)
 76
 77        days = _parse_days(d.pop("days", UNSET))
 78
 79        def _parse_date(data: object) -> Union[None, Unset, datetime.datetime]:
 80            if data is None:
 81                return data
 82            if isinstance(data, Unset):
 83                return data
 84            try:
 85                if not isinstance(data, str):
 86                    raise TypeError()
 87                date_type_0 = isoparse(data)
 88
 89                return date_type_0
 90            except:  # noqa: E722
 91                pass
 92            return cast(Union[None, Unset, datetime.datetime], data)
 93
 94        date = _parse_date(d.pop("date", UNSET))
 95
 96        governance_expiry = cls(
 97            type=type,
 98            days=days,
 99            date=date,
100        )
101
102        governance_expiry.additional_properties = d
103        return governance_expiry
104
105    @property
106    def additional_keys(self) -> List[str]:
107        return list(self.additional_properties.keys())
Attributes:
  • type (Union[Unset, GovernanceExpiryType]): The expiry conditions that can be applied to governance requirements.
  • days (Union[None, Unset, int]): The number of days for a relative expiration
  • date (Union[None, Unset, datetime.datetime]): The date for an absolute expiration
GovernanceExpiry( type: Union[cirro_api_client.v1.types.Unset, GovernanceExpiryType] = <cirro_api_client.v1.types.Unset object>, days: Union[NoneType, cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, type=attr_dict['type'].default, days=attr_dict['days'].default, date=attr_dict['date'].default):
27    self.type = type
28    self.days = days
29    self.date = date
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceExpiry.

type: Union[cirro_api_client.v1.types.Unset, GovernanceExpiryType]
days: Union[NoneType, cirro_api_client.v1.types.Unset, int]
date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
29    def to_dict(self) -> Dict[str, Any]:
30        type: Union[Unset, str] = UNSET
31        if not isinstance(self.type, Unset):
32            type = self.type.value
33
34        days: Union[None, Unset, int]
35        if isinstance(self.days, Unset):
36            days = UNSET
37        else:
38            days = self.days
39
40        date: Union[None, Unset, str]
41        if isinstance(self.date, Unset):
42            date = UNSET
43        elif isinstance(self.date, datetime.datetime):
44            date = self.date.isoformat()
45        else:
46            date = self.date
47
48        field_dict: Dict[str, Any] = {}
49        field_dict.update(self.additional_properties)
50        field_dict.update({})
51        if type is not UNSET:
52            field_dict["type"] = type
53        if days is not UNSET:
54            field_dict["days"] = days
55        if date is not UNSET:
56            field_dict["date"] = date
57
58        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 60    @classmethod
 61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 62        d = src_dict.copy()
 63        _type = d.pop("type", UNSET)
 64        type: Union[Unset, GovernanceExpiryType]
 65        if isinstance(_type, Unset):
 66            type = UNSET
 67        else:
 68            type = GovernanceExpiryType(_type)
 69
 70        def _parse_days(data: object) -> Union[None, Unset, int]:
 71            if data is None:
 72                return data
 73            if isinstance(data, Unset):
 74                return data
 75            return cast(Union[None, Unset, int], data)
 76
 77        days = _parse_days(d.pop("days", UNSET))
 78
 79        def _parse_date(data: object) -> Union[None, Unset, datetime.datetime]:
 80            if data is None:
 81                return data
 82            if isinstance(data, Unset):
 83                return data
 84            try:
 85                if not isinstance(data, str):
 86                    raise TypeError()
 87                date_type_0 = isoparse(data)
 88
 89                return date_type_0
 90            except:  # noqa: E722
 91                pass
 92            return cast(Union[None, Unset, datetime.datetime], data)
 93
 94        date = _parse_date(d.pop("date", UNSET))
 95
 96        governance_expiry = cls(
 97            type=type,
 98            days=days,
 99            date=date,
100        )
101
102        governance_expiry.additional_properties = d
103        return governance_expiry
additional_keys: List[str]
105    @property
106    def additional_keys(self) -> List[str]:
107        return list(self.additional_properties.keys())
class GovernanceExpiryType(builtins.str, enum.Enum):
 5class GovernanceExpiryType(str, Enum):
 6    ABSOLUTE = "ABSOLUTE"
 7    NONE = "NONE"
 8    RELATIVE_COMPLETION = "RELATIVE_COMPLETION"
 9    RELATIVE_ENACTMENT = "RELATIVE_ENACTMENT"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

ABSOLUTE = <GovernanceExpiryType.ABSOLUTE: 'ABSOLUTE'>
NONE = <GovernanceExpiryType.NONE: 'NONE'>
RELATIVE_COMPLETION = <GovernanceExpiryType.RELATIVE_COMPLETION: 'RELATIVE_COMPLETION'>
RELATIVE_ENACTMENT = <GovernanceExpiryType.RELATIVE_ENACTMENT: 'RELATIVE_ENACTMENT'>
UNKNOWN = <GovernanceExpiryType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class GovernanceFile:
13@_attrs_define
14class GovernanceFile:
15    """
16    Attributes:
17        name (Union[Unset, str]): The title of the resource visible to users
18        description (Union[Unset, str]): A description of the resource visible to users
19        src (Union[Unset, str]): The file name without path or the full link path
20        type (Union[Unset, GovernanceFileType]): The options for supplementals for governance requirements
21    """
22
23    name: Union[Unset, str] = UNSET
24    description: Union[Unset, str] = UNSET
25    src: Union[Unset, str] = UNSET
26    type: Union[Unset, GovernanceFileType] = UNSET
27    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
28
29    def to_dict(self) -> Dict[str, Any]:
30        name = self.name
31
32        description = self.description
33
34        src = self.src
35
36        type: Union[Unset, str] = UNSET
37        if not isinstance(self.type, Unset):
38            type = self.type.value
39
40        field_dict: Dict[str, Any] = {}
41        field_dict.update(self.additional_properties)
42        field_dict.update({})
43        if name is not UNSET:
44            field_dict["name"] = name
45        if description is not UNSET:
46            field_dict["description"] = description
47        if src is not UNSET:
48            field_dict["src"] = src
49        if type is not UNSET:
50            field_dict["type"] = type
51
52        return field_dict
53
54    @classmethod
55    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
56        d = src_dict.copy()
57        name = d.pop("name", UNSET)
58
59        description = d.pop("description", UNSET)
60
61        src = d.pop("src", UNSET)
62
63        _type = d.pop("type", UNSET)
64        type: Union[Unset, GovernanceFileType]
65        if isinstance(_type, Unset):
66            type = UNSET
67        else:
68            type = GovernanceFileType(_type)
69
70        governance_file = cls(
71            name=name,
72            description=description,
73            src=src,
74            type=type,
75        )
76
77        governance_file.additional_properties = d
78        return governance_file
79
80    @property
81    def additional_keys(self) -> List[str]:
82        return list(self.additional_properties.keys())
Attributes:
  • name (Union[Unset, str]): The title of the resource visible to users
  • description (Union[Unset, str]): A description of the resource visible to users
  • src (Union[Unset, str]): The file name without path or the full link path
  • type (Union[Unset, GovernanceFileType]): The options for supplementals for governance requirements
GovernanceFile( name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, description: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, src: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, type: Union[cirro_api_client.v1.types.Unset, GovernanceFileType] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, name=attr_dict['name'].default, description=attr_dict['description'].default, src=attr_dict['src'].default, type=attr_dict['type'].default):
28    self.name = name
29    self.description = description
30    self.src = src
31    self.type = type
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceFile.

name: Union[cirro_api_client.v1.types.Unset, str]
description: Union[cirro_api_client.v1.types.Unset, str]
src: Union[cirro_api_client.v1.types.Unset, str]
type: Union[cirro_api_client.v1.types.Unset, GovernanceFileType]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
29    def to_dict(self) -> Dict[str, Any]:
30        name = self.name
31
32        description = self.description
33
34        src = self.src
35
36        type: Union[Unset, str] = UNSET
37        if not isinstance(self.type, Unset):
38            type = self.type.value
39
40        field_dict: Dict[str, Any] = {}
41        field_dict.update(self.additional_properties)
42        field_dict.update({})
43        if name is not UNSET:
44            field_dict["name"] = name
45        if description is not UNSET:
46            field_dict["description"] = description
47        if src is not UNSET:
48            field_dict["src"] = src
49        if type is not UNSET:
50            field_dict["type"] = type
51
52        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
54    @classmethod
55    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
56        d = src_dict.copy()
57        name = d.pop("name", UNSET)
58
59        description = d.pop("description", UNSET)
60
61        src = d.pop("src", UNSET)
62
63        _type = d.pop("type", UNSET)
64        type: Union[Unset, GovernanceFileType]
65        if isinstance(_type, Unset):
66            type = UNSET
67        else:
68            type = GovernanceFileType(_type)
69
70        governance_file = cls(
71            name=name,
72            description=description,
73            src=src,
74            type=type,
75        )
76
77        governance_file.additional_properties = d
78        return governance_file
additional_keys: List[str]
80    @property
81    def additional_keys(self) -> List[str]:
82        return list(self.additional_properties.keys())
class GovernanceFileAccessRequest:
 13@_attrs_define
 14class GovernanceFileAccessRequest:
 15    """
 16    Attributes:
 17        access_type (GovernanceAccessType):
 18        fulfillment_id (Union[None, Unset, str]):
 19        project_id (Union[None, Unset, str]):
 20        token_lifetime_hours (Union[None, Unset, int]):
 21    """
 22
 23    access_type: GovernanceAccessType
 24    fulfillment_id: Union[None, Unset, str] = UNSET
 25    project_id: Union[None, Unset, str] = UNSET
 26    token_lifetime_hours: Union[None, Unset, int] = UNSET
 27    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 28
 29    def to_dict(self) -> Dict[str, Any]:
 30        access_type = self.access_type.value
 31
 32        fulfillment_id: Union[None, Unset, str]
 33        if isinstance(self.fulfillment_id, Unset):
 34            fulfillment_id = UNSET
 35        else:
 36            fulfillment_id = self.fulfillment_id
 37
 38        project_id: Union[None, Unset, str]
 39        if isinstance(self.project_id, Unset):
 40            project_id = UNSET
 41        else:
 42            project_id = self.project_id
 43
 44        token_lifetime_hours: Union[None, Unset, int]
 45        if isinstance(self.token_lifetime_hours, Unset):
 46            token_lifetime_hours = UNSET
 47        else:
 48            token_lifetime_hours = self.token_lifetime_hours
 49
 50        field_dict: Dict[str, Any] = {}
 51        field_dict.update(self.additional_properties)
 52        field_dict.update(
 53            {
 54                "accessType": access_type,
 55            }
 56        )
 57        if fulfillment_id is not UNSET:
 58            field_dict["fulfillmentId"] = fulfillment_id
 59        if project_id is not UNSET:
 60            field_dict["projectId"] = project_id
 61        if token_lifetime_hours is not UNSET:
 62            field_dict["tokenLifetimeHours"] = token_lifetime_hours
 63
 64        return field_dict
 65
 66    @classmethod
 67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 68        d = src_dict.copy()
 69        access_type = GovernanceAccessType(d.pop("accessType"))
 70
 71        def _parse_fulfillment_id(data: object) -> Union[None, Unset, str]:
 72            if data is None:
 73                return data
 74            if isinstance(data, Unset):
 75                return data
 76            return cast(Union[None, Unset, str], data)
 77
 78        fulfillment_id = _parse_fulfillment_id(d.pop("fulfillmentId", UNSET))
 79
 80        def _parse_project_id(data: object) -> Union[None, Unset, str]:
 81            if data is None:
 82                return data
 83            if isinstance(data, Unset):
 84                return data
 85            return cast(Union[None, Unset, str], data)
 86
 87        project_id = _parse_project_id(d.pop("projectId", UNSET))
 88
 89        def _parse_token_lifetime_hours(data: object) -> Union[None, Unset, int]:
 90            if data is None:
 91                return data
 92            if isinstance(data, Unset):
 93                return data
 94            return cast(Union[None, Unset, int], data)
 95
 96        token_lifetime_hours = _parse_token_lifetime_hours(d.pop("tokenLifetimeHours", UNSET))
 97
 98        governance_file_access_request = cls(
 99            access_type=access_type,
100            fulfillment_id=fulfillment_id,
101            project_id=project_id,
102            token_lifetime_hours=token_lifetime_hours,
103        )
104
105        governance_file_access_request.additional_properties = d
106        return governance_file_access_request
107
108    @property
109    def additional_keys(self) -> List[str]:
110        return list(self.additional_properties.keys())
Attributes:
  • access_type (GovernanceAccessType):
  • fulfillment_id (Union[None, Unset, str]):
  • project_id (Union[None, Unset, str]):
  • token_lifetime_hours (Union[None, Unset, int]):
GovernanceFileAccessRequest( access_type: GovernanceAccessType, fulfillment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, project_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, token_lifetime_hours: Union[NoneType, cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, access_type, fulfillment_id=attr_dict['fulfillment_id'].default, project_id=attr_dict['project_id'].default, token_lifetime_hours=attr_dict['token_lifetime_hours'].default):
28    self.access_type = access_type
29    self.fulfillment_id = fulfillment_id
30    self.project_id = project_id
31    self.token_lifetime_hours = token_lifetime_hours
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceFileAccessRequest.

access_type: GovernanceAccessType
fulfillment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
project_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
token_lifetime_hours: Union[NoneType, cirro_api_client.v1.types.Unset, int]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
29    def to_dict(self) -> Dict[str, Any]:
30        access_type = self.access_type.value
31
32        fulfillment_id: Union[None, Unset, str]
33        if isinstance(self.fulfillment_id, Unset):
34            fulfillment_id = UNSET
35        else:
36            fulfillment_id = self.fulfillment_id
37
38        project_id: Union[None, Unset, str]
39        if isinstance(self.project_id, Unset):
40            project_id = UNSET
41        else:
42            project_id = self.project_id
43
44        token_lifetime_hours: Union[None, Unset, int]
45        if isinstance(self.token_lifetime_hours, Unset):
46            token_lifetime_hours = UNSET
47        else:
48            token_lifetime_hours = self.token_lifetime_hours
49
50        field_dict: Dict[str, Any] = {}
51        field_dict.update(self.additional_properties)
52        field_dict.update(
53            {
54                "accessType": access_type,
55            }
56        )
57        if fulfillment_id is not UNSET:
58            field_dict["fulfillmentId"] = fulfillment_id
59        if project_id is not UNSET:
60            field_dict["projectId"] = project_id
61        if token_lifetime_hours is not UNSET:
62            field_dict["tokenLifetimeHours"] = token_lifetime_hours
63
64        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 66    @classmethod
 67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 68        d = src_dict.copy()
 69        access_type = GovernanceAccessType(d.pop("accessType"))
 70
 71        def _parse_fulfillment_id(data: object) -> Union[None, Unset, str]:
 72            if data is None:
 73                return data
 74            if isinstance(data, Unset):
 75                return data
 76            return cast(Union[None, Unset, str], data)
 77
 78        fulfillment_id = _parse_fulfillment_id(d.pop("fulfillmentId", UNSET))
 79
 80        def _parse_project_id(data: object) -> Union[None, Unset, str]:
 81            if data is None:
 82                return data
 83            if isinstance(data, Unset):
 84                return data
 85            return cast(Union[None, Unset, str], data)
 86
 87        project_id = _parse_project_id(d.pop("projectId", UNSET))
 88
 89        def _parse_token_lifetime_hours(data: object) -> Union[None, Unset, int]:
 90            if data is None:
 91                return data
 92            if isinstance(data, Unset):
 93                return data
 94            return cast(Union[None, Unset, int], data)
 95
 96        token_lifetime_hours = _parse_token_lifetime_hours(d.pop("tokenLifetimeHours", UNSET))
 97
 98        governance_file_access_request = cls(
 99            access_type=access_type,
100            fulfillment_id=fulfillment_id,
101            project_id=project_id,
102            token_lifetime_hours=token_lifetime_hours,
103        )
104
105        governance_file_access_request.additional_properties = d
106        return governance_file_access_request
additional_keys: List[str]
108    @property
109    def additional_keys(self) -> List[str]:
110        return list(self.additional_properties.keys())
class GovernanceFileType(builtins.str, enum.Enum):
 5class GovernanceFileType(str, Enum):
 6    FILE = "FILE"
 7    LINK = "LINK"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

FILE = <GovernanceFileType.FILE: 'FILE'>
UNKNOWN = <GovernanceFileType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class GovernanceRequirement:
 22@_attrs_define
 23class GovernanceRequirement:
 24    """
 25    Attributes:
 26        id (str): The unique identifier for the requirement
 27        name (str):  The name of the requirement
 28        description (str): A brief description of the requirement
 29        type (GovernanceType): The types of governance requirements that can be enforced
 30        path (str): S3 prefix where files for the requirement are saved
 31        scope (GovernanceScope): The levels at which governance requirements can be enforced
 32        contact_ids (List[str]): The IDs of governance contacts assigned to the requirement.
 33        expiration (GovernanceExpiry):
 34        created_by (str):
 35        created_at (datetime.datetime):
 36        updated_at (datetime.datetime):
 37        project_id (Union[Unset, str]): The project ID if the requirement is project scope
 38        acceptance (Union[GovernanceScope, None, Unset]): Specifies the level at which it is satisfied
 39        enactment_date (Union[None, Unset, datetime.datetime]): The date of enactment for a requirement
 40        supplemental_docs (Union[List['GovernanceFile'], None, Unset]): Optional files with extra information, e.g.
 41            templates for documents, links, etc
 42        file (Union['GovernanceFile', None, Unset]):
 43        authorship (Union[GovernanceScope, None, Unset]): Who needs to supply the agreement document
 44        verification_method (Union[GovernanceTrainingVerification, None, Unset]): The value indicating how the
 45            completion of the training is verified.
 46    """
 47
 48    id: str
 49    name: str
 50    description: str
 51    type: GovernanceType
 52    path: str
 53    scope: GovernanceScope
 54    contact_ids: List[str]
 55    expiration: "GovernanceExpiry"
 56    created_by: str
 57    created_at: datetime.datetime
 58    updated_at: datetime.datetime
 59    project_id: Union[Unset, str] = UNSET
 60    acceptance: Union[GovernanceScope, None, Unset] = UNSET
 61    enactment_date: Union[None, Unset, datetime.datetime] = UNSET
 62    supplemental_docs: Union[List["GovernanceFile"], None, Unset] = UNSET
 63    file: Union["GovernanceFile", None, Unset] = UNSET
 64    authorship: Union[GovernanceScope, None, Unset] = UNSET
 65    verification_method: Union[GovernanceTrainingVerification, None, Unset] = UNSET
 66    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 67
 68    def to_dict(self) -> Dict[str, Any]:
 69        from ..models.governance_file import GovernanceFile
 70
 71        id = self.id
 72
 73        name = self.name
 74
 75        description = self.description
 76
 77        type = self.type.value
 78
 79        path = self.path
 80
 81        scope = self.scope.value
 82
 83        contact_ids = self.contact_ids
 84
 85        expiration = self.expiration.to_dict()
 86
 87        created_by = self.created_by
 88
 89        created_at = self.created_at.isoformat()
 90
 91        updated_at = self.updated_at.isoformat()
 92
 93        project_id = self.project_id
 94
 95        acceptance: Union[None, Unset, str]
 96        if isinstance(self.acceptance, Unset):
 97            acceptance = UNSET
 98        elif isinstance(self.acceptance, GovernanceScope):
 99            acceptance = self.acceptance.value
100        else:
101            acceptance = self.acceptance
102
103        enactment_date: Union[None, Unset, str]
104        if isinstance(self.enactment_date, Unset):
105            enactment_date = UNSET
106        elif isinstance(self.enactment_date, datetime.datetime):
107            enactment_date = self.enactment_date.isoformat()
108        else:
109            enactment_date = self.enactment_date
110
111        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
112        if isinstance(self.supplemental_docs, Unset):
113            supplemental_docs = UNSET
114        elif isinstance(self.supplemental_docs, list):
115            supplemental_docs = []
116            for supplemental_docs_type_0_item_data in self.supplemental_docs:
117                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
118                supplemental_docs.append(supplemental_docs_type_0_item)
119
120        else:
121            supplemental_docs = self.supplemental_docs
122
123        file: Union[Dict[str, Any], None, Unset]
124        if isinstance(self.file, Unset):
125            file = UNSET
126        elif isinstance(self.file, GovernanceFile):
127            file = self.file.to_dict()
128        else:
129            file = self.file
130
131        authorship: Union[None, Unset, str]
132        if isinstance(self.authorship, Unset):
133            authorship = UNSET
134        elif isinstance(self.authorship, GovernanceScope):
135            authorship = self.authorship.value
136        else:
137            authorship = self.authorship
138
139        verification_method: Union[None, Unset, str]
140        if isinstance(self.verification_method, Unset):
141            verification_method = UNSET
142        elif isinstance(self.verification_method, GovernanceTrainingVerification):
143            verification_method = self.verification_method.value
144        else:
145            verification_method = self.verification_method
146
147        field_dict: Dict[str, Any] = {}
148        field_dict.update(self.additional_properties)
149        field_dict.update(
150            {
151                "id": id,
152                "name": name,
153                "description": description,
154                "type": type,
155                "path": path,
156                "scope": scope,
157                "contactIds": contact_ids,
158                "expiration": expiration,
159                "createdBy": created_by,
160                "createdAt": created_at,
161                "updatedAt": updated_at,
162            }
163        )
164        if project_id is not UNSET:
165            field_dict["projectId"] = project_id
166        if acceptance is not UNSET:
167            field_dict["acceptance"] = acceptance
168        if enactment_date is not UNSET:
169            field_dict["enactmentDate"] = enactment_date
170        if supplemental_docs is not UNSET:
171            field_dict["supplementalDocs"] = supplemental_docs
172        if file is not UNSET:
173            field_dict["file"] = file
174        if authorship is not UNSET:
175            field_dict["authorship"] = authorship
176        if verification_method is not UNSET:
177            field_dict["verificationMethod"] = verification_method
178
179        return field_dict
180
181    @classmethod
182    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
183        from ..models.governance_expiry import GovernanceExpiry
184        from ..models.governance_file import GovernanceFile
185
186        d = src_dict.copy()
187        id = d.pop("id")
188
189        name = d.pop("name")
190
191        description = d.pop("description")
192
193        type = GovernanceType(d.pop("type"))
194
195        path = d.pop("path")
196
197        scope = GovernanceScope(d.pop("scope"))
198
199        contact_ids = cast(List[str], d.pop("contactIds"))
200
201        expiration = GovernanceExpiry.from_dict(d.pop("expiration"))
202
203        created_by = d.pop("createdBy")
204
205        created_at = isoparse(d.pop("createdAt"))
206
207        updated_at = isoparse(d.pop("updatedAt"))
208
209        project_id = d.pop("projectId", UNSET)
210
211        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
212            if data is None:
213                return data
214            if isinstance(data, Unset):
215                return data
216            try:
217                if not isinstance(data, str):
218                    raise TypeError()
219                acceptance_type_1 = GovernanceScope(data)
220
221                return acceptance_type_1
222            except:  # noqa: E722
223                pass
224            return cast(Union[GovernanceScope, None, Unset], data)
225
226        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
227
228        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
229            if data is None:
230                return data
231            if isinstance(data, Unset):
232                return data
233            try:
234                if not isinstance(data, str):
235                    raise TypeError()
236                enactment_date_type_0 = isoparse(data)
237
238                return enactment_date_type_0
239            except:  # noqa: E722
240                pass
241            return cast(Union[None, Unset, datetime.datetime], data)
242
243        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
244
245        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
246            if data is None:
247                return data
248            if isinstance(data, Unset):
249                return data
250            try:
251                if not isinstance(data, list):
252                    raise TypeError()
253                supplemental_docs_type_0 = []
254                _supplemental_docs_type_0 = data
255                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
256                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
257
258                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
259
260                return supplemental_docs_type_0
261            except:  # noqa: E722
262                pass
263            return cast(Union[List["GovernanceFile"], None, Unset], data)
264
265        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
266
267        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
268            if data is None:
269                return data
270            if isinstance(data, Unset):
271                return data
272            try:
273                if not isinstance(data, dict):
274                    raise TypeError()
275                file_type_1 = GovernanceFile.from_dict(data)
276
277                return file_type_1
278            except:  # noqa: E722
279                pass
280            return cast(Union["GovernanceFile", None, Unset], data)
281
282        file = _parse_file(d.pop("file", UNSET))
283
284        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
285            if data is None:
286                return data
287            if isinstance(data, Unset):
288                return data
289            try:
290                if not isinstance(data, str):
291                    raise TypeError()
292                authorship_type_1 = GovernanceScope(data)
293
294                return authorship_type_1
295            except:  # noqa: E722
296                pass
297            return cast(Union[GovernanceScope, None, Unset], data)
298
299        authorship = _parse_authorship(d.pop("authorship", UNSET))
300
301        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
302            if data is None:
303                return data
304            if isinstance(data, Unset):
305                return data
306            try:
307                if not isinstance(data, str):
308                    raise TypeError()
309                verification_method_type_1 = GovernanceTrainingVerification(data)
310
311                return verification_method_type_1
312            except:  # noqa: E722
313                pass
314            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
315
316        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
317
318        governance_requirement = cls(
319            id=id,
320            name=name,
321            description=description,
322            type=type,
323            path=path,
324            scope=scope,
325            contact_ids=contact_ids,
326            expiration=expiration,
327            created_by=created_by,
328            created_at=created_at,
329            updated_at=updated_at,
330            project_id=project_id,
331            acceptance=acceptance,
332            enactment_date=enactment_date,
333            supplemental_docs=supplemental_docs,
334            file=file,
335            authorship=authorship,
336            verification_method=verification_method,
337        )
338
339        governance_requirement.additional_properties = d
340        return governance_requirement
341
342    @property
343    def additional_keys(self) -> List[str]:
344        return list(self.additional_properties.keys())
Attributes:
  • id (str): The unique identifier for the requirement
  • name (str): The name of the requirement
  • description (str): A brief description of the requirement
  • type (GovernanceType): The types of governance requirements that can be enforced
  • path (str): S3 prefix where files for the requirement are saved
  • scope (GovernanceScope): The levels at which governance requirements can be enforced
  • contact_ids (List[str]): The IDs of governance contacts assigned to the requirement.
  • expiration (GovernanceExpiry):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
  • project_id (Union[Unset, str]): The project ID if the requirement is project scope
  • acceptance (Union[GovernanceScope, None, Unset]): Specifies the level at which it is satisfied
  • enactment_date (Union[None, Unset, datetime.datetime]): The date of enactment for a requirement
  • supplemental_docs (Union[List['GovernanceFile'], None, Unset]): Optional files with extra information, e.g. templates for documents, links, etc
  • file (Union['GovernanceFile', None, Unset]):
  • authorship (Union[GovernanceScope, None, Unset]): Who needs to supply the agreement document
  • verification_method (Union[GovernanceTrainingVerification, None, Unset]): The value indicating how the completion of the training is verified.
GovernanceRequirement( id: str, name: str, description: str, type: GovernanceType, path: str, scope: GovernanceScope, contact_ids: List[str], expiration: GovernanceExpiry, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime, project_id: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
41def __init__(self, id, name, description, type, path, scope, contact_ids, expiration, created_by, created_at, updated_at, project_id=attr_dict['project_id'].default, acceptance=attr_dict['acceptance'].default, enactment_date=attr_dict['enactment_date'].default, supplemental_docs=attr_dict['supplemental_docs'].default, file=attr_dict['file'].default, authorship=attr_dict['authorship'].default, verification_method=attr_dict['verification_method'].default):
42    self.id = id
43    self.name = name
44    self.description = description
45    self.type = type
46    self.path = path
47    self.scope = scope
48    self.contact_ids = contact_ids
49    self.expiration = expiration
50    self.created_by = created_by
51    self.created_at = created_at
52    self.updated_at = updated_at
53    self.project_id = project_id
54    self.acceptance = acceptance
55    self.enactment_date = enactment_date
56    self.supplemental_docs = supplemental_docs
57    self.file = file
58    self.authorship = authorship
59    self.verification_method = verification_method
60    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class GovernanceRequirement.

id: str
name: str
description: str
path: str
contact_ids: List[str]
expiration: GovernanceExpiry
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
project_id: Union[cirro_api_client.v1.types.Unset, str]
acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset]
file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset]
authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 68    def to_dict(self) -> Dict[str, Any]:
 69        from ..models.governance_file import GovernanceFile
 70
 71        id = self.id
 72
 73        name = self.name
 74
 75        description = self.description
 76
 77        type = self.type.value
 78
 79        path = self.path
 80
 81        scope = self.scope.value
 82
 83        contact_ids = self.contact_ids
 84
 85        expiration = self.expiration.to_dict()
 86
 87        created_by = self.created_by
 88
 89        created_at = self.created_at.isoformat()
 90
 91        updated_at = self.updated_at.isoformat()
 92
 93        project_id = self.project_id
 94
 95        acceptance: Union[None, Unset, str]
 96        if isinstance(self.acceptance, Unset):
 97            acceptance = UNSET
 98        elif isinstance(self.acceptance, GovernanceScope):
 99            acceptance = self.acceptance.value
100        else:
101            acceptance = self.acceptance
102
103        enactment_date: Union[None, Unset, str]
104        if isinstance(self.enactment_date, Unset):
105            enactment_date = UNSET
106        elif isinstance(self.enactment_date, datetime.datetime):
107            enactment_date = self.enactment_date.isoformat()
108        else:
109            enactment_date = self.enactment_date
110
111        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
112        if isinstance(self.supplemental_docs, Unset):
113            supplemental_docs = UNSET
114        elif isinstance(self.supplemental_docs, list):
115            supplemental_docs = []
116            for supplemental_docs_type_0_item_data in self.supplemental_docs:
117                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
118                supplemental_docs.append(supplemental_docs_type_0_item)
119
120        else:
121            supplemental_docs = self.supplemental_docs
122
123        file: Union[Dict[str, Any], None, Unset]
124        if isinstance(self.file, Unset):
125            file = UNSET
126        elif isinstance(self.file, GovernanceFile):
127            file = self.file.to_dict()
128        else:
129            file = self.file
130
131        authorship: Union[None, Unset, str]
132        if isinstance(self.authorship, Unset):
133            authorship = UNSET
134        elif isinstance(self.authorship, GovernanceScope):
135            authorship = self.authorship.value
136        else:
137            authorship = self.authorship
138
139        verification_method: Union[None, Unset, str]
140        if isinstance(self.verification_method, Unset):
141            verification_method = UNSET
142        elif isinstance(self.verification_method, GovernanceTrainingVerification):
143            verification_method = self.verification_method.value
144        else:
145            verification_method = self.verification_method
146
147        field_dict: Dict[str, Any] = {}
148        field_dict.update(self.additional_properties)
149        field_dict.update(
150            {
151                "id": id,
152                "name": name,
153                "description": description,
154                "type": type,
155                "path": path,
156                "scope": scope,
157                "contactIds": contact_ids,
158                "expiration": expiration,
159                "createdBy": created_by,
160                "createdAt": created_at,
161                "updatedAt": updated_at,
162            }
163        )
164        if project_id is not UNSET:
165            field_dict["projectId"] = project_id
166        if acceptance is not UNSET:
167            field_dict["acceptance"] = acceptance
168        if enactment_date is not UNSET:
169            field_dict["enactmentDate"] = enactment_date
170        if supplemental_docs is not UNSET:
171            field_dict["supplementalDocs"] = supplemental_docs
172        if file is not UNSET:
173            field_dict["file"] = file
174        if authorship is not UNSET:
175            field_dict["authorship"] = authorship
176        if verification_method is not UNSET:
177            field_dict["verificationMethod"] = verification_method
178
179        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
181    @classmethod
182    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
183        from ..models.governance_expiry import GovernanceExpiry
184        from ..models.governance_file import GovernanceFile
185
186        d = src_dict.copy()
187        id = d.pop("id")
188
189        name = d.pop("name")
190
191        description = d.pop("description")
192
193        type = GovernanceType(d.pop("type"))
194
195        path = d.pop("path")
196
197        scope = GovernanceScope(d.pop("scope"))
198
199        contact_ids = cast(List[str], d.pop("contactIds"))
200
201        expiration = GovernanceExpiry.from_dict(d.pop("expiration"))
202
203        created_by = d.pop("createdBy")
204
205        created_at = isoparse(d.pop("createdAt"))
206
207        updated_at = isoparse(d.pop("updatedAt"))
208
209        project_id = d.pop("projectId", UNSET)
210
211        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
212            if data is None:
213                return data
214            if isinstance(data, Unset):
215                return data
216            try:
217                if not isinstance(data, str):
218                    raise TypeError()
219                acceptance_type_1 = GovernanceScope(data)
220
221                return acceptance_type_1
222            except:  # noqa: E722
223                pass
224            return cast(Union[GovernanceScope, None, Unset], data)
225
226        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
227
228        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
229            if data is None:
230                return data
231            if isinstance(data, Unset):
232                return data
233            try:
234                if not isinstance(data, str):
235                    raise TypeError()
236                enactment_date_type_0 = isoparse(data)
237
238                return enactment_date_type_0
239            except:  # noqa: E722
240                pass
241            return cast(Union[None, Unset, datetime.datetime], data)
242
243        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
244
245        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
246            if data is None:
247                return data
248            if isinstance(data, Unset):
249                return data
250            try:
251                if not isinstance(data, list):
252                    raise TypeError()
253                supplemental_docs_type_0 = []
254                _supplemental_docs_type_0 = data
255                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
256                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
257
258                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
259
260                return supplemental_docs_type_0
261            except:  # noqa: E722
262                pass
263            return cast(Union[List["GovernanceFile"], None, Unset], data)
264
265        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
266
267        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
268            if data is None:
269                return data
270            if isinstance(data, Unset):
271                return data
272            try:
273                if not isinstance(data, dict):
274                    raise TypeError()
275                file_type_1 = GovernanceFile.from_dict(data)
276
277                return file_type_1
278            except:  # noqa: E722
279                pass
280            return cast(Union["GovernanceFile", None, Unset], data)
281
282        file = _parse_file(d.pop("file", UNSET))
283
284        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
285            if data is None:
286                return data
287            if isinstance(data, Unset):
288                return data
289            try:
290                if not isinstance(data, str):
291                    raise TypeError()
292                authorship_type_1 = GovernanceScope(data)
293
294                return authorship_type_1
295            except:  # noqa: E722
296                pass
297            return cast(Union[GovernanceScope, None, Unset], data)
298
299        authorship = _parse_authorship(d.pop("authorship", UNSET))
300
301        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
302            if data is None:
303                return data
304            if isinstance(data, Unset):
305                return data
306            try:
307                if not isinstance(data, str):
308                    raise TypeError()
309                verification_method_type_1 = GovernanceTrainingVerification(data)
310
311                return verification_method_type_1
312            except:  # noqa: E722
313                pass
314            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
315
316        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
317
318        governance_requirement = cls(
319            id=id,
320            name=name,
321            description=description,
322            type=type,
323            path=path,
324            scope=scope,
325            contact_ids=contact_ids,
326            expiration=expiration,
327            created_by=created_by,
328            created_at=created_at,
329            updated_at=updated_at,
330            project_id=project_id,
331            acceptance=acceptance,
332            enactment_date=enactment_date,
333            supplemental_docs=supplemental_docs,
334            file=file,
335            authorship=authorship,
336            verification_method=verification_method,
337        )
338
339        governance_requirement.additional_properties = d
340        return governance_requirement
additional_keys: List[str]
342    @property
343    def additional_keys(self) -> List[str]:
344        return list(self.additional_properties.keys())
class GovernanceScope(builtins.str, enum.Enum):
 5class GovernanceScope(str, Enum):
 6    PROJECT = "PROJECT"
 7    TENANT = "TENANT"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

PROJECT = <GovernanceScope.PROJECT: 'PROJECT'>
TENANT = <GovernanceScope.TENANT: 'TENANT'>
UNKNOWN = <GovernanceScope.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class GovernanceTrainingVerification(builtins.str, enum.Enum):
 5class GovernanceTrainingVerification(str, Enum):
 6    CERTIFICATE = "CERTIFICATE"
 7    SELF = "SELF"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

CERTIFICATE = <GovernanceTrainingVerification.CERTIFICATE: 'CERTIFICATE'>

This is a fallback value for when the value is not known, do not use this value when making requests

class GovernanceType(builtins.str, enum.Enum):
 5class GovernanceType(str, Enum):
 6    AGREEMENT = "AGREEMENT"
 7    DOCUMENT = "DOCUMENT"
 8    TRAINING = "TRAINING"
 9    UNKNOWN = "UNKNOWN"
10    """ This is a fallback value for when the value is not known, do not use this value when making requests """
11
12    def __str__(self) -> str:
13        return str(self.value)
14
15    @classmethod
16    def _missing_(cls, number):
17        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

AGREEMENT = <GovernanceType.AGREEMENT: 'AGREEMENT'>
DOCUMENT = <GovernanceType.DOCUMENT: 'DOCUMENT'>
TRAINING = <GovernanceType.TRAINING: 'TRAINING'>
UNKNOWN = <GovernanceType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class ImportDataRequest:
 16@_attrs_define
 17class ImportDataRequest:
 18    """
 19    Attributes:
 20        name (str): Name of the dataset
 21        public_ids (List[str]):
 22        description (Union[Unset, str]): Description of the dataset
 23        tags (Union[List['Tag'], None, Unset]): List of tags to apply to the dataset
 24    """
 25
 26    name: str
 27    public_ids: List[str]
 28    description: Union[Unset, str] = UNSET
 29    tags: Union[List["Tag"], None, Unset] = UNSET
 30    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 31
 32    def to_dict(self) -> Dict[str, Any]:
 33        name = self.name
 34
 35        public_ids = self.public_ids
 36
 37        description = self.description
 38
 39        tags: Union[List[Dict[str, Any]], None, Unset]
 40        if isinstance(self.tags, Unset):
 41            tags = UNSET
 42        elif isinstance(self.tags, list):
 43            tags = []
 44            for tags_type_0_item_data in self.tags:
 45                tags_type_0_item = tags_type_0_item_data.to_dict()
 46                tags.append(tags_type_0_item)
 47
 48        else:
 49            tags = self.tags
 50
 51        field_dict: Dict[str, Any] = {}
 52        field_dict.update(self.additional_properties)
 53        field_dict.update(
 54            {
 55                "name": name,
 56                "publicIds": public_ids,
 57            }
 58        )
 59        if description is not UNSET:
 60            field_dict["description"] = description
 61        if tags is not UNSET:
 62            field_dict["tags"] = tags
 63
 64        return field_dict
 65
 66    @classmethod
 67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 68        from ..models.tag import Tag
 69
 70        d = src_dict.copy()
 71        name = d.pop("name")
 72
 73        public_ids = cast(List[str], d.pop("publicIds"))
 74
 75        description = d.pop("description", UNSET)
 76
 77        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
 78            if data is None:
 79                return data
 80            if isinstance(data, Unset):
 81                return data
 82            try:
 83                if not isinstance(data, list):
 84                    raise TypeError()
 85                tags_type_0 = []
 86                _tags_type_0 = data
 87                for tags_type_0_item_data in _tags_type_0:
 88                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
 89
 90                    tags_type_0.append(tags_type_0_item)
 91
 92                return tags_type_0
 93            except:  # noqa: E722
 94                pass
 95            return cast(Union[List["Tag"], None, Unset], data)
 96
 97        tags = _parse_tags(d.pop("tags", UNSET))
 98
 99        import_data_request = cls(
100            name=name,
101            public_ids=public_ids,
102            description=description,
103            tags=tags,
104        )
105
106        import_data_request.additional_properties = d
107        return import_data_request
108
109    @property
110    def additional_keys(self) -> List[str]:
111        return list(self.additional_properties.keys())
Attributes:
  • name (str): Name of the dataset
  • public_ids (List[str]):
  • description (Union[Unset, str]): Description of the dataset
  • tags (Union[List['Tag'], None, Unset]): List of tags to apply to the dataset
ImportDataRequest( name: str, public_ids: List[str], description: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, name, public_ids, description=attr_dict['description'].default, tags=attr_dict['tags'].default):
28    self.name = name
29    self.public_ids = public_ids
30    self.description = description
31    self.tags = tags
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ImportDataRequest.

name: str
public_ids: List[str]
description: Union[cirro_api_client.v1.types.Unset, str]
tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
32    def to_dict(self) -> Dict[str, Any]:
33        name = self.name
34
35        public_ids = self.public_ids
36
37        description = self.description
38
39        tags: Union[List[Dict[str, Any]], None, Unset]
40        if isinstance(self.tags, Unset):
41            tags = UNSET
42        elif isinstance(self.tags, list):
43            tags = []
44            for tags_type_0_item_data in self.tags:
45                tags_type_0_item = tags_type_0_item_data.to_dict()
46                tags.append(tags_type_0_item)
47
48        else:
49            tags = self.tags
50
51        field_dict: Dict[str, Any] = {}
52        field_dict.update(self.additional_properties)
53        field_dict.update(
54            {
55                "name": name,
56                "publicIds": public_ids,
57            }
58        )
59        if description is not UNSET:
60            field_dict["description"] = description
61        if tags is not UNSET:
62            field_dict["tags"] = tags
63
64        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 66    @classmethod
 67    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 68        from ..models.tag import Tag
 69
 70        d = src_dict.copy()
 71        name = d.pop("name")
 72
 73        public_ids = cast(List[str], d.pop("publicIds"))
 74
 75        description = d.pop("description", UNSET)
 76
 77        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
 78            if data is None:
 79                return data
 80            if isinstance(data, Unset):
 81                return data
 82            try:
 83                if not isinstance(data, list):
 84                    raise TypeError()
 85                tags_type_0 = []
 86                _tags_type_0 = data
 87                for tags_type_0_item_data in _tags_type_0:
 88                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
 89
 90                    tags_type_0.append(tags_type_0_item)
 91
 92                return tags_type_0
 93            except:  # noqa: E722
 94                pass
 95            return cast(Union[List["Tag"], None, Unset], data)
 96
 97        tags = _parse_tags(d.pop("tags", UNSET))
 98
 99        import_data_request = cls(
100            name=name,
101            public_ids=public_ids,
102            description=description,
103            tags=tags,
104        )
105
106        import_data_request.additional_properties = d
107        return import_data_request
additional_keys: List[str]
109    @property
110    def additional_keys(self) -> List[str]:
111        return list(self.additional_properties.keys())
class InviteUserRequest:
10@_attrs_define
11class InviteUserRequest:
12    """
13    Attributes:
14        name (str):
15        organization (str):
16        email (str):
17    """
18
19    name: str
20    organization: str
21    email: str
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        name = self.name
26
27        organization = self.organization
28
29        email = self.email
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "organization": organization,
37                "email": email,
38            }
39        )
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        name = d.pop("name")
47
48        organization = d.pop("organization")
49
50        email = d.pop("email")
51
52        invite_user_request = cls(
53            name=name,
54            organization=organization,
55            email=email,
56        )
57
58        invite_user_request.additional_properties = d
59        return invite_user_request
60
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • organization (str):
  • email (str):
InviteUserRequest(name: str, organization: str, email: str)
26def __init__(self, name, organization, email):
27    self.name = name
28    self.organization = organization
29    self.email = email
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class InviteUserRequest.

name: str
organization: str
email: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        name = self.name
26
27        organization = self.organization
28
29        email = self.email
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "organization": organization,
37                "email": email,
38            }
39        )
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        name = d.pop("name")
47
48        organization = d.pop("organization")
49
50        email = d.pop("email")
51
52        invite_user_request = cls(
53            name=name,
54            organization=organization,
55            email=email,
56        )
57
58        invite_user_request.additional_properties = d
59        return invite_user_request
additional_keys: List[str]
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
class InviteUserResponse:
10@_attrs_define
11class InviteUserResponse:
12    """
13    Attributes:
14        message (str):
15    """
16
17    message: str
18    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
19
20    def to_dict(self) -> Dict[str, Any]:
21        message = self.message
22
23        field_dict: Dict[str, Any] = {}
24        field_dict.update(self.additional_properties)
25        field_dict.update(
26            {
27                "message": message,
28            }
29        )
30
31        return field_dict
32
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        message = d.pop("message")
37
38        invite_user_response = cls(
39            message=message,
40        )
41
42        invite_user_response.additional_properties = d
43        return invite_user_response
44
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
Attributes:
  • message (str):
InviteUserResponse(message: str)
24def __init__(self, message):
25    self.message = message
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class InviteUserResponse.

message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
20    def to_dict(self) -> Dict[str, Any]:
21        message = self.message
22
23        field_dict: Dict[str, Any] = {}
24        field_dict.update(self.additional_properties)
25        field_dict.update(
26            {
27                "message": message,
28            }
29        )
30
31        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
33    @classmethod
34    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
35        d = src_dict.copy()
36        message = d.pop("message")
37
38        invite_user_response = cls(
39            message=message,
40        )
41
42        invite_user_response.additional_properties = d
43        return invite_user_response
additional_keys: List[str]
45    @property
46    def additional_keys(self) -> List[str]:
47        return list(self.additional_properties.keys())
class ListEventsEntityType(builtins.str, enum.Enum):
 5class ListEventsEntityType(str, Enum):
 6    BILLINGACCOUNT = "BillingAccount"
 7    DATASET = "Dataset"
 8    NOTEBOOKINSTANCE = "NotebookInstance"
 9    PROCESS = "Process"
10    PROJECT = "Project"
11    SAMPLE = "Sample"
12    USER = "User"
13    USERPROJECTASSIGNMENT = "UserProjectAssignment"
14    UNKNOWN = "UNKNOWN"
15    """ This is a fallback value for when the value is not known, do not use this value when making requests """
16
17    def __str__(self) -> str:
18        return str(self.value)
19
20    @classmethod
21    def _missing_(cls, number):
22        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

BILLINGACCOUNT = <ListEventsEntityType.BILLINGACCOUNT: 'BillingAccount'>
DATASET = <ListEventsEntityType.DATASET: 'Dataset'>
NOTEBOOKINSTANCE = <ListEventsEntityType.NOTEBOOKINSTANCE: 'NotebookInstance'>
PROCESS = <ListEventsEntityType.PROCESS: 'Process'>
PROJECT = <ListEventsEntityType.PROJECT: 'Project'>
SAMPLE = <ListEventsEntityType.SAMPLE: 'Sample'>
USER = <ListEventsEntityType.USER: 'User'>
USERPROJECTASSIGNMENT = <ListEventsEntityType.USERPROJECTASSIGNMENT: 'UserProjectAssignment'>
UNKNOWN = <ListEventsEntityType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class LogEntry:
12@_attrs_define
13class LogEntry:
14    """
15    Attributes:
16        message (str):
17        timestamp (Union[Unset, int]): UNIX timestamp in milliseconds, might be blank if we don't have this info
18    """
19
20    message: str
21    timestamp: Union[Unset, int] = UNSET
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        message = self.message
26
27        timestamp = self.timestamp
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "message": message,
34            }
35        )
36        if timestamp is not UNSET:
37            field_dict["timestamp"] = timestamp
38
39        return field_dict
40
41    @classmethod
42    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43        d = src_dict.copy()
44        message = d.pop("message")
45
46        timestamp = d.pop("timestamp", UNSET)
47
48        log_entry = cls(
49            message=message,
50            timestamp=timestamp,
51        )
52
53        log_entry.additional_properties = d
54        return log_entry
55
56    @property
57    def additional_keys(self) -> List[str]:
58        return list(self.additional_properties.keys())
Attributes:
  • message (str):
  • timestamp (Union[Unset, int]): UNIX timestamp in milliseconds, might be blank if we don't have this info
LogEntry( message: str, timestamp: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>)
25def __init__(self, message, timestamp=attr_dict['timestamp'].default):
26    self.message = message
27    self.timestamp = timestamp
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class LogEntry.

message: str
timestamp: Union[cirro_api_client.v1.types.Unset, int]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        message = self.message
26
27        timestamp = self.timestamp
28
29        field_dict: Dict[str, Any] = {}
30        field_dict.update(self.additional_properties)
31        field_dict.update(
32            {
33                "message": message,
34            }
35        )
36        if timestamp is not UNSET:
37            field_dict["timestamp"] = timestamp
38
39        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
41    @classmethod
42    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43        d = src_dict.copy()
44        message = d.pop("message")
45
46        timestamp = d.pop("timestamp", UNSET)
47
48        log_entry = cls(
49            message=message,
50            timestamp=timestamp,
51        )
52
53        log_entry.additional_properties = d
54        return log_entry
additional_keys: List[str]
56    @property
57    def additional_keys(self) -> List[str]:
58        return list(self.additional_properties.keys())
class LoginProvider:
10@_attrs_define
11class LoginProvider:
12    """
13    Attributes:
14        id (str):
15        name (str):
16        description (str):
17        logo_url (str):
18    """
19
20    id: str
21    name: str
22    description: str
23    logo_url: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        id = self.id
28
29        name = self.name
30
31        description = self.description
32
33        logo_url = self.logo_url
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "id": id,
40                "name": name,
41                "description": description,
42                "logoUrl": logo_url,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        id = d.pop("id")
52
53        name = d.pop("name")
54
55        description = d.pop("description")
56
57        logo_url = d.pop("logoUrl")
58
59        login_provider = cls(
60            id=id,
61            name=name,
62            description=description,
63            logo_url=logo_url,
64        )
65
66        login_provider.additional_properties = d
67        return login_provider
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • logo_url (str):
LoginProvider(id: str, name: str, description: str, logo_url: str)
27def __init__(self, id, name, description, logo_url):
28    self.id = id
29    self.name = name
30    self.description = description
31    self.logo_url = logo_url
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class LoginProvider.

id: str
name: str
description: str
logo_url: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        id = self.id
28
29        name = self.name
30
31        description = self.description
32
33        logo_url = self.logo_url
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "id": id,
40                "name": name,
41                "description": description,
42                "logoUrl": logo_url,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        id = d.pop("id")
52
53        name = d.pop("name")
54
55        description = d.pop("description")
56
57        logo_url = d.pop("logoUrl")
58
59        login_provider = cls(
60            id=id,
61            name=name,
62            description=description,
63            logo_url=logo_url,
64        )
65
66        login_provider.additional_properties = d
67        return login_provider
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class MetricRecord:
18@_attrs_define
19class MetricRecord:
20    """
21    Attributes:
22        unit (str):
23        date (Union[Unset, datetime.date]): Date in ISO 8601 format
24        services (Union[Unset, MetricRecordServices]): Map of service names to metric value Example: {'Amazon Simple
25            Storage Service': 24.91}.
26    """
27
28    unit: str
29    date: Union[Unset, datetime.date] = UNSET
30    services: Union[Unset, "MetricRecordServices"] = UNSET
31    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
32
33    def to_dict(self) -> Dict[str, Any]:
34        unit = self.unit
35
36        date: Union[Unset, str] = UNSET
37        if not isinstance(self.date, Unset):
38            date = self.date.isoformat()
39
40        services: Union[Unset, Dict[str, Any]] = UNSET
41        if not isinstance(self.services, Unset):
42            services = self.services.to_dict()
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "unit": unit,
49            }
50        )
51        if date is not UNSET:
52            field_dict["date"] = date
53        if services is not UNSET:
54            field_dict["services"] = services
55
56        return field_dict
57
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        from ..models.metric_record_services import MetricRecordServices
61
62        d = src_dict.copy()
63        unit = d.pop("unit")
64
65        _date = d.pop("date", UNSET)
66        date: Union[Unset, datetime.date]
67        if isinstance(_date, Unset):
68            date = UNSET
69        else:
70            date = isoparse(_date).date()
71
72        _services = d.pop("services", UNSET)
73        services: Union[Unset, MetricRecordServices]
74        if isinstance(_services, Unset):
75            services = UNSET
76        else:
77            services = MetricRecordServices.from_dict(_services)
78
79        metric_record = cls(
80            unit=unit,
81            date=date,
82            services=services,
83        )
84
85        metric_record.additional_properties = d
86        return metric_record
87
88    @property
89    def additional_keys(self) -> List[str]:
90        return list(self.additional_properties.keys())
Attributes:
  • unit (str):
  • date (Union[Unset, datetime.date]): Date in ISO 8601 format
  • services (Union[Unset, MetricRecordServices]): Map of service names to metric value Example: {'Amazon Simple Storage Service': 24.91}.
MetricRecord( unit: str, date: Union[cirro_api_client.v1.types.Unset, datetime.date] = <cirro_api_client.v1.types.Unset object>, services: Union[cirro_api_client.v1.types.Unset, MetricRecordServices] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, unit, date=attr_dict['date'].default, services=attr_dict['services'].default):
27    self.unit = unit
28    self.date = date
29    self.services = services
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class MetricRecord.

unit: str
date: Union[cirro_api_client.v1.types.Unset, datetime.date]
services: Union[cirro_api_client.v1.types.Unset, MetricRecordServices]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
33    def to_dict(self) -> Dict[str, Any]:
34        unit = self.unit
35
36        date: Union[Unset, str] = UNSET
37        if not isinstance(self.date, Unset):
38            date = self.date.isoformat()
39
40        services: Union[Unset, Dict[str, Any]] = UNSET
41        if not isinstance(self.services, Unset):
42            services = self.services.to_dict()
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "unit": unit,
49            }
50        )
51        if date is not UNSET:
52            field_dict["date"] = date
53        if services is not UNSET:
54            field_dict["services"] = services
55
56        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        from ..models.metric_record_services import MetricRecordServices
61
62        d = src_dict.copy()
63        unit = d.pop("unit")
64
65        _date = d.pop("date", UNSET)
66        date: Union[Unset, datetime.date]
67        if isinstance(_date, Unset):
68            date = UNSET
69        else:
70            date = isoparse(_date).date()
71
72        _services = d.pop("services", UNSET)
73        services: Union[Unset, MetricRecordServices]
74        if isinstance(_services, Unset):
75            services = UNSET
76        else:
77            services = MetricRecordServices.from_dict(_services)
78
79        metric_record = cls(
80            unit=unit,
81            date=date,
82            services=services,
83        )
84
85        metric_record.additional_properties = d
86        return metric_record
additional_keys: List[str]
88    @property
89    def additional_keys(self) -> List[str]:
90        return list(self.additional_properties.keys())
class MetricRecordServices:
10@_attrs_define
11class MetricRecordServices:
12    """Map of service names to metric value
13
14    Example:
15        {'Amazon Simple Storage Service': 24.91}
16
17    """
18
19    additional_properties: Dict[str, float] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
27
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        metric_record_services = cls()
32
33        metric_record_services.additional_properties = d
34        return metric_record_services
35
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())

Map of service names to metric value

Example:

{'Amazon Simple Storage Service': 24.91}

MetricRecordServices()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class MetricRecordServices.

additional_properties: Dict[str, float]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        field_dict: Dict[str, Any] = {}
23        field_dict.update(self.additional_properties)
24        field_dict.update({})
25
26        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
28    @classmethod
29    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
30        d = src_dict.copy()
31        metric_record_services = cls()
32
33        metric_record_services.additional_properties = d
34        return metric_record_services
additional_keys: List[str]
36    @property
37    def additional_keys(self) -> List[str]:
38        return list(self.additional_properties.keys())
class MoveDatasetInput:
10@_attrs_define
11class MoveDatasetInput:
12    """
13    Attributes:
14        dataset_id (str):
15        source_project_id (str):
16        target_project_id (str):
17    """
18
19    dataset_id: str
20    source_project_id: str
21    target_project_id: str
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        dataset_id = self.dataset_id
26
27        source_project_id = self.source_project_id
28
29        target_project_id = self.target_project_id
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "datasetId": dataset_id,
36                "sourceProjectId": source_project_id,
37                "targetProjectId": target_project_id,
38            }
39        )
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        dataset_id = d.pop("datasetId")
47
48        source_project_id = d.pop("sourceProjectId")
49
50        target_project_id = d.pop("targetProjectId")
51
52        move_dataset_input = cls(
53            dataset_id=dataset_id,
54            source_project_id=source_project_id,
55            target_project_id=target_project_id,
56        )
57
58        move_dataset_input.additional_properties = d
59        return move_dataset_input
60
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
Attributes:
  • dataset_id (str):
  • source_project_id (str):
  • target_project_id (str):
MoveDatasetInput(dataset_id: str, source_project_id: str, target_project_id: str)
26def __init__(self, dataset_id, source_project_id, target_project_id):
27    self.dataset_id = dataset_id
28    self.source_project_id = source_project_id
29    self.target_project_id = target_project_id
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class MoveDatasetInput.

dataset_id: str
source_project_id: str
target_project_id: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        dataset_id = self.dataset_id
26
27        source_project_id = self.source_project_id
28
29        target_project_id = self.target_project_id
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "datasetId": dataset_id,
36                "sourceProjectId": source_project_id,
37                "targetProjectId": target_project_id,
38            }
39        )
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        dataset_id = d.pop("datasetId")
47
48        source_project_id = d.pop("sourceProjectId")
49
50        target_project_id = d.pop("targetProjectId")
51
52        move_dataset_input = cls(
53            dataset_id=dataset_id,
54            source_project_id=source_project_id,
55            target_project_id=target_project_id,
56        )
57
58        move_dataset_input.additional_properties = d
59        return move_dataset_input
additional_keys: List[str]
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
class MoveDatasetResponse:
10@_attrs_define
11class MoveDatasetResponse:
12    """
13    Attributes:
14        s_3_copy_command (str):
15        s_3_delete_command (str):
16        samples_not_moved (List[str]):
17    """
18
19    s_3_copy_command: str
20    s_3_delete_command: str
21    samples_not_moved: List[str]
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        s_3_copy_command = self.s_3_copy_command
26
27        s_3_delete_command = self.s_3_delete_command
28
29        samples_not_moved = self.samples_not_moved
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "s3CopyCommand": s_3_copy_command,
36                "s3DeleteCommand": s_3_delete_command,
37                "samplesNotMoved": samples_not_moved,
38            }
39        )
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        s_3_copy_command = d.pop("s3CopyCommand")
47
48        s_3_delete_command = d.pop("s3DeleteCommand")
49
50        samples_not_moved = cast(List[str], d.pop("samplesNotMoved"))
51
52        move_dataset_response = cls(
53            s_3_copy_command=s_3_copy_command,
54            s_3_delete_command=s_3_delete_command,
55            samples_not_moved=samples_not_moved,
56        )
57
58        move_dataset_response.additional_properties = d
59        return move_dataset_response
60
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
Attributes:
  • s_3_copy_command (str):
  • s_3_delete_command (str):
  • samples_not_moved (List[str]):
MoveDatasetResponse( s_3_copy_command: str, s_3_delete_command: str, samples_not_moved: List[str])
26def __init__(self, s_3_copy_command, s_3_delete_command, samples_not_moved):
27    self.s_3_copy_command = s_3_copy_command
28    self.s_3_delete_command = s_3_delete_command
29    self.samples_not_moved = samples_not_moved
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class MoveDatasetResponse.

s_3_copy_command: str
s_3_delete_command: str
samples_not_moved: List[str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        s_3_copy_command = self.s_3_copy_command
26
27        s_3_delete_command = self.s_3_delete_command
28
29        samples_not_moved = self.samples_not_moved
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "s3CopyCommand": s_3_copy_command,
36                "s3DeleteCommand": s_3_delete_command,
37                "samplesNotMoved": samples_not_moved,
38            }
39        )
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        s_3_copy_command = d.pop("s3CopyCommand")
47
48        s_3_delete_command = d.pop("s3DeleteCommand")
49
50        samples_not_moved = cast(List[str], d.pop("samplesNotMoved"))
51
52        move_dataset_response = cls(
53            s_3_copy_command=s_3_copy_command,
54            s_3_delete_command=s_3_delete_command,
55            samples_not_moved=samples_not_moved,
56        )
57
58        move_dataset_response.additional_properties = d
59        return move_dataset_response
additional_keys: List[str]
61    @property
62    def additional_keys(self) -> List[str]:
63        return list(self.additional_properties.keys())
class NamedItem:
10@_attrs_define
11class NamedItem:
12    """
13    Attributes:
14        id (str):
15        name (str):
16    """
17
18    id: str
19    name: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        id = self.id
24
25        name = self.name
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "id": id,
32                "name": name,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        id = d.pop("id")
42
43        name = d.pop("name")
44
45        named_item = cls(
46            id=id,
47            name=name,
48        )
49
50        named_item.additional_properties = d
51        return named_item
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
NamedItem(id: str, name: str)
25def __init__(self, id, name):
26    self.id = id
27    self.name = name
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class NamedItem.

id: str
name: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        id = self.id
24
25        name = self.name
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "id": id,
32                "name": name,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        id = d.pop("id")
42
43        name = d.pop("name")
44
45        named_item = cls(
46            id=id,
47            name=name,
48        )
49
50        named_item.additional_properties = d
51        return named_item
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class NotebookInstance:
 14@_attrs_define
 15class NotebookInstance:
 16    """
 17    Attributes:
 18        id (str):
 19        name (str):
 20        status (Status):
 21        status_message (str):
 22        instance_type (str):
 23        accelerator_types (List[str]):
 24        git_repositories (List[str]):
 25        volume_size_gb (int):
 26        is_shared_with_project (bool):
 27        created_by (str):
 28        created_at (datetime.datetime):
 29        updated_at (datetime.datetime):
 30    """
 31
 32    id: str
 33    name: str
 34    status: Status
 35    status_message: str
 36    instance_type: str
 37    accelerator_types: List[str]
 38    git_repositories: List[str]
 39    volume_size_gb: int
 40    is_shared_with_project: bool
 41    created_by: str
 42    created_at: datetime.datetime
 43    updated_at: datetime.datetime
 44    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 45
 46    def to_dict(self) -> Dict[str, Any]:
 47        id = self.id
 48
 49        name = self.name
 50
 51        status = self.status.value
 52
 53        status_message = self.status_message
 54
 55        instance_type = self.instance_type
 56
 57        accelerator_types = self.accelerator_types
 58
 59        git_repositories = self.git_repositories
 60
 61        volume_size_gb = self.volume_size_gb
 62
 63        is_shared_with_project = self.is_shared_with_project
 64
 65        created_by = self.created_by
 66
 67        created_at = self.created_at.isoformat()
 68
 69        updated_at = self.updated_at.isoformat()
 70
 71        field_dict: Dict[str, Any] = {}
 72        field_dict.update(self.additional_properties)
 73        field_dict.update(
 74            {
 75                "id": id,
 76                "name": name,
 77                "status": status,
 78                "statusMessage": status_message,
 79                "instanceType": instance_type,
 80                "acceleratorTypes": accelerator_types,
 81                "gitRepositories": git_repositories,
 82                "volumeSizeGB": volume_size_gb,
 83                "isSharedWithProject": is_shared_with_project,
 84                "createdBy": created_by,
 85                "createdAt": created_at,
 86                "updatedAt": updated_at,
 87            }
 88        )
 89
 90        return field_dict
 91
 92    @classmethod
 93    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 94        d = src_dict.copy()
 95        id = d.pop("id")
 96
 97        name = d.pop("name")
 98
 99        status = Status(d.pop("status"))
100
101        status_message = d.pop("statusMessage")
102
103        instance_type = d.pop("instanceType")
104
105        accelerator_types = cast(List[str], d.pop("acceleratorTypes"))
106
107        git_repositories = cast(List[str], d.pop("gitRepositories"))
108
109        volume_size_gb = d.pop("volumeSizeGB")
110
111        is_shared_with_project = d.pop("isSharedWithProject")
112
113        created_by = d.pop("createdBy")
114
115        created_at = isoparse(d.pop("createdAt"))
116
117        updated_at = isoparse(d.pop("updatedAt"))
118
119        notebook_instance = cls(
120            id=id,
121            name=name,
122            status=status,
123            status_message=status_message,
124            instance_type=instance_type,
125            accelerator_types=accelerator_types,
126            git_repositories=git_repositories,
127            volume_size_gb=volume_size_gb,
128            is_shared_with_project=is_shared_with_project,
129            created_by=created_by,
130            created_at=created_at,
131            updated_at=updated_at,
132        )
133
134        notebook_instance.additional_properties = d
135        return notebook_instance
136
137    @property
138    def additional_keys(self) -> List[str]:
139        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • status (Status):
  • status_message (str):
  • instance_type (str):
  • accelerator_types (List[str]):
  • git_repositories (List[str]):
  • volume_size_gb (int):
  • is_shared_with_project (bool):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
NotebookInstance( id: str, name: str, status: Status, status_message: str, instance_type: str, accelerator_types: List[str], git_repositories: List[str], volume_size_gb: int, is_shared_with_project: bool, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
35def __init__(self, id, name, status, status_message, instance_type, accelerator_types, git_repositories, volume_size_gb, is_shared_with_project, created_by, created_at, updated_at):
36    self.id = id
37    self.name = name
38    self.status = status
39    self.status_message = status_message
40    self.instance_type = instance_type
41    self.accelerator_types = accelerator_types
42    self.git_repositories = git_repositories
43    self.volume_size_gb = volume_size_gb
44    self.is_shared_with_project = is_shared_with_project
45    self.created_by = created_by
46    self.created_at = created_at
47    self.updated_at = updated_at
48    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class NotebookInstance.

id: str
name: str
status: Status
status_message: str
instance_type: str
accelerator_types: List[str]
git_repositories: List[str]
volume_size_gb: int
is_shared_with_project: bool
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
46    def to_dict(self) -> Dict[str, Any]:
47        id = self.id
48
49        name = self.name
50
51        status = self.status.value
52
53        status_message = self.status_message
54
55        instance_type = self.instance_type
56
57        accelerator_types = self.accelerator_types
58
59        git_repositories = self.git_repositories
60
61        volume_size_gb = self.volume_size_gb
62
63        is_shared_with_project = self.is_shared_with_project
64
65        created_by = self.created_by
66
67        created_at = self.created_at.isoformat()
68
69        updated_at = self.updated_at.isoformat()
70
71        field_dict: Dict[str, Any] = {}
72        field_dict.update(self.additional_properties)
73        field_dict.update(
74            {
75                "id": id,
76                "name": name,
77                "status": status,
78                "statusMessage": status_message,
79                "instanceType": instance_type,
80                "acceleratorTypes": accelerator_types,
81                "gitRepositories": git_repositories,
82                "volumeSizeGB": volume_size_gb,
83                "isSharedWithProject": is_shared_with_project,
84                "createdBy": created_by,
85                "createdAt": created_at,
86                "updatedAt": updated_at,
87            }
88        )
89
90        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 92    @classmethod
 93    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 94        d = src_dict.copy()
 95        id = d.pop("id")
 96
 97        name = d.pop("name")
 98
 99        status = Status(d.pop("status"))
100
101        status_message = d.pop("statusMessage")
102
103        instance_type = d.pop("instanceType")
104
105        accelerator_types = cast(List[str], d.pop("acceleratorTypes"))
106
107        git_repositories = cast(List[str], d.pop("gitRepositories"))
108
109        volume_size_gb = d.pop("volumeSizeGB")
110
111        is_shared_with_project = d.pop("isSharedWithProject")
112
113        created_by = d.pop("createdBy")
114
115        created_at = isoparse(d.pop("createdAt"))
116
117        updated_at = isoparse(d.pop("updatedAt"))
118
119        notebook_instance = cls(
120            id=id,
121            name=name,
122            status=status,
123            status_message=status_message,
124            instance_type=instance_type,
125            accelerator_types=accelerator_types,
126            git_repositories=git_repositories,
127            volume_size_gb=volume_size_gb,
128            is_shared_with_project=is_shared_with_project,
129            created_by=created_by,
130            created_at=created_at,
131            updated_at=updated_at,
132        )
133
134        notebook_instance.additional_properties = d
135        return notebook_instance
additional_keys: List[str]
137    @property
138    def additional_keys(self) -> List[str]:
139        return list(self.additional_properties.keys())
class NotebookInstanceStatusResponse:
10@_attrs_define
11class NotebookInstanceStatusResponse:
12    """
13    Attributes:
14        status (str):
15        status_message (str):
16    """
17
18    status: str
19    status_message: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        status = self.status
24
25        status_message = self.status_message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "status": status,
32                "statusMessage": status_message,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        status = d.pop("status")
42
43        status_message = d.pop("statusMessage")
44
45        notebook_instance_status_response = cls(
46            status=status,
47            status_message=status_message,
48        )
49
50        notebook_instance_status_response.additional_properties = d
51        return notebook_instance_status_response
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • status (str):
  • status_message (str):
NotebookInstanceStatusResponse(status: str, status_message: str)
25def __init__(self, status, status_message):
26    self.status = status
27    self.status_message = status_message
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class NotebookInstanceStatusResponse.

status: str
status_message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        status = self.status
24
25        status_message = self.status_message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "status": status,
32                "statusMessage": status_message,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        status = d.pop("status")
42
43        status_message = d.pop("statusMessage")
44
45        notebook_instance_status_response = cls(
46            status=status,
47            status_message=status_message,
48        )
49
50        notebook_instance_status_response.additional_properties = d
51        return notebook_instance_status_response
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class OpenNotebookInstanceResponse:
10@_attrs_define
11class OpenNotebookInstanceResponse:
12    """
13    Attributes:
14        url (str):
15        message (str):
16    """
17
18    url: str
19    message: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        url = self.url
24
25        message = self.message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "url": url,
32                "message": message,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        url = d.pop("url")
42
43        message = d.pop("message")
44
45        open_notebook_instance_response = cls(
46            url=url,
47            message=message,
48        )
49
50        open_notebook_instance_response.additional_properties = d
51        return open_notebook_instance_response
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • url (str):
  • message (str):
OpenNotebookInstanceResponse(url: str, message: str)
25def __init__(self, url, message):
26    self.url = url
27    self.message = message
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class OpenNotebookInstanceResponse.

url: str
message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        url = self.url
24
25        message = self.message
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "url": url,
32                "message": message,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        url = d.pop("url")
42
43        message = d.pop("message")
44
45        open_notebook_instance_response = cls(
46            url=url,
47            message=message,
48        )
49
50        open_notebook_instance_response.additional_properties = d
51        return open_notebook_instance_response
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class PaginatedResponseDatasetListDto:
14@_attrs_define
15class PaginatedResponseDatasetListDto:
16    """
17    Attributes:
18        data (List['Dataset']):
19        next_token (str):
20    """
21
22    data: List["Dataset"]
23    next_token: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
44
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.dataset import Dataset
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = Dataset.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_dataset_list_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_dataset_list_dto.additional_properties = d
65        return paginated_response_dataset_list_dto
66
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
Attributes:
  • data (List['Dataset']):
  • next_token (str):
PaginatedResponseDatasetListDto( data: List[Dataset], next_token: str)
25def __init__(self, data, next_token):
26    self.data = data
27    self.next_token = next_token
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PaginatedResponseDatasetListDto.

data: List[Dataset]
next_token: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.dataset import Dataset
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = Dataset.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_dataset_list_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_dataset_list_dto.additional_properties = d
65        return paginated_response_dataset_list_dto
additional_keys: List[str]
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
class PaginatedResponseSampleDto:
14@_attrs_define
15class PaginatedResponseSampleDto:
16    """
17    Attributes:
18        data (List['Sample']):
19        next_token (str):
20    """
21
22    data: List["Sample"]
23    next_token: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
44
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.sample import Sample
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = Sample.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_sample_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_sample_dto.additional_properties = d
65        return paginated_response_sample_dto
66
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
Attributes:
  • data (List['Sample']):
  • next_token (str):
PaginatedResponseSampleDto( data: List[Sample], next_token: str)
25def __init__(self, data, next_token):
26    self.data = data
27    self.next_token = next_token
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PaginatedResponseSampleDto.

data: List[Sample]
next_token: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.sample import Sample
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = Sample.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_sample_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_sample_dto.additional_properties = d
65        return paginated_response_sample_dto
additional_keys: List[str]
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
class PaginatedResponseUserDto:
14@_attrs_define
15class PaginatedResponseUserDto:
16    """
17    Attributes:
18        data (List['User']):
19        next_token (str):
20    """
21
22    data: List["User"]
23    next_token: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
44
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.user import User
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = User.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_user_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_user_dto.additional_properties = d
65        return paginated_response_user_dto
66
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
Attributes:
  • data (List['User']):
  • next_token (str):
PaginatedResponseUserDto(data: List[User], next_token: str)
25def __init__(self, data, next_token):
26    self.data = data
27    self.next_token = next_token
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PaginatedResponseUserDto.

data: List[User]
next_token: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        data = []
28        for data_item_data in self.data:
29            data_item = data_item_data.to_dict()
30            data.append(data_item)
31
32        next_token = self.next_token
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "data": data,
39                "nextToken": next_token,
40            }
41        )
42
43        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
45    @classmethod
46    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47        from ..models.user import User
48
49        d = src_dict.copy()
50        data = []
51        _data = d.pop("data")
52        for data_item_data in _data:
53            data_item = User.from_dict(data_item_data)
54
55            data.append(data_item)
56
57        next_token = d.pop("nextToken")
58
59        paginated_response_user_dto = cls(
60            data=data,
61            next_token=next_token,
62        )
63
64        paginated_response_user_dto.additional_properties = d
65        return paginated_response_user_dto
additional_keys: List[str]
67    @property
68    def additional_keys(self) -> List[str]:
69        return list(self.additional_properties.keys())
class PipelineCode:
12@_attrs_define
13class PipelineCode:
14    """Used to describe the pipeline analysis code, not required for ingest processes
15
16    Attributes:
17        repository_path (str): GitHub repository which contains the workflow code Example: nf-core/rnaseq.
18        version (str): Branch, tag, or commit hash of the pipeline code Example: main.
19        repository_type (RepositoryType): Type of repository
20        entry_point (str): Main script for running the pipeline Example: main.nf.
21    """
22
23    repository_path: str
24    version: str
25    repository_type: RepositoryType
26    entry_point: str
27    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
28
29    def to_dict(self) -> Dict[str, Any]:
30        repository_path = self.repository_path
31
32        version = self.version
33
34        repository_type = self.repository_type.value
35
36        entry_point = self.entry_point
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "repositoryPath": repository_path,
43                "version": version,
44                "repositoryType": repository_type,
45                "entryPoint": entry_point,
46            }
47        )
48
49        return field_dict
50
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        repository_path = d.pop("repositoryPath")
55
56        version = d.pop("version")
57
58        repository_type = RepositoryType(d.pop("repositoryType"))
59
60        entry_point = d.pop("entryPoint")
61
62        pipeline_code = cls(
63            repository_path=repository_path,
64            version=version,
65            repository_type=repository_type,
66            entry_point=entry_point,
67        )
68
69        pipeline_code.additional_properties = d
70        return pipeline_code
71
72    @property
73    def additional_keys(self) -> List[str]:
74        return list(self.additional_properties.keys())

Used to describe the pipeline analysis code, not required for ingest processes

Attributes:
  • repository_path (str): GitHub repository which contains the workflow code Example: nf-core/rnaseq.
  • version (str): Branch, tag, or commit hash of the pipeline code Example: main.
  • repository_type (RepositoryType): Type of repository
  • entry_point (str): Main script for running the pipeline Example: main.nf.
PipelineCode( repository_path: str, version: str, repository_type: RepositoryType, entry_point: str)
27def __init__(self, repository_path, version, repository_type, entry_point):
28    self.repository_path = repository_path
29    self.version = version
30    self.repository_type = repository_type
31    self.entry_point = entry_point
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PipelineCode.

repository_path: str
version: str
repository_type: RepositoryType
entry_point: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
29    def to_dict(self) -> Dict[str, Any]:
30        repository_path = self.repository_path
31
32        version = self.version
33
34        repository_type = self.repository_type.value
35
36        entry_point = self.entry_point
37
38        field_dict: Dict[str, Any] = {}
39        field_dict.update(self.additional_properties)
40        field_dict.update(
41            {
42                "repositoryPath": repository_path,
43                "version": version,
44                "repositoryType": repository_type,
45                "entryPoint": entry_point,
46            }
47        )
48
49        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        repository_path = d.pop("repositoryPath")
55
56        version = d.pop("version")
57
58        repository_type = RepositoryType(d.pop("repositoryType"))
59
60        entry_point = d.pop("entryPoint")
61
62        pipeline_code = cls(
63            repository_path=repository_path,
64            version=version,
65            repository_type=repository_type,
66            entry_point=entry_point,
67        )
68
69        pipeline_code.additional_properties = d
70        return pipeline_code
additional_keys: List[str]
72    @property
73    def additional_keys(self) -> List[str]:
74        return list(self.additional_properties.keys())
class PipelineCost:
12@_attrs_define
13class PipelineCost:
14    """
15    Attributes:
16        total_cost (Union[None, Unset, float]): The total cost of running the pipeline
17        is_estimate (Union[Unset, bool]): Is this an estimate of the cost?
18        description (Union[Unset, str]): Description of the cost calculation
19    """
20
21    total_cost: Union[None, Unset, float] = UNSET
22    is_estimate: Union[Unset, bool] = UNSET
23    description: Union[Unset, str] = UNSET
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        total_cost: Union[None, Unset, float]
28        if isinstance(self.total_cost, Unset):
29            total_cost = UNSET
30        else:
31            total_cost = self.total_cost
32
33        is_estimate = self.is_estimate
34
35        description = self.description
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update({})
40        if total_cost is not UNSET:
41            field_dict["totalCost"] = total_cost
42        if is_estimate is not UNSET:
43            field_dict["isEstimate"] = is_estimate
44        if description is not UNSET:
45            field_dict["description"] = description
46
47        return field_dict
48
49    @classmethod
50    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51        d = src_dict.copy()
52
53        def _parse_total_cost(data: object) -> Union[None, Unset, float]:
54            if data is None:
55                return data
56            if isinstance(data, Unset):
57                return data
58            return cast(Union[None, Unset, float], data)
59
60        total_cost = _parse_total_cost(d.pop("totalCost", UNSET))
61
62        is_estimate = d.pop("isEstimate", UNSET)
63
64        description = d.pop("description", UNSET)
65
66        pipeline_cost = cls(
67            total_cost=total_cost,
68            is_estimate=is_estimate,
69            description=description,
70        )
71
72        pipeline_cost.additional_properties = d
73        return pipeline_cost
74
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
Attributes:
  • total_cost (Union[None, Unset, float]): The total cost of running the pipeline
  • is_estimate (Union[Unset, bool]): Is this an estimate of the cost?
  • description (Union[Unset, str]): Description of the cost calculation
PipelineCost( total_cost: Union[NoneType, cirro_api_client.v1.types.Unset, float] = <cirro_api_client.v1.types.Unset object>, is_estimate: Union[cirro_api_client.v1.types.Unset, bool] = <cirro_api_client.v1.types.Unset object>, description: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, total_cost=attr_dict['total_cost'].default, is_estimate=attr_dict['is_estimate'].default, description=attr_dict['description'].default):
27    self.total_cost = total_cost
28    self.is_estimate = is_estimate
29    self.description = description
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PipelineCost.

total_cost: Union[NoneType, cirro_api_client.v1.types.Unset, float]
is_estimate: Union[cirro_api_client.v1.types.Unset, bool]
description: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        total_cost: Union[None, Unset, float]
28        if isinstance(self.total_cost, Unset):
29            total_cost = UNSET
30        else:
31            total_cost = self.total_cost
32
33        is_estimate = self.is_estimate
34
35        description = self.description
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update({})
40        if total_cost is not UNSET:
41            field_dict["totalCost"] = total_cost
42        if is_estimate is not UNSET:
43            field_dict["isEstimate"] = is_estimate
44        if description is not UNSET:
45            field_dict["description"] = description
46
47        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
49    @classmethod
50    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51        d = src_dict.copy()
52
53        def _parse_total_cost(data: object) -> Union[None, Unset, float]:
54            if data is None:
55                return data
56            if isinstance(data, Unset):
57                return data
58            return cast(Union[None, Unset, float], data)
59
60        total_cost = _parse_total_cost(d.pop("totalCost", UNSET))
61
62        is_estimate = d.pop("isEstimate", UNSET)
63
64        description = d.pop("description", UNSET)
65
66        pipeline_cost = cls(
67            total_cost=total_cost,
68            is_estimate=is_estimate,
69            description=description,
70        )
71
72        pipeline_cost.additional_properties = d
73        return pipeline_cost
additional_keys: List[str]
75    @property
76    def additional_keys(self) -> List[str]:
77        return list(self.additional_properties.keys())
class PortalErrorResponse:
14@_attrs_define
15class PortalErrorResponse:
16    """
17    Attributes:
18        status_code (int):
19        error_code (str):
20        error_detail (str):
21        errors (List['ErrorMessage']):
22    """
23
24    status_code: int
25    error_code: str
26    error_detail: str
27    errors: List["ErrorMessage"]
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        status_code = self.status_code
32
33        error_code = self.error_code
34
35        error_detail = self.error_detail
36
37        errors = []
38        for errors_item_data in self.errors:
39            errors_item = errors_item_data.to_dict()
40            errors.append(errors_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "statusCode": status_code,
47                "errorCode": error_code,
48                "errorDetail": error_detail,
49                "errors": errors,
50            }
51        )
52
53        return field_dict
54
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.error_message import ErrorMessage
58
59        d = src_dict.copy()
60        status_code = d.pop("statusCode")
61
62        error_code = d.pop("errorCode")
63
64        error_detail = d.pop("errorDetail")
65
66        errors = []
67        _errors = d.pop("errors")
68        for errors_item_data in _errors:
69            errors_item = ErrorMessage.from_dict(errors_item_data)
70
71            errors.append(errors_item)
72
73        portal_error_response = cls(
74            status_code=status_code,
75            error_code=error_code,
76            error_detail=error_detail,
77            errors=errors,
78        )
79
80        portal_error_response.additional_properties = d
81        return portal_error_response
82
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
Attributes:
  • status_code (int):
  • error_code (str):
  • error_detail (str):
  • errors (List['ErrorMessage']):
PortalErrorResponse( status_code: int, error_code: str, error_detail: str, errors: List[ErrorMessage])
27def __init__(self, status_code, error_code, error_detail, errors):
28    self.status_code = status_code
29    self.error_code = error_code
30    self.error_detail = error_detail
31    self.errors = errors
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class PortalErrorResponse.

status_code: int
error_code: str
error_detail: str
errors: List[ErrorMessage]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        status_code = self.status_code
32
33        error_code = self.error_code
34
35        error_detail = self.error_detail
36
37        errors = []
38        for errors_item_data in self.errors:
39            errors_item = errors_item_data.to_dict()
40            errors.append(errors_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "statusCode": status_code,
47                "errorCode": error_code,
48                "errorDetail": error_detail,
49                "errors": errors,
50            }
51        )
52
53        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.error_message import ErrorMessage
58
59        d = src_dict.copy()
60        status_code = d.pop("statusCode")
61
62        error_code = d.pop("errorCode")
63
64        error_detail = d.pop("errorDetail")
65
66        errors = []
67        _errors = d.pop("errors")
68        for errors_item_data in _errors:
69            errors_item = ErrorMessage.from_dict(errors_item_data)
70
71            errors.append(errors_item)
72
73        portal_error_response = cls(
74            status_code=status_code,
75            error_code=error_code,
76            error_detail=error_detail,
77            errors=errors,
78        )
79
80        portal_error_response.additional_properties = d
81        return portal_error_response
additional_keys: List[str]
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
class Process:
 15@_attrs_define
 16class Process:
 17    """Identifies a data type or pipeline in Cirro
 18
 19    Attributes:
 20        id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
 21        name (str): Friendly name for the process Example: MAGeCK Flute.
 22        description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential
 23            genes with their related biological functions.
 24        data_type (str): Name of the data type this pipeline produces (if it is not defined, use the name)
 25        executor (Executor): How the workflow is executed
 26        child_process_ids (List[str]): IDs of pipelines that can be run downstream
 27        parent_process_ids (List[str]): IDs of processes that can run this pipeline
 28        linked_project_ids (List[str]): Projects that can run this process
 29        is_tenant_wide (bool): Whether the process is shared with the tenant
 30        allow_multiple_sources (bool): Whether the pipeline is allowed to have multiple dataset sources
 31        uses_sample_sheet (bool): Whether the pipeline uses the Cirro-provided sample sheet
 32        is_archived (bool): Whether the process is marked as archived
 33        category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
 34        pipeline_type (Union[Unset, str]): Type of pipeline Example: nf-core.
 35        documentation_url (Union[Unset, str]): Link to process documentation Example:
 36            https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
 37        file_requirements_message (Union[Unset, str]): Description of the files to be uploaded (optional)
 38        owner (Union[None, Unset, str]): Username of the pipeline creator (blank if Cirro curated)
 39        created_at (Union[Unset, datetime.datetime]): When the process was created (does not reflect the pipeline code)
 40        updated_at (Union[Unset, datetime.datetime]): When the process was updated (does not reflect the pipeline code)
 41    """
 42
 43    id: str
 44    name: str
 45    description: str
 46    data_type: str
 47    executor: Executor
 48    child_process_ids: List[str]
 49    parent_process_ids: List[str]
 50    linked_project_ids: List[str]
 51    is_tenant_wide: bool
 52    allow_multiple_sources: bool
 53    uses_sample_sheet: bool
 54    is_archived: bool
 55    category: Union[Unset, str] = UNSET
 56    pipeline_type: Union[Unset, str] = UNSET
 57    documentation_url: Union[Unset, str] = UNSET
 58    file_requirements_message: Union[Unset, str] = UNSET
 59    owner: Union[None, Unset, str] = UNSET
 60    created_at: Union[Unset, datetime.datetime] = UNSET
 61    updated_at: Union[Unset, datetime.datetime] = UNSET
 62    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 63
 64    def to_dict(self) -> Dict[str, Any]:
 65        id = self.id
 66
 67        name = self.name
 68
 69        description = self.description
 70
 71        data_type = self.data_type
 72
 73        executor = self.executor.value
 74
 75        child_process_ids = self.child_process_ids
 76
 77        parent_process_ids = self.parent_process_ids
 78
 79        linked_project_ids = self.linked_project_ids
 80
 81        is_tenant_wide = self.is_tenant_wide
 82
 83        allow_multiple_sources = self.allow_multiple_sources
 84
 85        uses_sample_sheet = self.uses_sample_sheet
 86
 87        is_archived = self.is_archived
 88
 89        category = self.category
 90
 91        pipeline_type = self.pipeline_type
 92
 93        documentation_url = self.documentation_url
 94
 95        file_requirements_message = self.file_requirements_message
 96
 97        owner: Union[None, Unset, str]
 98        if isinstance(self.owner, Unset):
 99            owner = UNSET
100        else:
101            owner = self.owner
102
103        created_at: Union[Unset, str] = UNSET
104        if not isinstance(self.created_at, Unset):
105            created_at = self.created_at.isoformat()
106
107        updated_at: Union[Unset, str] = UNSET
108        if not isinstance(self.updated_at, Unset):
109            updated_at = self.updated_at.isoformat()
110
111        field_dict: Dict[str, Any] = {}
112        field_dict.update(self.additional_properties)
113        field_dict.update(
114            {
115                "id": id,
116                "name": name,
117                "description": description,
118                "dataType": data_type,
119                "executor": executor,
120                "childProcessIds": child_process_ids,
121                "parentProcessIds": parent_process_ids,
122                "linkedProjectIds": linked_project_ids,
123                "isTenantWide": is_tenant_wide,
124                "allowMultipleSources": allow_multiple_sources,
125                "usesSampleSheet": uses_sample_sheet,
126                "isArchived": is_archived,
127            }
128        )
129        if category is not UNSET:
130            field_dict["category"] = category
131        if pipeline_type is not UNSET:
132            field_dict["pipelineType"] = pipeline_type
133        if documentation_url is not UNSET:
134            field_dict["documentationUrl"] = documentation_url
135        if file_requirements_message is not UNSET:
136            field_dict["fileRequirementsMessage"] = file_requirements_message
137        if owner is not UNSET:
138            field_dict["owner"] = owner
139        if created_at is not UNSET:
140            field_dict["createdAt"] = created_at
141        if updated_at is not UNSET:
142            field_dict["updatedAt"] = updated_at
143
144        return field_dict
145
146    @classmethod
147    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
148        d = src_dict.copy()
149        id = d.pop("id")
150
151        name = d.pop("name")
152
153        description = d.pop("description")
154
155        data_type = d.pop("dataType")
156
157        executor = Executor(d.pop("executor"))
158
159        child_process_ids = cast(List[str], d.pop("childProcessIds"))
160
161        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
162
163        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
164
165        is_tenant_wide = d.pop("isTenantWide")
166
167        allow_multiple_sources = d.pop("allowMultipleSources")
168
169        uses_sample_sheet = d.pop("usesSampleSheet")
170
171        is_archived = d.pop("isArchived")
172
173        category = d.pop("category", UNSET)
174
175        pipeline_type = d.pop("pipelineType", UNSET)
176
177        documentation_url = d.pop("documentationUrl", UNSET)
178
179        file_requirements_message = d.pop("fileRequirementsMessage", UNSET)
180
181        def _parse_owner(data: object) -> Union[None, Unset, str]:
182            if data is None:
183                return data
184            if isinstance(data, Unset):
185                return data
186            return cast(Union[None, Unset, str], data)
187
188        owner = _parse_owner(d.pop("owner", UNSET))
189
190        _created_at = d.pop("createdAt", UNSET)
191        created_at: Union[Unset, datetime.datetime]
192        if isinstance(_created_at, Unset):
193            created_at = UNSET
194        else:
195            created_at = isoparse(_created_at)
196
197        _updated_at = d.pop("updatedAt", UNSET)
198        updated_at: Union[Unset, datetime.datetime]
199        if isinstance(_updated_at, Unset):
200            updated_at = UNSET
201        else:
202            updated_at = isoparse(_updated_at)
203
204        process = cls(
205            id=id,
206            name=name,
207            description=description,
208            data_type=data_type,
209            executor=executor,
210            child_process_ids=child_process_ids,
211            parent_process_ids=parent_process_ids,
212            linked_project_ids=linked_project_ids,
213            is_tenant_wide=is_tenant_wide,
214            allow_multiple_sources=allow_multiple_sources,
215            uses_sample_sheet=uses_sample_sheet,
216            is_archived=is_archived,
217            category=category,
218            pipeline_type=pipeline_type,
219            documentation_url=documentation_url,
220            file_requirements_message=file_requirements_message,
221            owner=owner,
222            created_at=created_at,
223            updated_at=updated_at,
224        )
225
226        process.additional_properties = d
227        return process
228
229    @property
230    def additional_keys(self) -> List[str]:
231        return list(self.additional_properties.keys())

Identifies a data type or pipeline in Cirro

Attributes:
  • id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
  • name (str): Friendly name for the process Example: MAGeCK Flute.
  • description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential genes with their related biological functions.
  • data_type (str): Name of the data type this pipeline produces (if it is not defined, use the name)
  • executor (Executor): How the workflow is executed
  • child_process_ids (List[str]): IDs of pipelines that can be run downstream
  • parent_process_ids (List[str]): IDs of processes that can run this pipeline
  • linked_project_ids (List[str]): Projects that can run this process
  • is_tenant_wide (bool): Whether the process is shared with the tenant
  • allow_multiple_sources (bool): Whether the pipeline is allowed to have multiple dataset sources
  • uses_sample_sheet (bool): Whether the pipeline uses the Cirro-provided sample sheet
  • is_archived (bool): Whether the process is marked as archived
  • category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
  • pipeline_type (Union[Unset, str]): Type of pipeline Example: nf-core.
  • documentation_url (Union[Unset, str]): Link to process documentation Example: https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
  • file_requirements_message (Union[Unset, str]): Description of the files to be uploaded (optional)
  • owner (Union[None, Unset, str]): Username of the pipeline creator (blank if Cirro curated)
  • created_at (Union[Unset, datetime.datetime]): When the process was created (does not reflect the pipeline code)
  • updated_at (Union[Unset, datetime.datetime]): When the process was updated (does not reflect the pipeline code)
Process( id: str, name: str, description: str, data_type: str, executor: Executor, child_process_ids: List[str], parent_process_ids: List[str], linked_project_ids: List[str], is_tenant_wide: bool, allow_multiple_sources: bool, uses_sample_sheet: bool, is_archived: bool, category: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, pipeline_type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, documentation_url: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, file_requirements_message: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, owner: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, updated_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
42def __init__(self, id, name, description, data_type, executor, child_process_ids, parent_process_ids, linked_project_ids, is_tenant_wide, allow_multiple_sources, uses_sample_sheet, is_archived, category=attr_dict['category'].default, pipeline_type=attr_dict['pipeline_type'].default, documentation_url=attr_dict['documentation_url'].default, file_requirements_message=attr_dict['file_requirements_message'].default, owner=attr_dict['owner'].default, created_at=attr_dict['created_at'].default, updated_at=attr_dict['updated_at'].default):
43    self.id = id
44    self.name = name
45    self.description = description
46    self.data_type = data_type
47    self.executor = executor
48    self.child_process_ids = child_process_ids
49    self.parent_process_ids = parent_process_ids
50    self.linked_project_ids = linked_project_ids
51    self.is_tenant_wide = is_tenant_wide
52    self.allow_multiple_sources = allow_multiple_sources
53    self.uses_sample_sheet = uses_sample_sheet
54    self.is_archived = is_archived
55    self.category = category
56    self.pipeline_type = pipeline_type
57    self.documentation_url = documentation_url
58    self.file_requirements_message = file_requirements_message
59    self.owner = owner
60    self.created_at = created_at
61    self.updated_at = updated_at
62    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Process.

id: str
name: str
description: str
data_type: str
executor: Executor
child_process_ids: List[str]
parent_process_ids: List[str]
linked_project_ids: List[str]
is_tenant_wide: bool
allow_multiple_sources: bool
uses_sample_sheet: bool
is_archived: bool
category: Union[cirro_api_client.v1.types.Unset, str]
pipeline_type: Union[cirro_api_client.v1.types.Unset, str]
documentation_url: Union[cirro_api_client.v1.types.Unset, str]
file_requirements_message: Union[cirro_api_client.v1.types.Unset, str]
owner: Union[NoneType, cirro_api_client.v1.types.Unset, str]
created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
updated_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 64    def to_dict(self) -> Dict[str, Any]:
 65        id = self.id
 66
 67        name = self.name
 68
 69        description = self.description
 70
 71        data_type = self.data_type
 72
 73        executor = self.executor.value
 74
 75        child_process_ids = self.child_process_ids
 76
 77        parent_process_ids = self.parent_process_ids
 78
 79        linked_project_ids = self.linked_project_ids
 80
 81        is_tenant_wide = self.is_tenant_wide
 82
 83        allow_multiple_sources = self.allow_multiple_sources
 84
 85        uses_sample_sheet = self.uses_sample_sheet
 86
 87        is_archived = self.is_archived
 88
 89        category = self.category
 90
 91        pipeline_type = self.pipeline_type
 92
 93        documentation_url = self.documentation_url
 94
 95        file_requirements_message = self.file_requirements_message
 96
 97        owner: Union[None, Unset, str]
 98        if isinstance(self.owner, Unset):
 99            owner = UNSET
100        else:
101            owner = self.owner
102
103        created_at: Union[Unset, str] = UNSET
104        if not isinstance(self.created_at, Unset):
105            created_at = self.created_at.isoformat()
106
107        updated_at: Union[Unset, str] = UNSET
108        if not isinstance(self.updated_at, Unset):
109            updated_at = self.updated_at.isoformat()
110
111        field_dict: Dict[str, Any] = {}
112        field_dict.update(self.additional_properties)
113        field_dict.update(
114            {
115                "id": id,
116                "name": name,
117                "description": description,
118                "dataType": data_type,
119                "executor": executor,
120                "childProcessIds": child_process_ids,
121                "parentProcessIds": parent_process_ids,
122                "linkedProjectIds": linked_project_ids,
123                "isTenantWide": is_tenant_wide,
124                "allowMultipleSources": allow_multiple_sources,
125                "usesSampleSheet": uses_sample_sheet,
126                "isArchived": is_archived,
127            }
128        )
129        if category is not UNSET:
130            field_dict["category"] = category
131        if pipeline_type is not UNSET:
132            field_dict["pipelineType"] = pipeline_type
133        if documentation_url is not UNSET:
134            field_dict["documentationUrl"] = documentation_url
135        if file_requirements_message is not UNSET:
136            field_dict["fileRequirementsMessage"] = file_requirements_message
137        if owner is not UNSET:
138            field_dict["owner"] = owner
139        if created_at is not UNSET:
140            field_dict["createdAt"] = created_at
141        if updated_at is not UNSET:
142            field_dict["updatedAt"] = updated_at
143
144        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
146    @classmethod
147    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
148        d = src_dict.copy()
149        id = d.pop("id")
150
151        name = d.pop("name")
152
153        description = d.pop("description")
154
155        data_type = d.pop("dataType")
156
157        executor = Executor(d.pop("executor"))
158
159        child_process_ids = cast(List[str], d.pop("childProcessIds"))
160
161        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
162
163        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
164
165        is_tenant_wide = d.pop("isTenantWide")
166
167        allow_multiple_sources = d.pop("allowMultipleSources")
168
169        uses_sample_sheet = d.pop("usesSampleSheet")
170
171        is_archived = d.pop("isArchived")
172
173        category = d.pop("category", UNSET)
174
175        pipeline_type = d.pop("pipelineType", UNSET)
176
177        documentation_url = d.pop("documentationUrl", UNSET)
178
179        file_requirements_message = d.pop("fileRequirementsMessage", UNSET)
180
181        def _parse_owner(data: object) -> Union[None, Unset, str]:
182            if data is None:
183                return data
184            if isinstance(data, Unset):
185                return data
186            return cast(Union[None, Unset, str], data)
187
188        owner = _parse_owner(d.pop("owner", UNSET))
189
190        _created_at = d.pop("createdAt", UNSET)
191        created_at: Union[Unset, datetime.datetime]
192        if isinstance(_created_at, Unset):
193            created_at = UNSET
194        else:
195            created_at = isoparse(_created_at)
196
197        _updated_at = d.pop("updatedAt", UNSET)
198        updated_at: Union[Unset, datetime.datetime]
199        if isinstance(_updated_at, Unset):
200            updated_at = UNSET
201        else:
202            updated_at = isoparse(_updated_at)
203
204        process = cls(
205            id=id,
206            name=name,
207            description=description,
208            data_type=data_type,
209            executor=executor,
210            child_process_ids=child_process_ids,
211            parent_process_ids=parent_process_ids,
212            linked_project_ids=linked_project_ids,
213            is_tenant_wide=is_tenant_wide,
214            allow_multiple_sources=allow_multiple_sources,
215            uses_sample_sheet=uses_sample_sheet,
216            is_archived=is_archived,
217            category=category,
218            pipeline_type=pipeline_type,
219            documentation_url=documentation_url,
220            file_requirements_message=file_requirements_message,
221            owner=owner,
222            created_at=created_at,
223            updated_at=updated_at,
224        )
225
226        process.additional_properties = d
227        return process
additional_keys: List[str]
229    @property
230    def additional_keys(self) -> List[str]:
231        return list(self.additional_properties.keys())
class ProcessDetail:
 21@_attrs_define
 22class ProcessDetail:
 23    """Identifies a data type or pipeline in Cirro
 24
 25    Attributes:
 26        id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
 27        name (str): Friendly name for the process Example: MAGeCK Flute.
 28        description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential
 29            genes with their related biological functions.
 30        data_type (str): Name of the data type this pipeline produces (if it is not defined, use the name)
 31        executor (Executor): How the workflow is executed
 32        child_process_ids (List[str]): IDs of pipelines that can be run downstream
 33        parent_process_ids (List[str]): IDs of processes that can run this pipeline
 34        linked_project_ids (List[str]): Projects that can run this process
 35        is_tenant_wide (bool): Whether the process is shared with the tenant
 36        allow_multiple_sources (bool): Whether the pipeline is allowed to have multiple dataset sources
 37        uses_sample_sheet (bool): Whether the pipeline uses the Cirro-provided sample sheet
 38        is_archived (bool): Whether the process is marked as archived
 39        category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
 40        pipeline_type (Union[Unset, str]): Type of pipeline Example: nf-core.
 41        documentation_url (Union[Unset, str]): Link to process documentation Example:
 42            https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
 43        file_requirements_message (Union[Unset, str]): Description of the files to be uploaded (optional)
 44        pipeline_code (Union['PipelineCode', None, Unset]):
 45        owner (Union[None, Unset, str]): Username of the pipeline creator (blank if Cirro curated)
 46        custom_settings (Union['CustomPipelineSettings', None, Unset]):
 47        file_mapping_rules (Union[List['FileMappingRule'], None, Unset]):
 48        created_at (Union[Unset, datetime.datetime]): When the process was created (does not reflect the pipeline code)
 49        updated_at (Union[Unset, datetime.datetime]): When the process was updated (does not reflect the pipeline code)
 50    """
 51
 52    id: str
 53    name: str
 54    description: str
 55    data_type: str
 56    executor: Executor
 57    child_process_ids: List[str]
 58    parent_process_ids: List[str]
 59    linked_project_ids: List[str]
 60    is_tenant_wide: bool
 61    allow_multiple_sources: bool
 62    uses_sample_sheet: bool
 63    is_archived: bool
 64    category: Union[Unset, str] = UNSET
 65    pipeline_type: Union[Unset, str] = UNSET
 66    documentation_url: Union[Unset, str] = UNSET
 67    file_requirements_message: Union[Unset, str] = UNSET
 68    pipeline_code: Union["PipelineCode", None, Unset] = UNSET
 69    owner: Union[None, Unset, str] = UNSET
 70    custom_settings: Union["CustomPipelineSettings", None, Unset] = UNSET
 71    file_mapping_rules: Union[List["FileMappingRule"], None, Unset] = UNSET
 72    created_at: Union[Unset, datetime.datetime] = UNSET
 73    updated_at: Union[Unset, datetime.datetime] = UNSET
 74    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 75
 76    def to_dict(self) -> Dict[str, Any]:
 77        from ..models.custom_pipeline_settings import CustomPipelineSettings
 78        from ..models.pipeline_code import PipelineCode
 79
 80        id = self.id
 81
 82        name = self.name
 83
 84        description = self.description
 85
 86        data_type = self.data_type
 87
 88        executor = self.executor.value
 89
 90        child_process_ids = self.child_process_ids
 91
 92        parent_process_ids = self.parent_process_ids
 93
 94        linked_project_ids = self.linked_project_ids
 95
 96        is_tenant_wide = self.is_tenant_wide
 97
 98        allow_multiple_sources = self.allow_multiple_sources
 99
100        uses_sample_sheet = self.uses_sample_sheet
101
102        is_archived = self.is_archived
103
104        category = self.category
105
106        pipeline_type = self.pipeline_type
107
108        documentation_url = self.documentation_url
109
110        file_requirements_message = self.file_requirements_message
111
112        pipeline_code: Union[Dict[str, Any], None, Unset]
113        if isinstance(self.pipeline_code, Unset):
114            pipeline_code = UNSET
115        elif isinstance(self.pipeline_code, PipelineCode):
116            pipeline_code = self.pipeline_code.to_dict()
117        else:
118            pipeline_code = self.pipeline_code
119
120        owner: Union[None, Unset, str]
121        if isinstance(self.owner, Unset):
122            owner = UNSET
123        else:
124            owner = self.owner
125
126        custom_settings: Union[Dict[str, Any], None, Unset]
127        if isinstance(self.custom_settings, Unset):
128            custom_settings = UNSET
129        elif isinstance(self.custom_settings, CustomPipelineSettings):
130            custom_settings = self.custom_settings.to_dict()
131        else:
132            custom_settings = self.custom_settings
133
134        file_mapping_rules: Union[List[Dict[str, Any]], None, Unset]
135        if isinstance(self.file_mapping_rules, Unset):
136            file_mapping_rules = UNSET
137        elif isinstance(self.file_mapping_rules, list):
138            file_mapping_rules = []
139            for file_mapping_rules_type_0_item_data in self.file_mapping_rules:
140                file_mapping_rules_type_0_item = file_mapping_rules_type_0_item_data.to_dict()
141                file_mapping_rules.append(file_mapping_rules_type_0_item)
142
143        else:
144            file_mapping_rules = self.file_mapping_rules
145
146        created_at: Union[Unset, str] = UNSET
147        if not isinstance(self.created_at, Unset):
148            created_at = self.created_at.isoformat()
149
150        updated_at: Union[Unset, str] = UNSET
151        if not isinstance(self.updated_at, Unset):
152            updated_at = self.updated_at.isoformat()
153
154        field_dict: Dict[str, Any] = {}
155        field_dict.update(self.additional_properties)
156        field_dict.update(
157            {
158                "id": id,
159                "name": name,
160                "description": description,
161                "dataType": data_type,
162                "executor": executor,
163                "childProcessIds": child_process_ids,
164                "parentProcessIds": parent_process_ids,
165                "linkedProjectIds": linked_project_ids,
166                "isTenantWide": is_tenant_wide,
167                "allowMultipleSources": allow_multiple_sources,
168                "usesSampleSheet": uses_sample_sheet,
169                "isArchived": is_archived,
170            }
171        )
172        if category is not UNSET:
173            field_dict["category"] = category
174        if pipeline_type is not UNSET:
175            field_dict["pipelineType"] = pipeline_type
176        if documentation_url is not UNSET:
177            field_dict["documentationUrl"] = documentation_url
178        if file_requirements_message is not UNSET:
179            field_dict["fileRequirementsMessage"] = file_requirements_message
180        if pipeline_code is not UNSET:
181            field_dict["pipelineCode"] = pipeline_code
182        if owner is not UNSET:
183            field_dict["owner"] = owner
184        if custom_settings is not UNSET:
185            field_dict["customSettings"] = custom_settings
186        if file_mapping_rules is not UNSET:
187            field_dict["fileMappingRules"] = file_mapping_rules
188        if created_at is not UNSET:
189            field_dict["createdAt"] = created_at
190        if updated_at is not UNSET:
191            field_dict["updatedAt"] = updated_at
192
193        return field_dict
194
195    @classmethod
196    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
197        from ..models.custom_pipeline_settings import CustomPipelineSettings
198        from ..models.file_mapping_rule import FileMappingRule
199        from ..models.pipeline_code import PipelineCode
200
201        d = src_dict.copy()
202        id = d.pop("id")
203
204        name = d.pop("name")
205
206        description = d.pop("description")
207
208        data_type = d.pop("dataType")
209
210        executor = Executor(d.pop("executor"))
211
212        child_process_ids = cast(List[str], d.pop("childProcessIds"))
213
214        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
215
216        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
217
218        is_tenant_wide = d.pop("isTenantWide")
219
220        allow_multiple_sources = d.pop("allowMultipleSources")
221
222        uses_sample_sheet = d.pop("usesSampleSheet")
223
224        is_archived = d.pop("isArchived")
225
226        category = d.pop("category", UNSET)
227
228        pipeline_type = d.pop("pipelineType", UNSET)
229
230        documentation_url = d.pop("documentationUrl", UNSET)
231
232        file_requirements_message = d.pop("fileRequirementsMessage", UNSET)
233
234        def _parse_pipeline_code(data: object) -> Union["PipelineCode", None, Unset]:
235            if data is None:
236                return data
237            if isinstance(data, Unset):
238                return data
239            try:
240                if not isinstance(data, dict):
241                    raise TypeError()
242                pipeline_code_type_1 = PipelineCode.from_dict(data)
243
244                return pipeline_code_type_1
245            except:  # noqa: E722
246                pass
247            return cast(Union["PipelineCode", None, Unset], data)
248
249        pipeline_code = _parse_pipeline_code(d.pop("pipelineCode", UNSET))
250
251        def _parse_owner(data: object) -> Union[None, Unset, str]:
252            if data is None:
253                return data
254            if isinstance(data, Unset):
255                return data
256            return cast(Union[None, Unset, str], data)
257
258        owner = _parse_owner(d.pop("owner", UNSET))
259
260        def _parse_custom_settings(data: object) -> Union["CustomPipelineSettings", None, Unset]:
261            if data is None:
262                return data
263            if isinstance(data, Unset):
264                return data
265            try:
266                if not isinstance(data, dict):
267                    raise TypeError()
268                custom_settings_type_1 = CustomPipelineSettings.from_dict(data)
269
270                return custom_settings_type_1
271            except:  # noqa: E722
272                pass
273            return cast(Union["CustomPipelineSettings", None, Unset], data)
274
275        custom_settings = _parse_custom_settings(d.pop("customSettings", UNSET))
276
277        def _parse_file_mapping_rules(data: object) -> Union[List["FileMappingRule"], None, Unset]:
278            if data is None:
279                return data
280            if isinstance(data, Unset):
281                return data
282            try:
283                if not isinstance(data, list):
284                    raise TypeError()
285                file_mapping_rules_type_0 = []
286                _file_mapping_rules_type_0 = data
287                for file_mapping_rules_type_0_item_data in _file_mapping_rules_type_0:
288                    file_mapping_rules_type_0_item = FileMappingRule.from_dict(file_mapping_rules_type_0_item_data)
289
290                    file_mapping_rules_type_0.append(file_mapping_rules_type_0_item)
291
292                return file_mapping_rules_type_0
293            except:  # noqa: E722
294                pass
295            return cast(Union[List["FileMappingRule"], None, Unset], data)
296
297        file_mapping_rules = _parse_file_mapping_rules(d.pop("fileMappingRules", UNSET))
298
299        _created_at = d.pop("createdAt", UNSET)
300        created_at: Union[Unset, datetime.datetime]
301        if isinstance(_created_at, Unset):
302            created_at = UNSET
303        else:
304            created_at = isoparse(_created_at)
305
306        _updated_at = d.pop("updatedAt", UNSET)
307        updated_at: Union[Unset, datetime.datetime]
308        if isinstance(_updated_at, Unset):
309            updated_at = UNSET
310        else:
311            updated_at = isoparse(_updated_at)
312
313        process_detail = cls(
314            id=id,
315            name=name,
316            description=description,
317            data_type=data_type,
318            executor=executor,
319            child_process_ids=child_process_ids,
320            parent_process_ids=parent_process_ids,
321            linked_project_ids=linked_project_ids,
322            is_tenant_wide=is_tenant_wide,
323            allow_multiple_sources=allow_multiple_sources,
324            uses_sample_sheet=uses_sample_sheet,
325            is_archived=is_archived,
326            category=category,
327            pipeline_type=pipeline_type,
328            documentation_url=documentation_url,
329            file_requirements_message=file_requirements_message,
330            pipeline_code=pipeline_code,
331            owner=owner,
332            custom_settings=custom_settings,
333            file_mapping_rules=file_mapping_rules,
334            created_at=created_at,
335            updated_at=updated_at,
336        )
337
338        process_detail.additional_properties = d
339        return process_detail
340
341    @property
342    def additional_keys(self) -> List[str]:
343        return list(self.additional_properties.keys())

Identifies a data type or pipeline in Cirro

Attributes:
  • id (str): Unique ID of the Process Example: process-hutch-magic_flute-1_0.
  • name (str): Friendly name for the process Example: MAGeCK Flute.
  • description (str): Description of the process Example: MAGeCK Flute enables accurate identification of essential genes with their related biological functions.
  • data_type (str): Name of the data type this pipeline produces (if it is not defined, use the name)
  • executor (Executor): How the workflow is executed
  • child_process_ids (List[str]): IDs of pipelines that can be run downstream
  • parent_process_ids (List[str]): IDs of processes that can run this pipeline
  • linked_project_ids (List[str]): Projects that can run this process
  • is_tenant_wide (bool): Whether the process is shared with the tenant
  • allow_multiple_sources (bool): Whether the pipeline is allowed to have multiple dataset sources
  • uses_sample_sheet (bool): Whether the pipeline uses the Cirro-provided sample sheet
  • is_archived (bool): Whether the process is marked as archived
  • category (Union[Unset, str]): Category of the process Example: Microbial Analysis.
  • pipeline_type (Union[Unset, str]): Type of pipeline Example: nf-core.
  • documentation_url (Union[Unset, str]): Link to process documentation Example: https://docs.cirro.bio/pipelines/catalog_targeted_sequencing/#crispr-screen-analysis.
  • file_requirements_message (Union[Unset, str]): Description of the files to be uploaded (optional)
  • pipeline_code (Union['PipelineCode', None, Unset]):
  • owner (Union[None, Unset, str]): Username of the pipeline creator (blank if Cirro curated)
  • custom_settings (Union['CustomPipelineSettings', None, Unset]):
  • file_mapping_rules (Union[List['FileMappingRule'], None, Unset]):
  • created_at (Union[Unset, datetime.datetime]): When the process was created (does not reflect the pipeline code)
  • updated_at (Union[Unset, datetime.datetime]): When the process was updated (does not reflect the pipeline code)
ProcessDetail( id: str, name: str, description: str, data_type: str, executor: Executor, child_process_ids: List[str], parent_process_ids: List[str], linked_project_ids: List[str], is_tenant_wide: bool, allow_multiple_sources: bool, uses_sample_sheet: bool, is_archived: bool, category: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, pipeline_type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, documentation_url: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, file_requirements_message: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, pipeline_code: Union[PipelineCode, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, owner: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, custom_settings: Union[CustomPipelineSettings, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, file_mapping_rules: Union[List[FileMappingRule], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, updated_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
45def __init__(self, id, name, description, data_type, executor, child_process_ids, parent_process_ids, linked_project_ids, is_tenant_wide, allow_multiple_sources, uses_sample_sheet, is_archived, category=attr_dict['category'].default, pipeline_type=attr_dict['pipeline_type'].default, documentation_url=attr_dict['documentation_url'].default, file_requirements_message=attr_dict['file_requirements_message'].default, pipeline_code=attr_dict['pipeline_code'].default, owner=attr_dict['owner'].default, custom_settings=attr_dict['custom_settings'].default, file_mapping_rules=attr_dict['file_mapping_rules'].default, created_at=attr_dict['created_at'].default, updated_at=attr_dict['updated_at'].default):
46    self.id = id
47    self.name = name
48    self.description = description
49    self.data_type = data_type
50    self.executor = executor
51    self.child_process_ids = child_process_ids
52    self.parent_process_ids = parent_process_ids
53    self.linked_project_ids = linked_project_ids
54    self.is_tenant_wide = is_tenant_wide
55    self.allow_multiple_sources = allow_multiple_sources
56    self.uses_sample_sheet = uses_sample_sheet
57    self.is_archived = is_archived
58    self.category = category
59    self.pipeline_type = pipeline_type
60    self.documentation_url = documentation_url
61    self.file_requirements_message = file_requirements_message
62    self.pipeline_code = pipeline_code
63    self.owner = owner
64    self.custom_settings = custom_settings
65    self.file_mapping_rules = file_mapping_rules
66    self.created_at = created_at
67    self.updated_at = updated_at
68    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProcessDetail.

id: str
name: str
description: str
data_type: str
executor: Executor
child_process_ids: List[str]
parent_process_ids: List[str]
linked_project_ids: List[str]
is_tenant_wide: bool
allow_multiple_sources: bool
uses_sample_sheet: bool
is_archived: bool
category: Union[cirro_api_client.v1.types.Unset, str]
pipeline_type: Union[cirro_api_client.v1.types.Unset, str]
documentation_url: Union[cirro_api_client.v1.types.Unset, str]
file_requirements_message: Union[cirro_api_client.v1.types.Unset, str]
pipeline_code: Union[PipelineCode, NoneType, cirro_api_client.v1.types.Unset]
owner: Union[NoneType, cirro_api_client.v1.types.Unset, str]
custom_settings: Union[CustomPipelineSettings, NoneType, cirro_api_client.v1.types.Unset]
file_mapping_rules: Union[List[FileMappingRule], NoneType, cirro_api_client.v1.types.Unset]
created_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
updated_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 76    def to_dict(self) -> Dict[str, Any]:
 77        from ..models.custom_pipeline_settings import CustomPipelineSettings
 78        from ..models.pipeline_code import PipelineCode
 79
 80        id = self.id
 81
 82        name = self.name
 83
 84        description = self.description
 85
 86        data_type = self.data_type
 87
 88        executor = self.executor.value
 89
 90        child_process_ids = self.child_process_ids
 91
 92        parent_process_ids = self.parent_process_ids
 93
 94        linked_project_ids = self.linked_project_ids
 95
 96        is_tenant_wide = self.is_tenant_wide
 97
 98        allow_multiple_sources = self.allow_multiple_sources
 99
100        uses_sample_sheet = self.uses_sample_sheet
101
102        is_archived = self.is_archived
103
104        category = self.category
105
106        pipeline_type = self.pipeline_type
107
108        documentation_url = self.documentation_url
109
110        file_requirements_message = self.file_requirements_message
111
112        pipeline_code: Union[Dict[str, Any], None, Unset]
113        if isinstance(self.pipeline_code, Unset):
114            pipeline_code = UNSET
115        elif isinstance(self.pipeline_code, PipelineCode):
116            pipeline_code = self.pipeline_code.to_dict()
117        else:
118            pipeline_code = self.pipeline_code
119
120        owner: Union[None, Unset, str]
121        if isinstance(self.owner, Unset):
122            owner = UNSET
123        else:
124            owner = self.owner
125
126        custom_settings: Union[Dict[str, Any], None, Unset]
127        if isinstance(self.custom_settings, Unset):
128            custom_settings = UNSET
129        elif isinstance(self.custom_settings, CustomPipelineSettings):
130            custom_settings = self.custom_settings.to_dict()
131        else:
132            custom_settings = self.custom_settings
133
134        file_mapping_rules: Union[List[Dict[str, Any]], None, Unset]
135        if isinstance(self.file_mapping_rules, Unset):
136            file_mapping_rules = UNSET
137        elif isinstance(self.file_mapping_rules, list):
138            file_mapping_rules = []
139            for file_mapping_rules_type_0_item_data in self.file_mapping_rules:
140                file_mapping_rules_type_0_item = file_mapping_rules_type_0_item_data.to_dict()
141                file_mapping_rules.append(file_mapping_rules_type_0_item)
142
143        else:
144            file_mapping_rules = self.file_mapping_rules
145
146        created_at: Union[Unset, str] = UNSET
147        if not isinstance(self.created_at, Unset):
148            created_at = self.created_at.isoformat()
149
150        updated_at: Union[Unset, str] = UNSET
151        if not isinstance(self.updated_at, Unset):
152            updated_at = self.updated_at.isoformat()
153
154        field_dict: Dict[str, Any] = {}
155        field_dict.update(self.additional_properties)
156        field_dict.update(
157            {
158                "id": id,
159                "name": name,
160                "description": description,
161                "dataType": data_type,
162                "executor": executor,
163                "childProcessIds": child_process_ids,
164                "parentProcessIds": parent_process_ids,
165                "linkedProjectIds": linked_project_ids,
166                "isTenantWide": is_tenant_wide,
167                "allowMultipleSources": allow_multiple_sources,
168                "usesSampleSheet": uses_sample_sheet,
169                "isArchived": is_archived,
170            }
171        )
172        if category is not UNSET:
173            field_dict["category"] = category
174        if pipeline_type is not UNSET:
175            field_dict["pipelineType"] = pipeline_type
176        if documentation_url is not UNSET:
177            field_dict["documentationUrl"] = documentation_url
178        if file_requirements_message is not UNSET:
179            field_dict["fileRequirementsMessage"] = file_requirements_message
180        if pipeline_code is not UNSET:
181            field_dict["pipelineCode"] = pipeline_code
182        if owner is not UNSET:
183            field_dict["owner"] = owner
184        if custom_settings is not UNSET:
185            field_dict["customSettings"] = custom_settings
186        if file_mapping_rules is not UNSET:
187            field_dict["fileMappingRules"] = file_mapping_rules
188        if created_at is not UNSET:
189            field_dict["createdAt"] = created_at
190        if updated_at is not UNSET:
191            field_dict["updatedAt"] = updated_at
192
193        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
195    @classmethod
196    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
197        from ..models.custom_pipeline_settings import CustomPipelineSettings
198        from ..models.file_mapping_rule import FileMappingRule
199        from ..models.pipeline_code import PipelineCode
200
201        d = src_dict.copy()
202        id = d.pop("id")
203
204        name = d.pop("name")
205
206        description = d.pop("description")
207
208        data_type = d.pop("dataType")
209
210        executor = Executor(d.pop("executor"))
211
212        child_process_ids = cast(List[str], d.pop("childProcessIds"))
213
214        parent_process_ids = cast(List[str], d.pop("parentProcessIds"))
215
216        linked_project_ids = cast(List[str], d.pop("linkedProjectIds"))
217
218        is_tenant_wide = d.pop("isTenantWide")
219
220        allow_multiple_sources = d.pop("allowMultipleSources")
221
222        uses_sample_sheet = d.pop("usesSampleSheet")
223
224        is_archived = d.pop("isArchived")
225
226        category = d.pop("category", UNSET)
227
228        pipeline_type = d.pop("pipelineType", UNSET)
229
230        documentation_url = d.pop("documentationUrl", UNSET)
231
232        file_requirements_message = d.pop("fileRequirementsMessage", UNSET)
233
234        def _parse_pipeline_code(data: object) -> Union["PipelineCode", None, Unset]:
235            if data is None:
236                return data
237            if isinstance(data, Unset):
238                return data
239            try:
240                if not isinstance(data, dict):
241                    raise TypeError()
242                pipeline_code_type_1 = PipelineCode.from_dict(data)
243
244                return pipeline_code_type_1
245            except:  # noqa: E722
246                pass
247            return cast(Union["PipelineCode", None, Unset], data)
248
249        pipeline_code = _parse_pipeline_code(d.pop("pipelineCode", UNSET))
250
251        def _parse_owner(data: object) -> Union[None, Unset, str]:
252            if data is None:
253                return data
254            if isinstance(data, Unset):
255                return data
256            return cast(Union[None, Unset, str], data)
257
258        owner = _parse_owner(d.pop("owner", UNSET))
259
260        def _parse_custom_settings(data: object) -> Union["CustomPipelineSettings", None, Unset]:
261            if data is None:
262                return data
263            if isinstance(data, Unset):
264                return data
265            try:
266                if not isinstance(data, dict):
267                    raise TypeError()
268                custom_settings_type_1 = CustomPipelineSettings.from_dict(data)
269
270                return custom_settings_type_1
271            except:  # noqa: E722
272                pass
273            return cast(Union["CustomPipelineSettings", None, Unset], data)
274
275        custom_settings = _parse_custom_settings(d.pop("customSettings", UNSET))
276
277        def _parse_file_mapping_rules(data: object) -> Union[List["FileMappingRule"], None, Unset]:
278            if data is None:
279                return data
280            if isinstance(data, Unset):
281                return data
282            try:
283                if not isinstance(data, list):
284                    raise TypeError()
285                file_mapping_rules_type_0 = []
286                _file_mapping_rules_type_0 = data
287                for file_mapping_rules_type_0_item_data in _file_mapping_rules_type_0:
288                    file_mapping_rules_type_0_item = FileMappingRule.from_dict(file_mapping_rules_type_0_item_data)
289
290                    file_mapping_rules_type_0.append(file_mapping_rules_type_0_item)
291
292                return file_mapping_rules_type_0
293            except:  # noqa: E722
294                pass
295            return cast(Union[List["FileMappingRule"], None, Unset], data)
296
297        file_mapping_rules = _parse_file_mapping_rules(d.pop("fileMappingRules", UNSET))
298
299        _created_at = d.pop("createdAt", UNSET)
300        created_at: Union[Unset, datetime.datetime]
301        if isinstance(_created_at, Unset):
302            created_at = UNSET
303        else:
304            created_at = isoparse(_created_at)
305
306        _updated_at = d.pop("updatedAt", UNSET)
307        updated_at: Union[Unset, datetime.datetime]
308        if isinstance(_updated_at, Unset):
309            updated_at = UNSET
310        else:
311            updated_at = isoparse(_updated_at)
312
313        process_detail = cls(
314            id=id,
315            name=name,
316            description=description,
317            data_type=data_type,
318            executor=executor,
319            child_process_ids=child_process_ids,
320            parent_process_ids=parent_process_ids,
321            linked_project_ids=linked_project_ids,
322            is_tenant_wide=is_tenant_wide,
323            allow_multiple_sources=allow_multiple_sources,
324            uses_sample_sheet=uses_sample_sheet,
325            is_archived=is_archived,
326            category=category,
327            pipeline_type=pipeline_type,
328            documentation_url=documentation_url,
329            file_requirements_message=file_requirements_message,
330            pipeline_code=pipeline_code,
331            owner=owner,
332            custom_settings=custom_settings,
333            file_mapping_rules=file_mapping_rules,
334            created_at=created_at,
335            updated_at=updated_at,
336        )
337
338        process_detail.additional_properties = d
339        return process_detail
additional_keys: List[str]
341    @property
342    def additional_keys(self) -> List[str]:
343        return list(self.additional_properties.keys())
class Project:
 16@_attrs_define
 17class Project:
 18    """
 19    Attributes:
 20        id (str):
 21        name (str):
 22        description (str):
 23        status (Status):
 24        tags (List['Tag']):
 25        organization (str):
 26        classification_ids (List[str]):
 27        billing_account_id (str):
 28    """
 29
 30    id: str
 31    name: str
 32    description: str
 33    status: Status
 34    tags: List["Tag"]
 35    organization: str
 36    classification_ids: List[str]
 37    billing_account_id: str
 38    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 39
 40    def to_dict(self) -> Dict[str, Any]:
 41        id = self.id
 42
 43        name = self.name
 44
 45        description = self.description
 46
 47        status = self.status.value
 48
 49        tags = []
 50        for tags_item_data in self.tags:
 51            tags_item = tags_item_data.to_dict()
 52            tags.append(tags_item)
 53
 54        organization = self.organization
 55
 56        classification_ids = self.classification_ids
 57
 58        billing_account_id = self.billing_account_id
 59
 60        field_dict: Dict[str, Any] = {}
 61        field_dict.update(self.additional_properties)
 62        field_dict.update(
 63            {
 64                "id": id,
 65                "name": name,
 66                "description": description,
 67                "status": status,
 68                "tags": tags,
 69                "organization": organization,
 70                "classificationIds": classification_ids,
 71                "billingAccountId": billing_account_id,
 72            }
 73        )
 74
 75        return field_dict
 76
 77    @classmethod
 78    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 79        from ..models.tag import Tag
 80
 81        d = src_dict.copy()
 82        id = d.pop("id")
 83
 84        name = d.pop("name")
 85
 86        description = d.pop("description")
 87
 88        status = Status(d.pop("status"))
 89
 90        tags = []
 91        _tags = d.pop("tags")
 92        for tags_item_data in _tags:
 93            tags_item = Tag.from_dict(tags_item_data)
 94
 95            tags.append(tags_item)
 96
 97        organization = d.pop("organization")
 98
 99        classification_ids = cast(List[str], d.pop("classificationIds"))
100
101        billing_account_id = d.pop("billingAccountId")
102
103        project = cls(
104            id=id,
105            name=name,
106            description=description,
107            status=status,
108            tags=tags,
109            organization=organization,
110            classification_ids=classification_ids,
111            billing_account_id=billing_account_id,
112        )
113
114        project.additional_properties = d
115        return project
116
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • status (Status):
  • tags (List['Tag']):
  • organization (str):
  • classification_ids (List[str]):
  • billing_account_id (str):
Project( id: str, name: str, description: str, status: Status, tags: List[Tag], organization: str, classification_ids: List[str], billing_account_id: str)
31def __init__(self, id, name, description, status, tags, organization, classification_ids, billing_account_id):
32    self.id = id
33    self.name = name
34    self.description = description
35    self.status = status
36    self.tags = tags
37    self.organization = organization
38    self.classification_ids = classification_ids
39    self.billing_account_id = billing_account_id
40    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Project.

id: str
name: str
description: str
status: Status
tags: List[Tag]
organization: str
classification_ids: List[str]
billing_account_id: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
40    def to_dict(self) -> Dict[str, Any]:
41        id = self.id
42
43        name = self.name
44
45        description = self.description
46
47        status = self.status.value
48
49        tags = []
50        for tags_item_data in self.tags:
51            tags_item = tags_item_data.to_dict()
52            tags.append(tags_item)
53
54        organization = self.organization
55
56        classification_ids = self.classification_ids
57
58        billing_account_id = self.billing_account_id
59
60        field_dict: Dict[str, Any] = {}
61        field_dict.update(self.additional_properties)
62        field_dict.update(
63            {
64                "id": id,
65                "name": name,
66                "description": description,
67                "status": status,
68                "tags": tags,
69                "organization": organization,
70                "classificationIds": classification_ids,
71                "billingAccountId": billing_account_id,
72            }
73        )
74
75        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 77    @classmethod
 78    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 79        from ..models.tag import Tag
 80
 81        d = src_dict.copy()
 82        id = d.pop("id")
 83
 84        name = d.pop("name")
 85
 86        description = d.pop("description")
 87
 88        status = Status(d.pop("status"))
 89
 90        tags = []
 91        _tags = d.pop("tags")
 92        for tags_item_data in _tags:
 93            tags_item = Tag.from_dict(tags_item_data)
 94
 95            tags.append(tags_item)
 96
 97        organization = d.pop("organization")
 98
 99        classification_ids = cast(List[str], d.pop("classificationIds"))
100
101        billing_account_id = d.pop("billingAccountId")
102
103        project = cls(
104            id=id,
105            name=name,
106            description=description,
107            status=status,
108            tags=tags,
109            organization=organization,
110            classification_ids=classification_ids,
111            billing_account_id=billing_account_id,
112        )
113
114        project.additional_properties = d
115        return project
additional_keys: List[str]
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
class ProjectAccessRequest:
 15@_attrs_define
 16class ProjectAccessRequest:
 17    """
 18    Attributes:
 19        id (str):
 20        username (str):
 21        project_id (str):
 22        role (ProjectRole):
 23        message (str):
 24        status (RequestStatus):
 25        reviewer_username (str):
 26        created_at (datetime.datetime):
 27        expiry (datetime.datetime):
 28    """
 29
 30    id: str
 31    username: str
 32    project_id: str
 33    role: ProjectRole
 34    message: str
 35    status: RequestStatus
 36    reviewer_username: str
 37    created_at: datetime.datetime
 38    expiry: datetime.datetime
 39    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 40
 41    def to_dict(self) -> Dict[str, Any]:
 42        id = self.id
 43
 44        username = self.username
 45
 46        project_id = self.project_id
 47
 48        role = self.role.value
 49
 50        message = self.message
 51
 52        status = self.status.value
 53
 54        reviewer_username = self.reviewer_username
 55
 56        created_at = self.created_at.isoformat()
 57
 58        expiry = self.expiry.isoformat()
 59
 60        field_dict: Dict[str, Any] = {}
 61        field_dict.update(self.additional_properties)
 62        field_dict.update(
 63            {
 64                "id": id,
 65                "username": username,
 66                "projectId": project_id,
 67                "role": role,
 68                "message": message,
 69                "status": status,
 70                "reviewerUsername": reviewer_username,
 71                "createdAt": created_at,
 72                "expiry": expiry,
 73            }
 74        )
 75
 76        return field_dict
 77
 78    @classmethod
 79    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 80        d = src_dict.copy()
 81        id = d.pop("id")
 82
 83        username = d.pop("username")
 84
 85        project_id = d.pop("projectId")
 86
 87        role = ProjectRole(d.pop("role"))
 88
 89        message = d.pop("message")
 90
 91        status = RequestStatus(d.pop("status"))
 92
 93        reviewer_username = d.pop("reviewerUsername")
 94
 95        created_at = isoparse(d.pop("createdAt"))
 96
 97        expiry = isoparse(d.pop("expiry"))
 98
 99        project_access_request = cls(
100            id=id,
101            username=username,
102            project_id=project_id,
103            role=role,
104            message=message,
105            status=status,
106            reviewer_username=reviewer_username,
107            created_at=created_at,
108            expiry=expiry,
109        )
110
111        project_access_request.additional_properties = d
112        return project_access_request
113
114    @property
115    def additional_keys(self) -> List[str]:
116        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • username (str):
  • project_id (str):
  • role (ProjectRole):
  • message (str):
  • status (RequestStatus):
  • reviewer_username (str):
  • created_at (datetime.datetime):
  • expiry (datetime.datetime):
ProjectAccessRequest( id: str, username: str, project_id: str, role: ProjectRole, message: str, status: RequestStatus, reviewer_username: str, created_at: datetime.datetime, expiry: datetime.datetime)
32def __init__(self, id, username, project_id, role, message, status, reviewer_username, created_at, expiry):
33    self.id = id
34    self.username = username
35    self.project_id = project_id
36    self.role = role
37    self.message = message
38    self.status = status
39    self.reviewer_username = reviewer_username
40    self.created_at = created_at
41    self.expiry = expiry
42    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectAccessRequest.

id: str
username: str
project_id: str
role: ProjectRole
message: str
status: RequestStatus
reviewer_username: str
created_at: datetime.datetime
expiry: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
41    def to_dict(self) -> Dict[str, Any]:
42        id = self.id
43
44        username = self.username
45
46        project_id = self.project_id
47
48        role = self.role.value
49
50        message = self.message
51
52        status = self.status.value
53
54        reviewer_username = self.reviewer_username
55
56        created_at = self.created_at.isoformat()
57
58        expiry = self.expiry.isoformat()
59
60        field_dict: Dict[str, Any] = {}
61        field_dict.update(self.additional_properties)
62        field_dict.update(
63            {
64                "id": id,
65                "username": username,
66                "projectId": project_id,
67                "role": role,
68                "message": message,
69                "status": status,
70                "reviewerUsername": reviewer_username,
71                "createdAt": created_at,
72                "expiry": expiry,
73            }
74        )
75
76        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 78    @classmethod
 79    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 80        d = src_dict.copy()
 81        id = d.pop("id")
 82
 83        username = d.pop("username")
 84
 85        project_id = d.pop("projectId")
 86
 87        role = ProjectRole(d.pop("role"))
 88
 89        message = d.pop("message")
 90
 91        status = RequestStatus(d.pop("status"))
 92
 93        reviewer_username = d.pop("reviewerUsername")
 94
 95        created_at = isoparse(d.pop("createdAt"))
 96
 97        expiry = isoparse(d.pop("expiry"))
 98
 99        project_access_request = cls(
100            id=id,
101            username=username,
102            project_id=project_id,
103            role=role,
104            message=message,
105            status=status,
106            reviewer_username=reviewer_username,
107            created_at=created_at,
108            expiry=expiry,
109        )
110
111        project_access_request.additional_properties = d
112        return project_access_request
additional_keys: List[str]
114    @property
115    def additional_keys(self) -> List[str]:
116        return list(self.additional_properties.keys())
class ProjectAccessType(builtins.str, enum.Enum):
 5class ProjectAccessType(str, Enum):
 6    DATASET_UPLOAD = "DATASET_UPLOAD"
 7    PROJECT_DOWNLOAD = "PROJECT_DOWNLOAD"
 8    REFERENCE_UPLOAD = "REFERENCE_UPLOAD"
 9    SAMPLESHEET_UPLOAD = "SAMPLESHEET_UPLOAD"
10    SHARED_DATASET_DOWNLOAD = "SHARED_DATASET_DOWNLOAD"
11    UNKNOWN = "UNKNOWN"
12    """ This is a fallback value for when the value is not known, do not use this value when making requests """
13
14    def __str__(self) -> str:
15        return str(self.value)
16
17    @classmethod
18    def _missing_(cls, number):
19        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

DATASET_UPLOAD = <ProjectAccessType.DATASET_UPLOAD: 'DATASET_UPLOAD'>
PROJECT_DOWNLOAD = <ProjectAccessType.PROJECT_DOWNLOAD: 'PROJECT_DOWNLOAD'>
REFERENCE_UPLOAD = <ProjectAccessType.REFERENCE_UPLOAD: 'REFERENCE_UPLOAD'>
SAMPLESHEET_UPLOAD = <ProjectAccessType.SAMPLESHEET_UPLOAD: 'SAMPLESHEET_UPLOAD'>
SHARED_DATASET_DOWNLOAD = <ProjectAccessType.SHARED_DATASET_DOWNLOAD: 'SHARED_DATASET_DOWNLOAD'>
UNKNOWN = <ProjectAccessType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class ProjectCreateOptions:
12@_attrs_define
13class ProjectCreateOptions:
14    """
15    Attributes:
16        enabled_account_types (List[CloudAccountType]):
17        portal_account_id (str):
18        portal_region (str):
19        template_url (str):
20        wizard_url (str):
21    """
22
23    enabled_account_types: List[CloudAccountType]
24    portal_account_id: str
25    portal_region: str
26    template_url: str
27    wizard_url: str
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        enabled_account_types = []
32        for enabled_account_types_item_data in self.enabled_account_types:
33            enabled_account_types_item = enabled_account_types_item_data.value
34            enabled_account_types.append(enabled_account_types_item)
35
36        portal_account_id = self.portal_account_id
37
38        portal_region = self.portal_region
39
40        template_url = self.template_url
41
42        wizard_url = self.wizard_url
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "enabledAccountTypes": enabled_account_types,
49                "portalAccountId": portal_account_id,
50                "portalRegion": portal_region,
51                "templateUrl": template_url,
52                "wizardUrl": wizard_url,
53            }
54        )
55
56        return field_dict
57
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        enabled_account_types = []
62        _enabled_account_types = d.pop("enabledAccountTypes")
63        for enabled_account_types_item_data in _enabled_account_types:
64            enabled_account_types_item = CloudAccountType(enabled_account_types_item_data)
65
66            enabled_account_types.append(enabled_account_types_item)
67
68        portal_account_id = d.pop("portalAccountId")
69
70        portal_region = d.pop("portalRegion")
71
72        template_url = d.pop("templateUrl")
73
74        wizard_url = d.pop("wizardUrl")
75
76        project_create_options = cls(
77            enabled_account_types=enabled_account_types,
78            portal_account_id=portal_account_id,
79            portal_region=portal_region,
80            template_url=template_url,
81            wizard_url=wizard_url,
82        )
83
84        project_create_options.additional_properties = d
85        return project_create_options
86
87    @property
88    def additional_keys(self) -> List[str]:
89        return list(self.additional_properties.keys())
Attributes:
  • enabled_account_types (List[CloudAccountType]):
  • portal_account_id (str):
  • portal_region (str):
  • template_url (str):
  • wizard_url (str):
ProjectCreateOptions( enabled_account_types: List[CloudAccountType], portal_account_id: str, portal_region: str, template_url: str, wizard_url: str)
28def __init__(self, enabled_account_types, portal_account_id, portal_region, template_url, wizard_url):
29    self.enabled_account_types = enabled_account_types
30    self.portal_account_id = portal_account_id
31    self.portal_region = portal_region
32    self.template_url = template_url
33    self.wizard_url = wizard_url
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectCreateOptions.

enabled_account_types: List[CloudAccountType]
portal_account_id: str
portal_region: str
template_url: str
wizard_url: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        enabled_account_types = []
32        for enabled_account_types_item_data in self.enabled_account_types:
33            enabled_account_types_item = enabled_account_types_item_data.value
34            enabled_account_types.append(enabled_account_types_item)
35
36        portal_account_id = self.portal_account_id
37
38        portal_region = self.portal_region
39
40        template_url = self.template_url
41
42        wizard_url = self.wizard_url
43
44        field_dict: Dict[str, Any] = {}
45        field_dict.update(self.additional_properties)
46        field_dict.update(
47            {
48                "enabledAccountTypes": enabled_account_types,
49                "portalAccountId": portal_account_id,
50                "portalRegion": portal_region,
51                "templateUrl": template_url,
52                "wizardUrl": wizard_url,
53            }
54        )
55
56        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        enabled_account_types = []
62        _enabled_account_types = d.pop("enabledAccountTypes")
63        for enabled_account_types_item_data in _enabled_account_types:
64            enabled_account_types_item = CloudAccountType(enabled_account_types_item_data)
65
66            enabled_account_types.append(enabled_account_types_item)
67
68        portal_account_id = d.pop("portalAccountId")
69
70        portal_region = d.pop("portalRegion")
71
72        template_url = d.pop("templateUrl")
73
74        wizard_url = d.pop("wizardUrl")
75
76        project_create_options = cls(
77            enabled_account_types=enabled_account_types,
78            portal_account_id=portal_account_id,
79            portal_region=portal_region,
80            template_url=template_url,
81            wizard_url=wizard_url,
82        )
83
84        project_create_options.additional_properties = d
85        return project_create_options
additional_keys: List[str]
87    @property
88    def additional_keys(self) -> List[str]:
89        return list(self.additional_properties.keys())
class ProjectDetail:
 22@_attrs_define
 23class ProjectDetail:
 24    """
 25    Attributes:
 26        id (str):
 27        name (str):
 28        description (str):
 29        billing_account_id (str):
 30        contacts (List['Contact']):
 31        organization (str):
 32        status (Status):
 33        settings (ProjectSettings):
 34        status_message (str):
 35        tags (List['Tag']):
 36        classification_ids (List[str]):
 37        created_by (str):
 38        created_at (datetime.datetime):
 39        updated_at (datetime.datetime):
 40        account (Union['CloudAccount', None, Unset]):
 41    """
 42
 43    id: str
 44    name: str
 45    description: str
 46    billing_account_id: str
 47    contacts: List["Contact"]
 48    organization: str
 49    status: Status
 50    settings: "ProjectSettings"
 51    status_message: str
 52    tags: List["Tag"]
 53    classification_ids: List[str]
 54    created_by: str
 55    created_at: datetime.datetime
 56    updated_at: datetime.datetime
 57    account: Union["CloudAccount", None, Unset] = UNSET
 58    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 59
 60    def to_dict(self) -> Dict[str, Any]:
 61        from ..models.cloud_account import CloudAccount
 62
 63        id = self.id
 64
 65        name = self.name
 66
 67        description = self.description
 68
 69        billing_account_id = self.billing_account_id
 70
 71        contacts = []
 72        for contacts_item_data in self.contacts:
 73            contacts_item = contacts_item_data.to_dict()
 74            contacts.append(contacts_item)
 75
 76        organization = self.organization
 77
 78        status = self.status.value
 79
 80        settings = self.settings.to_dict()
 81
 82        status_message = self.status_message
 83
 84        tags = []
 85        for tags_item_data in self.tags:
 86            tags_item = tags_item_data.to_dict()
 87            tags.append(tags_item)
 88
 89        classification_ids = self.classification_ids
 90
 91        created_by = self.created_by
 92
 93        created_at = self.created_at.isoformat()
 94
 95        updated_at = self.updated_at.isoformat()
 96
 97        account: Union[Dict[str, Any], None, Unset]
 98        if isinstance(self.account, Unset):
 99            account = UNSET
100        elif isinstance(self.account, CloudAccount):
101            account = self.account.to_dict()
102        else:
103            account = self.account
104
105        field_dict: Dict[str, Any] = {}
106        field_dict.update(self.additional_properties)
107        field_dict.update(
108            {
109                "id": id,
110                "name": name,
111                "description": description,
112                "billingAccountId": billing_account_id,
113                "contacts": contacts,
114                "organization": organization,
115                "status": status,
116                "settings": settings,
117                "statusMessage": status_message,
118                "tags": tags,
119                "classificationIds": classification_ids,
120                "createdBy": created_by,
121                "createdAt": created_at,
122                "updatedAt": updated_at,
123            }
124        )
125        if account is not UNSET:
126            field_dict["account"] = account
127
128        return field_dict
129
130    @classmethod
131    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
132        from ..models.cloud_account import CloudAccount
133        from ..models.contact import Contact
134        from ..models.project_settings import ProjectSettings
135        from ..models.tag import Tag
136
137        d = src_dict.copy()
138        id = d.pop("id")
139
140        name = d.pop("name")
141
142        description = d.pop("description")
143
144        billing_account_id = d.pop("billingAccountId")
145
146        contacts = []
147        _contacts = d.pop("contacts")
148        for contacts_item_data in _contacts:
149            contacts_item = Contact.from_dict(contacts_item_data)
150
151            contacts.append(contacts_item)
152
153        organization = d.pop("organization")
154
155        status = Status(d.pop("status"))
156
157        settings = ProjectSettings.from_dict(d.pop("settings"))
158
159        status_message = d.pop("statusMessage")
160
161        tags = []
162        _tags = d.pop("tags")
163        for tags_item_data in _tags:
164            tags_item = Tag.from_dict(tags_item_data)
165
166            tags.append(tags_item)
167
168        classification_ids = cast(List[str], d.pop("classificationIds"))
169
170        created_by = d.pop("createdBy")
171
172        created_at = isoparse(d.pop("createdAt"))
173
174        updated_at = isoparse(d.pop("updatedAt"))
175
176        def _parse_account(data: object) -> Union["CloudAccount", None, Unset]:
177            if data is None:
178                return data
179            if isinstance(data, Unset):
180                return data
181            try:
182                if not isinstance(data, dict):
183                    raise TypeError()
184                account_type_1 = CloudAccount.from_dict(data)
185
186                return account_type_1
187            except:  # noqa: E722
188                pass
189            return cast(Union["CloudAccount", None, Unset], data)
190
191        account = _parse_account(d.pop("account", UNSET))
192
193        project_detail = cls(
194            id=id,
195            name=name,
196            description=description,
197            billing_account_id=billing_account_id,
198            contacts=contacts,
199            organization=organization,
200            status=status,
201            settings=settings,
202            status_message=status_message,
203            tags=tags,
204            classification_ids=classification_ids,
205            created_by=created_by,
206            created_at=created_at,
207            updated_at=updated_at,
208            account=account,
209        )
210
211        project_detail.additional_properties = d
212        return project_detail
213
214    @property
215    def additional_keys(self) -> List[str]:
216        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • billing_account_id (str):
  • contacts (List['Contact']):
  • organization (str):
  • status (Status):
  • settings (ProjectSettings):
  • status_message (str):
  • tags (List['Tag']):
  • classification_ids (List[str]):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
  • account (Union['CloudAccount', None, Unset]):
ProjectDetail( id: str, name: str, description: str, billing_account_id: str, contacts: List[Contact], organization: str, status: Status, settings: ProjectSettings, status_message: str, tags: List[Tag], classification_ids: List[str], created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime, account: Union[CloudAccount, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
38def __init__(self, id, name, description, billing_account_id, contacts, organization, status, settings, status_message, tags, classification_ids, created_by, created_at, updated_at, account=attr_dict['account'].default):
39    self.id = id
40    self.name = name
41    self.description = description
42    self.billing_account_id = billing_account_id
43    self.contacts = contacts
44    self.organization = organization
45    self.status = status
46    self.settings = settings
47    self.status_message = status_message
48    self.tags = tags
49    self.classification_ids = classification_ids
50    self.created_by = created_by
51    self.created_at = created_at
52    self.updated_at = updated_at
53    self.account = account
54    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectDetail.

id: str
name: str
description: str
billing_account_id: str
contacts: List[Contact]
organization: str
status: Status
settings: ProjectSettings
status_message: str
tags: List[Tag]
classification_ids: List[str]
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
account: Union[CloudAccount, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 60    def to_dict(self) -> Dict[str, Any]:
 61        from ..models.cloud_account import CloudAccount
 62
 63        id = self.id
 64
 65        name = self.name
 66
 67        description = self.description
 68
 69        billing_account_id = self.billing_account_id
 70
 71        contacts = []
 72        for contacts_item_data in self.contacts:
 73            contacts_item = contacts_item_data.to_dict()
 74            contacts.append(contacts_item)
 75
 76        organization = self.organization
 77
 78        status = self.status.value
 79
 80        settings = self.settings.to_dict()
 81
 82        status_message = self.status_message
 83
 84        tags = []
 85        for tags_item_data in self.tags:
 86            tags_item = tags_item_data.to_dict()
 87            tags.append(tags_item)
 88
 89        classification_ids = self.classification_ids
 90
 91        created_by = self.created_by
 92
 93        created_at = self.created_at.isoformat()
 94
 95        updated_at = self.updated_at.isoformat()
 96
 97        account: Union[Dict[str, Any], None, Unset]
 98        if isinstance(self.account, Unset):
 99            account = UNSET
100        elif isinstance(self.account, CloudAccount):
101            account = self.account.to_dict()
102        else:
103            account = self.account
104
105        field_dict: Dict[str, Any] = {}
106        field_dict.update(self.additional_properties)
107        field_dict.update(
108            {
109                "id": id,
110                "name": name,
111                "description": description,
112                "billingAccountId": billing_account_id,
113                "contacts": contacts,
114                "organization": organization,
115                "status": status,
116                "settings": settings,
117                "statusMessage": status_message,
118                "tags": tags,
119                "classificationIds": classification_ids,
120                "createdBy": created_by,
121                "createdAt": created_at,
122                "updatedAt": updated_at,
123            }
124        )
125        if account is not UNSET:
126            field_dict["account"] = account
127
128        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
130    @classmethod
131    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
132        from ..models.cloud_account import CloudAccount
133        from ..models.contact import Contact
134        from ..models.project_settings import ProjectSettings
135        from ..models.tag import Tag
136
137        d = src_dict.copy()
138        id = d.pop("id")
139
140        name = d.pop("name")
141
142        description = d.pop("description")
143
144        billing_account_id = d.pop("billingAccountId")
145
146        contacts = []
147        _contacts = d.pop("contacts")
148        for contacts_item_data in _contacts:
149            contacts_item = Contact.from_dict(contacts_item_data)
150
151            contacts.append(contacts_item)
152
153        organization = d.pop("organization")
154
155        status = Status(d.pop("status"))
156
157        settings = ProjectSettings.from_dict(d.pop("settings"))
158
159        status_message = d.pop("statusMessage")
160
161        tags = []
162        _tags = d.pop("tags")
163        for tags_item_data in _tags:
164            tags_item = Tag.from_dict(tags_item_data)
165
166            tags.append(tags_item)
167
168        classification_ids = cast(List[str], d.pop("classificationIds"))
169
170        created_by = d.pop("createdBy")
171
172        created_at = isoparse(d.pop("createdAt"))
173
174        updated_at = isoparse(d.pop("updatedAt"))
175
176        def _parse_account(data: object) -> Union["CloudAccount", None, Unset]:
177            if data is None:
178                return data
179            if isinstance(data, Unset):
180                return data
181            try:
182                if not isinstance(data, dict):
183                    raise TypeError()
184                account_type_1 = CloudAccount.from_dict(data)
185
186                return account_type_1
187            except:  # noqa: E722
188                pass
189            return cast(Union["CloudAccount", None, Unset], data)
190
191        account = _parse_account(d.pop("account", UNSET))
192
193        project_detail = cls(
194            id=id,
195            name=name,
196            description=description,
197            billing_account_id=billing_account_id,
198            contacts=contacts,
199            organization=organization,
200            status=status,
201            settings=settings,
202            status_message=status_message,
203            tags=tags,
204            classification_ids=classification_ids,
205            created_by=created_by,
206            created_at=created_at,
207            updated_at=updated_at,
208            account=account,
209        )
210
211        project_detail.additional_properties = d
212        return project_detail
additional_keys: List[str]
214    @property
215    def additional_keys(self) -> List[str]:
216        return list(self.additional_properties.keys())
class ProjectFileAccessRequest:
13@_attrs_define
14class ProjectFileAccessRequest:
15    """
16    Attributes:
17        access_type (ProjectAccessType):
18        dataset_id (Union[None, Unset, str]):
19        token_lifetime_hours (Union[None, Unset, int]):
20    """
21
22    access_type: ProjectAccessType
23    dataset_id: Union[None, Unset, str] = UNSET
24    token_lifetime_hours: Union[None, Unset, int] = UNSET
25    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
27    def to_dict(self) -> Dict[str, Any]:
28        access_type = self.access_type.value
29
30        dataset_id: Union[None, Unset, str]
31        if isinstance(self.dataset_id, Unset):
32            dataset_id = UNSET
33        else:
34            dataset_id = self.dataset_id
35
36        token_lifetime_hours: Union[None, Unset, int]
37        if isinstance(self.token_lifetime_hours, Unset):
38            token_lifetime_hours = UNSET
39        else:
40            token_lifetime_hours = self.token_lifetime_hours
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "accessType": access_type,
47            }
48        )
49        if dataset_id is not UNSET:
50            field_dict["datasetId"] = dataset_id
51        if token_lifetime_hours is not UNSET:
52            field_dict["tokenLifetimeHours"] = token_lifetime_hours
53
54        return field_dict
55
56    @classmethod
57    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
58        d = src_dict.copy()
59        access_type = ProjectAccessType(d.pop("accessType"))
60
61        def _parse_dataset_id(data: object) -> Union[None, Unset, str]:
62            if data is None:
63                return data
64            if isinstance(data, Unset):
65                return data
66            return cast(Union[None, Unset, str], data)
67
68        dataset_id = _parse_dataset_id(d.pop("datasetId", UNSET))
69
70        def _parse_token_lifetime_hours(data: object) -> Union[None, Unset, int]:
71            if data is None:
72                return data
73            if isinstance(data, Unset):
74                return data
75            return cast(Union[None, Unset, int], data)
76
77        token_lifetime_hours = _parse_token_lifetime_hours(d.pop("tokenLifetimeHours", UNSET))
78
79        project_file_access_request = cls(
80            access_type=access_type,
81            dataset_id=dataset_id,
82            token_lifetime_hours=token_lifetime_hours,
83        )
84
85        project_file_access_request.additional_properties = d
86        return project_file_access_request
87
88    @property
89    def additional_keys(self) -> List[str]:
90        return list(self.additional_properties.keys())
Attributes:
  • access_type (ProjectAccessType):
  • dataset_id (Union[None, Unset, str]):
  • token_lifetime_hours (Union[None, Unset, int]):
ProjectFileAccessRequest( access_type: ProjectAccessType, dataset_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, token_lifetime_hours: Union[NoneType, cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, access_type, dataset_id=attr_dict['dataset_id'].default, token_lifetime_hours=attr_dict['token_lifetime_hours'].default):
27    self.access_type = access_type
28    self.dataset_id = dataset_id
29    self.token_lifetime_hours = token_lifetime_hours
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectFileAccessRequest.

access_type: ProjectAccessType
dataset_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
token_lifetime_hours: Union[NoneType, cirro_api_client.v1.types.Unset, int]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
27    def to_dict(self) -> Dict[str, Any]:
28        access_type = self.access_type.value
29
30        dataset_id: Union[None, Unset, str]
31        if isinstance(self.dataset_id, Unset):
32            dataset_id = UNSET
33        else:
34            dataset_id = self.dataset_id
35
36        token_lifetime_hours: Union[None, Unset, int]
37        if isinstance(self.token_lifetime_hours, Unset):
38            token_lifetime_hours = UNSET
39        else:
40            token_lifetime_hours = self.token_lifetime_hours
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "accessType": access_type,
47            }
48        )
49        if dataset_id is not UNSET:
50            field_dict["datasetId"] = dataset_id
51        if token_lifetime_hours is not UNSET:
52            field_dict["tokenLifetimeHours"] = token_lifetime_hours
53
54        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
56    @classmethod
57    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
58        d = src_dict.copy()
59        access_type = ProjectAccessType(d.pop("accessType"))
60
61        def _parse_dataset_id(data: object) -> Union[None, Unset, str]:
62            if data is None:
63                return data
64            if isinstance(data, Unset):
65                return data
66            return cast(Union[None, Unset, str], data)
67
68        dataset_id = _parse_dataset_id(d.pop("datasetId", UNSET))
69
70        def _parse_token_lifetime_hours(data: object) -> Union[None, Unset, int]:
71            if data is None:
72                return data
73            if isinstance(data, Unset):
74                return data
75            return cast(Union[None, Unset, int], data)
76
77        token_lifetime_hours = _parse_token_lifetime_hours(d.pop("tokenLifetimeHours", UNSET))
78
79        project_file_access_request = cls(
80            access_type=access_type,
81            dataset_id=dataset_id,
82            token_lifetime_hours=token_lifetime_hours,
83        )
84
85        project_file_access_request.additional_properties = d
86        return project_file_access_request
additional_keys: List[str]
88    @property
89    def additional_keys(self) -> List[str]:
90        return list(self.additional_properties.keys())
class ProjectInput:
 19@_attrs_define
 20class ProjectInput:
 21    """
 22    Attributes:
 23        name (str):
 24        description (str):
 25        billing_account_id (str):
 26        settings (ProjectSettings):
 27        contacts (List['Contact']):
 28        account (Union['CloudAccount', None, Unset]):
 29        classification_ids (Union[List[str], None, Unset]):
 30        tags (Union[List['Tag'], None, Unset]):
 31    """
 32
 33    name: str
 34    description: str
 35    billing_account_id: str
 36    settings: "ProjectSettings"
 37    contacts: List["Contact"]
 38    account: Union["CloudAccount", None, Unset] = UNSET
 39    classification_ids: Union[List[str], None, Unset] = UNSET
 40    tags: Union[List["Tag"], None, Unset] = UNSET
 41    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 42
 43    def to_dict(self) -> Dict[str, Any]:
 44        from ..models.cloud_account import CloudAccount
 45
 46        name = self.name
 47
 48        description = self.description
 49
 50        billing_account_id = self.billing_account_id
 51
 52        settings = self.settings.to_dict()
 53
 54        contacts = []
 55        for contacts_item_data in self.contacts:
 56            contacts_item = contacts_item_data.to_dict()
 57            contacts.append(contacts_item)
 58
 59        account: Union[Dict[str, Any], None, Unset]
 60        if isinstance(self.account, Unset):
 61            account = UNSET
 62        elif isinstance(self.account, CloudAccount):
 63            account = self.account.to_dict()
 64        else:
 65            account = self.account
 66
 67        classification_ids: Union[List[str], None, Unset]
 68        if isinstance(self.classification_ids, Unset):
 69            classification_ids = UNSET
 70        elif isinstance(self.classification_ids, list):
 71            classification_ids = self.classification_ids
 72
 73        else:
 74            classification_ids = self.classification_ids
 75
 76        tags: Union[List[Dict[str, Any]], None, Unset]
 77        if isinstance(self.tags, Unset):
 78            tags = UNSET
 79        elif isinstance(self.tags, list):
 80            tags = []
 81            for tags_type_0_item_data in self.tags:
 82                tags_type_0_item = tags_type_0_item_data.to_dict()
 83                tags.append(tags_type_0_item)
 84
 85        else:
 86            tags = self.tags
 87
 88        field_dict: Dict[str, Any] = {}
 89        field_dict.update(self.additional_properties)
 90        field_dict.update(
 91            {
 92                "name": name,
 93                "description": description,
 94                "billingAccountId": billing_account_id,
 95                "settings": settings,
 96                "contacts": contacts,
 97            }
 98        )
 99        if account is not UNSET:
100            field_dict["account"] = account
101        if classification_ids is not UNSET:
102            field_dict["classificationIds"] = classification_ids
103        if tags is not UNSET:
104            field_dict["tags"] = tags
105
106        return field_dict
107
108    @classmethod
109    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
110        from ..models.cloud_account import CloudAccount
111        from ..models.contact import Contact
112        from ..models.project_settings import ProjectSettings
113        from ..models.tag import Tag
114
115        d = src_dict.copy()
116        name = d.pop("name")
117
118        description = d.pop("description")
119
120        billing_account_id = d.pop("billingAccountId")
121
122        settings = ProjectSettings.from_dict(d.pop("settings"))
123
124        contacts = []
125        _contacts = d.pop("contacts")
126        for contacts_item_data in _contacts:
127            contacts_item = Contact.from_dict(contacts_item_data)
128
129            contacts.append(contacts_item)
130
131        def _parse_account(data: object) -> Union["CloudAccount", None, Unset]:
132            if data is None:
133                return data
134            if isinstance(data, Unset):
135                return data
136            try:
137                if not isinstance(data, dict):
138                    raise TypeError()
139                account_type_1 = CloudAccount.from_dict(data)
140
141                return account_type_1
142            except:  # noqa: E722
143                pass
144            return cast(Union["CloudAccount", None, Unset], data)
145
146        account = _parse_account(d.pop("account", UNSET))
147
148        def _parse_classification_ids(data: object) -> Union[List[str], None, Unset]:
149            if data is None:
150                return data
151            if isinstance(data, Unset):
152                return data
153            try:
154                if not isinstance(data, list):
155                    raise TypeError()
156                classification_ids_type_0 = cast(List[str], data)
157
158                return classification_ids_type_0
159            except:  # noqa: E722
160                pass
161            return cast(Union[List[str], None, Unset], data)
162
163        classification_ids = _parse_classification_ids(d.pop("classificationIds", UNSET))
164
165        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
166            if data is None:
167                return data
168            if isinstance(data, Unset):
169                return data
170            try:
171                if not isinstance(data, list):
172                    raise TypeError()
173                tags_type_0 = []
174                _tags_type_0 = data
175                for tags_type_0_item_data in _tags_type_0:
176                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
177
178                    tags_type_0.append(tags_type_0_item)
179
180                return tags_type_0
181            except:  # noqa: E722
182                pass
183            return cast(Union[List["Tag"], None, Unset], data)
184
185        tags = _parse_tags(d.pop("tags", UNSET))
186
187        project_input = cls(
188            name=name,
189            description=description,
190            billing_account_id=billing_account_id,
191            settings=settings,
192            contacts=contacts,
193            account=account,
194            classification_ids=classification_ids,
195            tags=tags,
196        )
197
198        project_input.additional_properties = d
199        return project_input
200
201    @property
202    def additional_keys(self) -> List[str]:
203        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • billing_account_id (str):
  • settings (ProjectSettings):
  • contacts (List['Contact']):
  • account (Union['CloudAccount', None, Unset]):
  • classification_ids (Union[List[str], None, Unset]):
  • tags (Union[List['Tag'], None, Unset]):
ProjectInput( name: str, description: str, billing_account_id: str, settings: ProjectSettings, contacts: List[Contact], account: Union[CloudAccount, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, classification_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
31def __init__(self, name, description, billing_account_id, settings, contacts, account=attr_dict['account'].default, classification_ids=attr_dict['classification_ids'].default, tags=attr_dict['tags'].default):
32    self.name = name
33    self.description = description
34    self.billing_account_id = billing_account_id
35    self.settings = settings
36    self.contacts = contacts
37    self.account = account
38    self.classification_ids = classification_ids
39    self.tags = tags
40    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectInput.

name: str
description: str
billing_account_id: str
settings: ProjectSettings
contacts: List[Contact]
account: Union[CloudAccount, NoneType, cirro_api_client.v1.types.Unset]
classification_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 43    def to_dict(self) -> Dict[str, Any]:
 44        from ..models.cloud_account import CloudAccount
 45
 46        name = self.name
 47
 48        description = self.description
 49
 50        billing_account_id = self.billing_account_id
 51
 52        settings = self.settings.to_dict()
 53
 54        contacts = []
 55        for contacts_item_data in self.contacts:
 56            contacts_item = contacts_item_data.to_dict()
 57            contacts.append(contacts_item)
 58
 59        account: Union[Dict[str, Any], None, Unset]
 60        if isinstance(self.account, Unset):
 61            account = UNSET
 62        elif isinstance(self.account, CloudAccount):
 63            account = self.account.to_dict()
 64        else:
 65            account = self.account
 66
 67        classification_ids: Union[List[str], None, Unset]
 68        if isinstance(self.classification_ids, Unset):
 69            classification_ids = UNSET
 70        elif isinstance(self.classification_ids, list):
 71            classification_ids = self.classification_ids
 72
 73        else:
 74            classification_ids = self.classification_ids
 75
 76        tags: Union[List[Dict[str, Any]], None, Unset]
 77        if isinstance(self.tags, Unset):
 78            tags = UNSET
 79        elif isinstance(self.tags, list):
 80            tags = []
 81            for tags_type_0_item_data in self.tags:
 82                tags_type_0_item = tags_type_0_item_data.to_dict()
 83                tags.append(tags_type_0_item)
 84
 85        else:
 86            tags = self.tags
 87
 88        field_dict: Dict[str, Any] = {}
 89        field_dict.update(self.additional_properties)
 90        field_dict.update(
 91            {
 92                "name": name,
 93                "description": description,
 94                "billingAccountId": billing_account_id,
 95                "settings": settings,
 96                "contacts": contacts,
 97            }
 98        )
 99        if account is not UNSET:
100            field_dict["account"] = account
101        if classification_ids is not UNSET:
102            field_dict["classificationIds"] = classification_ids
103        if tags is not UNSET:
104            field_dict["tags"] = tags
105
106        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
108    @classmethod
109    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
110        from ..models.cloud_account import CloudAccount
111        from ..models.contact import Contact
112        from ..models.project_settings import ProjectSettings
113        from ..models.tag import Tag
114
115        d = src_dict.copy()
116        name = d.pop("name")
117
118        description = d.pop("description")
119
120        billing_account_id = d.pop("billingAccountId")
121
122        settings = ProjectSettings.from_dict(d.pop("settings"))
123
124        contacts = []
125        _contacts = d.pop("contacts")
126        for contacts_item_data in _contacts:
127            contacts_item = Contact.from_dict(contacts_item_data)
128
129            contacts.append(contacts_item)
130
131        def _parse_account(data: object) -> Union["CloudAccount", None, Unset]:
132            if data is None:
133                return data
134            if isinstance(data, Unset):
135                return data
136            try:
137                if not isinstance(data, dict):
138                    raise TypeError()
139                account_type_1 = CloudAccount.from_dict(data)
140
141                return account_type_1
142            except:  # noqa: E722
143                pass
144            return cast(Union["CloudAccount", None, Unset], data)
145
146        account = _parse_account(d.pop("account", UNSET))
147
148        def _parse_classification_ids(data: object) -> Union[List[str], None, Unset]:
149            if data is None:
150                return data
151            if isinstance(data, Unset):
152                return data
153            try:
154                if not isinstance(data, list):
155                    raise TypeError()
156                classification_ids_type_0 = cast(List[str], data)
157
158                return classification_ids_type_0
159            except:  # noqa: E722
160                pass
161            return cast(Union[List[str], None, Unset], data)
162
163        classification_ids = _parse_classification_ids(d.pop("classificationIds", UNSET))
164
165        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
166            if data is None:
167                return data
168            if isinstance(data, Unset):
169                return data
170            try:
171                if not isinstance(data, list):
172                    raise TypeError()
173                tags_type_0 = []
174                _tags_type_0 = data
175                for tags_type_0_item_data in _tags_type_0:
176                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
177
178                    tags_type_0.append(tags_type_0_item)
179
180                return tags_type_0
181            except:  # noqa: E722
182                pass
183            return cast(Union[List["Tag"], None, Unset], data)
184
185        tags = _parse_tags(d.pop("tags", UNSET))
186
187        project_input = cls(
188            name=name,
189            description=description,
190            billing_account_id=billing_account_id,
191            settings=settings,
192            contacts=contacts,
193            account=account,
194            classification_ids=classification_ids,
195            tags=tags,
196        )
197
198        project_input.additional_properties = d
199        return project_input
additional_keys: List[str]
201    @property
202    def additional_keys(self) -> List[str]:
203        return list(self.additional_properties.keys())
class ProjectMetrics:
 16@_attrs_define
 17class ProjectMetrics:
 18    """
 19    Attributes:
 20        project_id (str):
 21        costs (Union[Unset, List['MetricRecord']]): Costs by service by month Example: [{
 22              "date": "2022-11-01",
 23              "unit": "$",
 24              "service": {
 25                "Other": 26.47,
 26                "EC2 - Other": 3.66,
 27                "Amazon Elastic Compute Cloud - Compute": 140.59,
 28                "Amazon Simple Storage Service": 24.91,
 29                "AmazonCloudWatch": 2.09
 30              }
 31            }]
 32            .
 33        storage_metrics (Union[Unset, List['MetricRecord']]): Storage usage by tier by day Example: [{
 34                "date": "2023-12-12",
 35                "unit": "GB",
 36                "service": {
 37                    "IntelligentTieringAIAStorage": 4198.95,
 38                    "IntelligentTieringFAStorage": 1516.48,
 39                    "StandardStorage": 1.9,
 40                    "IntelligentTieringIAStorage": 2154.6
 41                }
 42            }]
 43            .
 44    """
 45
 46    project_id: str
 47    costs: Union[Unset, List["MetricRecord"]] = UNSET
 48    storage_metrics: Union[Unset, List["MetricRecord"]] = UNSET
 49    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 50
 51    def to_dict(self) -> Dict[str, Any]:
 52        project_id = self.project_id
 53
 54        costs: Union[Unset, List[Dict[str, Any]]] = UNSET
 55        if not isinstance(self.costs, Unset):
 56            costs = []
 57            for costs_item_data in self.costs:
 58                costs_item = costs_item_data.to_dict()
 59                costs.append(costs_item)
 60
 61        storage_metrics: Union[Unset, List[Dict[str, Any]]] = UNSET
 62        if not isinstance(self.storage_metrics, Unset):
 63            storage_metrics = []
 64            for storage_metrics_item_data in self.storage_metrics:
 65                storage_metrics_item = storage_metrics_item_data.to_dict()
 66                storage_metrics.append(storage_metrics_item)
 67
 68        field_dict: Dict[str, Any] = {}
 69        field_dict.update(self.additional_properties)
 70        field_dict.update(
 71            {
 72                "projectId": project_id,
 73            }
 74        )
 75        if costs is not UNSET:
 76            field_dict["costs"] = costs
 77        if storage_metrics is not UNSET:
 78            field_dict["storageMetrics"] = storage_metrics
 79
 80        return field_dict
 81
 82    @classmethod
 83    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 84        from ..models.metric_record import MetricRecord
 85
 86        d = src_dict.copy()
 87        project_id = d.pop("projectId")
 88
 89        costs = []
 90        _costs = d.pop("costs", UNSET)
 91        for costs_item_data in _costs or []:
 92            costs_item = MetricRecord.from_dict(costs_item_data)
 93
 94            costs.append(costs_item)
 95
 96        storage_metrics = []
 97        _storage_metrics = d.pop("storageMetrics", UNSET)
 98        for storage_metrics_item_data in _storage_metrics or []:
 99            storage_metrics_item = MetricRecord.from_dict(storage_metrics_item_data)
100
101            storage_metrics.append(storage_metrics_item)
102
103        project_metrics = cls(
104            project_id=project_id,
105            costs=costs,
106            storage_metrics=storage_metrics,
107        )
108
109        project_metrics.additional_properties = d
110        return project_metrics
111
112    @property
113    def additional_keys(self) -> List[str]:
114        return list(self.additional_properties.keys())
Attributes:
  • project_id (str):
  • costs (Union[Unset, List['MetricRecord']]): Costs by service by month Example: [{ "date": "2022-11-01", "unit": "$", "service": { "Other": 26.47, "EC2 - Other": 3.66, "Amazon Elastic Compute Cloud - Compute": 140.59, "Amazon Simple Storage Service": 24.91, "AmazonCloudWatch": 2.09 } }] .
  • storage_metrics (Union[Unset, List['MetricRecord']]): Storage usage by tier by day Example: [{ "date": "2023-12-12", "unit": "GB", "service": { "IntelligentTieringAIAStorage": 4198.95, "IntelligentTieringFAStorage": 1516.48, "StandardStorage": 1.9, "IntelligentTieringIAStorage": 2154.6 } }] .
ProjectMetrics( project_id: str, costs: Union[cirro_api_client.v1.types.Unset, List[MetricRecord]] = <cirro_api_client.v1.types.Unset object>, storage_metrics: Union[cirro_api_client.v1.types.Unset, List[MetricRecord]] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, project_id, costs=attr_dict['costs'].default, storage_metrics=attr_dict['storage_metrics'].default):
27    self.project_id = project_id
28    self.costs = costs
29    self.storage_metrics = storage_metrics
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectMetrics.

project_id: str
costs: Union[cirro_api_client.v1.types.Unset, List[MetricRecord]]
storage_metrics: Union[cirro_api_client.v1.types.Unset, List[MetricRecord]]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
51    def to_dict(self) -> Dict[str, Any]:
52        project_id = self.project_id
53
54        costs: Union[Unset, List[Dict[str, Any]]] = UNSET
55        if not isinstance(self.costs, Unset):
56            costs = []
57            for costs_item_data in self.costs:
58                costs_item = costs_item_data.to_dict()
59                costs.append(costs_item)
60
61        storage_metrics: Union[Unset, List[Dict[str, Any]]] = UNSET
62        if not isinstance(self.storage_metrics, Unset):
63            storage_metrics = []
64            for storage_metrics_item_data in self.storage_metrics:
65                storage_metrics_item = storage_metrics_item_data.to_dict()
66                storage_metrics.append(storage_metrics_item)
67
68        field_dict: Dict[str, Any] = {}
69        field_dict.update(self.additional_properties)
70        field_dict.update(
71            {
72                "projectId": project_id,
73            }
74        )
75        if costs is not UNSET:
76            field_dict["costs"] = costs
77        if storage_metrics is not UNSET:
78            field_dict["storageMetrics"] = storage_metrics
79
80        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 82    @classmethod
 83    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 84        from ..models.metric_record import MetricRecord
 85
 86        d = src_dict.copy()
 87        project_id = d.pop("projectId")
 88
 89        costs = []
 90        _costs = d.pop("costs", UNSET)
 91        for costs_item_data in _costs or []:
 92            costs_item = MetricRecord.from_dict(costs_item_data)
 93
 94            costs.append(costs_item)
 95
 96        storage_metrics = []
 97        _storage_metrics = d.pop("storageMetrics", UNSET)
 98        for storage_metrics_item_data in _storage_metrics or []:
 99            storage_metrics_item = MetricRecord.from_dict(storage_metrics_item_data)
100
101            storage_metrics.append(storage_metrics_item)
102
103        project_metrics = cls(
104            project_id=project_id,
105            costs=costs,
106            storage_metrics=storage_metrics,
107        )
108
109        project_metrics.additional_properties = d
110        return project_metrics
additional_keys: List[str]
112    @property
113    def additional_keys(self) -> List[str]:
114        return list(self.additional_properties.keys())
class ProjectRequest:
10@_attrs_define
11class ProjectRequest:
12    """
13    Attributes:
14        name (str):
15        description (str):
16        classification_ids (List[str]):
17        billing_info (str):
18        admin_username (str):
19        message (str):
20    """
21
22    name: str
23    description: str
24    classification_ids: List[str]
25    billing_info: str
26    admin_username: str
27    message: str
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        classification_ids = self.classification_ids
36
37        billing_info = self.billing_info
38
39        admin_username = self.admin_username
40
41        message = self.message
42
43        field_dict: Dict[str, Any] = {}
44        field_dict.update(self.additional_properties)
45        field_dict.update(
46            {
47                "name": name,
48                "description": description,
49                "classificationIds": classification_ids,
50                "billingInfo": billing_info,
51                "adminUsername": admin_username,
52                "message": message,
53            }
54        )
55
56        return field_dict
57
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        name = d.pop("name")
62
63        description = d.pop("description")
64
65        classification_ids = cast(List[str], d.pop("classificationIds"))
66
67        billing_info = d.pop("billingInfo")
68
69        admin_username = d.pop("adminUsername")
70
71        message = d.pop("message")
72
73        project_request = cls(
74            name=name,
75            description=description,
76            classification_ids=classification_ids,
77            billing_info=billing_info,
78            admin_username=admin_username,
79            message=message,
80        )
81
82        project_request.additional_properties = d
83        return project_request
84
85    @property
86    def additional_keys(self) -> List[str]:
87        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • classification_ids (List[str]):
  • billing_info (str):
  • admin_username (str):
  • message (str):
ProjectRequest( name: str, description: str, classification_ids: List[str], billing_info: str, admin_username: str, message: str)
29def __init__(self, name, description, classification_ids, billing_info, admin_username, message):
30    self.name = name
31    self.description = description
32    self.classification_ids = classification_ids
33    self.billing_info = billing_info
34    self.admin_username = admin_username
35    self.message = message
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectRequest.

name: str
description: str
classification_ids: List[str]
billing_info: str
admin_username: str
message: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        classification_ids = self.classification_ids
36
37        billing_info = self.billing_info
38
39        admin_username = self.admin_username
40
41        message = self.message
42
43        field_dict: Dict[str, Any] = {}
44        field_dict.update(self.additional_properties)
45        field_dict.update(
46            {
47                "name": name,
48                "description": description,
49                "classificationIds": classification_ids,
50                "billingInfo": billing_info,
51                "adminUsername": admin_username,
52                "message": message,
53            }
54        )
55
56        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
58    @classmethod
59    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
60        d = src_dict.copy()
61        name = d.pop("name")
62
63        description = d.pop("description")
64
65        classification_ids = cast(List[str], d.pop("classificationIds"))
66
67        billing_info = d.pop("billingInfo")
68
69        admin_username = d.pop("adminUsername")
70
71        message = d.pop("message")
72
73        project_request = cls(
74            name=name,
75            description=description,
76            classification_ids=classification_ids,
77            billing_info=billing_info,
78            admin_username=admin_username,
79            message=message,
80        )
81
82        project_request.additional_properties = d
83        return project_request
additional_keys: List[str]
85    @property
86    def additional_keys(self) -> List[str]:
87        return list(self.additional_properties.keys())
class ProjectRequirement:
 23@_attrs_define
 24class ProjectRequirement:
 25    """
 26    Attributes:
 27        id (str): The unique identifier for the requirement
 28        name (str): The name of the requirement
 29        description (str): A brief description of the requirement
 30        type (GovernanceType): The types of governance requirements that can be enforced
 31        path (str): S3 prefix where files for the requirement are saved
 32        scope (GovernanceScope): The levels at which governance requirements can be enforced
 33        contacts (List['GovernanceContact']): The governance contacts assigned to the requirement.
 34        is_fulfilled (bool): Whether the current user has fulfilled the requirement for this project
 35        acceptance (Union[GovernanceScope, None, Unset]): Specifies the level at which it is satisfied
 36        enactment_date (Union[None, Unset, datetime.datetime]): The date of enactment for the requirement
 37        expiration_type (Union[Unset, GovernanceExpiryType]): The expiry conditions that can be applied to governance
 38            requirements.
 39        expiration_days_after_completion (Union[None, Unset, int]): The number of days for a relative to completion
 40            expiration
 41        expiration_date (Union[None, Unset, datetime.datetime]): The date of expiration for the requirement
 42        supplemental_docs (Union[List['GovernanceFile'], None, Unset]): Optional files with extra information, e.g.
 43            templates for documents, links, etc
 44        file (Union['GovernanceFile', None, Unset]):
 45        authorship (Union[GovernanceScope, None, Unset]): Who needs to supply the agreement document
 46        verification_method (Union[GovernanceTrainingVerification, None, Unset]): The value indicating how the
 47            completion of the training is verified.
 48        fulfillment_id (Union[None, Unset, str]): The id for the requirement fulfillment
 49        fulfillment_date (Union[None, Unset, datetime.datetime]): The date the requirement was fulfilled by the user
 50        fulfillment_file (Union[None, Unset, str]): The optional file uploaded to fulfill the requirement
 51        fulfillment_path (Union[None, Unset, str]): The path to the optional fulfillment file
 52    """
 53
 54    id: str
 55    name: str
 56    description: str
 57    type: GovernanceType
 58    path: str
 59    scope: GovernanceScope
 60    contacts: List["GovernanceContact"]
 61    is_fulfilled: bool
 62    acceptance: Union[GovernanceScope, None, Unset] = UNSET
 63    enactment_date: Union[None, Unset, datetime.datetime] = UNSET
 64    expiration_type: Union[Unset, GovernanceExpiryType] = UNSET
 65    expiration_days_after_completion: Union[None, Unset, int] = UNSET
 66    expiration_date: Union[None, Unset, datetime.datetime] = UNSET
 67    supplemental_docs: Union[List["GovernanceFile"], None, Unset] = UNSET
 68    file: Union["GovernanceFile", None, Unset] = UNSET
 69    authorship: Union[GovernanceScope, None, Unset] = UNSET
 70    verification_method: Union[GovernanceTrainingVerification, None, Unset] = UNSET
 71    fulfillment_id: Union[None, Unset, str] = UNSET
 72    fulfillment_date: Union[None, Unset, datetime.datetime] = UNSET
 73    fulfillment_file: Union[None, Unset, str] = UNSET
 74    fulfillment_path: Union[None, Unset, str] = UNSET
 75    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 76
 77    def to_dict(self) -> Dict[str, Any]:
 78        from ..models.governance_file import GovernanceFile
 79
 80        id = self.id
 81
 82        name = self.name
 83
 84        description = self.description
 85
 86        type = self.type.value
 87
 88        path = self.path
 89
 90        scope = self.scope.value
 91
 92        contacts = []
 93        for contacts_item_data in self.contacts:
 94            contacts_item = contacts_item_data.to_dict()
 95            contacts.append(contacts_item)
 96
 97        is_fulfilled = self.is_fulfilled
 98
 99        acceptance: Union[None, Unset, str]
100        if isinstance(self.acceptance, Unset):
101            acceptance = UNSET
102        elif isinstance(self.acceptance, GovernanceScope):
103            acceptance = self.acceptance.value
104        else:
105            acceptance = self.acceptance
106
107        enactment_date: Union[None, Unset, str]
108        if isinstance(self.enactment_date, Unset):
109            enactment_date = UNSET
110        elif isinstance(self.enactment_date, datetime.datetime):
111            enactment_date = self.enactment_date.isoformat()
112        else:
113            enactment_date = self.enactment_date
114
115        expiration_type: Union[Unset, str] = UNSET
116        if not isinstance(self.expiration_type, Unset):
117            expiration_type = self.expiration_type.value
118
119        expiration_days_after_completion: Union[None, Unset, int]
120        if isinstance(self.expiration_days_after_completion, Unset):
121            expiration_days_after_completion = UNSET
122        else:
123            expiration_days_after_completion = self.expiration_days_after_completion
124
125        expiration_date: Union[None, Unset, str]
126        if isinstance(self.expiration_date, Unset):
127            expiration_date = UNSET
128        elif isinstance(self.expiration_date, datetime.datetime):
129            expiration_date = self.expiration_date.isoformat()
130        else:
131            expiration_date = self.expiration_date
132
133        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
134        if isinstance(self.supplemental_docs, Unset):
135            supplemental_docs = UNSET
136        elif isinstance(self.supplemental_docs, list):
137            supplemental_docs = []
138            for supplemental_docs_type_0_item_data in self.supplemental_docs:
139                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
140                supplemental_docs.append(supplemental_docs_type_0_item)
141
142        else:
143            supplemental_docs = self.supplemental_docs
144
145        file: Union[Dict[str, Any], None, Unset]
146        if isinstance(self.file, Unset):
147            file = UNSET
148        elif isinstance(self.file, GovernanceFile):
149            file = self.file.to_dict()
150        else:
151            file = self.file
152
153        authorship: Union[None, Unset, str]
154        if isinstance(self.authorship, Unset):
155            authorship = UNSET
156        elif isinstance(self.authorship, GovernanceScope):
157            authorship = self.authorship.value
158        else:
159            authorship = self.authorship
160
161        verification_method: Union[None, Unset, str]
162        if isinstance(self.verification_method, Unset):
163            verification_method = UNSET
164        elif isinstance(self.verification_method, GovernanceTrainingVerification):
165            verification_method = self.verification_method.value
166        else:
167            verification_method = self.verification_method
168
169        fulfillment_id: Union[None, Unset, str]
170        if isinstance(self.fulfillment_id, Unset):
171            fulfillment_id = UNSET
172        else:
173            fulfillment_id = self.fulfillment_id
174
175        fulfillment_date: Union[None, Unset, str]
176        if isinstance(self.fulfillment_date, Unset):
177            fulfillment_date = UNSET
178        elif isinstance(self.fulfillment_date, datetime.datetime):
179            fulfillment_date = self.fulfillment_date.isoformat()
180        else:
181            fulfillment_date = self.fulfillment_date
182
183        fulfillment_file: Union[None, Unset, str]
184        if isinstance(self.fulfillment_file, Unset):
185            fulfillment_file = UNSET
186        else:
187            fulfillment_file = self.fulfillment_file
188
189        fulfillment_path: Union[None, Unset, str]
190        if isinstance(self.fulfillment_path, Unset):
191            fulfillment_path = UNSET
192        else:
193            fulfillment_path = self.fulfillment_path
194
195        field_dict: Dict[str, Any] = {}
196        field_dict.update(self.additional_properties)
197        field_dict.update(
198            {
199                "id": id,
200                "name": name,
201                "description": description,
202                "type": type,
203                "path": path,
204                "scope": scope,
205                "contacts": contacts,
206                "isFulfilled": is_fulfilled,
207            }
208        )
209        if acceptance is not UNSET:
210            field_dict["acceptance"] = acceptance
211        if enactment_date is not UNSET:
212            field_dict["enactmentDate"] = enactment_date
213        if expiration_type is not UNSET:
214            field_dict["expirationType"] = expiration_type
215        if expiration_days_after_completion is not UNSET:
216            field_dict["expirationDaysAfterCompletion"] = expiration_days_after_completion
217        if expiration_date is not UNSET:
218            field_dict["expirationDate"] = expiration_date
219        if supplemental_docs is not UNSET:
220            field_dict["supplementalDocs"] = supplemental_docs
221        if file is not UNSET:
222            field_dict["file"] = file
223        if authorship is not UNSET:
224            field_dict["authorship"] = authorship
225        if verification_method is not UNSET:
226            field_dict["verificationMethod"] = verification_method
227        if fulfillment_id is not UNSET:
228            field_dict["fulfillmentId"] = fulfillment_id
229        if fulfillment_date is not UNSET:
230            field_dict["fulfillmentDate"] = fulfillment_date
231        if fulfillment_file is not UNSET:
232            field_dict["fulfillmentFile"] = fulfillment_file
233        if fulfillment_path is not UNSET:
234            field_dict["fulfillmentPath"] = fulfillment_path
235
236        return field_dict
237
238    @classmethod
239    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
240        from ..models.governance_contact import GovernanceContact
241        from ..models.governance_file import GovernanceFile
242
243        d = src_dict.copy()
244        id = d.pop("id")
245
246        name = d.pop("name")
247
248        description = d.pop("description")
249
250        type = GovernanceType(d.pop("type"))
251
252        path = d.pop("path")
253
254        scope = GovernanceScope(d.pop("scope"))
255
256        contacts = []
257        _contacts = d.pop("contacts")
258        for contacts_item_data in _contacts:
259            contacts_item = GovernanceContact.from_dict(contacts_item_data)
260
261            contacts.append(contacts_item)
262
263        is_fulfilled = d.pop("isFulfilled")
264
265        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
266            if data is None:
267                return data
268            if isinstance(data, Unset):
269                return data
270            try:
271                if not isinstance(data, str):
272                    raise TypeError()
273                acceptance_type_1 = GovernanceScope(data)
274
275                return acceptance_type_1
276            except:  # noqa: E722
277                pass
278            return cast(Union[GovernanceScope, None, Unset], data)
279
280        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
281
282        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
283            if data is None:
284                return data
285            if isinstance(data, Unset):
286                return data
287            try:
288                if not isinstance(data, str):
289                    raise TypeError()
290                enactment_date_type_0 = isoparse(data)
291
292                return enactment_date_type_0
293            except:  # noqa: E722
294                pass
295            return cast(Union[None, Unset, datetime.datetime], data)
296
297        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
298
299        _expiration_type = d.pop("expirationType", UNSET)
300        expiration_type: Union[Unset, GovernanceExpiryType]
301        if isinstance(_expiration_type, Unset):
302            expiration_type = UNSET
303        else:
304            expiration_type = GovernanceExpiryType(_expiration_type)
305
306        def _parse_expiration_days_after_completion(data: object) -> Union[None, Unset, int]:
307            if data is None:
308                return data
309            if isinstance(data, Unset):
310                return data
311            return cast(Union[None, Unset, int], data)
312
313        expiration_days_after_completion = _parse_expiration_days_after_completion(
314            d.pop("expirationDaysAfterCompletion", UNSET)
315        )
316
317        def _parse_expiration_date(data: object) -> Union[None, Unset, datetime.datetime]:
318            if data is None:
319                return data
320            if isinstance(data, Unset):
321                return data
322            try:
323                if not isinstance(data, str):
324                    raise TypeError()
325                expiration_date_type_0 = isoparse(data)
326
327                return expiration_date_type_0
328            except:  # noqa: E722
329                pass
330            return cast(Union[None, Unset, datetime.datetime], data)
331
332        expiration_date = _parse_expiration_date(d.pop("expirationDate", UNSET))
333
334        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
335            if data is None:
336                return data
337            if isinstance(data, Unset):
338                return data
339            try:
340                if not isinstance(data, list):
341                    raise TypeError()
342                supplemental_docs_type_0 = []
343                _supplemental_docs_type_0 = data
344                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
345                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
346
347                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
348
349                return supplemental_docs_type_0
350            except:  # noqa: E722
351                pass
352            return cast(Union[List["GovernanceFile"], None, Unset], data)
353
354        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
355
356        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
357            if data is None:
358                return data
359            if isinstance(data, Unset):
360                return data
361            try:
362                if not isinstance(data, dict):
363                    raise TypeError()
364                file_type_1 = GovernanceFile.from_dict(data)
365
366                return file_type_1
367            except:  # noqa: E722
368                pass
369            return cast(Union["GovernanceFile", None, Unset], data)
370
371        file = _parse_file(d.pop("file", UNSET))
372
373        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
374            if data is None:
375                return data
376            if isinstance(data, Unset):
377                return data
378            try:
379                if not isinstance(data, str):
380                    raise TypeError()
381                authorship_type_1 = GovernanceScope(data)
382
383                return authorship_type_1
384            except:  # noqa: E722
385                pass
386            return cast(Union[GovernanceScope, None, Unset], data)
387
388        authorship = _parse_authorship(d.pop("authorship", UNSET))
389
390        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
391            if data is None:
392                return data
393            if isinstance(data, Unset):
394                return data
395            try:
396                if not isinstance(data, str):
397                    raise TypeError()
398                verification_method_type_1 = GovernanceTrainingVerification(data)
399
400                return verification_method_type_1
401            except:  # noqa: E722
402                pass
403            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
404
405        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
406
407        def _parse_fulfillment_id(data: object) -> Union[None, Unset, str]:
408            if data is None:
409                return data
410            if isinstance(data, Unset):
411                return data
412            return cast(Union[None, Unset, str], data)
413
414        fulfillment_id = _parse_fulfillment_id(d.pop("fulfillmentId", UNSET))
415
416        def _parse_fulfillment_date(data: object) -> Union[None, Unset, datetime.datetime]:
417            if data is None:
418                return data
419            if isinstance(data, Unset):
420                return data
421            try:
422                if not isinstance(data, str):
423                    raise TypeError()
424                fulfillment_date_type_0 = isoparse(data)
425
426                return fulfillment_date_type_0
427            except:  # noqa: E722
428                pass
429            return cast(Union[None, Unset, datetime.datetime], data)
430
431        fulfillment_date = _parse_fulfillment_date(d.pop("fulfillmentDate", UNSET))
432
433        def _parse_fulfillment_file(data: object) -> Union[None, Unset, str]:
434            if data is None:
435                return data
436            if isinstance(data, Unset):
437                return data
438            return cast(Union[None, Unset, str], data)
439
440        fulfillment_file = _parse_fulfillment_file(d.pop("fulfillmentFile", UNSET))
441
442        def _parse_fulfillment_path(data: object) -> Union[None, Unset, str]:
443            if data is None:
444                return data
445            if isinstance(data, Unset):
446                return data
447            return cast(Union[None, Unset, str], data)
448
449        fulfillment_path = _parse_fulfillment_path(d.pop("fulfillmentPath", UNSET))
450
451        project_requirement = cls(
452            id=id,
453            name=name,
454            description=description,
455            type=type,
456            path=path,
457            scope=scope,
458            contacts=contacts,
459            is_fulfilled=is_fulfilled,
460            acceptance=acceptance,
461            enactment_date=enactment_date,
462            expiration_type=expiration_type,
463            expiration_days_after_completion=expiration_days_after_completion,
464            expiration_date=expiration_date,
465            supplemental_docs=supplemental_docs,
466            file=file,
467            authorship=authorship,
468            verification_method=verification_method,
469            fulfillment_id=fulfillment_id,
470            fulfillment_date=fulfillment_date,
471            fulfillment_file=fulfillment_file,
472            fulfillment_path=fulfillment_path,
473        )
474
475        project_requirement.additional_properties = d
476        return project_requirement
477
478    @property
479    def additional_keys(self) -> List[str]:
480        return list(self.additional_properties.keys())
Attributes:
  • id (str): The unique identifier for the requirement
  • name (str): The name of the requirement
  • description (str): A brief description of the requirement
  • type (GovernanceType): The types of governance requirements that can be enforced
  • path (str): S3 prefix where files for the requirement are saved
  • scope (GovernanceScope): The levels at which governance requirements can be enforced
  • contacts (List['GovernanceContact']): The governance contacts assigned to the requirement.
  • is_fulfilled (bool): Whether the current user has fulfilled the requirement for this project
  • acceptance (Union[GovernanceScope, None, Unset]): Specifies the level at which it is satisfied
  • enactment_date (Union[None, Unset, datetime.datetime]): The date of enactment for the requirement
  • expiration_type (Union[Unset, GovernanceExpiryType]): The expiry conditions that can be applied to governance requirements.
  • expiration_days_after_completion (Union[None, Unset, int]): The number of days for a relative to completion expiration
  • expiration_date (Union[None, Unset, datetime.datetime]): The date of expiration for the requirement
  • supplemental_docs (Union[List['GovernanceFile'], None, Unset]): Optional files with extra information, e.g. templates for documents, links, etc
  • file (Union['GovernanceFile', None, Unset]):
  • authorship (Union[GovernanceScope, None, Unset]): Who needs to supply the agreement document
  • verification_method (Union[GovernanceTrainingVerification, None, Unset]): The value indicating how the completion of the training is verified.
  • fulfillment_id (Union[None, Unset, str]): The id for the requirement fulfillment
  • fulfillment_date (Union[None, Unset, datetime.datetime]): The date the requirement was fulfilled by the user
  • fulfillment_file (Union[None, Unset, str]): The optional file uploaded to fulfill the requirement
  • fulfillment_path (Union[None, Unset, str]): The path to the optional fulfillment file
ProjectRequirement( id: str, name: str, description: str, type: GovernanceType, path: str, scope: GovernanceScope, contacts: List[GovernanceContact], is_fulfilled: bool, acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, expiration_type: Union[cirro_api_client.v1.types.Unset, GovernanceExpiryType] = <cirro_api_client.v1.types.Unset object>, expiration_days_after_completion: Union[NoneType, cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, expiration_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, fulfillment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, fulfillment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, fulfillment_file: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, fulfillment_path: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
44def __init__(self, id, name, description, type, path, scope, contacts, is_fulfilled, acceptance=attr_dict['acceptance'].default, enactment_date=attr_dict['enactment_date'].default, expiration_type=attr_dict['expiration_type'].default, expiration_days_after_completion=attr_dict['expiration_days_after_completion'].default, expiration_date=attr_dict['expiration_date'].default, supplemental_docs=attr_dict['supplemental_docs'].default, file=attr_dict['file'].default, authorship=attr_dict['authorship'].default, verification_method=attr_dict['verification_method'].default, fulfillment_id=attr_dict['fulfillment_id'].default, fulfillment_date=attr_dict['fulfillment_date'].default, fulfillment_file=attr_dict['fulfillment_file'].default, fulfillment_path=attr_dict['fulfillment_path'].default):
45    self.id = id
46    self.name = name
47    self.description = description
48    self.type = type
49    self.path = path
50    self.scope = scope
51    self.contacts = contacts
52    self.is_fulfilled = is_fulfilled
53    self.acceptance = acceptance
54    self.enactment_date = enactment_date
55    self.expiration_type = expiration_type
56    self.expiration_days_after_completion = expiration_days_after_completion
57    self.expiration_date = expiration_date
58    self.supplemental_docs = supplemental_docs
59    self.file = file
60    self.authorship = authorship
61    self.verification_method = verification_method
62    self.fulfillment_id = fulfillment_id
63    self.fulfillment_date = fulfillment_date
64    self.fulfillment_file = fulfillment_file
65    self.fulfillment_path = fulfillment_path
66    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectRequirement.

id: str
name: str
description: str
path: str
contacts: List[GovernanceContact]
is_fulfilled: bool
acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
expiration_type: Union[cirro_api_client.v1.types.Unset, GovernanceExpiryType]
expiration_days_after_completion: Union[NoneType, cirro_api_client.v1.types.Unset, int]
expiration_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset]
file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset]
authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset]
fulfillment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
fulfillment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
fulfillment_file: Union[NoneType, cirro_api_client.v1.types.Unset, str]
fulfillment_path: Union[NoneType, cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 77    def to_dict(self) -> Dict[str, Any]:
 78        from ..models.governance_file import GovernanceFile
 79
 80        id = self.id
 81
 82        name = self.name
 83
 84        description = self.description
 85
 86        type = self.type.value
 87
 88        path = self.path
 89
 90        scope = self.scope.value
 91
 92        contacts = []
 93        for contacts_item_data in self.contacts:
 94            contacts_item = contacts_item_data.to_dict()
 95            contacts.append(contacts_item)
 96
 97        is_fulfilled = self.is_fulfilled
 98
 99        acceptance: Union[None, Unset, str]
100        if isinstance(self.acceptance, Unset):
101            acceptance = UNSET
102        elif isinstance(self.acceptance, GovernanceScope):
103            acceptance = self.acceptance.value
104        else:
105            acceptance = self.acceptance
106
107        enactment_date: Union[None, Unset, str]
108        if isinstance(self.enactment_date, Unset):
109            enactment_date = UNSET
110        elif isinstance(self.enactment_date, datetime.datetime):
111            enactment_date = self.enactment_date.isoformat()
112        else:
113            enactment_date = self.enactment_date
114
115        expiration_type: Union[Unset, str] = UNSET
116        if not isinstance(self.expiration_type, Unset):
117            expiration_type = self.expiration_type.value
118
119        expiration_days_after_completion: Union[None, Unset, int]
120        if isinstance(self.expiration_days_after_completion, Unset):
121            expiration_days_after_completion = UNSET
122        else:
123            expiration_days_after_completion = self.expiration_days_after_completion
124
125        expiration_date: Union[None, Unset, str]
126        if isinstance(self.expiration_date, Unset):
127            expiration_date = UNSET
128        elif isinstance(self.expiration_date, datetime.datetime):
129            expiration_date = self.expiration_date.isoformat()
130        else:
131            expiration_date = self.expiration_date
132
133        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
134        if isinstance(self.supplemental_docs, Unset):
135            supplemental_docs = UNSET
136        elif isinstance(self.supplemental_docs, list):
137            supplemental_docs = []
138            for supplemental_docs_type_0_item_data in self.supplemental_docs:
139                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
140                supplemental_docs.append(supplemental_docs_type_0_item)
141
142        else:
143            supplemental_docs = self.supplemental_docs
144
145        file: Union[Dict[str, Any], None, Unset]
146        if isinstance(self.file, Unset):
147            file = UNSET
148        elif isinstance(self.file, GovernanceFile):
149            file = self.file.to_dict()
150        else:
151            file = self.file
152
153        authorship: Union[None, Unset, str]
154        if isinstance(self.authorship, Unset):
155            authorship = UNSET
156        elif isinstance(self.authorship, GovernanceScope):
157            authorship = self.authorship.value
158        else:
159            authorship = self.authorship
160
161        verification_method: Union[None, Unset, str]
162        if isinstance(self.verification_method, Unset):
163            verification_method = UNSET
164        elif isinstance(self.verification_method, GovernanceTrainingVerification):
165            verification_method = self.verification_method.value
166        else:
167            verification_method = self.verification_method
168
169        fulfillment_id: Union[None, Unset, str]
170        if isinstance(self.fulfillment_id, Unset):
171            fulfillment_id = UNSET
172        else:
173            fulfillment_id = self.fulfillment_id
174
175        fulfillment_date: Union[None, Unset, str]
176        if isinstance(self.fulfillment_date, Unset):
177            fulfillment_date = UNSET
178        elif isinstance(self.fulfillment_date, datetime.datetime):
179            fulfillment_date = self.fulfillment_date.isoformat()
180        else:
181            fulfillment_date = self.fulfillment_date
182
183        fulfillment_file: Union[None, Unset, str]
184        if isinstance(self.fulfillment_file, Unset):
185            fulfillment_file = UNSET
186        else:
187            fulfillment_file = self.fulfillment_file
188
189        fulfillment_path: Union[None, Unset, str]
190        if isinstance(self.fulfillment_path, Unset):
191            fulfillment_path = UNSET
192        else:
193            fulfillment_path = self.fulfillment_path
194
195        field_dict: Dict[str, Any] = {}
196        field_dict.update(self.additional_properties)
197        field_dict.update(
198            {
199                "id": id,
200                "name": name,
201                "description": description,
202                "type": type,
203                "path": path,
204                "scope": scope,
205                "contacts": contacts,
206                "isFulfilled": is_fulfilled,
207            }
208        )
209        if acceptance is not UNSET:
210            field_dict["acceptance"] = acceptance
211        if enactment_date is not UNSET:
212            field_dict["enactmentDate"] = enactment_date
213        if expiration_type is not UNSET:
214            field_dict["expirationType"] = expiration_type
215        if expiration_days_after_completion is not UNSET:
216            field_dict["expirationDaysAfterCompletion"] = expiration_days_after_completion
217        if expiration_date is not UNSET:
218            field_dict["expirationDate"] = expiration_date
219        if supplemental_docs is not UNSET:
220            field_dict["supplementalDocs"] = supplemental_docs
221        if file is not UNSET:
222            field_dict["file"] = file
223        if authorship is not UNSET:
224            field_dict["authorship"] = authorship
225        if verification_method is not UNSET:
226            field_dict["verificationMethod"] = verification_method
227        if fulfillment_id is not UNSET:
228            field_dict["fulfillmentId"] = fulfillment_id
229        if fulfillment_date is not UNSET:
230            field_dict["fulfillmentDate"] = fulfillment_date
231        if fulfillment_file is not UNSET:
232            field_dict["fulfillmentFile"] = fulfillment_file
233        if fulfillment_path is not UNSET:
234            field_dict["fulfillmentPath"] = fulfillment_path
235
236        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
238    @classmethod
239    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
240        from ..models.governance_contact import GovernanceContact
241        from ..models.governance_file import GovernanceFile
242
243        d = src_dict.copy()
244        id = d.pop("id")
245
246        name = d.pop("name")
247
248        description = d.pop("description")
249
250        type = GovernanceType(d.pop("type"))
251
252        path = d.pop("path")
253
254        scope = GovernanceScope(d.pop("scope"))
255
256        contacts = []
257        _contacts = d.pop("contacts")
258        for contacts_item_data in _contacts:
259            contacts_item = GovernanceContact.from_dict(contacts_item_data)
260
261            contacts.append(contacts_item)
262
263        is_fulfilled = d.pop("isFulfilled")
264
265        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
266            if data is None:
267                return data
268            if isinstance(data, Unset):
269                return data
270            try:
271                if not isinstance(data, str):
272                    raise TypeError()
273                acceptance_type_1 = GovernanceScope(data)
274
275                return acceptance_type_1
276            except:  # noqa: E722
277                pass
278            return cast(Union[GovernanceScope, None, Unset], data)
279
280        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
281
282        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
283            if data is None:
284                return data
285            if isinstance(data, Unset):
286                return data
287            try:
288                if not isinstance(data, str):
289                    raise TypeError()
290                enactment_date_type_0 = isoparse(data)
291
292                return enactment_date_type_0
293            except:  # noqa: E722
294                pass
295            return cast(Union[None, Unset, datetime.datetime], data)
296
297        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
298
299        _expiration_type = d.pop("expirationType", UNSET)
300        expiration_type: Union[Unset, GovernanceExpiryType]
301        if isinstance(_expiration_type, Unset):
302            expiration_type = UNSET
303        else:
304            expiration_type = GovernanceExpiryType(_expiration_type)
305
306        def _parse_expiration_days_after_completion(data: object) -> Union[None, Unset, int]:
307            if data is None:
308                return data
309            if isinstance(data, Unset):
310                return data
311            return cast(Union[None, Unset, int], data)
312
313        expiration_days_after_completion = _parse_expiration_days_after_completion(
314            d.pop("expirationDaysAfterCompletion", UNSET)
315        )
316
317        def _parse_expiration_date(data: object) -> Union[None, Unset, datetime.datetime]:
318            if data is None:
319                return data
320            if isinstance(data, Unset):
321                return data
322            try:
323                if not isinstance(data, str):
324                    raise TypeError()
325                expiration_date_type_0 = isoparse(data)
326
327                return expiration_date_type_0
328            except:  # noqa: E722
329                pass
330            return cast(Union[None, Unset, datetime.datetime], data)
331
332        expiration_date = _parse_expiration_date(d.pop("expirationDate", UNSET))
333
334        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
335            if data is None:
336                return data
337            if isinstance(data, Unset):
338                return data
339            try:
340                if not isinstance(data, list):
341                    raise TypeError()
342                supplemental_docs_type_0 = []
343                _supplemental_docs_type_0 = data
344                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
345                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
346
347                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
348
349                return supplemental_docs_type_0
350            except:  # noqa: E722
351                pass
352            return cast(Union[List["GovernanceFile"], None, Unset], data)
353
354        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
355
356        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
357            if data is None:
358                return data
359            if isinstance(data, Unset):
360                return data
361            try:
362                if not isinstance(data, dict):
363                    raise TypeError()
364                file_type_1 = GovernanceFile.from_dict(data)
365
366                return file_type_1
367            except:  # noqa: E722
368                pass
369            return cast(Union["GovernanceFile", None, Unset], data)
370
371        file = _parse_file(d.pop("file", UNSET))
372
373        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
374            if data is None:
375                return data
376            if isinstance(data, Unset):
377                return data
378            try:
379                if not isinstance(data, str):
380                    raise TypeError()
381                authorship_type_1 = GovernanceScope(data)
382
383                return authorship_type_1
384            except:  # noqa: E722
385                pass
386            return cast(Union[GovernanceScope, None, Unset], data)
387
388        authorship = _parse_authorship(d.pop("authorship", UNSET))
389
390        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
391            if data is None:
392                return data
393            if isinstance(data, Unset):
394                return data
395            try:
396                if not isinstance(data, str):
397                    raise TypeError()
398                verification_method_type_1 = GovernanceTrainingVerification(data)
399
400                return verification_method_type_1
401            except:  # noqa: E722
402                pass
403            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
404
405        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
406
407        def _parse_fulfillment_id(data: object) -> Union[None, Unset, str]:
408            if data is None:
409                return data
410            if isinstance(data, Unset):
411                return data
412            return cast(Union[None, Unset, str], data)
413
414        fulfillment_id = _parse_fulfillment_id(d.pop("fulfillmentId", UNSET))
415
416        def _parse_fulfillment_date(data: object) -> Union[None, Unset, datetime.datetime]:
417            if data is None:
418                return data
419            if isinstance(data, Unset):
420                return data
421            try:
422                if not isinstance(data, str):
423                    raise TypeError()
424                fulfillment_date_type_0 = isoparse(data)
425
426                return fulfillment_date_type_0
427            except:  # noqa: E722
428                pass
429            return cast(Union[None, Unset, datetime.datetime], data)
430
431        fulfillment_date = _parse_fulfillment_date(d.pop("fulfillmentDate", UNSET))
432
433        def _parse_fulfillment_file(data: object) -> Union[None, Unset, str]:
434            if data is None:
435                return data
436            if isinstance(data, Unset):
437                return data
438            return cast(Union[None, Unset, str], data)
439
440        fulfillment_file = _parse_fulfillment_file(d.pop("fulfillmentFile", UNSET))
441
442        def _parse_fulfillment_path(data: object) -> Union[None, Unset, str]:
443            if data is None:
444                return data
445            if isinstance(data, Unset):
446                return data
447            return cast(Union[None, Unset, str], data)
448
449        fulfillment_path = _parse_fulfillment_path(d.pop("fulfillmentPath", UNSET))
450
451        project_requirement = cls(
452            id=id,
453            name=name,
454            description=description,
455            type=type,
456            path=path,
457            scope=scope,
458            contacts=contacts,
459            is_fulfilled=is_fulfilled,
460            acceptance=acceptance,
461            enactment_date=enactment_date,
462            expiration_type=expiration_type,
463            expiration_days_after_completion=expiration_days_after_completion,
464            expiration_date=expiration_date,
465            supplemental_docs=supplemental_docs,
466            file=file,
467            authorship=authorship,
468            verification_method=verification_method,
469            fulfillment_id=fulfillment_id,
470            fulfillment_date=fulfillment_date,
471            fulfillment_file=fulfillment_file,
472            fulfillment_path=fulfillment_path,
473        )
474
475        project_requirement.additional_properties = d
476        return project_requirement
additional_keys: List[str]
478    @property
479    def additional_keys(self) -> List[str]:
480        return list(self.additional_properties.keys())
class ProjectRole(builtins.str, enum.Enum):
 5class ProjectRole(str, Enum):
 6    ADMIN = "ADMIN"
 7    COLLABORATOR = "COLLABORATOR"
 8    CONTRIBUTOR = "CONTRIBUTOR"
 9    NONE = "NONE"
10    OWNER = "OWNER"
11    UNKNOWN = "UNKNOWN"
12    """ This is a fallback value for when the value is not known, do not use this value when making requests """
13
14    def __str__(self) -> str:
15        return str(self.value)
16
17    @classmethod
18    def _missing_(cls, number):
19        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

ADMIN = <ProjectRole.ADMIN: 'ADMIN'>
COLLABORATOR = <ProjectRole.COLLABORATOR: 'COLLABORATOR'>
CONTRIBUTOR = <ProjectRole.CONTRIBUTOR: 'CONTRIBUTOR'>
NONE = <ProjectRole.NONE: 'NONE'>
OWNER = <ProjectRole.OWNER: 'OWNER'>
UNKNOWN = <ProjectRole.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class ProjectSettings:
 13@_attrs_define
 14class ProjectSettings:
 15    """
 16    Attributes:
 17        budget_amount (int): Total allowed cost for the budget period
 18        budget_period (BudgetPeriod): Time period associated with the budget amount
 19        dragen_ami (Union[None, Unset, str]): AMI ID for the DRAGEN compute environment (if enabled)
 20        enable_compute (Union[Unset, bool]): Enables the default compute environment Default: True.
 21        enable_dragen (Union[Unset, bool]): Enables the DRAGEN compute environment Default: False.
 22        enable_backup (Union[Unset, bool]): Enables the AWS Backup service for S3 Default: False.
 23        enable_sftp (Union[Unset, bool]): Enables access to files over SFTP Default: False.
 24        max_f1vcpu (Union[Unset, int]): Service quota limit for On Demand F1 instances Default: 0.
 25        max_spot_vcpu (Union[Unset, int]): Service quota limit for Spot instances Default: 0.
 26        max_gpuvcpu (Union[Unset, int]): Service quota limit for GPU Spot instances Default: 0.
 27        retention_policy_days (Union[Unset, int]): Days to keep deleted datasets before being permanently erased
 28            Default: 7.
 29        temporary_storage_lifetime_days (Union[Unset, int]): Days to keep temporary storage space (workflow executor
 30            cache) Default: 14.
 31        service_connections (Union[Unset, List[str]]): List of service connections to enable
 32        vpc_id (Union[None, Unset, str]): VPC that the compute environment will use Example: vpc-00000000000000000.
 33        batch_subnets (Union[List[str], None, Unset]): List of subnets that the compute environment will use Example:
 34            ['subnet-00000000000000000'].
 35        sagemaker_subnets (Union[List[str], None, Unset]): List of subnets that the sagemaker instances will use
 36            Example: ['subnet-00000000000000000'].
 37        kms_arn (Union[None, Unset, str]): KMS Key ARN to encrypt S3 objects, if not provided, default bucket encryption
 38            will be used
 39        is_discoverable (Union[None, Unset, bool]): Enables the project to be discoverable by other users Default:
 40            False.
 41        is_shareable (Union[None, Unset, bool]): Enables the project to be shared with other projects Default: False.
 42    """
 43
 44    budget_amount: int
 45    budget_period: BudgetPeriod
 46    dragen_ami: Union[None, Unset, str] = UNSET
 47    enable_compute: Union[Unset, bool] = True
 48    enable_dragen: Union[Unset, bool] = False
 49    enable_backup: Union[Unset, bool] = False
 50    enable_sftp: Union[Unset, bool] = False
 51    max_f1vcpu: Union[Unset, int] = 0
 52    max_spot_vcpu: Union[Unset, int] = 0
 53    max_gpuvcpu: Union[Unset, int] = 0
 54    retention_policy_days: Union[Unset, int] = 7
 55    temporary_storage_lifetime_days: Union[Unset, int] = 14
 56    service_connections: Union[Unset, List[str]] = UNSET
 57    vpc_id: Union[None, Unset, str] = UNSET
 58    batch_subnets: Union[List[str], None, Unset] = UNSET
 59    sagemaker_subnets: Union[List[str], None, Unset] = UNSET
 60    kms_arn: Union[None, Unset, str] = UNSET
 61    is_discoverable: Union[None, Unset, bool] = False
 62    is_shareable: Union[None, Unset, bool] = False
 63    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 64
 65    def to_dict(self) -> Dict[str, Any]:
 66        budget_amount = self.budget_amount
 67
 68        budget_period = self.budget_period.value
 69
 70        dragen_ami: Union[None, Unset, str]
 71        if isinstance(self.dragen_ami, Unset):
 72            dragen_ami = UNSET
 73        else:
 74            dragen_ami = self.dragen_ami
 75
 76        enable_compute = self.enable_compute
 77
 78        enable_dragen = self.enable_dragen
 79
 80        enable_backup = self.enable_backup
 81
 82        enable_sftp = self.enable_sftp
 83
 84        max_f1vcpu = self.max_f1vcpu
 85
 86        max_spot_vcpu = self.max_spot_vcpu
 87
 88        max_gpuvcpu = self.max_gpuvcpu
 89
 90        retention_policy_days = self.retention_policy_days
 91
 92        temporary_storage_lifetime_days = self.temporary_storage_lifetime_days
 93
 94        service_connections: Union[Unset, List[str]] = UNSET
 95        if not isinstance(self.service_connections, Unset):
 96            service_connections = self.service_connections
 97
 98        vpc_id: Union[None, Unset, str]
 99        if isinstance(self.vpc_id, Unset):
100            vpc_id = UNSET
101        else:
102            vpc_id = self.vpc_id
103
104        batch_subnets: Union[List[str], None, Unset]
105        if isinstance(self.batch_subnets, Unset):
106            batch_subnets = UNSET
107        elif isinstance(self.batch_subnets, list):
108            batch_subnets = self.batch_subnets
109
110        else:
111            batch_subnets = self.batch_subnets
112
113        sagemaker_subnets: Union[List[str], None, Unset]
114        if isinstance(self.sagemaker_subnets, Unset):
115            sagemaker_subnets = UNSET
116        elif isinstance(self.sagemaker_subnets, list):
117            sagemaker_subnets = self.sagemaker_subnets
118
119        else:
120            sagemaker_subnets = self.sagemaker_subnets
121
122        kms_arn: Union[None, Unset, str]
123        if isinstance(self.kms_arn, Unset):
124            kms_arn = UNSET
125        else:
126            kms_arn = self.kms_arn
127
128        is_discoverable: Union[None, Unset, bool]
129        if isinstance(self.is_discoverable, Unset):
130            is_discoverable = UNSET
131        else:
132            is_discoverable = self.is_discoverable
133
134        is_shareable: Union[None, Unset, bool]
135        if isinstance(self.is_shareable, Unset):
136            is_shareable = UNSET
137        else:
138            is_shareable = self.is_shareable
139
140        field_dict: Dict[str, Any] = {}
141        field_dict.update(self.additional_properties)
142        field_dict.update(
143            {
144                "budgetAmount": budget_amount,
145                "budgetPeriod": budget_period,
146            }
147        )
148        if dragen_ami is not UNSET:
149            field_dict["dragenAmi"] = dragen_ami
150        if enable_compute is not UNSET:
151            field_dict["enableCompute"] = enable_compute
152        if enable_dragen is not UNSET:
153            field_dict["enableDragen"] = enable_dragen
154        if enable_backup is not UNSET:
155            field_dict["enableBackup"] = enable_backup
156        if enable_sftp is not UNSET:
157            field_dict["enableSftp"] = enable_sftp
158        if max_f1vcpu is not UNSET:
159            field_dict["maxF1VCPU"] = max_f1vcpu
160        if max_spot_vcpu is not UNSET:
161            field_dict["maxSpotVCPU"] = max_spot_vcpu
162        if max_gpuvcpu is not UNSET:
163            field_dict["maxGPUVCPU"] = max_gpuvcpu
164        if retention_policy_days is not UNSET:
165            field_dict["retentionPolicyDays"] = retention_policy_days
166        if temporary_storage_lifetime_days is not UNSET:
167            field_dict["temporaryStorageLifetimeDays"] = temporary_storage_lifetime_days
168        if service_connections is not UNSET:
169            field_dict["serviceConnections"] = service_connections
170        if vpc_id is not UNSET:
171            field_dict["vpcId"] = vpc_id
172        if batch_subnets is not UNSET:
173            field_dict["batchSubnets"] = batch_subnets
174        if sagemaker_subnets is not UNSET:
175            field_dict["sagemakerSubnets"] = sagemaker_subnets
176        if kms_arn is not UNSET:
177            field_dict["kmsArn"] = kms_arn
178        if is_discoverable is not UNSET:
179            field_dict["isDiscoverable"] = is_discoverable
180        if is_shareable is not UNSET:
181            field_dict["isShareable"] = is_shareable
182
183        return field_dict
184
185    @classmethod
186    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
187        d = src_dict.copy()
188        budget_amount = d.pop("budgetAmount")
189
190        budget_period = BudgetPeriod(d.pop("budgetPeriod"))
191
192        def _parse_dragen_ami(data: object) -> Union[None, Unset, str]:
193            if data is None:
194                return data
195            if isinstance(data, Unset):
196                return data
197            return cast(Union[None, Unset, str], data)
198
199        dragen_ami = _parse_dragen_ami(d.pop("dragenAmi", UNSET))
200
201        enable_compute = d.pop("enableCompute", UNSET)
202
203        enable_dragen = d.pop("enableDragen", UNSET)
204
205        enable_backup = d.pop("enableBackup", UNSET)
206
207        enable_sftp = d.pop("enableSftp", UNSET)
208
209        max_f1vcpu = d.pop("maxF1VCPU", UNSET)
210
211        max_spot_vcpu = d.pop("maxSpotVCPU", UNSET)
212
213        max_gpuvcpu = d.pop("maxGPUVCPU", UNSET)
214
215        retention_policy_days = d.pop("retentionPolicyDays", UNSET)
216
217        temporary_storage_lifetime_days = d.pop("temporaryStorageLifetimeDays", UNSET)
218
219        service_connections = cast(List[str], d.pop("serviceConnections", UNSET))
220
221        def _parse_vpc_id(data: object) -> Union[None, Unset, str]:
222            if data is None:
223                return data
224            if isinstance(data, Unset):
225                return data
226            return cast(Union[None, Unset, str], data)
227
228        vpc_id = _parse_vpc_id(d.pop("vpcId", UNSET))
229
230        def _parse_batch_subnets(data: object) -> Union[List[str], None, Unset]:
231            if data is None:
232                return data
233            if isinstance(data, Unset):
234                return data
235            try:
236                if not isinstance(data, list):
237                    raise TypeError()
238                batch_subnets_type_0 = cast(List[str], data)
239
240                return batch_subnets_type_0
241            except:  # noqa: E722
242                pass
243            return cast(Union[List[str], None, Unset], data)
244
245        batch_subnets = _parse_batch_subnets(d.pop("batchSubnets", UNSET))
246
247        def _parse_sagemaker_subnets(data: object) -> Union[List[str], None, Unset]:
248            if data is None:
249                return data
250            if isinstance(data, Unset):
251                return data
252            try:
253                if not isinstance(data, list):
254                    raise TypeError()
255                sagemaker_subnets_type_0 = cast(List[str], data)
256
257                return sagemaker_subnets_type_0
258            except:  # noqa: E722
259                pass
260            return cast(Union[List[str], None, Unset], data)
261
262        sagemaker_subnets = _parse_sagemaker_subnets(d.pop("sagemakerSubnets", UNSET))
263
264        def _parse_kms_arn(data: object) -> Union[None, Unset, str]:
265            if data is None:
266                return data
267            if isinstance(data, Unset):
268                return data
269            return cast(Union[None, Unset, str], data)
270
271        kms_arn = _parse_kms_arn(d.pop("kmsArn", UNSET))
272
273        def _parse_is_discoverable(data: object) -> Union[None, Unset, bool]:
274            if data is None:
275                return data
276            if isinstance(data, Unset):
277                return data
278            return cast(Union[None, Unset, bool], data)
279
280        is_discoverable = _parse_is_discoverable(d.pop("isDiscoverable", UNSET))
281
282        def _parse_is_shareable(data: object) -> Union[None, Unset, bool]:
283            if data is None:
284                return data
285            if isinstance(data, Unset):
286                return data
287            return cast(Union[None, Unset, bool], data)
288
289        is_shareable = _parse_is_shareable(d.pop("isShareable", UNSET))
290
291        project_settings = cls(
292            budget_amount=budget_amount,
293            budget_period=budget_period,
294            dragen_ami=dragen_ami,
295            enable_compute=enable_compute,
296            enable_dragen=enable_dragen,
297            enable_backup=enable_backup,
298            enable_sftp=enable_sftp,
299            max_f1vcpu=max_f1vcpu,
300            max_spot_vcpu=max_spot_vcpu,
301            max_gpuvcpu=max_gpuvcpu,
302            retention_policy_days=retention_policy_days,
303            temporary_storage_lifetime_days=temporary_storage_lifetime_days,
304            service_connections=service_connections,
305            vpc_id=vpc_id,
306            batch_subnets=batch_subnets,
307            sagemaker_subnets=sagemaker_subnets,
308            kms_arn=kms_arn,
309            is_discoverable=is_discoverable,
310            is_shareable=is_shareable,
311        )
312
313        project_settings.additional_properties = d
314        return project_settings
315
316    @property
317    def additional_keys(self) -> List[str]:
318        return list(self.additional_properties.keys())
Attributes:
  • budget_amount (int): Total allowed cost for the budget period
  • budget_period (BudgetPeriod): Time period associated with the budget amount
  • dragen_ami (Union[None, Unset, str]): AMI ID for the DRAGEN compute environment (if enabled)
  • enable_compute (Union[Unset, bool]): Enables the default compute environment Default: True.
  • enable_dragen (Union[Unset, bool]): Enables the DRAGEN compute environment Default: False.
  • enable_backup (Union[Unset, bool]): Enables the AWS Backup service for S3 Default: False.
  • enable_sftp (Union[Unset, bool]): Enables access to files over SFTP Default: False.
  • max_f1vcpu (Union[Unset, int]): Service quota limit for On Demand F1 instances Default: 0.
  • max_spot_vcpu (Union[Unset, int]): Service quota limit for Spot instances Default: 0.
  • max_gpuvcpu (Union[Unset, int]): Service quota limit for GPU Spot instances Default: 0.
  • retention_policy_days (Union[Unset, int]): Days to keep deleted datasets before being permanently erased Default: 7.
  • temporary_storage_lifetime_days (Union[Unset, int]): Days to keep temporary storage space (workflow executor cache) Default: 14.
  • service_connections (Union[Unset, List[str]]): List of service connections to enable
  • vpc_id (Union[None, Unset, str]): VPC that the compute environment will use Example: vpc-00000000000000000.
  • batch_subnets (Union[List[str], None, Unset]): List of subnets that the compute environment will use Example: ['subnet-00000000000000000'].
  • sagemaker_subnets (Union[List[str], None, Unset]): List of subnets that the sagemaker instances will use Example: ['subnet-00000000000000000'].
  • kms_arn (Union[None, Unset, str]): KMS Key ARN to encrypt S3 objects, if not provided, default bucket encryption will be used
  • is_discoverable (Union[None, Unset, bool]): Enables the project to be discoverable by other users Default: False.
  • is_shareable (Union[None, Unset, bool]): Enables the project to be shared with other projects Default: False.
ProjectSettings( budget_amount: int, budget_period: BudgetPeriod, dragen_ami: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, enable_compute: Union[cirro_api_client.v1.types.Unset, bool] = True, enable_dragen: Union[cirro_api_client.v1.types.Unset, bool] = False, enable_backup: Union[cirro_api_client.v1.types.Unset, bool] = False, enable_sftp: Union[cirro_api_client.v1.types.Unset, bool] = False, max_f1vcpu: Union[cirro_api_client.v1.types.Unset, int] = 0, max_spot_vcpu: Union[cirro_api_client.v1.types.Unset, int] = 0, max_gpuvcpu: Union[cirro_api_client.v1.types.Unset, int] = 0, retention_policy_days: Union[cirro_api_client.v1.types.Unset, int] = 7, temporary_storage_lifetime_days: Union[cirro_api_client.v1.types.Unset, int] = 14, service_connections: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>, vpc_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, batch_subnets: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, sagemaker_subnets: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, kms_arn: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, is_discoverable: Union[NoneType, cirro_api_client.v1.types.Unset, bool] = False, is_shareable: Union[NoneType, cirro_api_client.v1.types.Unset, bool] = False)
42def __init__(self, budget_amount, budget_period, dragen_ami=attr_dict['dragen_ami'].default, enable_compute=attr_dict['enable_compute'].default, enable_dragen=attr_dict['enable_dragen'].default, enable_backup=attr_dict['enable_backup'].default, enable_sftp=attr_dict['enable_sftp'].default, max_f1vcpu=attr_dict['max_f1vcpu'].default, max_spot_vcpu=attr_dict['max_spot_vcpu'].default, max_gpuvcpu=attr_dict['max_gpuvcpu'].default, retention_policy_days=attr_dict['retention_policy_days'].default, temporary_storage_lifetime_days=attr_dict['temporary_storage_lifetime_days'].default, service_connections=attr_dict['service_connections'].default, vpc_id=attr_dict['vpc_id'].default, batch_subnets=attr_dict['batch_subnets'].default, sagemaker_subnets=attr_dict['sagemaker_subnets'].default, kms_arn=attr_dict['kms_arn'].default, is_discoverable=attr_dict['is_discoverable'].default, is_shareable=attr_dict['is_shareable'].default):
43    self.budget_amount = budget_amount
44    self.budget_period = budget_period
45    self.dragen_ami = dragen_ami
46    self.enable_compute = enable_compute
47    self.enable_dragen = enable_dragen
48    self.enable_backup = enable_backup
49    self.enable_sftp = enable_sftp
50    self.max_f1vcpu = max_f1vcpu
51    self.max_spot_vcpu = max_spot_vcpu
52    self.max_gpuvcpu = max_gpuvcpu
53    self.retention_policy_days = retention_policy_days
54    self.temporary_storage_lifetime_days = temporary_storage_lifetime_days
55    self.service_connections = service_connections
56    self.vpc_id = vpc_id
57    self.batch_subnets = batch_subnets
58    self.sagemaker_subnets = sagemaker_subnets
59    self.kms_arn = kms_arn
60    self.is_discoverable = is_discoverable
61    self.is_shareable = is_shareable
62    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectSettings.

budget_amount: int
budget_period: BudgetPeriod
dragen_ami: Union[NoneType, cirro_api_client.v1.types.Unset, str]
enable_compute: Union[cirro_api_client.v1.types.Unset, bool]
enable_dragen: Union[cirro_api_client.v1.types.Unset, bool]
enable_backup: Union[cirro_api_client.v1.types.Unset, bool]
enable_sftp: Union[cirro_api_client.v1.types.Unset, bool]
max_f1vcpu: Union[cirro_api_client.v1.types.Unset, int]
max_spot_vcpu: Union[cirro_api_client.v1.types.Unset, int]
max_gpuvcpu: Union[cirro_api_client.v1.types.Unset, int]
retention_policy_days: Union[cirro_api_client.v1.types.Unset, int]
temporary_storage_lifetime_days: Union[cirro_api_client.v1.types.Unset, int]
service_connections: Union[cirro_api_client.v1.types.Unset, List[str]]
vpc_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
batch_subnets: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
sagemaker_subnets: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
kms_arn: Union[NoneType, cirro_api_client.v1.types.Unset, str]
is_discoverable: Union[NoneType, cirro_api_client.v1.types.Unset, bool]
is_shareable: Union[NoneType, cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 65    def to_dict(self) -> Dict[str, Any]:
 66        budget_amount = self.budget_amount
 67
 68        budget_period = self.budget_period.value
 69
 70        dragen_ami: Union[None, Unset, str]
 71        if isinstance(self.dragen_ami, Unset):
 72            dragen_ami = UNSET
 73        else:
 74            dragen_ami = self.dragen_ami
 75
 76        enable_compute = self.enable_compute
 77
 78        enable_dragen = self.enable_dragen
 79
 80        enable_backup = self.enable_backup
 81
 82        enable_sftp = self.enable_sftp
 83
 84        max_f1vcpu = self.max_f1vcpu
 85
 86        max_spot_vcpu = self.max_spot_vcpu
 87
 88        max_gpuvcpu = self.max_gpuvcpu
 89
 90        retention_policy_days = self.retention_policy_days
 91
 92        temporary_storage_lifetime_days = self.temporary_storage_lifetime_days
 93
 94        service_connections: Union[Unset, List[str]] = UNSET
 95        if not isinstance(self.service_connections, Unset):
 96            service_connections = self.service_connections
 97
 98        vpc_id: Union[None, Unset, str]
 99        if isinstance(self.vpc_id, Unset):
100            vpc_id = UNSET
101        else:
102            vpc_id = self.vpc_id
103
104        batch_subnets: Union[List[str], None, Unset]
105        if isinstance(self.batch_subnets, Unset):
106            batch_subnets = UNSET
107        elif isinstance(self.batch_subnets, list):
108            batch_subnets = self.batch_subnets
109
110        else:
111            batch_subnets = self.batch_subnets
112
113        sagemaker_subnets: Union[List[str], None, Unset]
114        if isinstance(self.sagemaker_subnets, Unset):
115            sagemaker_subnets = UNSET
116        elif isinstance(self.sagemaker_subnets, list):
117            sagemaker_subnets = self.sagemaker_subnets
118
119        else:
120            sagemaker_subnets = self.sagemaker_subnets
121
122        kms_arn: Union[None, Unset, str]
123        if isinstance(self.kms_arn, Unset):
124            kms_arn = UNSET
125        else:
126            kms_arn = self.kms_arn
127
128        is_discoverable: Union[None, Unset, bool]
129        if isinstance(self.is_discoverable, Unset):
130            is_discoverable = UNSET
131        else:
132            is_discoverable = self.is_discoverable
133
134        is_shareable: Union[None, Unset, bool]
135        if isinstance(self.is_shareable, Unset):
136            is_shareable = UNSET
137        else:
138            is_shareable = self.is_shareable
139
140        field_dict: Dict[str, Any] = {}
141        field_dict.update(self.additional_properties)
142        field_dict.update(
143            {
144                "budgetAmount": budget_amount,
145                "budgetPeriod": budget_period,
146            }
147        )
148        if dragen_ami is not UNSET:
149            field_dict["dragenAmi"] = dragen_ami
150        if enable_compute is not UNSET:
151            field_dict["enableCompute"] = enable_compute
152        if enable_dragen is not UNSET:
153            field_dict["enableDragen"] = enable_dragen
154        if enable_backup is not UNSET:
155            field_dict["enableBackup"] = enable_backup
156        if enable_sftp is not UNSET:
157            field_dict["enableSftp"] = enable_sftp
158        if max_f1vcpu is not UNSET:
159            field_dict["maxF1VCPU"] = max_f1vcpu
160        if max_spot_vcpu is not UNSET:
161            field_dict["maxSpotVCPU"] = max_spot_vcpu
162        if max_gpuvcpu is not UNSET:
163            field_dict["maxGPUVCPU"] = max_gpuvcpu
164        if retention_policy_days is not UNSET:
165            field_dict["retentionPolicyDays"] = retention_policy_days
166        if temporary_storage_lifetime_days is not UNSET:
167            field_dict["temporaryStorageLifetimeDays"] = temporary_storage_lifetime_days
168        if service_connections is not UNSET:
169            field_dict["serviceConnections"] = service_connections
170        if vpc_id is not UNSET:
171            field_dict["vpcId"] = vpc_id
172        if batch_subnets is not UNSET:
173            field_dict["batchSubnets"] = batch_subnets
174        if sagemaker_subnets is not UNSET:
175            field_dict["sagemakerSubnets"] = sagemaker_subnets
176        if kms_arn is not UNSET:
177            field_dict["kmsArn"] = kms_arn
178        if is_discoverable is not UNSET:
179            field_dict["isDiscoverable"] = is_discoverable
180        if is_shareable is not UNSET:
181            field_dict["isShareable"] = is_shareable
182
183        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
185    @classmethod
186    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
187        d = src_dict.copy()
188        budget_amount = d.pop("budgetAmount")
189
190        budget_period = BudgetPeriod(d.pop("budgetPeriod"))
191
192        def _parse_dragen_ami(data: object) -> Union[None, Unset, str]:
193            if data is None:
194                return data
195            if isinstance(data, Unset):
196                return data
197            return cast(Union[None, Unset, str], data)
198
199        dragen_ami = _parse_dragen_ami(d.pop("dragenAmi", UNSET))
200
201        enable_compute = d.pop("enableCompute", UNSET)
202
203        enable_dragen = d.pop("enableDragen", UNSET)
204
205        enable_backup = d.pop("enableBackup", UNSET)
206
207        enable_sftp = d.pop("enableSftp", UNSET)
208
209        max_f1vcpu = d.pop("maxF1VCPU", UNSET)
210
211        max_spot_vcpu = d.pop("maxSpotVCPU", UNSET)
212
213        max_gpuvcpu = d.pop("maxGPUVCPU", UNSET)
214
215        retention_policy_days = d.pop("retentionPolicyDays", UNSET)
216
217        temporary_storage_lifetime_days = d.pop("temporaryStorageLifetimeDays", UNSET)
218
219        service_connections = cast(List[str], d.pop("serviceConnections", UNSET))
220
221        def _parse_vpc_id(data: object) -> Union[None, Unset, str]:
222            if data is None:
223                return data
224            if isinstance(data, Unset):
225                return data
226            return cast(Union[None, Unset, str], data)
227
228        vpc_id = _parse_vpc_id(d.pop("vpcId", UNSET))
229
230        def _parse_batch_subnets(data: object) -> Union[List[str], None, Unset]:
231            if data is None:
232                return data
233            if isinstance(data, Unset):
234                return data
235            try:
236                if not isinstance(data, list):
237                    raise TypeError()
238                batch_subnets_type_0 = cast(List[str], data)
239
240                return batch_subnets_type_0
241            except:  # noqa: E722
242                pass
243            return cast(Union[List[str], None, Unset], data)
244
245        batch_subnets = _parse_batch_subnets(d.pop("batchSubnets", UNSET))
246
247        def _parse_sagemaker_subnets(data: object) -> Union[List[str], None, Unset]:
248            if data is None:
249                return data
250            if isinstance(data, Unset):
251                return data
252            try:
253                if not isinstance(data, list):
254                    raise TypeError()
255                sagemaker_subnets_type_0 = cast(List[str], data)
256
257                return sagemaker_subnets_type_0
258            except:  # noqa: E722
259                pass
260            return cast(Union[List[str], None, Unset], data)
261
262        sagemaker_subnets = _parse_sagemaker_subnets(d.pop("sagemakerSubnets", UNSET))
263
264        def _parse_kms_arn(data: object) -> Union[None, Unset, str]:
265            if data is None:
266                return data
267            if isinstance(data, Unset):
268                return data
269            return cast(Union[None, Unset, str], data)
270
271        kms_arn = _parse_kms_arn(d.pop("kmsArn", UNSET))
272
273        def _parse_is_discoverable(data: object) -> Union[None, Unset, bool]:
274            if data is None:
275                return data
276            if isinstance(data, Unset):
277                return data
278            return cast(Union[None, Unset, bool], data)
279
280        is_discoverable = _parse_is_discoverable(d.pop("isDiscoverable", UNSET))
281
282        def _parse_is_shareable(data: object) -> Union[None, Unset, bool]:
283            if data is None:
284                return data
285            if isinstance(data, Unset):
286                return data
287            return cast(Union[None, Unset, bool], data)
288
289        is_shareable = _parse_is_shareable(d.pop("isShareable", UNSET))
290
291        project_settings = cls(
292            budget_amount=budget_amount,
293            budget_period=budget_period,
294            dragen_ami=dragen_ami,
295            enable_compute=enable_compute,
296            enable_dragen=enable_dragen,
297            enable_backup=enable_backup,
298            enable_sftp=enable_sftp,
299            max_f1vcpu=max_f1vcpu,
300            max_spot_vcpu=max_spot_vcpu,
301            max_gpuvcpu=max_gpuvcpu,
302            retention_policy_days=retention_policy_days,
303            temporary_storage_lifetime_days=temporary_storage_lifetime_days,
304            service_connections=service_connections,
305            vpc_id=vpc_id,
306            batch_subnets=batch_subnets,
307            sagemaker_subnets=sagemaker_subnets,
308            kms_arn=kms_arn,
309            is_discoverable=is_discoverable,
310            is_shareable=is_shareable,
311        )
312
313        project_settings.additional_properties = d
314        return project_settings
additional_keys: List[str]
316    @property
317    def additional_keys(self) -> List[str]:
318        return list(self.additional_properties.keys())
class ProjectUser:
12@_attrs_define
13class ProjectUser:
14    """
15    Attributes:
16        name (str):
17        username (str):
18        organization (str):
19        department (str):
20        email (str):
21        role (ProjectRole):
22    """
23
24    name: str
25    username: str
26    organization: str
27    department: str
28    email: str
29    role: ProjectRole
30    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
31
32    def to_dict(self) -> Dict[str, Any]:
33        name = self.name
34
35        username = self.username
36
37        organization = self.organization
38
39        department = self.department
40
41        email = self.email
42
43        role = self.role.value
44
45        field_dict: Dict[str, Any] = {}
46        field_dict.update(self.additional_properties)
47        field_dict.update(
48            {
49                "name": name,
50                "username": username,
51                "organization": organization,
52                "department": department,
53                "email": email,
54                "role": role,
55            }
56        )
57
58        return field_dict
59
60    @classmethod
61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
62        d = src_dict.copy()
63        name = d.pop("name")
64
65        username = d.pop("username")
66
67        organization = d.pop("organization")
68
69        department = d.pop("department")
70
71        email = d.pop("email")
72
73        role = ProjectRole(d.pop("role"))
74
75        project_user = cls(
76            name=name,
77            username=username,
78            organization=organization,
79            department=department,
80            email=email,
81            role=role,
82        )
83
84        project_user.additional_properties = d
85        return project_user
86
87    @property
88    def additional_keys(self) -> List[str]:
89        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • username (str):
  • organization (str):
  • department (str):
  • email (str):
  • role (ProjectRole):
ProjectUser( name: str, username: str, organization: str, department: str, email: str, role: ProjectRole)
29def __init__(self, name, username, organization, department, email, role):
30    self.name = name
31    self.username = username
32    self.organization = organization
33    self.department = department
34    self.email = email
35    self.role = role
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ProjectUser.

name: str
username: str
organization: str
department: str
email: str
role: ProjectRole
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
32    def to_dict(self) -> Dict[str, Any]:
33        name = self.name
34
35        username = self.username
36
37        organization = self.organization
38
39        department = self.department
40
41        email = self.email
42
43        role = self.role.value
44
45        field_dict: Dict[str, Any] = {}
46        field_dict.update(self.additional_properties)
47        field_dict.update(
48            {
49                "name": name,
50                "username": username,
51                "organization": organization,
52                "department": department,
53                "email": email,
54                "role": role,
55            }
56        )
57
58        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
60    @classmethod
61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
62        d = src_dict.copy()
63        name = d.pop("name")
64
65        username = d.pop("username")
66
67        organization = d.pop("organization")
68
69        department = d.pop("department")
70
71        email = d.pop("email")
72
73        role = ProjectRole(d.pop("role"))
74
75        project_user = cls(
76            name=name,
77            username=username,
78            organization=organization,
79            department=department,
80            email=email,
81            role=role,
82        )
83
84        project_user.additional_properties = d
85        return project_user
additional_keys: List[str]
87    @property
88    def additional_keys(self) -> List[str]:
89        return list(self.additional_properties.keys())
class Reference:
 16@_attrs_define
 17class Reference:
 18    """
 19    Attributes:
 20        id (str):
 21        name (str):
 22        description (str):
 23        type (str):
 24        files (List['FileEntry']):
 25        created_by (str):
 26        created_at (datetime.datetime):
 27    """
 28
 29    id: str
 30    name: str
 31    description: str
 32    type: str
 33    files: List["FileEntry"]
 34    created_by: str
 35    created_at: datetime.datetime
 36    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 37
 38    def to_dict(self) -> Dict[str, Any]:
 39        id = self.id
 40
 41        name = self.name
 42
 43        description = self.description
 44
 45        type = self.type
 46
 47        files = []
 48        for files_item_data in self.files:
 49            files_item = files_item_data.to_dict()
 50            files.append(files_item)
 51
 52        created_by = self.created_by
 53
 54        created_at = self.created_at.isoformat()
 55
 56        field_dict: Dict[str, Any] = {}
 57        field_dict.update(self.additional_properties)
 58        field_dict.update(
 59            {
 60                "id": id,
 61                "name": name,
 62                "description": description,
 63                "type": type,
 64                "files": files,
 65                "createdBy": created_by,
 66                "createdAt": created_at,
 67            }
 68        )
 69
 70        return field_dict
 71
 72    @classmethod
 73    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 74        from ..models.file_entry import FileEntry
 75
 76        d = src_dict.copy()
 77        id = d.pop("id")
 78
 79        name = d.pop("name")
 80
 81        description = d.pop("description")
 82
 83        type = d.pop("type")
 84
 85        files = []
 86        _files = d.pop("files")
 87        for files_item_data in _files:
 88            files_item = FileEntry.from_dict(files_item_data)
 89
 90            files.append(files_item)
 91
 92        created_by = d.pop("createdBy")
 93
 94        created_at = isoparse(d.pop("createdAt"))
 95
 96        reference = cls(
 97            id=id,
 98            name=name,
 99            description=description,
100            type=type,
101            files=files,
102            created_by=created_by,
103            created_at=created_at,
104        )
105
106        reference.additional_properties = d
107        return reference
108
109    @property
110    def additional_keys(self) -> List[str]:
111        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • type (str):
  • files (List['FileEntry']):
  • created_by (str):
  • created_at (datetime.datetime):
Reference( id: str, name: str, description: str, type: str, files: List[FileEntry], created_by: str, created_at: datetime.datetime)
30def __init__(self, id, name, description, type, files, created_by, created_at):
31    self.id = id
32    self.name = name
33    self.description = description
34    self.type = type
35    self.files = files
36    self.created_by = created_by
37    self.created_at = created_at
38    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Reference.

id: str
name: str
description: str
type: str
files: List[FileEntry]
created_by: str
created_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
38    def to_dict(self) -> Dict[str, Any]:
39        id = self.id
40
41        name = self.name
42
43        description = self.description
44
45        type = self.type
46
47        files = []
48        for files_item_data in self.files:
49            files_item = files_item_data.to_dict()
50            files.append(files_item)
51
52        created_by = self.created_by
53
54        created_at = self.created_at.isoformat()
55
56        field_dict: Dict[str, Any] = {}
57        field_dict.update(self.additional_properties)
58        field_dict.update(
59            {
60                "id": id,
61                "name": name,
62                "description": description,
63                "type": type,
64                "files": files,
65                "createdBy": created_by,
66                "createdAt": created_at,
67            }
68        )
69
70        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 72    @classmethod
 73    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 74        from ..models.file_entry import FileEntry
 75
 76        d = src_dict.copy()
 77        id = d.pop("id")
 78
 79        name = d.pop("name")
 80
 81        description = d.pop("description")
 82
 83        type = d.pop("type")
 84
 85        files = []
 86        _files = d.pop("files")
 87        for files_item_data in _files:
 88            files_item = FileEntry.from_dict(files_item_data)
 89
 90            files.append(files_item)
 91
 92        created_by = d.pop("createdBy")
 93
 94        created_at = isoparse(d.pop("createdAt"))
 95
 96        reference = cls(
 97            id=id,
 98            name=name,
 99            description=description,
100            type=type,
101            files=files,
102            created_by=created_by,
103            created_at=created_at,
104        )
105
106        reference.additional_properties = d
107        return reference
additional_keys: List[str]
109    @property
110    def additional_keys(self) -> List[str]:
111        return list(self.additional_properties.keys())
class ReferenceType:
14@_attrs_define
15class ReferenceType:
16    """
17    Attributes:
18        name (str):
19        description (str):
20        directory (str):
21        validation (List['ReferenceTypeValidationItem']):
22    """
23
24    name: str
25    description: str
26    directory: str
27    validation: List["ReferenceTypeValidationItem"]
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        directory = self.directory
36
37        validation = []
38        for validation_item_data in self.validation:
39            validation_item = validation_item_data.to_dict()
40            validation.append(validation_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "name": name,
47                "description": description,
48                "directory": directory,
49                "validation": validation,
50            }
51        )
52
53        return field_dict
54
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.reference_type_validation_item import ReferenceTypeValidationItem
58
59        d = src_dict.copy()
60        name = d.pop("name")
61
62        description = d.pop("description")
63
64        directory = d.pop("directory")
65
66        validation = []
67        _validation = d.pop("validation")
68        for validation_item_data in _validation:
69            validation_item = ReferenceTypeValidationItem.from_dict(validation_item_data)
70
71            validation.append(validation_item)
72
73        reference_type = cls(
74            name=name,
75            description=description,
76            directory=directory,
77            validation=validation,
78        )
79
80        reference_type.additional_properties = d
81        return reference_type
82
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • directory (str):
  • validation (List['ReferenceTypeValidationItem']):
ReferenceType( name: str, description: str, directory: str, validation: List[ReferenceTypeValidationItem])
27def __init__(self, name, description, directory, validation):
28    self.name = name
29    self.description = description
30    self.directory = directory
31    self.validation = validation
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ReferenceType.

name: str
description: str
directory: str
validation: List[ReferenceTypeValidationItem]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        directory = self.directory
36
37        validation = []
38        for validation_item_data in self.validation:
39            validation_item = validation_item_data.to_dict()
40            validation.append(validation_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "name": name,
47                "description": description,
48                "directory": directory,
49                "validation": validation,
50            }
51        )
52
53        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.reference_type_validation_item import ReferenceTypeValidationItem
58
59        d = src_dict.copy()
60        name = d.pop("name")
61
62        description = d.pop("description")
63
64        directory = d.pop("directory")
65
66        validation = []
67        _validation = d.pop("validation")
68        for validation_item_data in _validation:
69            validation_item = ReferenceTypeValidationItem.from_dict(validation_item_data)
70
71            validation.append(validation_item)
72
73        reference_type = cls(
74            name=name,
75            description=description,
76            directory=directory,
77            validation=validation,
78        )
79
80        reference_type.additional_properties = d
81        return reference_type
additional_keys: List[str]
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
class ReferenceTypeValidationItem:
10@_attrs_define
11class ReferenceTypeValidationItem:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        reference_type_validation_item = cls()
27
28        reference_type_validation_item.additional_properties = d
29        return reference_type_validation_item
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
ReferenceTypeValidationItem()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ReferenceTypeValidationItem.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        reference_type_validation_item = cls()
27
28        reference_type_validation_item.additional_properties = d
29        return reference_type_validation_item
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class RepositoryType(builtins.str, enum.Enum):
 5class RepositoryType(str, Enum):
 6    AWS = "AWS"
 7    GITHUB_PRIVATE = "GITHUB_PRIVATE"
 8    GITHUB_PUBLIC = "GITHUB_PUBLIC"
 9    NONE = "NONE"
10    UNKNOWN = "UNKNOWN"
11    """ This is a fallback value for when the value is not known, do not use this value when making requests """
12
13    def __str__(self) -> str:
14        return str(self.value)
15
16    @classmethod
17    def _missing_(cls, number):
18        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

AWS = <RepositoryType.AWS: 'AWS'>
GITHUB_PRIVATE = <RepositoryType.GITHUB_PRIVATE: 'GITHUB_PRIVATE'>
GITHUB_PUBLIC = <RepositoryType.GITHUB_PUBLIC: 'GITHUB_PUBLIC'>
NONE = <RepositoryType.NONE: 'NONE'>
UNKNOWN = <RepositoryType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class RequestStatus(builtins.str, enum.Enum):
 5class RequestStatus(str, Enum):
 6    ACCEPTED = "ACCEPTED"
 7    DENIED = "DENIED"
 8    PENDING = "PENDING"
 9    UNKNOWN = "UNKNOWN"
10    """ This is a fallback value for when the value is not known, do not use this value when making requests """
11
12    def __str__(self) -> str:
13        return str(self.value)
14
15    @classmethod
16    def _missing_(cls, number):
17        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

ACCEPTED = <RequestStatus.ACCEPTED: 'ACCEPTED'>
DENIED = <RequestStatus.DENIED: 'DENIED'>
PENDING = <RequestStatus.PENDING: 'PENDING'>
UNKNOWN = <RequestStatus.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class RequirementFulfillmentInput:
14@_attrs_define
15class RequirementFulfillmentInput:
16    """
17    Attributes:
18        file (Union[None, Unset, str]):
19        completed_on (Union[None, Unset, datetime.datetime]): If not provided, defaults to the current instant
20    """
21
22    file: Union[None, Unset, str] = UNSET
23    completed_on: Union[None, Unset, datetime.datetime] = UNSET
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        file: Union[None, Unset, str]
28        if isinstance(self.file, Unset):
29            file = UNSET
30        else:
31            file = self.file
32
33        completed_on: Union[None, Unset, str]
34        if isinstance(self.completed_on, Unset):
35            completed_on = UNSET
36        elif isinstance(self.completed_on, datetime.datetime):
37            completed_on = self.completed_on.isoformat()
38        else:
39            completed_on = self.completed_on
40
41        field_dict: Dict[str, Any] = {}
42        field_dict.update(self.additional_properties)
43        field_dict.update({})
44        if file is not UNSET:
45            field_dict["file"] = file
46        if completed_on is not UNSET:
47            field_dict["completedOn"] = completed_on
48
49        return field_dict
50
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54
55        def _parse_file(data: object) -> Union[None, Unset, str]:
56            if data is None:
57                return data
58            if isinstance(data, Unset):
59                return data
60            return cast(Union[None, Unset, str], data)
61
62        file = _parse_file(d.pop("file", UNSET))
63
64        def _parse_completed_on(data: object) -> Union[None, Unset, datetime.datetime]:
65            if data is None:
66                return data
67            if isinstance(data, Unset):
68                return data
69            try:
70                if not isinstance(data, str):
71                    raise TypeError()
72                completed_on_type_0 = isoparse(data)
73
74                return completed_on_type_0
75            except:  # noqa: E722
76                pass
77            return cast(Union[None, Unset, datetime.datetime], data)
78
79        completed_on = _parse_completed_on(d.pop("completedOn", UNSET))
80
81        requirement_fulfillment_input = cls(
82            file=file,
83            completed_on=completed_on,
84        )
85
86        requirement_fulfillment_input.additional_properties = d
87        return requirement_fulfillment_input
88
89    @property
90    def additional_keys(self) -> List[str]:
91        return list(self.additional_properties.keys())
Attributes:
  • file (Union[None, Unset, str]):
  • completed_on (Union[None, Unset, datetime.datetime]): If not provided, defaults to the current instant
RequirementFulfillmentInput( file: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, completed_on: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
25def __init__(self, file=attr_dict['file'].default, completed_on=attr_dict['completed_on'].default):
26    self.file = file
27    self.completed_on = completed_on
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class RequirementFulfillmentInput.

file: Union[NoneType, cirro_api_client.v1.types.Unset, str]
completed_on: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        file: Union[None, Unset, str]
28        if isinstance(self.file, Unset):
29            file = UNSET
30        else:
31            file = self.file
32
33        completed_on: Union[None, Unset, str]
34        if isinstance(self.completed_on, Unset):
35            completed_on = UNSET
36        elif isinstance(self.completed_on, datetime.datetime):
37            completed_on = self.completed_on.isoformat()
38        else:
39            completed_on = self.completed_on
40
41        field_dict: Dict[str, Any] = {}
42        field_dict.update(self.additional_properties)
43        field_dict.update({})
44        if file is not UNSET:
45            field_dict["file"] = file
46        if completed_on is not UNSET:
47            field_dict["completedOn"] = completed_on
48
49        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54
55        def _parse_file(data: object) -> Union[None, Unset, str]:
56            if data is None:
57                return data
58            if isinstance(data, Unset):
59                return data
60            return cast(Union[None, Unset, str], data)
61
62        file = _parse_file(d.pop("file", UNSET))
63
64        def _parse_completed_on(data: object) -> Union[None, Unset, datetime.datetime]:
65            if data is None:
66                return data
67            if isinstance(data, Unset):
68                return data
69            try:
70                if not isinstance(data, str):
71                    raise TypeError()
72                completed_on_type_0 = isoparse(data)
73
74                return completed_on_type_0
75            except:  # noqa: E722
76                pass
77            return cast(Union[None, Unset, datetime.datetime], data)
78
79        completed_on = _parse_completed_on(d.pop("completedOn", UNSET))
80
81        requirement_fulfillment_input = cls(
82            file=file,
83            completed_on=completed_on,
84        )
85
86        requirement_fulfillment_input.additional_properties = d
87        return requirement_fulfillment_input
additional_keys: List[str]
89    @property
90    def additional_keys(self) -> List[str]:
91        return list(self.additional_properties.keys())
class RequirementInput:
 22@_attrs_define
 23class RequirementInput:
 24    """
 25    Attributes:
 26        name (str):
 27        description (str):
 28        type (GovernanceType): The types of governance requirements that can be enforced
 29        scope (GovernanceScope): The levels at which governance requirements can be enforced
 30        contact_ids (List[str]):
 31        expiration (GovernanceExpiry):
 32        project_id (Union[None, Unset, str]):
 33        acceptance (Union[GovernanceScope, None, Unset]):
 34        enactment_date (Union[None, Unset, datetime.datetime]):
 35        supplemental_docs (Union[List['GovernanceFile'], None, Unset]):
 36        file (Union['GovernanceFile', None, Unset]):
 37        authorship (Union[GovernanceScope, None, Unset]):
 38        verification_method (Union[GovernanceTrainingVerification, None, Unset]):
 39    """
 40
 41    name: str
 42    description: str
 43    type: GovernanceType
 44    scope: GovernanceScope
 45    contact_ids: List[str]
 46    expiration: "GovernanceExpiry"
 47    project_id: Union[None, Unset, str] = UNSET
 48    acceptance: Union[GovernanceScope, None, Unset] = UNSET
 49    enactment_date: Union[None, Unset, datetime.datetime] = UNSET
 50    supplemental_docs: Union[List["GovernanceFile"], None, Unset] = UNSET
 51    file: Union["GovernanceFile", None, Unset] = UNSET
 52    authorship: Union[GovernanceScope, None, Unset] = UNSET
 53    verification_method: Union[GovernanceTrainingVerification, None, Unset] = UNSET
 54    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 55
 56    def to_dict(self) -> Dict[str, Any]:
 57        from ..models.governance_file import GovernanceFile
 58
 59        name = self.name
 60
 61        description = self.description
 62
 63        type = self.type.value
 64
 65        scope = self.scope.value
 66
 67        contact_ids = self.contact_ids
 68
 69        expiration = self.expiration.to_dict()
 70
 71        project_id: Union[None, Unset, str]
 72        if isinstance(self.project_id, Unset):
 73            project_id = UNSET
 74        else:
 75            project_id = self.project_id
 76
 77        acceptance: Union[None, Unset, str]
 78        if isinstance(self.acceptance, Unset):
 79            acceptance = UNSET
 80        elif isinstance(self.acceptance, GovernanceScope):
 81            acceptance = self.acceptance.value
 82        else:
 83            acceptance = self.acceptance
 84
 85        enactment_date: Union[None, Unset, str]
 86        if isinstance(self.enactment_date, Unset):
 87            enactment_date = UNSET
 88        elif isinstance(self.enactment_date, datetime.datetime):
 89            enactment_date = self.enactment_date.isoformat()
 90        else:
 91            enactment_date = self.enactment_date
 92
 93        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
 94        if isinstance(self.supplemental_docs, Unset):
 95            supplemental_docs = UNSET
 96        elif isinstance(self.supplemental_docs, list):
 97            supplemental_docs = []
 98            for supplemental_docs_type_0_item_data in self.supplemental_docs:
 99                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
100                supplemental_docs.append(supplemental_docs_type_0_item)
101
102        else:
103            supplemental_docs = self.supplemental_docs
104
105        file: Union[Dict[str, Any], None, Unset]
106        if isinstance(self.file, Unset):
107            file = UNSET
108        elif isinstance(self.file, GovernanceFile):
109            file = self.file.to_dict()
110        else:
111            file = self.file
112
113        authorship: Union[None, Unset, str]
114        if isinstance(self.authorship, Unset):
115            authorship = UNSET
116        elif isinstance(self.authorship, GovernanceScope):
117            authorship = self.authorship.value
118        else:
119            authorship = self.authorship
120
121        verification_method: Union[None, Unset, str]
122        if isinstance(self.verification_method, Unset):
123            verification_method = UNSET
124        elif isinstance(self.verification_method, GovernanceTrainingVerification):
125            verification_method = self.verification_method.value
126        else:
127            verification_method = self.verification_method
128
129        field_dict: Dict[str, Any] = {}
130        field_dict.update(self.additional_properties)
131        field_dict.update(
132            {
133                "name": name,
134                "description": description,
135                "type": type,
136                "scope": scope,
137                "contactIds": contact_ids,
138                "expiration": expiration,
139            }
140        )
141        if project_id is not UNSET:
142            field_dict["projectId"] = project_id
143        if acceptance is not UNSET:
144            field_dict["acceptance"] = acceptance
145        if enactment_date is not UNSET:
146            field_dict["enactmentDate"] = enactment_date
147        if supplemental_docs is not UNSET:
148            field_dict["supplementalDocs"] = supplemental_docs
149        if file is not UNSET:
150            field_dict["file"] = file
151        if authorship is not UNSET:
152            field_dict["authorship"] = authorship
153        if verification_method is not UNSET:
154            field_dict["verificationMethod"] = verification_method
155
156        return field_dict
157
158    @classmethod
159    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
160        from ..models.governance_expiry import GovernanceExpiry
161        from ..models.governance_file import GovernanceFile
162
163        d = src_dict.copy()
164        name = d.pop("name")
165
166        description = d.pop("description")
167
168        type = GovernanceType(d.pop("type"))
169
170        scope = GovernanceScope(d.pop("scope"))
171
172        contact_ids = cast(List[str], d.pop("contactIds"))
173
174        expiration = GovernanceExpiry.from_dict(d.pop("expiration"))
175
176        def _parse_project_id(data: object) -> Union[None, Unset, str]:
177            if data is None:
178                return data
179            if isinstance(data, Unset):
180                return data
181            return cast(Union[None, Unset, str], data)
182
183        project_id = _parse_project_id(d.pop("projectId", UNSET))
184
185        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
186            if data is None:
187                return data
188            if isinstance(data, Unset):
189                return data
190            try:
191                if not isinstance(data, str):
192                    raise TypeError()
193                acceptance_type_1 = GovernanceScope(data)
194
195                return acceptance_type_1
196            except:  # noqa: E722
197                pass
198            return cast(Union[GovernanceScope, None, Unset], data)
199
200        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
201
202        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
203            if data is None:
204                return data
205            if isinstance(data, Unset):
206                return data
207            try:
208                if not isinstance(data, str):
209                    raise TypeError()
210                enactment_date_type_0 = isoparse(data)
211
212                return enactment_date_type_0
213            except:  # noqa: E722
214                pass
215            return cast(Union[None, Unset, datetime.datetime], data)
216
217        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
218
219        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
220            if data is None:
221                return data
222            if isinstance(data, Unset):
223                return data
224            try:
225                if not isinstance(data, list):
226                    raise TypeError()
227                supplemental_docs_type_0 = []
228                _supplemental_docs_type_0 = data
229                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
230                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
231
232                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
233
234                return supplemental_docs_type_0
235            except:  # noqa: E722
236                pass
237            return cast(Union[List["GovernanceFile"], None, Unset], data)
238
239        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
240
241        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
242            if data is None:
243                return data
244            if isinstance(data, Unset):
245                return data
246            try:
247                if not isinstance(data, dict):
248                    raise TypeError()
249                file_type_1 = GovernanceFile.from_dict(data)
250
251                return file_type_1
252            except:  # noqa: E722
253                pass
254            return cast(Union["GovernanceFile", None, Unset], data)
255
256        file = _parse_file(d.pop("file", UNSET))
257
258        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
259            if data is None:
260                return data
261            if isinstance(data, Unset):
262                return data
263            try:
264                if not isinstance(data, str):
265                    raise TypeError()
266                authorship_type_1 = GovernanceScope(data)
267
268                return authorship_type_1
269            except:  # noqa: E722
270                pass
271            return cast(Union[GovernanceScope, None, Unset], data)
272
273        authorship = _parse_authorship(d.pop("authorship", UNSET))
274
275        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
276            if data is None:
277                return data
278            if isinstance(data, Unset):
279                return data
280            try:
281                if not isinstance(data, str):
282                    raise TypeError()
283                verification_method_type_1 = GovernanceTrainingVerification(data)
284
285                return verification_method_type_1
286            except:  # noqa: E722
287                pass
288            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
289
290        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
291
292        requirement_input = cls(
293            name=name,
294            description=description,
295            type=type,
296            scope=scope,
297            contact_ids=contact_ids,
298            expiration=expiration,
299            project_id=project_id,
300            acceptance=acceptance,
301            enactment_date=enactment_date,
302            supplemental_docs=supplemental_docs,
303            file=file,
304            authorship=authorship,
305            verification_method=verification_method,
306        )
307
308        requirement_input.additional_properties = d
309        return requirement_input
310
311    @property
312    def additional_keys(self) -> List[str]:
313        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • type (GovernanceType): The types of governance requirements that can be enforced
  • scope (GovernanceScope): The levels at which governance requirements can be enforced
  • contact_ids (List[str]):
  • expiration (GovernanceExpiry):
  • project_id (Union[None, Unset, str]):
  • acceptance (Union[GovernanceScope, None, Unset]):
  • enactment_date (Union[None, Unset, datetime.datetime]):
  • supplemental_docs (Union[List['GovernanceFile'], None, Unset]):
  • file (Union['GovernanceFile', None, Unset]):
  • authorship (Union[GovernanceScope, None, Unset]):
  • verification_method (Union[GovernanceTrainingVerification, None, Unset]):
RequirementInput( name: str, description: str, type: GovernanceType, scope: GovernanceScope, contact_ids: List[str], expiration: GovernanceExpiry, project_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
36def __init__(self, name, description, type, scope, contact_ids, expiration, project_id=attr_dict['project_id'].default, acceptance=attr_dict['acceptance'].default, enactment_date=attr_dict['enactment_date'].default, supplemental_docs=attr_dict['supplemental_docs'].default, file=attr_dict['file'].default, authorship=attr_dict['authorship'].default, verification_method=attr_dict['verification_method'].default):
37    self.name = name
38    self.description = description
39    self.type = type
40    self.scope = scope
41    self.contact_ids = contact_ids
42    self.expiration = expiration
43    self.project_id = project_id
44    self.acceptance = acceptance
45    self.enactment_date = enactment_date
46    self.supplemental_docs = supplemental_docs
47    self.file = file
48    self.authorship = authorship
49    self.verification_method = verification_method
50    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class RequirementInput.

name: str
description: str
contact_ids: List[str]
expiration: GovernanceExpiry
project_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
acceptance: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
enactment_date: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
supplemental_docs: Union[List[GovernanceFile], NoneType, cirro_api_client.v1.types.Unset]
file: Union[GovernanceFile, NoneType, cirro_api_client.v1.types.Unset]
authorship: Union[GovernanceScope, NoneType, cirro_api_client.v1.types.Unset]
verification_method: Union[GovernanceTrainingVerification, NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 56    def to_dict(self) -> Dict[str, Any]:
 57        from ..models.governance_file import GovernanceFile
 58
 59        name = self.name
 60
 61        description = self.description
 62
 63        type = self.type.value
 64
 65        scope = self.scope.value
 66
 67        contact_ids = self.contact_ids
 68
 69        expiration = self.expiration.to_dict()
 70
 71        project_id: Union[None, Unset, str]
 72        if isinstance(self.project_id, Unset):
 73            project_id = UNSET
 74        else:
 75            project_id = self.project_id
 76
 77        acceptance: Union[None, Unset, str]
 78        if isinstance(self.acceptance, Unset):
 79            acceptance = UNSET
 80        elif isinstance(self.acceptance, GovernanceScope):
 81            acceptance = self.acceptance.value
 82        else:
 83            acceptance = self.acceptance
 84
 85        enactment_date: Union[None, Unset, str]
 86        if isinstance(self.enactment_date, Unset):
 87            enactment_date = UNSET
 88        elif isinstance(self.enactment_date, datetime.datetime):
 89            enactment_date = self.enactment_date.isoformat()
 90        else:
 91            enactment_date = self.enactment_date
 92
 93        supplemental_docs: Union[List[Dict[str, Any]], None, Unset]
 94        if isinstance(self.supplemental_docs, Unset):
 95            supplemental_docs = UNSET
 96        elif isinstance(self.supplemental_docs, list):
 97            supplemental_docs = []
 98            for supplemental_docs_type_0_item_data in self.supplemental_docs:
 99                supplemental_docs_type_0_item = supplemental_docs_type_0_item_data.to_dict()
100                supplemental_docs.append(supplemental_docs_type_0_item)
101
102        else:
103            supplemental_docs = self.supplemental_docs
104
105        file: Union[Dict[str, Any], None, Unset]
106        if isinstance(self.file, Unset):
107            file = UNSET
108        elif isinstance(self.file, GovernanceFile):
109            file = self.file.to_dict()
110        else:
111            file = self.file
112
113        authorship: Union[None, Unset, str]
114        if isinstance(self.authorship, Unset):
115            authorship = UNSET
116        elif isinstance(self.authorship, GovernanceScope):
117            authorship = self.authorship.value
118        else:
119            authorship = self.authorship
120
121        verification_method: Union[None, Unset, str]
122        if isinstance(self.verification_method, Unset):
123            verification_method = UNSET
124        elif isinstance(self.verification_method, GovernanceTrainingVerification):
125            verification_method = self.verification_method.value
126        else:
127            verification_method = self.verification_method
128
129        field_dict: Dict[str, Any] = {}
130        field_dict.update(self.additional_properties)
131        field_dict.update(
132            {
133                "name": name,
134                "description": description,
135                "type": type,
136                "scope": scope,
137                "contactIds": contact_ids,
138                "expiration": expiration,
139            }
140        )
141        if project_id is not UNSET:
142            field_dict["projectId"] = project_id
143        if acceptance is not UNSET:
144            field_dict["acceptance"] = acceptance
145        if enactment_date is not UNSET:
146            field_dict["enactmentDate"] = enactment_date
147        if supplemental_docs is not UNSET:
148            field_dict["supplementalDocs"] = supplemental_docs
149        if file is not UNSET:
150            field_dict["file"] = file
151        if authorship is not UNSET:
152            field_dict["authorship"] = authorship
153        if verification_method is not UNSET:
154            field_dict["verificationMethod"] = verification_method
155
156        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
158    @classmethod
159    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
160        from ..models.governance_expiry import GovernanceExpiry
161        from ..models.governance_file import GovernanceFile
162
163        d = src_dict.copy()
164        name = d.pop("name")
165
166        description = d.pop("description")
167
168        type = GovernanceType(d.pop("type"))
169
170        scope = GovernanceScope(d.pop("scope"))
171
172        contact_ids = cast(List[str], d.pop("contactIds"))
173
174        expiration = GovernanceExpiry.from_dict(d.pop("expiration"))
175
176        def _parse_project_id(data: object) -> Union[None, Unset, str]:
177            if data is None:
178                return data
179            if isinstance(data, Unset):
180                return data
181            return cast(Union[None, Unset, str], data)
182
183        project_id = _parse_project_id(d.pop("projectId", UNSET))
184
185        def _parse_acceptance(data: object) -> Union[GovernanceScope, None, Unset]:
186            if data is None:
187                return data
188            if isinstance(data, Unset):
189                return data
190            try:
191                if not isinstance(data, str):
192                    raise TypeError()
193                acceptance_type_1 = GovernanceScope(data)
194
195                return acceptance_type_1
196            except:  # noqa: E722
197                pass
198            return cast(Union[GovernanceScope, None, Unset], data)
199
200        acceptance = _parse_acceptance(d.pop("acceptance", UNSET))
201
202        def _parse_enactment_date(data: object) -> Union[None, Unset, datetime.datetime]:
203            if data is None:
204                return data
205            if isinstance(data, Unset):
206                return data
207            try:
208                if not isinstance(data, str):
209                    raise TypeError()
210                enactment_date_type_0 = isoparse(data)
211
212                return enactment_date_type_0
213            except:  # noqa: E722
214                pass
215            return cast(Union[None, Unset, datetime.datetime], data)
216
217        enactment_date = _parse_enactment_date(d.pop("enactmentDate", UNSET))
218
219        def _parse_supplemental_docs(data: object) -> Union[List["GovernanceFile"], None, Unset]:
220            if data is None:
221                return data
222            if isinstance(data, Unset):
223                return data
224            try:
225                if not isinstance(data, list):
226                    raise TypeError()
227                supplemental_docs_type_0 = []
228                _supplemental_docs_type_0 = data
229                for supplemental_docs_type_0_item_data in _supplemental_docs_type_0:
230                    supplemental_docs_type_0_item = GovernanceFile.from_dict(supplemental_docs_type_0_item_data)
231
232                    supplemental_docs_type_0.append(supplemental_docs_type_0_item)
233
234                return supplemental_docs_type_0
235            except:  # noqa: E722
236                pass
237            return cast(Union[List["GovernanceFile"], None, Unset], data)
238
239        supplemental_docs = _parse_supplemental_docs(d.pop("supplementalDocs", UNSET))
240
241        def _parse_file(data: object) -> Union["GovernanceFile", None, Unset]:
242            if data is None:
243                return data
244            if isinstance(data, Unset):
245                return data
246            try:
247                if not isinstance(data, dict):
248                    raise TypeError()
249                file_type_1 = GovernanceFile.from_dict(data)
250
251                return file_type_1
252            except:  # noqa: E722
253                pass
254            return cast(Union["GovernanceFile", None, Unset], data)
255
256        file = _parse_file(d.pop("file", UNSET))
257
258        def _parse_authorship(data: object) -> Union[GovernanceScope, None, Unset]:
259            if data is None:
260                return data
261            if isinstance(data, Unset):
262                return data
263            try:
264                if not isinstance(data, str):
265                    raise TypeError()
266                authorship_type_1 = GovernanceScope(data)
267
268                return authorship_type_1
269            except:  # noqa: E722
270                pass
271            return cast(Union[GovernanceScope, None, Unset], data)
272
273        authorship = _parse_authorship(d.pop("authorship", UNSET))
274
275        def _parse_verification_method(data: object) -> Union[GovernanceTrainingVerification, None, Unset]:
276            if data is None:
277                return data
278            if isinstance(data, Unset):
279                return data
280            try:
281                if not isinstance(data, str):
282                    raise TypeError()
283                verification_method_type_1 = GovernanceTrainingVerification(data)
284
285                return verification_method_type_1
286            except:  # noqa: E722
287                pass
288            return cast(Union[GovernanceTrainingVerification, None, Unset], data)
289
290        verification_method = _parse_verification_method(d.pop("verificationMethod", UNSET))
291
292        requirement_input = cls(
293            name=name,
294            description=description,
295            type=type,
296            scope=scope,
297            contact_ids=contact_ids,
298            expiration=expiration,
299            project_id=project_id,
300            acceptance=acceptance,
301            enactment_date=enactment_date,
302            supplemental_docs=supplemental_docs,
303            file=file,
304            authorship=authorship,
305            verification_method=verification_method,
306        )
307
308        requirement_input.additional_properties = d
309        return requirement_input
additional_keys: List[str]
311    @property
312    def additional_keys(self) -> List[str]:
313        return list(self.additional_properties.keys())
class ResourcesInfo:
12@_attrs_define
13class ResourcesInfo:
14    """
15    Attributes:
16        commit (str):
17        date (datetime.datetime):
18        repository (str):
19        source_version (str):
20    """
21
22    commit: str
23    date: datetime.datetime
24    repository: str
25    source_version: str
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        commit = self.commit
30
31        date = self.date.isoformat()
32
33        repository = self.repository
34
35        source_version = self.source_version
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "commit": commit,
42                "date": date,
43                "repository": repository,
44                "sourceVersion": source_version,
45            }
46        )
47
48        return field_dict
49
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        d = src_dict.copy()
53        commit = d.pop("commit")
54
55        date = isoparse(d.pop("date"))
56
57        repository = d.pop("repository")
58
59        source_version = d.pop("sourceVersion")
60
61        resources_info = cls(
62            commit=commit,
63            date=date,
64            repository=repository,
65            source_version=source_version,
66        )
67
68        resources_info.additional_properties = d
69        return resources_info
70
71    @property
72    def additional_keys(self) -> List[str]:
73        return list(self.additional_properties.keys())
Attributes:
  • commit (str):
  • date (datetime.datetime):
  • repository (str):
  • source_version (str):
ResourcesInfo( commit: str, date: datetime.datetime, repository: str, source_version: str)
27def __init__(self, commit, date, repository, source_version):
28    self.commit = commit
29    self.date = date
30    self.repository = repository
31    self.source_version = source_version
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ResourcesInfo.

commit: str
date: datetime.datetime
repository: str
source_version: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        commit = self.commit
30
31        date = self.date.isoformat()
32
33        repository = self.repository
34
35        source_version = self.source_version
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "commit": commit,
42                "date": date,
43                "repository": repository,
44                "sourceVersion": source_version,
45            }
46        )
47
48        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        d = src_dict.copy()
53        commit = d.pop("commit")
54
55        date = isoparse(d.pop("date"))
56
57        repository = d.pop("repository")
58
59        source_version = d.pop("sourceVersion")
60
61        resources_info = cls(
62            commit=commit,
63            date=date,
64            repository=repository,
65            source_version=source_version,
66        )
67
68        resources_info.additional_properties = d
69        return resources_info
additional_keys: List[str]
71    @property
72    def additional_keys(self) -> List[str]:
73        return list(self.additional_properties.keys())
class RunAnalysisRequest:
 16@_attrs_define
 17class RunAnalysisRequest:
 18    """
 19    Attributes:
 20        name (str): Name of the dataset
 21        process_id (str): Process ID of the workflow Example: process-nf-core-rnaseq-3_8.
 22        source_dataset_ids (List[str]): These datasets contain files that are inputs to this workflow.
 23        params (RunAnalysisRequestParams): Parameters used in workflow (can be empty)
 24        notification_emails (List[str]): Emails to notify upon workflow success or failure
 25        description (Union[None, Unset, str]): Description of the dataset (optional)
 26        source_sample_ids (Union[List[str], None, Unset]): Samples within the source datasets that will be used as
 27            inputs to this workflow. If not specified, all samples will be used.
 28        resume_dataset_id (Union[None, Unset, str]): Used for caching task execution. If the parameters are the same as
 29            the dataset specified here, it will re-use the output to minimize duplicate work
 30        compute_environment_id (Union[None, Unset, str]): The compute environment where to run the workflow, if not
 31            specified, it will run in AWS
 32    """
 33
 34    name: str
 35    process_id: str
 36    source_dataset_ids: List[str]
 37    params: "RunAnalysisRequestParams"
 38    notification_emails: List[str]
 39    description: Union[None, Unset, str] = UNSET
 40    source_sample_ids: Union[List[str], None, Unset] = UNSET
 41    resume_dataset_id: Union[None, Unset, str] = UNSET
 42    compute_environment_id: Union[None, Unset, str] = UNSET
 43    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 44
 45    def to_dict(self) -> Dict[str, Any]:
 46        name = self.name
 47
 48        process_id = self.process_id
 49
 50        source_dataset_ids = self.source_dataset_ids
 51
 52        params = self.params.to_dict()
 53
 54        notification_emails = self.notification_emails
 55
 56        description: Union[None, Unset, str]
 57        if isinstance(self.description, Unset):
 58            description = UNSET
 59        else:
 60            description = self.description
 61
 62        source_sample_ids: Union[List[str], None, Unset]
 63        if isinstance(self.source_sample_ids, Unset):
 64            source_sample_ids = UNSET
 65        elif isinstance(self.source_sample_ids, list):
 66            source_sample_ids = self.source_sample_ids
 67
 68        else:
 69            source_sample_ids = self.source_sample_ids
 70
 71        resume_dataset_id: Union[None, Unset, str]
 72        if isinstance(self.resume_dataset_id, Unset):
 73            resume_dataset_id = UNSET
 74        else:
 75            resume_dataset_id = self.resume_dataset_id
 76
 77        compute_environment_id: Union[None, Unset, str]
 78        if isinstance(self.compute_environment_id, Unset):
 79            compute_environment_id = UNSET
 80        else:
 81            compute_environment_id = self.compute_environment_id
 82
 83        field_dict: Dict[str, Any] = {}
 84        field_dict.update(self.additional_properties)
 85        field_dict.update(
 86            {
 87                "name": name,
 88                "processId": process_id,
 89                "sourceDatasetIds": source_dataset_ids,
 90                "params": params,
 91                "notificationEmails": notification_emails,
 92            }
 93        )
 94        if description is not UNSET:
 95            field_dict["description"] = description
 96        if source_sample_ids is not UNSET:
 97            field_dict["sourceSampleIds"] = source_sample_ids
 98        if resume_dataset_id is not UNSET:
 99            field_dict["resumeDatasetId"] = resume_dataset_id
100        if compute_environment_id is not UNSET:
101            field_dict["computeEnvironmentId"] = compute_environment_id
102
103        return field_dict
104
105    @classmethod
106    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
107        from ..models.run_analysis_request_params import RunAnalysisRequestParams
108
109        d = src_dict.copy()
110        name = d.pop("name")
111
112        process_id = d.pop("processId")
113
114        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
115
116        params = RunAnalysisRequestParams.from_dict(d.pop("params"))
117
118        notification_emails = cast(List[str], d.pop("notificationEmails"))
119
120        def _parse_description(data: object) -> Union[None, Unset, str]:
121            if data is None:
122                return data
123            if isinstance(data, Unset):
124                return data
125            return cast(Union[None, Unset, str], data)
126
127        description = _parse_description(d.pop("description", UNSET))
128
129        def _parse_source_sample_ids(data: object) -> Union[List[str], None, Unset]:
130            if data is None:
131                return data
132            if isinstance(data, Unset):
133                return data
134            try:
135                if not isinstance(data, list):
136                    raise TypeError()
137                source_sample_ids_type_0 = cast(List[str], data)
138
139                return source_sample_ids_type_0
140            except:  # noqa: E722
141                pass
142            return cast(Union[List[str], None, Unset], data)
143
144        source_sample_ids = _parse_source_sample_ids(d.pop("sourceSampleIds", UNSET))
145
146        def _parse_resume_dataset_id(data: object) -> Union[None, Unset, str]:
147            if data is None:
148                return data
149            if isinstance(data, Unset):
150                return data
151            return cast(Union[None, Unset, str], data)
152
153        resume_dataset_id = _parse_resume_dataset_id(d.pop("resumeDatasetId", UNSET))
154
155        def _parse_compute_environment_id(data: object) -> Union[None, Unset, str]:
156            if data is None:
157                return data
158            if isinstance(data, Unset):
159                return data
160            return cast(Union[None, Unset, str], data)
161
162        compute_environment_id = _parse_compute_environment_id(d.pop("computeEnvironmentId", UNSET))
163
164        run_analysis_request = cls(
165            name=name,
166            process_id=process_id,
167            source_dataset_ids=source_dataset_ids,
168            params=params,
169            notification_emails=notification_emails,
170            description=description,
171            source_sample_ids=source_sample_ids,
172            resume_dataset_id=resume_dataset_id,
173            compute_environment_id=compute_environment_id,
174        )
175
176        run_analysis_request.additional_properties = d
177        return run_analysis_request
178
179    @property
180    def additional_keys(self) -> List[str]:
181        return list(self.additional_properties.keys())
Attributes:
  • name (str): Name of the dataset
  • process_id (str): Process ID of the workflow Example: process-nf-core-rnaseq-3_8.
  • source_dataset_ids (List[str]): These datasets contain files that are inputs to this workflow.
  • params (RunAnalysisRequestParams): Parameters used in workflow (can be empty)
  • notification_emails (List[str]): Emails to notify upon workflow success or failure
  • description (Union[None, Unset, str]): Description of the dataset (optional)
  • source_sample_ids (Union[List[str], None, Unset]): Samples within the source datasets that will be used as inputs to this workflow. If not specified, all samples will be used.
  • resume_dataset_id (Union[None, Unset, str]): Used for caching task execution. If the parameters are the same as the dataset specified here, it will re-use the output to minimize duplicate work
  • compute_environment_id (Union[None, Unset, str]): The compute environment where to run the workflow, if not specified, it will run in AWS
RunAnalysisRequest( name: str, process_id: str, source_dataset_ids: List[str], params: RunAnalysisRequestParams, notification_emails: List[str], description: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, source_sample_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, resume_dataset_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, compute_environment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
32def __init__(self, name, process_id, source_dataset_ids, params, notification_emails, description=attr_dict['description'].default, source_sample_ids=attr_dict['source_sample_ids'].default, resume_dataset_id=attr_dict['resume_dataset_id'].default, compute_environment_id=attr_dict['compute_environment_id'].default):
33    self.name = name
34    self.process_id = process_id
35    self.source_dataset_ids = source_dataset_ids
36    self.params = params
37    self.notification_emails = notification_emails
38    self.description = description
39    self.source_sample_ids = source_sample_ids
40    self.resume_dataset_id = resume_dataset_id
41    self.compute_environment_id = compute_environment_id
42    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class RunAnalysisRequest.

name: str
process_id: str
source_dataset_ids: List[str]
notification_emails: List[str]
description: Union[NoneType, cirro_api_client.v1.types.Unset, str]
source_sample_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
resume_dataset_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
compute_environment_id: Union[NoneType, cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 45    def to_dict(self) -> Dict[str, Any]:
 46        name = self.name
 47
 48        process_id = self.process_id
 49
 50        source_dataset_ids = self.source_dataset_ids
 51
 52        params = self.params.to_dict()
 53
 54        notification_emails = self.notification_emails
 55
 56        description: Union[None, Unset, str]
 57        if isinstance(self.description, Unset):
 58            description = UNSET
 59        else:
 60            description = self.description
 61
 62        source_sample_ids: Union[List[str], None, Unset]
 63        if isinstance(self.source_sample_ids, Unset):
 64            source_sample_ids = UNSET
 65        elif isinstance(self.source_sample_ids, list):
 66            source_sample_ids = self.source_sample_ids
 67
 68        else:
 69            source_sample_ids = self.source_sample_ids
 70
 71        resume_dataset_id: Union[None, Unset, str]
 72        if isinstance(self.resume_dataset_id, Unset):
 73            resume_dataset_id = UNSET
 74        else:
 75            resume_dataset_id = self.resume_dataset_id
 76
 77        compute_environment_id: Union[None, Unset, str]
 78        if isinstance(self.compute_environment_id, Unset):
 79            compute_environment_id = UNSET
 80        else:
 81            compute_environment_id = self.compute_environment_id
 82
 83        field_dict: Dict[str, Any] = {}
 84        field_dict.update(self.additional_properties)
 85        field_dict.update(
 86            {
 87                "name": name,
 88                "processId": process_id,
 89                "sourceDatasetIds": source_dataset_ids,
 90                "params": params,
 91                "notificationEmails": notification_emails,
 92            }
 93        )
 94        if description is not UNSET:
 95            field_dict["description"] = description
 96        if source_sample_ids is not UNSET:
 97            field_dict["sourceSampleIds"] = source_sample_ids
 98        if resume_dataset_id is not UNSET:
 99            field_dict["resumeDatasetId"] = resume_dataset_id
100        if compute_environment_id is not UNSET:
101            field_dict["computeEnvironmentId"] = compute_environment_id
102
103        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
105    @classmethod
106    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
107        from ..models.run_analysis_request_params import RunAnalysisRequestParams
108
109        d = src_dict.copy()
110        name = d.pop("name")
111
112        process_id = d.pop("processId")
113
114        source_dataset_ids = cast(List[str], d.pop("sourceDatasetIds"))
115
116        params = RunAnalysisRequestParams.from_dict(d.pop("params"))
117
118        notification_emails = cast(List[str], d.pop("notificationEmails"))
119
120        def _parse_description(data: object) -> Union[None, Unset, str]:
121            if data is None:
122                return data
123            if isinstance(data, Unset):
124                return data
125            return cast(Union[None, Unset, str], data)
126
127        description = _parse_description(d.pop("description", UNSET))
128
129        def _parse_source_sample_ids(data: object) -> Union[List[str], None, Unset]:
130            if data is None:
131                return data
132            if isinstance(data, Unset):
133                return data
134            try:
135                if not isinstance(data, list):
136                    raise TypeError()
137                source_sample_ids_type_0 = cast(List[str], data)
138
139                return source_sample_ids_type_0
140            except:  # noqa: E722
141                pass
142            return cast(Union[List[str], None, Unset], data)
143
144        source_sample_ids = _parse_source_sample_ids(d.pop("sourceSampleIds", UNSET))
145
146        def _parse_resume_dataset_id(data: object) -> Union[None, Unset, str]:
147            if data is None:
148                return data
149            if isinstance(data, Unset):
150                return data
151            return cast(Union[None, Unset, str], data)
152
153        resume_dataset_id = _parse_resume_dataset_id(d.pop("resumeDatasetId", UNSET))
154
155        def _parse_compute_environment_id(data: object) -> Union[None, Unset, str]:
156            if data is None:
157                return data
158            if isinstance(data, Unset):
159                return data
160            return cast(Union[None, Unset, str], data)
161
162        compute_environment_id = _parse_compute_environment_id(d.pop("computeEnvironmentId", UNSET))
163
164        run_analysis_request = cls(
165            name=name,
166            process_id=process_id,
167            source_dataset_ids=source_dataset_ids,
168            params=params,
169            notification_emails=notification_emails,
170            description=description,
171            source_sample_ids=source_sample_ids,
172            resume_dataset_id=resume_dataset_id,
173            compute_environment_id=compute_environment_id,
174        )
175
176        run_analysis_request.additional_properties = d
177        return run_analysis_request
additional_keys: List[str]
179    @property
180    def additional_keys(self) -> List[str]:
181        return list(self.additional_properties.keys())
class RunAnalysisRequestParams:
10@_attrs_define
11class RunAnalysisRequestParams:
12    """Parameters used in workflow (can be empty)"""
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        run_analysis_request_params = cls()
27
28        run_analysis_request_params.additional_properties = d
29        return run_analysis_request_params
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())

Parameters used in workflow (can be empty)

RunAnalysisRequestParams()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class RunAnalysisRequestParams.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        run_analysis_request_params = cls()
27
28        run_analysis_request_params.additional_properties = d
29        return run_analysis_request_params
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class Sample:
 19@_attrs_define
 20class Sample:
 21    """
 22    Attributes:
 23        id (str):
 24        name (str):
 25        metadata (Union['SampleMetadata', None, Unset]):
 26        files (Union[List['DataFile'], None, Unset]): Files associated with this sample
 27        dataset_ids (Union[List[str], None, Unset]):
 28        created_at (Union[None, Unset, datetime.datetime]):
 29        updated_at (Union[None, Unset, datetime.datetime]):
 30    """
 31
 32    id: str
 33    name: str
 34    metadata: Union["SampleMetadata", None, Unset] = UNSET
 35    files: Union[List["DataFile"], None, Unset] = UNSET
 36    dataset_ids: Union[List[str], None, Unset] = UNSET
 37    created_at: Union[None, Unset, datetime.datetime] = UNSET
 38    updated_at: Union[None, Unset, datetime.datetime] = UNSET
 39    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 40
 41    def to_dict(self) -> Dict[str, Any]:
 42        from ..models.sample_metadata import SampleMetadata
 43
 44        id = self.id
 45
 46        name = self.name
 47
 48        metadata: Union[Dict[str, Any], None, Unset]
 49        if isinstance(self.metadata, Unset):
 50            metadata = UNSET
 51        elif isinstance(self.metadata, SampleMetadata):
 52            metadata = self.metadata.to_dict()
 53        else:
 54            metadata = self.metadata
 55
 56        files: Union[List[Dict[str, Any]], None, Unset]
 57        if isinstance(self.files, Unset):
 58            files = UNSET
 59        elif isinstance(self.files, list):
 60            files = []
 61            for files_type_0_item_data in self.files:
 62                files_type_0_item = files_type_0_item_data.to_dict()
 63                files.append(files_type_0_item)
 64
 65        else:
 66            files = self.files
 67
 68        dataset_ids: Union[List[str], None, Unset]
 69        if isinstance(self.dataset_ids, Unset):
 70            dataset_ids = UNSET
 71        elif isinstance(self.dataset_ids, list):
 72            dataset_ids = self.dataset_ids
 73
 74        else:
 75            dataset_ids = self.dataset_ids
 76
 77        created_at: Union[None, Unset, str]
 78        if isinstance(self.created_at, Unset):
 79            created_at = UNSET
 80        elif isinstance(self.created_at, datetime.datetime):
 81            created_at = self.created_at.isoformat()
 82        else:
 83            created_at = self.created_at
 84
 85        updated_at: Union[None, Unset, str]
 86        if isinstance(self.updated_at, Unset):
 87            updated_at = UNSET
 88        elif isinstance(self.updated_at, datetime.datetime):
 89            updated_at = self.updated_at.isoformat()
 90        else:
 91            updated_at = self.updated_at
 92
 93        field_dict: Dict[str, Any] = {}
 94        field_dict.update(self.additional_properties)
 95        field_dict.update(
 96            {
 97                "id": id,
 98                "name": name,
 99            }
100        )
101        if metadata is not UNSET:
102            field_dict["metadata"] = metadata
103        if files is not UNSET:
104            field_dict["files"] = files
105        if dataset_ids is not UNSET:
106            field_dict["datasetIds"] = dataset_ids
107        if created_at is not UNSET:
108            field_dict["createdAt"] = created_at
109        if updated_at is not UNSET:
110            field_dict["updatedAt"] = updated_at
111
112        return field_dict
113
114    @classmethod
115    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
116        from ..models.data_file import DataFile
117        from ..models.sample_metadata import SampleMetadata
118
119        d = src_dict.copy()
120        id = d.pop("id")
121
122        name = d.pop("name")
123
124        def _parse_metadata(data: object) -> Union["SampleMetadata", None, Unset]:
125            if data is None:
126                return data
127            if isinstance(data, Unset):
128                return data
129            try:
130                if not isinstance(data, dict):
131                    raise TypeError()
132                metadata_type_0 = SampleMetadata.from_dict(data)
133
134                return metadata_type_0
135            except:  # noqa: E722
136                pass
137            return cast(Union["SampleMetadata", None, Unset], data)
138
139        metadata = _parse_metadata(d.pop("metadata", UNSET))
140
141        def _parse_files(data: object) -> Union[List["DataFile"], None, Unset]:
142            if data is None:
143                return data
144            if isinstance(data, Unset):
145                return data
146            try:
147                if not isinstance(data, list):
148                    raise TypeError()
149                files_type_0 = []
150                _files_type_0 = data
151                for files_type_0_item_data in _files_type_0:
152                    files_type_0_item = DataFile.from_dict(files_type_0_item_data)
153
154                    files_type_0.append(files_type_0_item)
155
156                return files_type_0
157            except:  # noqa: E722
158                pass
159            return cast(Union[List["DataFile"], None, Unset], data)
160
161        files = _parse_files(d.pop("files", UNSET))
162
163        def _parse_dataset_ids(data: object) -> Union[List[str], None, Unset]:
164            if data is None:
165                return data
166            if isinstance(data, Unset):
167                return data
168            try:
169                if not isinstance(data, list):
170                    raise TypeError()
171                dataset_ids_type_0 = cast(List[str], data)
172
173                return dataset_ids_type_0
174            except:  # noqa: E722
175                pass
176            return cast(Union[List[str], None, Unset], data)
177
178        dataset_ids = _parse_dataset_ids(d.pop("datasetIds", UNSET))
179
180        def _parse_created_at(data: object) -> Union[None, Unset, datetime.datetime]:
181            if data is None:
182                return data
183            if isinstance(data, Unset):
184                return data
185            try:
186                if not isinstance(data, str):
187                    raise TypeError()
188                created_at_type_0 = isoparse(data)
189
190                return created_at_type_0
191            except:  # noqa: E722
192                pass
193            return cast(Union[None, Unset, datetime.datetime], data)
194
195        created_at = _parse_created_at(d.pop("createdAt", UNSET))
196
197        def _parse_updated_at(data: object) -> Union[None, Unset, datetime.datetime]:
198            if data is None:
199                return data
200            if isinstance(data, Unset):
201                return data
202            try:
203                if not isinstance(data, str):
204                    raise TypeError()
205                updated_at_type_0 = isoparse(data)
206
207                return updated_at_type_0
208            except:  # noqa: E722
209                pass
210            return cast(Union[None, Unset, datetime.datetime], data)
211
212        updated_at = _parse_updated_at(d.pop("updatedAt", UNSET))
213
214        sample = cls(
215            id=id,
216            name=name,
217            metadata=metadata,
218            files=files,
219            dataset_ids=dataset_ids,
220            created_at=created_at,
221            updated_at=updated_at,
222        )
223
224        sample.additional_properties = d
225        return sample
226
227    @property
228    def additional_keys(self) -> List[str]:
229        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • metadata (Union['SampleMetadata', None, Unset]):
  • files (Union[List['DataFile'], None, Unset]): Files associated with this sample
  • dataset_ids (Union[List[str], None, Unset]):
  • created_at (Union[None, Unset, datetime.datetime]):
  • updated_at (Union[None, Unset, datetime.datetime]):
Sample( id: str, name: str, metadata: Union[SampleMetadata, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, files: Union[List[DataFile], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, dataset_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, created_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, updated_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
30def __init__(self, id, name, metadata=attr_dict['metadata'].default, files=attr_dict['files'].default, dataset_ids=attr_dict['dataset_ids'].default, created_at=attr_dict['created_at'].default, updated_at=attr_dict['updated_at'].default):
31    self.id = id
32    self.name = name
33    self.metadata = metadata
34    self.files = files
35    self.dataset_ids = dataset_ids
36    self.created_at = created_at
37    self.updated_at = updated_at
38    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Sample.

id: str
name: str
metadata: Union[SampleMetadata, NoneType, cirro_api_client.v1.types.Unset]
files: Union[List[DataFile], NoneType, cirro_api_client.v1.types.Unset]
dataset_ids: Union[List[str], NoneType, cirro_api_client.v1.types.Unset]
created_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
updated_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 41    def to_dict(self) -> Dict[str, Any]:
 42        from ..models.sample_metadata import SampleMetadata
 43
 44        id = self.id
 45
 46        name = self.name
 47
 48        metadata: Union[Dict[str, Any], None, Unset]
 49        if isinstance(self.metadata, Unset):
 50            metadata = UNSET
 51        elif isinstance(self.metadata, SampleMetadata):
 52            metadata = self.metadata.to_dict()
 53        else:
 54            metadata = self.metadata
 55
 56        files: Union[List[Dict[str, Any]], None, Unset]
 57        if isinstance(self.files, Unset):
 58            files = UNSET
 59        elif isinstance(self.files, list):
 60            files = []
 61            for files_type_0_item_data in self.files:
 62                files_type_0_item = files_type_0_item_data.to_dict()
 63                files.append(files_type_0_item)
 64
 65        else:
 66            files = self.files
 67
 68        dataset_ids: Union[List[str], None, Unset]
 69        if isinstance(self.dataset_ids, Unset):
 70            dataset_ids = UNSET
 71        elif isinstance(self.dataset_ids, list):
 72            dataset_ids = self.dataset_ids
 73
 74        else:
 75            dataset_ids = self.dataset_ids
 76
 77        created_at: Union[None, Unset, str]
 78        if isinstance(self.created_at, Unset):
 79            created_at = UNSET
 80        elif isinstance(self.created_at, datetime.datetime):
 81            created_at = self.created_at.isoformat()
 82        else:
 83            created_at = self.created_at
 84
 85        updated_at: Union[None, Unset, str]
 86        if isinstance(self.updated_at, Unset):
 87            updated_at = UNSET
 88        elif isinstance(self.updated_at, datetime.datetime):
 89            updated_at = self.updated_at.isoformat()
 90        else:
 91            updated_at = self.updated_at
 92
 93        field_dict: Dict[str, Any] = {}
 94        field_dict.update(self.additional_properties)
 95        field_dict.update(
 96            {
 97                "id": id,
 98                "name": name,
 99            }
100        )
101        if metadata is not UNSET:
102            field_dict["metadata"] = metadata
103        if files is not UNSET:
104            field_dict["files"] = files
105        if dataset_ids is not UNSET:
106            field_dict["datasetIds"] = dataset_ids
107        if created_at is not UNSET:
108            field_dict["createdAt"] = created_at
109        if updated_at is not UNSET:
110            field_dict["updatedAt"] = updated_at
111
112        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
114    @classmethod
115    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
116        from ..models.data_file import DataFile
117        from ..models.sample_metadata import SampleMetadata
118
119        d = src_dict.copy()
120        id = d.pop("id")
121
122        name = d.pop("name")
123
124        def _parse_metadata(data: object) -> Union["SampleMetadata", None, Unset]:
125            if data is None:
126                return data
127            if isinstance(data, Unset):
128                return data
129            try:
130                if not isinstance(data, dict):
131                    raise TypeError()
132                metadata_type_0 = SampleMetadata.from_dict(data)
133
134                return metadata_type_0
135            except:  # noqa: E722
136                pass
137            return cast(Union["SampleMetadata", None, Unset], data)
138
139        metadata = _parse_metadata(d.pop("metadata", UNSET))
140
141        def _parse_files(data: object) -> Union[List["DataFile"], None, Unset]:
142            if data is None:
143                return data
144            if isinstance(data, Unset):
145                return data
146            try:
147                if not isinstance(data, list):
148                    raise TypeError()
149                files_type_0 = []
150                _files_type_0 = data
151                for files_type_0_item_data in _files_type_0:
152                    files_type_0_item = DataFile.from_dict(files_type_0_item_data)
153
154                    files_type_0.append(files_type_0_item)
155
156                return files_type_0
157            except:  # noqa: E722
158                pass
159            return cast(Union[List["DataFile"], None, Unset], data)
160
161        files = _parse_files(d.pop("files", UNSET))
162
163        def _parse_dataset_ids(data: object) -> Union[List[str], None, Unset]:
164            if data is None:
165                return data
166            if isinstance(data, Unset):
167                return data
168            try:
169                if not isinstance(data, list):
170                    raise TypeError()
171                dataset_ids_type_0 = cast(List[str], data)
172
173                return dataset_ids_type_0
174            except:  # noqa: E722
175                pass
176            return cast(Union[List[str], None, Unset], data)
177
178        dataset_ids = _parse_dataset_ids(d.pop("datasetIds", UNSET))
179
180        def _parse_created_at(data: object) -> Union[None, Unset, datetime.datetime]:
181            if data is None:
182                return data
183            if isinstance(data, Unset):
184                return data
185            try:
186                if not isinstance(data, str):
187                    raise TypeError()
188                created_at_type_0 = isoparse(data)
189
190                return created_at_type_0
191            except:  # noqa: E722
192                pass
193            return cast(Union[None, Unset, datetime.datetime], data)
194
195        created_at = _parse_created_at(d.pop("createdAt", UNSET))
196
197        def _parse_updated_at(data: object) -> Union[None, Unset, datetime.datetime]:
198            if data is None:
199                return data
200            if isinstance(data, Unset):
201                return data
202            try:
203                if not isinstance(data, str):
204                    raise TypeError()
205                updated_at_type_0 = isoparse(data)
206
207                return updated_at_type_0
208            except:  # noqa: E722
209                pass
210            return cast(Union[None, Unset, datetime.datetime], data)
211
212        updated_at = _parse_updated_at(d.pop("updatedAt", UNSET))
213
214        sample = cls(
215            id=id,
216            name=name,
217            metadata=metadata,
218            files=files,
219            dataset_ids=dataset_ids,
220            created_at=created_at,
221            updated_at=updated_at,
222        )
223
224        sample.additional_properties = d
225        return sample
additional_keys: List[str]
227    @property
228    def additional_keys(self) -> List[str]:
229        return list(self.additional_properties.keys())
class SampleMetadata:
10@_attrs_define
11class SampleMetadata:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        sample_metadata = cls()
27
28        sample_metadata.additional_properties = d
29        return sample_metadata
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
SampleMetadata()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SampleMetadata.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        sample_metadata = cls()
27
28        sample_metadata.additional_properties = d
29        return sample_metadata
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class SampleRequest:
14@_attrs_define
15class SampleRequest:
16    """
17    Attributes:
18        name (str):
19        metadata (SampleRequestMetadata):
20    """
21
22    name: str
23    metadata: "SampleRequestMetadata"
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        metadata = self.metadata.to_dict()
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "metadata": metadata,
37            }
38        )
39
40        return field_dict
41
42    @classmethod
43    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44        from ..models.sample_request_metadata import SampleRequestMetadata
45
46        d = src_dict.copy()
47        name = d.pop("name")
48
49        metadata = SampleRequestMetadata.from_dict(d.pop("metadata"))
50
51        sample_request = cls(
52            name=name,
53            metadata=metadata,
54        )
55
56        sample_request.additional_properties = d
57        return sample_request
58
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • metadata (SampleRequestMetadata):
SampleRequest( name: str, metadata: SampleRequestMetadata)
25def __init__(self, name, metadata):
26    self.name = name
27    self.metadata = metadata
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SampleRequest.

name: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        metadata = self.metadata.to_dict()
30
31        field_dict: Dict[str, Any] = {}
32        field_dict.update(self.additional_properties)
33        field_dict.update(
34            {
35                "name": name,
36                "metadata": metadata,
37            }
38        )
39
40        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
42    @classmethod
43    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44        from ..models.sample_request_metadata import SampleRequestMetadata
45
46        d = src_dict.copy()
47        name = d.pop("name")
48
49        metadata = SampleRequestMetadata.from_dict(d.pop("metadata"))
50
51        sample_request = cls(
52            name=name,
53            metadata=metadata,
54        )
55
56        sample_request.additional_properties = d
57        return sample_request
additional_keys: List[str]
59    @property
60    def additional_keys(self) -> List[str]:
61        return list(self.additional_properties.keys())
class SampleRequestMetadata:
10@_attrs_define
11class SampleRequestMetadata:
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        field_dict.update({})
20
21        return field_dict
22
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        sample_request_metadata = cls()
27
28        sample_request_metadata.additional_properties = d
29        return sample_request_metadata
30
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
SampleRequestMetadata()
23def __init__(self, ):
24    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SampleRequestMetadata.

additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
16    def to_dict(self) -> Dict[str, Any]:
17        field_dict: Dict[str, Any] = {}
18        field_dict.update(self.additional_properties)
19        field_dict.update({})
20
21        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
23    @classmethod
24    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
25        d = src_dict.copy()
26        sample_request_metadata = cls()
27
28        sample_request_metadata.additional_properties = d
29        return sample_request_metadata
additional_keys: List[str]
31    @property
32    def additional_keys(self) -> List[str]:
33        return list(self.additional_properties.keys())
class ServiceConnection:
10@_attrs_define
11class ServiceConnection:
12    """
13    Attributes:
14        name (str):
15        description (str):
16    """
17
18    name: str
19    description: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        name = self.name
24
25        description = self.description
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "name": name,
32                "description": description,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        name = d.pop("name")
42
43        description = d.pop("description")
44
45        service_connection = cls(
46            name=name,
47            description=description,
48        )
49
50        service_connection.additional_properties = d
51        return service_connection
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
ServiceConnection(name: str, description: str)
25def __init__(self, name, description):
26    self.name = name
27    self.description = description
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ServiceConnection.

name: str
description: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        name = self.name
24
25        description = self.description
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "name": name,
32                "description": description,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        name = d.pop("name")
42
43        description = d.pop("description")
44
45        service_connection = cls(
46            name=name,
47            description=description,
48        )
49
50        service_connection.additional_properties = d
51        return service_connection
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
class SetUserProjectRoleRequest:
13@_attrs_define
14class SetUserProjectRoleRequest:
15    """
16    Attributes:
17        username (str):
18        role (ProjectRole):
19        suppress_notification (Union[Unset, bool]):  Default: False.
20    """
21
22    username: str
23    role: ProjectRole
24    suppress_notification: Union[Unset, bool] = False
25    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
27    def to_dict(self) -> Dict[str, Any]:
28        username = self.username
29
30        role = self.role.value
31
32        suppress_notification = self.suppress_notification
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "username": username,
39                "role": role,
40            }
41        )
42        if suppress_notification is not UNSET:
43            field_dict["suppressNotification"] = suppress_notification
44
45        return field_dict
46
47    @classmethod
48    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
49        d = src_dict.copy()
50        username = d.pop("username")
51
52        role = ProjectRole(d.pop("role"))
53
54        suppress_notification = d.pop("suppressNotification", UNSET)
55
56        set_user_project_role_request = cls(
57            username=username,
58            role=role,
59            suppress_notification=suppress_notification,
60        )
61
62        set_user_project_role_request.additional_properties = d
63        return set_user_project_role_request
64
65    @property
66    def additional_keys(self) -> List[str]:
67        return list(self.additional_properties.keys())
Attributes:
  • username (str):
  • role (ProjectRole):
  • suppress_notification (Union[Unset, bool]): Default: False.
SetUserProjectRoleRequest( username: str, role: ProjectRole, suppress_notification: Union[cirro_api_client.v1.types.Unset, bool] = False)
26def __init__(self, username, role, suppress_notification=attr_dict['suppress_notification'].default):
27    self.username = username
28    self.role = role
29    self.suppress_notification = suppress_notification
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SetUserProjectRoleRequest.

username: str
role: ProjectRole
suppress_notification: Union[cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
27    def to_dict(self) -> Dict[str, Any]:
28        username = self.username
29
30        role = self.role.value
31
32        suppress_notification = self.suppress_notification
33
34        field_dict: Dict[str, Any] = {}
35        field_dict.update(self.additional_properties)
36        field_dict.update(
37            {
38                "username": username,
39                "role": role,
40            }
41        )
42        if suppress_notification is not UNSET:
43            field_dict["suppressNotification"] = suppress_notification
44
45        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
47    @classmethod
48    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
49        d = src_dict.copy()
50        username = d.pop("username")
51
52        role = ProjectRole(d.pop("role"))
53
54        suppress_notification = d.pop("suppressNotification", UNSET)
55
56        set_user_project_role_request = cls(
57            username=username,
58            role=role,
59            suppress_notification=suppress_notification,
60        )
61
62        set_user_project_role_request.additional_properties = d
63        return set_user_project_role_request
additional_keys: List[str]
65    @property
66    def additional_keys(self) -> List[str]:
67        return list(self.additional_properties.keys())
class SftpCredentials:
12@_attrs_define
13class SftpCredentials:
14    """
15    Attributes:
16        username (str):
17        password (str):
18        project_id (str):
19        expires_at (datetime.datetime):
20    """
21
22    username: str
23    password: str
24    project_id: str
25    expires_at: datetime.datetime
26    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
27
28    def to_dict(self) -> Dict[str, Any]:
29        username = self.username
30
31        password = self.password
32
33        project_id = self.project_id
34
35        expires_at = self.expires_at.isoformat()
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "username": username,
42                "password": password,
43                "projectId": project_id,
44                "expiresAt": expires_at,
45            }
46        )
47
48        return field_dict
49
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        d = src_dict.copy()
53        username = d.pop("username")
54
55        password = d.pop("password")
56
57        project_id = d.pop("projectId")
58
59        expires_at = isoparse(d.pop("expiresAt"))
60
61        sftp_credentials = cls(
62            username=username,
63            password=password,
64            project_id=project_id,
65            expires_at=expires_at,
66        )
67
68        sftp_credentials.additional_properties = d
69        return sftp_credentials
70
71    @property
72    def additional_keys(self) -> List[str]:
73        return list(self.additional_properties.keys())
Attributes:
  • username (str):
  • password (str):
  • project_id (str):
  • expires_at (datetime.datetime):
SftpCredentials( username: str, password: str, project_id: str, expires_at: datetime.datetime)
27def __init__(self, username, password, project_id, expires_at):
28    self.username = username
29    self.password = password
30    self.project_id = project_id
31    self.expires_at = expires_at
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SftpCredentials.

username: str
password: str
project_id: str
expires_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
28    def to_dict(self) -> Dict[str, Any]:
29        username = self.username
30
31        password = self.password
32
33        project_id = self.project_id
34
35        expires_at = self.expires_at.isoformat()
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "username": username,
42                "password": password,
43                "projectId": project_id,
44                "expiresAt": expires_at,
45            }
46        )
47
48        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
50    @classmethod
51    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52        d = src_dict.copy()
53        username = d.pop("username")
54
55        password = d.pop("password")
56
57        project_id = d.pop("projectId")
58
59        expires_at = isoparse(d.pop("expiresAt"))
60
61        sftp_credentials = cls(
62            username=username,
63            password=password,
64            project_id=project_id,
65            expires_at=expires_at,
66        )
67
68        sftp_credentials.additional_properties = d
69        return sftp_credentials
additional_keys: List[str]
71    @property
72    def additional_keys(self) -> List[str]:
73        return list(self.additional_properties.keys())
class Share:
 18@_attrs_define
 19class Share:
 20    """
 21    Attributes:
 22        id (str):
 23        name (str):
 24        description (str):
 25        originating_project_id (str): The ID of the project that owns the share
 26        share_type (ShareType):
 27        conditions (List['DatasetCondition']):
 28        classification_ids (List[str]):
 29        keywords (List[str]):
 30        created_by (str):
 31        created_at (datetime.datetime):
 32        updated_at (datetime.datetime):
 33    """
 34
 35    id: str
 36    name: str
 37    description: str
 38    originating_project_id: str
 39    share_type: ShareType
 40    conditions: List["DatasetCondition"]
 41    classification_ids: List[str]
 42    keywords: List[str]
 43    created_by: str
 44    created_at: datetime.datetime
 45    updated_at: datetime.datetime
 46    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 47
 48    def to_dict(self) -> Dict[str, Any]:
 49        id = self.id
 50
 51        name = self.name
 52
 53        description = self.description
 54
 55        originating_project_id = self.originating_project_id
 56
 57        share_type = self.share_type.value
 58
 59        conditions = []
 60        for conditions_item_data in self.conditions:
 61            conditions_item = conditions_item_data.to_dict()
 62            conditions.append(conditions_item)
 63
 64        classification_ids = self.classification_ids
 65
 66        keywords = self.keywords
 67
 68        created_by = self.created_by
 69
 70        created_at = self.created_at.isoformat()
 71
 72        updated_at = self.updated_at.isoformat()
 73
 74        field_dict: Dict[str, Any] = {}
 75        field_dict.update(self.additional_properties)
 76        field_dict.update(
 77            {
 78                "id": id,
 79                "name": name,
 80                "description": description,
 81                "originatingProjectId": originating_project_id,
 82                "shareType": share_type,
 83                "conditions": conditions,
 84                "classificationIds": classification_ids,
 85                "keywords": keywords,
 86                "createdBy": created_by,
 87                "createdAt": created_at,
 88                "updatedAt": updated_at,
 89            }
 90        )
 91
 92        return field_dict
 93
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.dataset_condition import DatasetCondition
 97
 98        d = src_dict.copy()
 99        id = d.pop("id")
100
101        name = d.pop("name")
102
103        description = d.pop("description")
104
105        originating_project_id = d.pop("originatingProjectId")
106
107        share_type = ShareType(d.pop("shareType"))
108
109        conditions = []
110        _conditions = d.pop("conditions")
111        for conditions_item_data in _conditions:
112            conditions_item = DatasetCondition.from_dict(conditions_item_data)
113
114            conditions.append(conditions_item)
115
116        classification_ids = cast(List[str], d.pop("classificationIds"))
117
118        keywords = cast(List[str], d.pop("keywords"))
119
120        created_by = d.pop("createdBy")
121
122        created_at = isoparse(d.pop("createdAt"))
123
124        updated_at = isoparse(d.pop("updatedAt"))
125
126        share = cls(
127            id=id,
128            name=name,
129            description=description,
130            originating_project_id=originating_project_id,
131            share_type=share_type,
132            conditions=conditions,
133            classification_ids=classification_ids,
134            keywords=keywords,
135            created_by=created_by,
136            created_at=created_at,
137            updated_at=updated_at,
138        )
139
140        share.additional_properties = d
141        return share
142
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • originating_project_id (str): The ID of the project that owns the share
  • share_type (ShareType):
  • conditions (List['DatasetCondition']):
  • classification_ids (List[str]):
  • keywords (List[str]):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
Share( id: str, name: str, description: str, originating_project_id: str, share_type: ShareType, conditions: List[DatasetCondition], classification_ids: List[str], keywords: List[str], created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
34def __init__(self, id, name, description, originating_project_id, share_type, conditions, classification_ids, keywords, created_by, created_at, updated_at):
35    self.id = id
36    self.name = name
37    self.description = description
38    self.originating_project_id = originating_project_id
39    self.share_type = share_type
40    self.conditions = conditions
41    self.classification_ids = classification_ids
42    self.keywords = keywords
43    self.created_by = created_by
44    self.created_at = created_at
45    self.updated_at = updated_at
46    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Share.

id: str
name: str
description: str
originating_project_id: str
share_type: ShareType
conditions: List[DatasetCondition]
classification_ids: List[str]
keywords: List[str]
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
48    def to_dict(self) -> Dict[str, Any]:
49        id = self.id
50
51        name = self.name
52
53        description = self.description
54
55        originating_project_id = self.originating_project_id
56
57        share_type = self.share_type.value
58
59        conditions = []
60        for conditions_item_data in self.conditions:
61            conditions_item = conditions_item_data.to_dict()
62            conditions.append(conditions_item)
63
64        classification_ids = self.classification_ids
65
66        keywords = self.keywords
67
68        created_by = self.created_by
69
70        created_at = self.created_at.isoformat()
71
72        updated_at = self.updated_at.isoformat()
73
74        field_dict: Dict[str, Any] = {}
75        field_dict.update(self.additional_properties)
76        field_dict.update(
77            {
78                "id": id,
79                "name": name,
80                "description": description,
81                "originatingProjectId": originating_project_id,
82                "shareType": share_type,
83                "conditions": conditions,
84                "classificationIds": classification_ids,
85                "keywords": keywords,
86                "createdBy": created_by,
87                "createdAt": created_at,
88                "updatedAt": updated_at,
89            }
90        )
91
92        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.dataset_condition import DatasetCondition
 97
 98        d = src_dict.copy()
 99        id = d.pop("id")
100
101        name = d.pop("name")
102
103        description = d.pop("description")
104
105        originating_project_id = d.pop("originatingProjectId")
106
107        share_type = ShareType(d.pop("shareType"))
108
109        conditions = []
110        _conditions = d.pop("conditions")
111        for conditions_item_data in _conditions:
112            conditions_item = DatasetCondition.from_dict(conditions_item_data)
113
114            conditions.append(conditions_item)
115
116        classification_ids = cast(List[str], d.pop("classificationIds"))
117
118        keywords = cast(List[str], d.pop("keywords"))
119
120        created_by = d.pop("createdBy")
121
122        created_at = isoparse(d.pop("createdAt"))
123
124        updated_at = isoparse(d.pop("updatedAt"))
125
126        share = cls(
127            id=id,
128            name=name,
129            description=description,
130            originating_project_id=originating_project_id,
131            share_type=share_type,
132            conditions=conditions,
133            classification_ids=classification_ids,
134            keywords=keywords,
135            created_by=created_by,
136            created_at=created_at,
137            updated_at=updated_at,
138        )
139
140        share.additional_properties = d
141        return share
additional_keys: List[str]
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
class ShareDetail:
 19@_attrs_define
 20class ShareDetail:
 21    """
 22    Attributes:
 23        id (str):
 24        name (str):
 25        description (str):
 26        originating_project (NamedItem):
 27        share_type (ShareType):
 28        shared_projects (List['NamedItem']):
 29        conditions (List['DatasetCondition']): The conditions under which the dataset is shared
 30        keywords (List[str]):
 31        classification_ids (List[str]):
 32        is_subscribed (bool):
 33        is_view_restricted (bool):
 34        created_by (str):
 35        created_at (datetime.datetime):
 36        updated_at (datetime.datetime):
 37    """
 38
 39    id: str
 40    name: str
 41    description: str
 42    originating_project: "NamedItem"
 43    share_type: ShareType
 44    shared_projects: List["NamedItem"]
 45    conditions: List["DatasetCondition"]
 46    keywords: List[str]
 47    classification_ids: List[str]
 48    is_subscribed: bool
 49    is_view_restricted: bool
 50    created_by: str
 51    created_at: datetime.datetime
 52    updated_at: datetime.datetime
 53    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 54
 55    def to_dict(self) -> Dict[str, Any]:
 56        id = self.id
 57
 58        name = self.name
 59
 60        description = self.description
 61
 62        originating_project = self.originating_project.to_dict()
 63
 64        share_type = self.share_type.value
 65
 66        shared_projects = []
 67        for shared_projects_item_data in self.shared_projects:
 68            shared_projects_item = shared_projects_item_data.to_dict()
 69            shared_projects.append(shared_projects_item)
 70
 71        conditions = []
 72        for conditions_item_data in self.conditions:
 73            conditions_item = conditions_item_data.to_dict()
 74            conditions.append(conditions_item)
 75
 76        keywords = self.keywords
 77
 78        classification_ids = self.classification_ids
 79
 80        is_subscribed = self.is_subscribed
 81
 82        is_view_restricted = self.is_view_restricted
 83
 84        created_by = self.created_by
 85
 86        created_at = self.created_at.isoformat()
 87
 88        updated_at = self.updated_at.isoformat()
 89
 90        field_dict: Dict[str, Any] = {}
 91        field_dict.update(self.additional_properties)
 92        field_dict.update(
 93            {
 94                "id": id,
 95                "name": name,
 96                "description": description,
 97                "originatingProject": originating_project,
 98                "shareType": share_type,
 99                "sharedProjects": shared_projects,
100                "conditions": conditions,
101                "keywords": keywords,
102                "classificationIds": classification_ids,
103                "isSubscribed": is_subscribed,
104                "isViewRestricted": is_view_restricted,
105                "createdBy": created_by,
106                "createdAt": created_at,
107                "updatedAt": updated_at,
108            }
109        )
110
111        return field_dict
112
113    @classmethod
114    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
115        from ..models.dataset_condition import DatasetCondition
116        from ..models.named_item import NamedItem
117
118        d = src_dict.copy()
119        id = d.pop("id")
120
121        name = d.pop("name")
122
123        description = d.pop("description")
124
125        originating_project = NamedItem.from_dict(d.pop("originatingProject"))
126
127        share_type = ShareType(d.pop("shareType"))
128
129        shared_projects = []
130        _shared_projects = d.pop("sharedProjects")
131        for shared_projects_item_data in _shared_projects:
132            shared_projects_item = NamedItem.from_dict(shared_projects_item_data)
133
134            shared_projects.append(shared_projects_item)
135
136        conditions = []
137        _conditions = d.pop("conditions")
138        for conditions_item_data in _conditions:
139            conditions_item = DatasetCondition.from_dict(conditions_item_data)
140
141            conditions.append(conditions_item)
142
143        keywords = cast(List[str], d.pop("keywords"))
144
145        classification_ids = cast(List[str], d.pop("classificationIds"))
146
147        is_subscribed = d.pop("isSubscribed")
148
149        is_view_restricted = d.pop("isViewRestricted")
150
151        created_by = d.pop("createdBy")
152
153        created_at = isoparse(d.pop("createdAt"))
154
155        updated_at = isoparse(d.pop("updatedAt"))
156
157        share_detail = cls(
158            id=id,
159            name=name,
160            description=description,
161            originating_project=originating_project,
162            share_type=share_type,
163            shared_projects=shared_projects,
164            conditions=conditions,
165            keywords=keywords,
166            classification_ids=classification_ids,
167            is_subscribed=is_subscribed,
168            is_view_restricted=is_view_restricted,
169            created_by=created_by,
170            created_at=created_at,
171            updated_at=updated_at,
172        )
173
174        share_detail.additional_properties = d
175        return share_detail
176
177    @property
178    def additional_keys(self) -> List[str]:
179        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • originating_project (NamedItem):
  • share_type (ShareType):
  • shared_projects (List['NamedItem']):
  • conditions (List['DatasetCondition']): The conditions under which the dataset is shared
  • keywords (List[str]):
  • classification_ids (List[str]):
  • is_subscribed (bool):
  • is_view_restricted (bool):
  • created_by (str):
  • created_at (datetime.datetime):
  • updated_at (datetime.datetime):
ShareDetail( id: str, name: str, description: str, originating_project: NamedItem, share_type: ShareType, shared_projects: List[NamedItem], conditions: List[DatasetCondition], keywords: List[str], classification_ids: List[str], is_subscribed: bool, is_view_restricted: bool, created_by: str, created_at: datetime.datetime, updated_at: datetime.datetime)
37def __init__(self, id, name, description, originating_project, share_type, shared_projects, conditions, keywords, classification_ids, is_subscribed, is_view_restricted, created_by, created_at, updated_at):
38    self.id = id
39    self.name = name
40    self.description = description
41    self.originating_project = originating_project
42    self.share_type = share_type
43    self.shared_projects = shared_projects
44    self.conditions = conditions
45    self.keywords = keywords
46    self.classification_ids = classification_ids
47    self.is_subscribed = is_subscribed
48    self.is_view_restricted = is_view_restricted
49    self.created_by = created_by
50    self.created_at = created_at
51    self.updated_at = updated_at
52    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ShareDetail.

id: str
name: str
description: str
originating_project: NamedItem
share_type: ShareType
shared_projects: List[NamedItem]
conditions: List[DatasetCondition]
keywords: List[str]
classification_ids: List[str]
is_subscribed: bool
is_view_restricted: bool
created_by: str
created_at: datetime.datetime
updated_at: datetime.datetime
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 55    def to_dict(self) -> Dict[str, Any]:
 56        id = self.id
 57
 58        name = self.name
 59
 60        description = self.description
 61
 62        originating_project = self.originating_project.to_dict()
 63
 64        share_type = self.share_type.value
 65
 66        shared_projects = []
 67        for shared_projects_item_data in self.shared_projects:
 68            shared_projects_item = shared_projects_item_data.to_dict()
 69            shared_projects.append(shared_projects_item)
 70
 71        conditions = []
 72        for conditions_item_data in self.conditions:
 73            conditions_item = conditions_item_data.to_dict()
 74            conditions.append(conditions_item)
 75
 76        keywords = self.keywords
 77
 78        classification_ids = self.classification_ids
 79
 80        is_subscribed = self.is_subscribed
 81
 82        is_view_restricted = self.is_view_restricted
 83
 84        created_by = self.created_by
 85
 86        created_at = self.created_at.isoformat()
 87
 88        updated_at = self.updated_at.isoformat()
 89
 90        field_dict: Dict[str, Any] = {}
 91        field_dict.update(self.additional_properties)
 92        field_dict.update(
 93            {
 94                "id": id,
 95                "name": name,
 96                "description": description,
 97                "originatingProject": originating_project,
 98                "shareType": share_type,
 99                "sharedProjects": shared_projects,
100                "conditions": conditions,
101                "keywords": keywords,
102                "classificationIds": classification_ids,
103                "isSubscribed": is_subscribed,
104                "isViewRestricted": is_view_restricted,
105                "createdBy": created_by,
106                "createdAt": created_at,
107                "updatedAt": updated_at,
108            }
109        )
110
111        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
113    @classmethod
114    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
115        from ..models.dataset_condition import DatasetCondition
116        from ..models.named_item import NamedItem
117
118        d = src_dict.copy()
119        id = d.pop("id")
120
121        name = d.pop("name")
122
123        description = d.pop("description")
124
125        originating_project = NamedItem.from_dict(d.pop("originatingProject"))
126
127        share_type = ShareType(d.pop("shareType"))
128
129        shared_projects = []
130        _shared_projects = d.pop("sharedProjects")
131        for shared_projects_item_data in _shared_projects:
132            shared_projects_item = NamedItem.from_dict(shared_projects_item_data)
133
134            shared_projects.append(shared_projects_item)
135
136        conditions = []
137        _conditions = d.pop("conditions")
138        for conditions_item_data in _conditions:
139            conditions_item = DatasetCondition.from_dict(conditions_item_data)
140
141            conditions.append(conditions_item)
142
143        keywords = cast(List[str], d.pop("keywords"))
144
145        classification_ids = cast(List[str], d.pop("classificationIds"))
146
147        is_subscribed = d.pop("isSubscribed")
148
149        is_view_restricted = d.pop("isViewRestricted")
150
151        created_by = d.pop("createdBy")
152
153        created_at = isoparse(d.pop("createdAt"))
154
155        updated_at = isoparse(d.pop("updatedAt"))
156
157        share_detail = cls(
158            id=id,
159            name=name,
160            description=description,
161            originating_project=originating_project,
162            share_type=share_type,
163            shared_projects=shared_projects,
164            conditions=conditions,
165            keywords=keywords,
166            classification_ids=classification_ids,
167            is_subscribed=is_subscribed,
168            is_view_restricted=is_view_restricted,
169            created_by=created_by,
170            created_at=created_at,
171            updated_at=updated_at,
172        )
173
174        share_detail.additional_properties = d
175        return share_detail
additional_keys: List[str]
177    @property
178    def additional_keys(self) -> List[str]:
179        return list(self.additional_properties.keys())
class ShareInput:
 16@_attrs_define
 17class ShareInput:
 18    """
 19    Attributes:
 20        name (str):
 21        description (str):
 22        classification_ids (List[str]): Data classification IDs for the share
 23        conditions (List['DatasetCondition']): The conditions under which the dataset is shared
 24        keywords (Union[Unset, List[str]]): Search keywords for the share
 25        shared_project_ids (Union[Unset, List[str]]): The project IDs that can access this share
 26        is_view_restricted (Union[Unset, bool]): Whether files within the share are restricted from viewing or
 27            downloading Default: False.
 28    """
 29
 30    name: str
 31    description: str
 32    classification_ids: List[str]
 33    conditions: List["DatasetCondition"]
 34    keywords: Union[Unset, List[str]] = UNSET
 35    shared_project_ids: Union[Unset, List[str]] = UNSET
 36    is_view_restricted: Union[Unset, bool] = False
 37    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 38
 39    def to_dict(self) -> Dict[str, Any]:
 40        name = self.name
 41
 42        description = self.description
 43
 44        classification_ids = self.classification_ids
 45
 46        conditions = []
 47        for conditions_item_data in self.conditions:
 48            conditions_item = conditions_item_data.to_dict()
 49            conditions.append(conditions_item)
 50
 51        keywords: Union[Unset, List[str]] = UNSET
 52        if not isinstance(self.keywords, Unset):
 53            keywords = self.keywords
 54
 55        shared_project_ids: Union[Unset, List[str]] = UNSET
 56        if not isinstance(self.shared_project_ids, Unset):
 57            shared_project_ids = self.shared_project_ids
 58
 59        is_view_restricted = self.is_view_restricted
 60
 61        field_dict: Dict[str, Any] = {}
 62        field_dict.update(self.additional_properties)
 63        field_dict.update(
 64            {
 65                "name": name,
 66                "description": description,
 67                "classificationIds": classification_ids,
 68                "conditions": conditions,
 69            }
 70        )
 71        if keywords is not UNSET:
 72            field_dict["keywords"] = keywords
 73        if shared_project_ids is not UNSET:
 74            field_dict["sharedProjectIds"] = shared_project_ids
 75        if is_view_restricted is not UNSET:
 76            field_dict["isViewRestricted"] = is_view_restricted
 77
 78        return field_dict
 79
 80    @classmethod
 81    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 82        from ..models.dataset_condition import DatasetCondition
 83
 84        d = src_dict.copy()
 85        name = d.pop("name")
 86
 87        description = d.pop("description")
 88
 89        classification_ids = cast(List[str], d.pop("classificationIds"))
 90
 91        conditions = []
 92        _conditions = d.pop("conditions")
 93        for conditions_item_data in _conditions:
 94            conditions_item = DatasetCondition.from_dict(conditions_item_data)
 95
 96            conditions.append(conditions_item)
 97
 98        keywords = cast(List[str], d.pop("keywords", UNSET))
 99
100        shared_project_ids = cast(List[str], d.pop("sharedProjectIds", UNSET))
101
102        is_view_restricted = d.pop("isViewRestricted", UNSET)
103
104        share_input = cls(
105            name=name,
106            description=description,
107            classification_ids=classification_ids,
108            conditions=conditions,
109            keywords=keywords,
110            shared_project_ids=shared_project_ids,
111            is_view_restricted=is_view_restricted,
112        )
113
114        share_input.additional_properties = d
115        return share_input
116
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • classification_ids (List[str]): Data classification IDs for the share
  • conditions (List['DatasetCondition']): The conditions under which the dataset is shared
  • keywords (Union[Unset, List[str]]): Search keywords for the share
  • shared_project_ids (Union[Unset, List[str]]): The project IDs that can access this share
  • is_view_restricted (Union[Unset, bool]): Whether files within the share are restricted from viewing or downloading Default: False.
ShareInput( name: str, description: str, classification_ids: List[str], conditions: List[DatasetCondition], keywords: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>, shared_project_ids: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>, is_view_restricted: Union[cirro_api_client.v1.types.Unset, bool] = False)
30def __init__(self, name, description, classification_ids, conditions, keywords=attr_dict['keywords'].default, shared_project_ids=attr_dict['shared_project_ids'].default, is_view_restricted=attr_dict['is_view_restricted'].default):
31    self.name = name
32    self.description = description
33    self.classification_ids = classification_ids
34    self.conditions = conditions
35    self.keywords = keywords
36    self.shared_project_ids = shared_project_ids
37    self.is_view_restricted = is_view_restricted
38    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ShareInput.

name: str
description: str
classification_ids: List[str]
conditions: List[DatasetCondition]
keywords: Union[cirro_api_client.v1.types.Unset, List[str]]
shared_project_ids: Union[cirro_api_client.v1.types.Unset, List[str]]
is_view_restricted: Union[cirro_api_client.v1.types.Unset, bool]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
39    def to_dict(self) -> Dict[str, Any]:
40        name = self.name
41
42        description = self.description
43
44        classification_ids = self.classification_ids
45
46        conditions = []
47        for conditions_item_data in self.conditions:
48            conditions_item = conditions_item_data.to_dict()
49            conditions.append(conditions_item)
50
51        keywords: Union[Unset, List[str]] = UNSET
52        if not isinstance(self.keywords, Unset):
53            keywords = self.keywords
54
55        shared_project_ids: Union[Unset, List[str]] = UNSET
56        if not isinstance(self.shared_project_ids, Unset):
57            shared_project_ids = self.shared_project_ids
58
59        is_view_restricted = self.is_view_restricted
60
61        field_dict: Dict[str, Any] = {}
62        field_dict.update(self.additional_properties)
63        field_dict.update(
64            {
65                "name": name,
66                "description": description,
67                "classificationIds": classification_ids,
68                "conditions": conditions,
69            }
70        )
71        if keywords is not UNSET:
72            field_dict["keywords"] = keywords
73        if shared_project_ids is not UNSET:
74            field_dict["sharedProjectIds"] = shared_project_ids
75        if is_view_restricted is not UNSET:
76            field_dict["isViewRestricted"] = is_view_restricted
77
78        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 80    @classmethod
 81    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 82        from ..models.dataset_condition import DatasetCondition
 83
 84        d = src_dict.copy()
 85        name = d.pop("name")
 86
 87        description = d.pop("description")
 88
 89        classification_ids = cast(List[str], d.pop("classificationIds"))
 90
 91        conditions = []
 92        _conditions = d.pop("conditions")
 93        for conditions_item_data in _conditions:
 94            conditions_item = DatasetCondition.from_dict(conditions_item_data)
 95
 96            conditions.append(conditions_item)
 97
 98        keywords = cast(List[str], d.pop("keywords", UNSET))
 99
100        shared_project_ids = cast(List[str], d.pop("sharedProjectIds", UNSET))
101
102        is_view_restricted = d.pop("isViewRestricted", UNSET)
103
104        share_input = cls(
105            name=name,
106            description=description,
107            classification_ids=classification_ids,
108            conditions=conditions,
109            keywords=keywords,
110            shared_project_ids=shared_project_ids,
111            is_view_restricted=is_view_restricted,
112        )
113
114        share_input.additional_properties = d
115        return share_input
additional_keys: List[str]
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
class ShareType(builtins.str, enum.Enum):
 5class ShareType(str, Enum):
 6    AVAILABLE = "AVAILABLE"
 7    """ The share is available for subscription """
 8    PUBLISHER = "PUBLISHER"
 9    """ The project owns this share """
10    SUBSCRIBER = "SUBSCRIBER"
11    """ The project can view this share """
12    UNKNOWN = "UNKNOWN"
13    """ This is a fallback value for when the value is not known, do not use this value when making requests """
14
15    def __str__(self) -> str:
16        return str(self.value)
17
18    @classmethod
19    def _missing_(cls, number):
20        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

AVAILABLE = <ShareType.AVAILABLE: 'AVAILABLE'>

The share is available for subscription

PUBLISHER = <ShareType.PUBLISHER: 'PUBLISHER'>

The project owns this share

SUBSCRIBER = <ShareType.SUBSCRIBER: 'SUBSCRIBER'>

The project can view this share

UNKNOWN = <ShareType.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class Status(builtins.str, enum.Enum):
 5class Status(str, Enum):
 6    ARCHIVED = "ARCHIVED"
 7    COMPLETED = "COMPLETED"
 8    DELETE = "DELETE"
 9    DELETED = "DELETED"
10    DELETING = "DELETING"
11    FAILED = "FAILED"
12    PENDING = "PENDING"
13    RUNNING = "RUNNING"
14    SUSPENDED = "SUSPENDED"
15    UNKNOWN = "UNKNOWN"
16    """ This is a fallback value for when the value is not known, do not use this value when making requests """
17
18    def __str__(self) -> str:
19        return str(self.value)
20
21    @classmethod
22    def _missing_(cls, number):
23        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

ARCHIVED = <Status.ARCHIVED: 'ARCHIVED'>
COMPLETED = <Status.COMPLETED: 'COMPLETED'>
DELETE = <Status.DELETE: 'DELETE'>
DELETED = <Status.DELETED: 'DELETED'>
DELETING = <Status.DELETING: 'DELETING'>
FAILED = <Status.FAILED: 'FAILED'>
PENDING = <Status.PENDING: 'PENDING'>
RUNNING = <Status.RUNNING: 'RUNNING'>
SUSPENDED = <Status.SUSPENDED: 'SUSPENDED'>
UNKNOWN = <Status.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class StopExecutionResponse:
12@_attrs_define
13class StopExecutionResponse:
14    """
15    Attributes:
16        success (Union[Unset, List[str]]): List of job IDs that were successful in termination
17        failed (Union[Unset, List[str]]): List of job IDs that were not successful in termination
18    """
19
20    success: Union[Unset, List[str]] = UNSET
21    failed: Union[Unset, List[str]] = UNSET
22    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
23
24    def to_dict(self) -> Dict[str, Any]:
25        success: Union[Unset, List[str]] = UNSET
26        if not isinstance(self.success, Unset):
27            success = self.success
28
29        failed: Union[Unset, List[str]] = UNSET
30        if not isinstance(self.failed, Unset):
31            failed = self.failed
32
33        field_dict: Dict[str, Any] = {}
34        field_dict.update(self.additional_properties)
35        field_dict.update({})
36        if success is not UNSET:
37            field_dict["success"] = success
38        if failed is not UNSET:
39            field_dict["failed"] = failed
40
41        return field_dict
42
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        success = cast(List[str], d.pop("success", UNSET))
47
48        failed = cast(List[str], d.pop("failed", UNSET))
49
50        stop_execution_response = cls(
51            success=success,
52            failed=failed,
53        )
54
55        stop_execution_response.additional_properties = d
56        return stop_execution_response
57
58    @property
59    def additional_keys(self) -> List[str]:
60        return list(self.additional_properties.keys())
Attributes:
  • success (Union[Unset, List[str]]): List of job IDs that were successful in termination
  • failed (Union[Unset, List[str]]): List of job IDs that were not successful in termination
StopExecutionResponse( success: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>, failed: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>)
25def __init__(self, success=attr_dict['success'].default, failed=attr_dict['failed'].default):
26    self.success = success
27    self.failed = failed
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class StopExecutionResponse.

success: Union[cirro_api_client.v1.types.Unset, List[str]]
failed: Union[cirro_api_client.v1.types.Unset, List[str]]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
24    def to_dict(self) -> Dict[str, Any]:
25        success: Union[Unset, List[str]] = UNSET
26        if not isinstance(self.success, Unset):
27            success = self.success
28
29        failed: Union[Unset, List[str]] = UNSET
30        if not isinstance(self.failed, Unset):
31            failed = self.failed
32
33        field_dict: Dict[str, Any] = {}
34        field_dict.update(self.additional_properties)
35        field_dict.update({})
36        if success is not UNSET:
37            field_dict["success"] = success
38        if failed is not UNSET:
39            field_dict["failed"] = failed
40
41        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
43    @classmethod
44    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45        d = src_dict.copy()
46        success = cast(List[str], d.pop("success", UNSET))
47
48        failed = cast(List[str], d.pop("failed", UNSET))
49
50        stop_execution_response = cls(
51            success=success,
52            failed=failed,
53        )
54
55        stop_execution_response.additional_properties = d
56        return stop_execution_response
additional_keys: List[str]
58    @property
59    def additional_keys(self) -> List[str]:
60        return list(self.additional_properties.keys())
class SyncStatus(builtins.str, enum.Enum):
 5class SyncStatus(str, Enum):
 6    FAILED = "FAILED"
 7    SUCCESSFUL = "SUCCESSFUL"
 8    UNKNOWN = "UNKNOWN"
 9    """ This is a fallback value for when the value is not known, do not use this value when making requests """
10
11    def __str__(self) -> str:
12        return str(self.value)
13
14    @classmethod
15    def _missing_(cls, number):
16        return cls(cls.UNKNOWN)

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.

FAILED = <SyncStatus.FAILED: 'FAILED'>
SUCCESSFUL = <SyncStatus.SUCCESSFUL: 'SUCCESSFUL'>
UNKNOWN = <SyncStatus.UNKNOWN: 'UNKNOWN'>

This is a fallback value for when the value is not known, do not use this value when making requests

class SystemInfoResponse:
 16@_attrs_define
 17class SystemInfoResponse:
 18    """
 19    Attributes:
 20        resources_bucket (str):
 21        references_bucket (str):
 22        live_endpoint (str):
 23        agent_endpoint (str):
 24        region (str):
 25        system_message (str):
 26        maintenance_mode_enabled (bool):
 27        commit_hash (str):
 28        version (str):
 29        resources_info (ResourcesInfo):
 30        tenant_info (TenantInfo):
 31        auth (AuthInfo):
 32    """
 33
 34    resources_bucket: str
 35    references_bucket: str
 36    live_endpoint: str
 37    agent_endpoint: str
 38    region: str
 39    system_message: str
 40    maintenance_mode_enabled: bool
 41    commit_hash: str
 42    version: str
 43    resources_info: "ResourcesInfo"
 44    tenant_info: "TenantInfo"
 45    auth: "AuthInfo"
 46    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 47
 48    def to_dict(self) -> Dict[str, Any]:
 49        resources_bucket = self.resources_bucket
 50
 51        references_bucket = self.references_bucket
 52
 53        live_endpoint = self.live_endpoint
 54
 55        agent_endpoint = self.agent_endpoint
 56
 57        region = self.region
 58
 59        system_message = self.system_message
 60
 61        maintenance_mode_enabled = self.maintenance_mode_enabled
 62
 63        commit_hash = self.commit_hash
 64
 65        version = self.version
 66
 67        resources_info = self.resources_info.to_dict()
 68
 69        tenant_info = self.tenant_info.to_dict()
 70
 71        auth = self.auth.to_dict()
 72
 73        field_dict: Dict[str, Any] = {}
 74        field_dict.update(self.additional_properties)
 75        field_dict.update(
 76            {
 77                "resourcesBucket": resources_bucket,
 78                "referencesBucket": references_bucket,
 79                "liveEndpoint": live_endpoint,
 80                "agentEndpoint": agent_endpoint,
 81                "region": region,
 82                "systemMessage": system_message,
 83                "maintenanceModeEnabled": maintenance_mode_enabled,
 84                "commitHash": commit_hash,
 85                "version": version,
 86                "resourcesInfo": resources_info,
 87                "tenantInfo": tenant_info,
 88                "auth": auth,
 89            }
 90        )
 91
 92        return field_dict
 93
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.auth_info import AuthInfo
 97        from ..models.resources_info import ResourcesInfo
 98        from ..models.tenant_info import TenantInfo
 99
100        d = src_dict.copy()
101        resources_bucket = d.pop("resourcesBucket")
102
103        references_bucket = d.pop("referencesBucket")
104
105        live_endpoint = d.pop("liveEndpoint")
106
107        agent_endpoint = d.pop("agentEndpoint")
108
109        region = d.pop("region")
110
111        system_message = d.pop("systemMessage")
112
113        maintenance_mode_enabled = d.pop("maintenanceModeEnabled")
114
115        commit_hash = d.pop("commitHash")
116
117        version = d.pop("version")
118
119        resources_info = ResourcesInfo.from_dict(d.pop("resourcesInfo"))
120
121        tenant_info = TenantInfo.from_dict(d.pop("tenantInfo"))
122
123        auth = AuthInfo.from_dict(d.pop("auth"))
124
125        system_info_response = cls(
126            resources_bucket=resources_bucket,
127            references_bucket=references_bucket,
128            live_endpoint=live_endpoint,
129            agent_endpoint=agent_endpoint,
130            region=region,
131            system_message=system_message,
132            maintenance_mode_enabled=maintenance_mode_enabled,
133            commit_hash=commit_hash,
134            version=version,
135            resources_info=resources_info,
136            tenant_info=tenant_info,
137            auth=auth,
138        )
139
140        system_info_response.additional_properties = d
141        return system_info_response
142
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
Attributes:
  • resources_bucket (str):
  • references_bucket (str):
  • live_endpoint (str):
  • agent_endpoint (str):
  • region (str):
  • system_message (str):
  • maintenance_mode_enabled (bool):
  • commit_hash (str):
  • version (str):
  • resources_info (ResourcesInfo):
  • tenant_info (TenantInfo):
  • auth (AuthInfo):
SystemInfoResponse( resources_bucket: str, references_bucket: str, live_endpoint: str, agent_endpoint: str, region: str, system_message: str, maintenance_mode_enabled: bool, commit_hash: str, version: str, resources_info: ResourcesInfo, tenant_info: TenantInfo, auth: AuthInfo)
35def __init__(self, resources_bucket, references_bucket, live_endpoint, agent_endpoint, region, system_message, maintenance_mode_enabled, commit_hash, version, resources_info, tenant_info, auth):
36    self.resources_bucket = resources_bucket
37    self.references_bucket = references_bucket
38    self.live_endpoint = live_endpoint
39    self.agent_endpoint = agent_endpoint
40    self.region = region
41    self.system_message = system_message
42    self.maintenance_mode_enabled = maintenance_mode_enabled
43    self.commit_hash = commit_hash
44    self.version = version
45    self.resources_info = resources_info
46    self.tenant_info = tenant_info
47    self.auth = auth
48    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class SystemInfoResponse.

resources_bucket: str
references_bucket: str
live_endpoint: str
agent_endpoint: str
region: str
system_message: str
maintenance_mode_enabled: bool
commit_hash: str
version: str
resources_info: ResourcesInfo
tenant_info: TenantInfo
auth: AuthInfo
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
48    def to_dict(self) -> Dict[str, Any]:
49        resources_bucket = self.resources_bucket
50
51        references_bucket = self.references_bucket
52
53        live_endpoint = self.live_endpoint
54
55        agent_endpoint = self.agent_endpoint
56
57        region = self.region
58
59        system_message = self.system_message
60
61        maintenance_mode_enabled = self.maintenance_mode_enabled
62
63        commit_hash = self.commit_hash
64
65        version = self.version
66
67        resources_info = self.resources_info.to_dict()
68
69        tenant_info = self.tenant_info.to_dict()
70
71        auth = self.auth.to_dict()
72
73        field_dict: Dict[str, Any] = {}
74        field_dict.update(self.additional_properties)
75        field_dict.update(
76            {
77                "resourcesBucket": resources_bucket,
78                "referencesBucket": references_bucket,
79                "liveEndpoint": live_endpoint,
80                "agentEndpoint": agent_endpoint,
81                "region": region,
82                "systemMessage": system_message,
83                "maintenanceModeEnabled": maintenance_mode_enabled,
84                "commitHash": commit_hash,
85                "version": version,
86                "resourcesInfo": resources_info,
87                "tenantInfo": tenant_info,
88                "auth": auth,
89            }
90        )
91
92        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 94    @classmethod
 95    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 96        from ..models.auth_info import AuthInfo
 97        from ..models.resources_info import ResourcesInfo
 98        from ..models.tenant_info import TenantInfo
 99
100        d = src_dict.copy()
101        resources_bucket = d.pop("resourcesBucket")
102
103        references_bucket = d.pop("referencesBucket")
104
105        live_endpoint = d.pop("liveEndpoint")
106
107        agent_endpoint = d.pop("agentEndpoint")
108
109        region = d.pop("region")
110
111        system_message = d.pop("systemMessage")
112
113        maintenance_mode_enabled = d.pop("maintenanceModeEnabled")
114
115        commit_hash = d.pop("commitHash")
116
117        version = d.pop("version")
118
119        resources_info = ResourcesInfo.from_dict(d.pop("resourcesInfo"))
120
121        tenant_info = TenantInfo.from_dict(d.pop("tenantInfo"))
122
123        auth = AuthInfo.from_dict(d.pop("auth"))
124
125        system_info_response = cls(
126            resources_bucket=resources_bucket,
127            references_bucket=references_bucket,
128            live_endpoint=live_endpoint,
129            agent_endpoint=agent_endpoint,
130            region=region,
131            system_message=system_message,
132            maintenance_mode_enabled=maintenance_mode_enabled,
133            commit_hash=commit_hash,
134            version=version,
135            resources_info=resources_info,
136            tenant_info=tenant_info,
137            auth=auth,
138        )
139
140        system_info_response.additional_properties = d
141        return system_info_response
additional_keys: List[str]
143    @property
144    def additional_keys(self) -> List[str]:
145        return list(self.additional_properties.keys())
class Table:
 16@_attrs_define
 17class Table:
 18    """
 19    Attributes:
 20        desc (str):
 21        name (Union[Unset, str]): User-friendly name of asset
 22        type (Union[Unset, str]): Type of file Example: parquet.
 23        rows (Union[Unset, int]): Number of rows in table
 24        path (Union[Unset, str]): Relative path to asset
 25        cols (Union[List['ColumnDefinition'], None, Unset]):
 26    """
 27
 28    desc: str
 29    name: Union[Unset, str] = UNSET
 30    type: Union[Unset, str] = UNSET
 31    rows: Union[Unset, int] = UNSET
 32    path: Union[Unset, str] = UNSET
 33    cols: Union[List["ColumnDefinition"], None, Unset] = UNSET
 34    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 35
 36    def to_dict(self) -> Dict[str, Any]:
 37        desc = self.desc
 38
 39        name = self.name
 40
 41        type = self.type
 42
 43        rows = self.rows
 44
 45        path = self.path
 46
 47        cols: Union[List[Dict[str, Any]], None, Unset]
 48        if isinstance(self.cols, Unset):
 49            cols = UNSET
 50        elif isinstance(self.cols, list):
 51            cols = []
 52            for cols_type_0_item_data in self.cols:
 53                cols_type_0_item = cols_type_0_item_data.to_dict()
 54                cols.append(cols_type_0_item)
 55
 56        else:
 57            cols = self.cols
 58
 59        field_dict: Dict[str, Any] = {}
 60        field_dict.update(self.additional_properties)
 61        field_dict.update(
 62            {
 63                "desc": desc,
 64            }
 65        )
 66        if name is not UNSET:
 67            field_dict["name"] = name
 68        if type is not UNSET:
 69            field_dict["type"] = type
 70        if rows is not UNSET:
 71            field_dict["rows"] = rows
 72        if path is not UNSET:
 73            field_dict["path"] = path
 74        if cols is not UNSET:
 75            field_dict["cols"] = cols
 76
 77        return field_dict
 78
 79    @classmethod
 80    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 81        from ..models.column_definition import ColumnDefinition
 82
 83        d = src_dict.copy()
 84        desc = d.pop("desc")
 85
 86        name = d.pop("name", UNSET)
 87
 88        type = d.pop("type", UNSET)
 89
 90        rows = d.pop("rows", UNSET)
 91
 92        path = d.pop("path", UNSET)
 93
 94        def _parse_cols(data: object) -> Union[List["ColumnDefinition"], None, Unset]:
 95            if data is None:
 96                return data
 97            if isinstance(data, Unset):
 98                return data
 99            try:
100                if not isinstance(data, list):
101                    raise TypeError()
102                cols_type_0 = []
103                _cols_type_0 = data
104                for cols_type_0_item_data in _cols_type_0:
105                    cols_type_0_item = ColumnDefinition.from_dict(cols_type_0_item_data)
106
107                    cols_type_0.append(cols_type_0_item)
108
109                return cols_type_0
110            except:  # noqa: E722
111                pass
112            return cast(Union[List["ColumnDefinition"], None, Unset], data)
113
114        cols = _parse_cols(d.pop("cols", UNSET))
115
116        table = cls(
117            desc=desc,
118            name=name,
119            type=type,
120            rows=rows,
121            path=path,
122            cols=cols,
123        )
124
125        table.additional_properties = d
126        return table
127
128    @property
129    def additional_keys(self) -> List[str]:
130        return list(self.additional_properties.keys())
Attributes:
  • desc (str):
  • name (Union[Unset, str]): User-friendly name of asset
  • type (Union[Unset, str]): Type of file Example: parquet.
  • rows (Union[Unset, int]): Number of rows in table
  • path (Union[Unset, str]): Relative path to asset
  • cols (Union[List['ColumnDefinition'], None, Unset]):
Table( desc: str, name: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, type: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, rows: Union[cirro_api_client.v1.types.Unset, int] = <cirro_api_client.v1.types.Unset object>, path: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, cols: Union[List[ColumnDefinition], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
29def __init__(self, desc, name=attr_dict['name'].default, type=attr_dict['type'].default, rows=attr_dict['rows'].default, path=attr_dict['path'].default, cols=attr_dict['cols'].default):
30    self.desc = desc
31    self.name = name
32    self.type = type
33    self.rows = rows
34    self.path = path
35    self.cols = cols
36    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Table.

desc: str
name: Union[cirro_api_client.v1.types.Unset, str]
type: Union[cirro_api_client.v1.types.Unset, str]
rows: Union[cirro_api_client.v1.types.Unset, int]
path: Union[cirro_api_client.v1.types.Unset, str]
cols: Union[List[ColumnDefinition], NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
36    def to_dict(self) -> Dict[str, Any]:
37        desc = self.desc
38
39        name = self.name
40
41        type = self.type
42
43        rows = self.rows
44
45        path = self.path
46
47        cols: Union[List[Dict[str, Any]], None, Unset]
48        if isinstance(self.cols, Unset):
49            cols = UNSET
50        elif isinstance(self.cols, list):
51            cols = []
52            for cols_type_0_item_data in self.cols:
53                cols_type_0_item = cols_type_0_item_data.to_dict()
54                cols.append(cols_type_0_item)
55
56        else:
57            cols = self.cols
58
59        field_dict: Dict[str, Any] = {}
60        field_dict.update(self.additional_properties)
61        field_dict.update(
62            {
63                "desc": desc,
64            }
65        )
66        if name is not UNSET:
67            field_dict["name"] = name
68        if type is not UNSET:
69            field_dict["type"] = type
70        if rows is not UNSET:
71            field_dict["rows"] = rows
72        if path is not UNSET:
73            field_dict["path"] = path
74        if cols is not UNSET:
75            field_dict["cols"] = cols
76
77        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 79    @classmethod
 80    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 81        from ..models.column_definition import ColumnDefinition
 82
 83        d = src_dict.copy()
 84        desc = d.pop("desc")
 85
 86        name = d.pop("name", UNSET)
 87
 88        type = d.pop("type", UNSET)
 89
 90        rows = d.pop("rows", UNSET)
 91
 92        path = d.pop("path", UNSET)
 93
 94        def _parse_cols(data: object) -> Union[List["ColumnDefinition"], None, Unset]:
 95            if data is None:
 96                return data
 97            if isinstance(data, Unset):
 98                return data
 99            try:
100                if not isinstance(data, list):
101                    raise TypeError()
102                cols_type_0 = []
103                _cols_type_0 = data
104                for cols_type_0_item_data in _cols_type_0:
105                    cols_type_0_item = ColumnDefinition.from_dict(cols_type_0_item_data)
106
107                    cols_type_0.append(cols_type_0_item)
108
109                return cols_type_0
110            except:  # noqa: E722
111                pass
112            return cast(Union[List["ColumnDefinition"], None, Unset], data)
113
114        cols = _parse_cols(d.pop("cols", UNSET))
115
116        table = cls(
117            desc=desc,
118            name=name,
119            type=type,
120            rows=rows,
121            path=path,
122            cols=cols,
123        )
124
125        table.additional_properties = d
126        return table
additional_keys: List[str]
128    @property
129    def additional_keys(self) -> List[str]:
130        return list(self.additional_properties.keys())
class Tag:
12@_attrs_define
13class Tag:
14    """
15    Attributes:
16        value (str): The value of the tag
17        editable (Union[Unset, bool]): Whether the tag value is editable Default: True.
18        key (Union[None, Unset, str]):
19    """
20
21    value: str
22    editable: Union[Unset, bool] = True
23    key: Union[None, Unset, str] = UNSET
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        value = self.value
28
29        editable = self.editable
30
31        key: Union[None, Unset, str]
32        if isinstance(self.key, Unset):
33            key = UNSET
34        else:
35            key = self.key
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "value": value,
42            }
43        )
44        if editable is not UNSET:
45            field_dict["editable"] = editable
46        if key is not UNSET:
47            field_dict["key"] = key
48
49        return field_dict
50
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        value = d.pop("value")
55
56        editable = d.pop("editable", UNSET)
57
58        def _parse_key(data: object) -> Union[None, Unset, str]:
59            if data is None:
60                return data
61            if isinstance(data, Unset):
62                return data
63            return cast(Union[None, Unset, str], data)
64
65        key = _parse_key(d.pop("key", UNSET))
66
67        tag = cls(
68            value=value,
69            editable=editable,
70            key=key,
71        )
72
73        tag.additional_properties = d
74        return tag
75
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
Attributes:
  • value (str): The value of the tag
  • editable (Union[Unset, bool]): Whether the tag value is editable Default: True.
  • key (Union[None, Unset, str]):
Tag( value: str, editable: Union[cirro_api_client.v1.types.Unset, bool] = True, key: Union[NoneType, cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
26def __init__(self, value, editable=attr_dict['editable'].default, key=attr_dict['key'].default):
27    self.value = value
28    self.editable = editable
29    self.key = key
30    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Tag.

value: str
editable: Union[cirro_api_client.v1.types.Unset, bool]
key: Union[NoneType, cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        value = self.value
28
29        editable = self.editable
30
31        key: Union[None, Unset, str]
32        if isinstance(self.key, Unset):
33            key = UNSET
34        else:
35            key = self.key
36
37        field_dict: Dict[str, Any] = {}
38        field_dict.update(self.additional_properties)
39        field_dict.update(
40            {
41                "value": value,
42            }
43        )
44        if editable is not UNSET:
45            field_dict["editable"] = editable
46        if key is not UNSET:
47            field_dict["key"] = key
48
49        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
51    @classmethod
52    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
53        d = src_dict.copy()
54        value = d.pop("value")
55
56        editable = d.pop("editable", UNSET)
57
58        def _parse_key(data: object) -> Union[None, Unset, str]:
59            if data is None:
60                return data
61            if isinstance(data, Unset):
62                return data
63            return cast(Union[None, Unset, str], data)
64
65        key = _parse_key(d.pop("key", UNSET))
66
67        tag = cls(
68            value=value,
69            editable=editable,
70            key=key,
71        )
72
73        tag.additional_properties = d
74        return tag
additional_keys: List[str]
76    @property
77    def additional_keys(self) -> List[str]:
78        return list(self.additional_properties.keys())
class Task:
 14@_attrs_define
 15class Task:
 16    """
 17    Attributes:
 18        name (str):
 19        native_job_id (str):
 20        status (str):
 21        requested_at (datetime.datetime):
 22        started_at (Union[Unset, datetime.datetime]):
 23        stopped_at (Union[Unset, datetime.datetime]):
 24        container_image (Union[Unset, str]):
 25        command_line (Union[Unset, str]):
 26        log_location (Union[Unset, str]):
 27    """
 28
 29    name: str
 30    native_job_id: str
 31    status: str
 32    requested_at: datetime.datetime
 33    started_at: Union[Unset, datetime.datetime] = UNSET
 34    stopped_at: Union[Unset, datetime.datetime] = UNSET
 35    container_image: Union[Unset, str] = UNSET
 36    command_line: Union[Unset, str] = UNSET
 37    log_location: Union[Unset, str] = UNSET
 38    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 39
 40    def to_dict(self) -> Dict[str, Any]:
 41        name = self.name
 42
 43        native_job_id = self.native_job_id
 44
 45        status = self.status
 46
 47        requested_at = self.requested_at.isoformat()
 48
 49        started_at: Union[Unset, str] = UNSET
 50        if not isinstance(self.started_at, Unset):
 51            started_at = self.started_at.isoformat()
 52
 53        stopped_at: Union[Unset, str] = UNSET
 54        if not isinstance(self.stopped_at, Unset):
 55            stopped_at = self.stopped_at.isoformat()
 56
 57        container_image = self.container_image
 58
 59        command_line = self.command_line
 60
 61        log_location = self.log_location
 62
 63        field_dict: Dict[str, Any] = {}
 64        field_dict.update(self.additional_properties)
 65        field_dict.update(
 66            {
 67                "name": name,
 68                "nativeJobId": native_job_id,
 69                "status": status,
 70                "requestedAt": requested_at,
 71            }
 72        )
 73        if started_at is not UNSET:
 74            field_dict["startedAt"] = started_at
 75        if stopped_at is not UNSET:
 76            field_dict["stoppedAt"] = stopped_at
 77        if container_image is not UNSET:
 78            field_dict["containerImage"] = container_image
 79        if command_line is not UNSET:
 80            field_dict["commandLine"] = command_line
 81        if log_location is not UNSET:
 82            field_dict["logLocation"] = log_location
 83
 84        return field_dict
 85
 86    @classmethod
 87    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 88        d = src_dict.copy()
 89        name = d.pop("name")
 90
 91        native_job_id = d.pop("nativeJobId")
 92
 93        status = d.pop("status")
 94
 95        requested_at = isoparse(d.pop("requestedAt"))
 96
 97        _started_at = d.pop("startedAt", UNSET)
 98        started_at: Union[Unset, datetime.datetime]
 99        if isinstance(_started_at, Unset):
100            started_at = UNSET
101        else:
102            started_at = isoparse(_started_at)
103
104        _stopped_at = d.pop("stoppedAt", UNSET)
105        stopped_at: Union[Unset, datetime.datetime]
106        if isinstance(_stopped_at, Unset):
107            stopped_at = UNSET
108        else:
109            stopped_at = isoparse(_stopped_at)
110
111        container_image = d.pop("containerImage", UNSET)
112
113        command_line = d.pop("commandLine", UNSET)
114
115        log_location = d.pop("logLocation", UNSET)
116
117        task = cls(
118            name=name,
119            native_job_id=native_job_id,
120            status=status,
121            requested_at=requested_at,
122            started_at=started_at,
123            stopped_at=stopped_at,
124            container_image=container_image,
125            command_line=command_line,
126            log_location=log_location,
127        )
128
129        task.additional_properties = d
130        return task
131
132    @property
133    def additional_keys(self) -> List[str]:
134        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • native_job_id (str):
  • status (str):
  • requested_at (datetime.datetime):
  • started_at (Union[Unset, datetime.datetime]):
  • stopped_at (Union[Unset, datetime.datetime]):
  • container_image (Union[Unset, str]):
  • command_line (Union[Unset, str]):
  • log_location (Union[Unset, str]):
Task( name: str, native_job_id: str, status: str, requested_at: datetime.datetime, started_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, stopped_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>, container_image: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, command_line: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, log_location: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>)
32def __init__(self, name, native_job_id, status, requested_at, started_at=attr_dict['started_at'].default, stopped_at=attr_dict['stopped_at'].default, container_image=attr_dict['container_image'].default, command_line=attr_dict['command_line'].default, log_location=attr_dict['log_location'].default):
33    self.name = name
34    self.native_job_id = native_job_id
35    self.status = status
36    self.requested_at = requested_at
37    self.started_at = started_at
38    self.stopped_at = stopped_at
39    self.container_image = container_image
40    self.command_line = command_line
41    self.log_location = log_location
42    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class Task.

name: str
native_job_id: str
status: str
requested_at: datetime.datetime
started_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
stopped_at: Union[cirro_api_client.v1.types.Unset, datetime.datetime]
container_image: Union[cirro_api_client.v1.types.Unset, str]
command_line: Union[cirro_api_client.v1.types.Unset, str]
log_location: Union[cirro_api_client.v1.types.Unset, str]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
40    def to_dict(self) -> Dict[str, Any]:
41        name = self.name
42
43        native_job_id = self.native_job_id
44
45        status = self.status
46
47        requested_at = self.requested_at.isoformat()
48
49        started_at: Union[Unset, str] = UNSET
50        if not isinstance(self.started_at, Unset):
51            started_at = self.started_at.isoformat()
52
53        stopped_at: Union[Unset, str] = UNSET
54        if not isinstance(self.stopped_at, Unset):
55            stopped_at = self.stopped_at.isoformat()
56
57        container_image = self.container_image
58
59        command_line = self.command_line
60
61        log_location = self.log_location
62
63        field_dict: Dict[str, Any] = {}
64        field_dict.update(self.additional_properties)
65        field_dict.update(
66            {
67                "name": name,
68                "nativeJobId": native_job_id,
69                "status": status,
70                "requestedAt": requested_at,
71            }
72        )
73        if started_at is not UNSET:
74            field_dict["startedAt"] = started_at
75        if stopped_at is not UNSET:
76            field_dict["stoppedAt"] = stopped_at
77        if container_image is not UNSET:
78            field_dict["containerImage"] = container_image
79        if command_line is not UNSET:
80            field_dict["commandLine"] = command_line
81        if log_location is not UNSET:
82            field_dict["logLocation"] = log_location
83
84        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 86    @classmethod
 87    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 88        d = src_dict.copy()
 89        name = d.pop("name")
 90
 91        native_job_id = d.pop("nativeJobId")
 92
 93        status = d.pop("status")
 94
 95        requested_at = isoparse(d.pop("requestedAt"))
 96
 97        _started_at = d.pop("startedAt", UNSET)
 98        started_at: Union[Unset, datetime.datetime]
 99        if isinstance(_started_at, Unset):
100            started_at = UNSET
101        else:
102            started_at = isoparse(_started_at)
103
104        _stopped_at = d.pop("stoppedAt", UNSET)
105        stopped_at: Union[Unset, datetime.datetime]
106        if isinstance(_stopped_at, Unset):
107            stopped_at = UNSET
108        else:
109            stopped_at = isoparse(_stopped_at)
110
111        container_image = d.pop("containerImage", UNSET)
112
113        command_line = d.pop("commandLine", UNSET)
114
115        log_location = d.pop("logLocation", UNSET)
116
117        task = cls(
118            name=name,
119            native_job_id=native_job_id,
120            status=status,
121            requested_at=requested_at,
122            started_at=started_at,
123            stopped_at=stopped_at,
124            container_image=container_image,
125            command_line=command_line,
126            log_location=log_location,
127        )
128
129        task.additional_properties = d
130        return task
additional_keys: List[str]
132    @property
133    def additional_keys(self) -> List[str]:
134        return list(self.additional_properties.keys())
class TenantInfo:
 15@_attrs_define
 16class TenantInfo:
 17    """
 18    Attributes:
 19        id (str):
 20        name (str):
 21        description (str):
 22        location (str):
 23        contact_email (str):
 24        tenant_logo_url (str):
 25        terms_of_service_url (str):
 26        privacy_policy_url (str):
 27        login_providers (List['LoginProvider']):
 28        features (FeatureFlags):
 29    """
 30
 31    id: str
 32    name: str
 33    description: str
 34    location: str
 35    contact_email: str
 36    tenant_logo_url: str
 37    terms_of_service_url: str
 38    privacy_policy_url: str
 39    login_providers: List["LoginProvider"]
 40    features: "FeatureFlags"
 41    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 42
 43    def to_dict(self) -> Dict[str, Any]:
 44        id = self.id
 45
 46        name = self.name
 47
 48        description = self.description
 49
 50        location = self.location
 51
 52        contact_email = self.contact_email
 53
 54        tenant_logo_url = self.tenant_logo_url
 55
 56        terms_of_service_url = self.terms_of_service_url
 57
 58        privacy_policy_url = self.privacy_policy_url
 59
 60        login_providers = []
 61        for login_providers_item_data in self.login_providers:
 62            login_providers_item = login_providers_item_data.to_dict()
 63            login_providers.append(login_providers_item)
 64
 65        features = self.features.to_dict()
 66
 67        field_dict: Dict[str, Any] = {}
 68        field_dict.update(self.additional_properties)
 69        field_dict.update(
 70            {
 71                "id": id,
 72                "name": name,
 73                "description": description,
 74                "location": location,
 75                "contactEmail": contact_email,
 76                "tenantLogoUrl": tenant_logo_url,
 77                "termsOfServiceUrl": terms_of_service_url,
 78                "privacyPolicyUrl": privacy_policy_url,
 79                "loginProviders": login_providers,
 80                "features": features,
 81            }
 82        )
 83
 84        return field_dict
 85
 86    @classmethod
 87    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 88        from ..models.feature_flags import FeatureFlags
 89        from ..models.login_provider import LoginProvider
 90
 91        d = src_dict.copy()
 92        id = d.pop("id")
 93
 94        name = d.pop("name")
 95
 96        description = d.pop("description")
 97
 98        location = d.pop("location")
 99
100        contact_email = d.pop("contactEmail")
101
102        tenant_logo_url = d.pop("tenantLogoUrl")
103
104        terms_of_service_url = d.pop("termsOfServiceUrl")
105
106        privacy_policy_url = d.pop("privacyPolicyUrl")
107
108        login_providers = []
109        _login_providers = d.pop("loginProviders")
110        for login_providers_item_data in _login_providers:
111            login_providers_item = LoginProvider.from_dict(login_providers_item_data)
112
113            login_providers.append(login_providers_item)
114
115        features = FeatureFlags.from_dict(d.pop("features"))
116
117        tenant_info = cls(
118            id=id,
119            name=name,
120            description=description,
121            location=location,
122            contact_email=contact_email,
123            tenant_logo_url=tenant_logo_url,
124            terms_of_service_url=terms_of_service_url,
125            privacy_policy_url=privacy_policy_url,
126            login_providers=login_providers,
127            features=features,
128        )
129
130        tenant_info.additional_properties = d
131        return tenant_info
132
133    @property
134    def additional_keys(self) -> List[str]:
135        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • name (str):
  • description (str):
  • location (str):
  • contact_email (str):
  • tenant_logo_url (str):
  • terms_of_service_url (str):
  • privacy_policy_url (str):
  • login_providers (List['LoginProvider']):
  • features (FeatureFlags):
TenantInfo( id: str, name: str, description: str, location: str, contact_email: str, tenant_logo_url: str, terms_of_service_url: str, privacy_policy_url: str, login_providers: List[LoginProvider], features: FeatureFlags)
33def __init__(self, id, name, description, location, contact_email, tenant_logo_url, terms_of_service_url, privacy_policy_url, login_providers, features):
34    self.id = id
35    self.name = name
36    self.description = description
37    self.location = location
38    self.contact_email = contact_email
39    self.tenant_logo_url = tenant_logo_url
40    self.terms_of_service_url = terms_of_service_url
41    self.privacy_policy_url = privacy_policy_url
42    self.login_providers = login_providers
43    self.features = features
44    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class TenantInfo.

id: str
name: str
description: str
location: str
contact_email: str
tenant_logo_url: str
terms_of_service_url: str
privacy_policy_url: str
login_providers: List[LoginProvider]
features: FeatureFlags
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
43    def to_dict(self) -> Dict[str, Any]:
44        id = self.id
45
46        name = self.name
47
48        description = self.description
49
50        location = self.location
51
52        contact_email = self.contact_email
53
54        tenant_logo_url = self.tenant_logo_url
55
56        terms_of_service_url = self.terms_of_service_url
57
58        privacy_policy_url = self.privacy_policy_url
59
60        login_providers = []
61        for login_providers_item_data in self.login_providers:
62            login_providers_item = login_providers_item_data.to_dict()
63            login_providers.append(login_providers_item)
64
65        features = self.features.to_dict()
66
67        field_dict: Dict[str, Any] = {}
68        field_dict.update(self.additional_properties)
69        field_dict.update(
70            {
71                "id": id,
72                "name": name,
73                "description": description,
74                "location": location,
75                "contactEmail": contact_email,
76                "tenantLogoUrl": tenant_logo_url,
77                "termsOfServiceUrl": terms_of_service_url,
78                "privacyPolicyUrl": privacy_policy_url,
79                "loginProviders": login_providers,
80                "features": features,
81            }
82        )
83
84        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 86    @classmethod
 87    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 88        from ..models.feature_flags import FeatureFlags
 89        from ..models.login_provider import LoginProvider
 90
 91        d = src_dict.copy()
 92        id = d.pop("id")
 93
 94        name = d.pop("name")
 95
 96        description = d.pop("description")
 97
 98        location = d.pop("location")
 99
100        contact_email = d.pop("contactEmail")
101
102        tenant_logo_url = d.pop("tenantLogoUrl")
103
104        terms_of_service_url = d.pop("termsOfServiceUrl")
105
106        privacy_policy_url = d.pop("privacyPolicyUrl")
107
108        login_providers = []
109        _login_providers = d.pop("loginProviders")
110        for login_providers_item_data in _login_providers:
111            login_providers_item = LoginProvider.from_dict(login_providers_item_data)
112
113            login_providers.append(login_providers_item)
114
115        features = FeatureFlags.from_dict(d.pop("features"))
116
117        tenant_info = cls(
118            id=id,
119            name=name,
120            description=description,
121            location=location,
122            contact_email=contact_email,
123            tenant_logo_url=tenant_logo_url,
124            terms_of_service_url=terms_of_service_url,
125            privacy_policy_url=privacy_policy_url,
126            login_providers=login_providers,
127            features=features,
128        )
129
130        tenant_info.additional_properties = d
131        return tenant_info
additional_keys: List[str]
133    @property
134    def additional_keys(self) -> List[str]:
135        return list(self.additional_properties.keys())
class UpdateDatasetRequest:
14@_attrs_define
15class UpdateDatasetRequest:
16    """
17    Attributes:
18        name (str):
19        description (str):
20        process_id (str):
21        tags (List['Tag']):
22    """
23
24    name: str
25    description: str
26    process_id: str
27    tags: List["Tag"]
28    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        process_id = self.process_id
36
37        tags = []
38        for tags_item_data in self.tags:
39            tags_item = tags_item_data.to_dict()
40            tags.append(tags_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "name": name,
47                "description": description,
48                "processId": process_id,
49                "tags": tags,
50            }
51        )
52
53        return field_dict
54
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.tag import Tag
58
59        d = src_dict.copy()
60        name = d.pop("name")
61
62        description = d.pop("description")
63
64        process_id = d.pop("processId")
65
66        tags = []
67        _tags = d.pop("tags")
68        for tags_item_data in _tags:
69            tags_item = Tag.from_dict(tags_item_data)
70
71            tags.append(tags_item)
72
73        update_dataset_request = cls(
74            name=name,
75            description=description,
76            process_id=process_id,
77            tags=tags,
78        )
79
80        update_dataset_request.additional_properties = d
81        return update_dataset_request
82
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • description (str):
  • process_id (str):
  • tags (List['Tag']):
UpdateDatasetRequest( name: str, description: str, process_id: str, tags: List[Tag])
27def __init__(self, name, description, process_id, tags):
28    self.name = name
29    self.description = description
30    self.process_id = process_id
31    self.tags = tags
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UpdateDatasetRequest.

name: str
description: str
process_id: str
tags: List[Tag]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
30    def to_dict(self) -> Dict[str, Any]:
31        name = self.name
32
33        description = self.description
34
35        process_id = self.process_id
36
37        tags = []
38        for tags_item_data in self.tags:
39            tags_item = tags_item_data.to_dict()
40            tags.append(tags_item)
41
42        field_dict: Dict[str, Any] = {}
43        field_dict.update(self.additional_properties)
44        field_dict.update(
45            {
46                "name": name,
47                "description": description,
48                "processId": process_id,
49                "tags": tags,
50            }
51        )
52
53        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
55    @classmethod
56    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57        from ..models.tag import Tag
58
59        d = src_dict.copy()
60        name = d.pop("name")
61
62        description = d.pop("description")
63
64        process_id = d.pop("processId")
65
66        tags = []
67        _tags = d.pop("tags")
68        for tags_item_data in _tags:
69            tags_item = Tag.from_dict(tags_item_data)
70
71            tags.append(tags_item)
72
73        update_dataset_request = cls(
74            name=name,
75            description=description,
76            process_id=process_id,
77            tags=tags,
78        )
79
80        update_dataset_request.additional_properties = d
81        return update_dataset_request
additional_keys: List[str]
83    @property
84    def additional_keys(self) -> List[str]:
85        return list(self.additional_properties.keys())
class UpdateUserRequest:
 16@_attrs_define
 17class UpdateUserRequest:
 18    """
 19    Attributes:
 20        name (str): Display name of the user
 21        email (str): Email address of the user
 22        phone (Union[Unset, str]): Phone number of the user
 23        department (Union[Unset, str]): Department or lab the user belongs to
 24        job_title (Union[Unset, str]): Job title or role of the user
 25        organization (Union[Unset, str]): The organization the user belongs to, only editable by administrators
 26        settings (Union['UserSettings', None, Unset]):
 27        groups (Union[Unset, List[str]]): Groups the user belongs to, only editable by administrators
 28    """
 29
 30    name: str
 31    email: str
 32    phone: Union[Unset, str] = UNSET
 33    department: Union[Unset, str] = UNSET
 34    job_title: Union[Unset, str] = UNSET
 35    organization: Union[Unset, str] = UNSET
 36    settings: Union["UserSettings", None, Unset] = UNSET
 37    groups: Union[Unset, List[str]] = UNSET
 38    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 39
 40    def to_dict(self) -> Dict[str, Any]:
 41        from ..models.user_settings import UserSettings
 42
 43        name = self.name
 44
 45        email = self.email
 46
 47        phone = self.phone
 48
 49        department = self.department
 50
 51        job_title = self.job_title
 52
 53        organization = self.organization
 54
 55        settings: Union[Dict[str, Any], None, Unset]
 56        if isinstance(self.settings, Unset):
 57            settings = UNSET
 58        elif isinstance(self.settings, UserSettings):
 59            settings = self.settings.to_dict()
 60        else:
 61            settings = self.settings
 62
 63        groups: Union[Unset, List[str]] = UNSET
 64        if not isinstance(self.groups, Unset):
 65            groups = self.groups
 66
 67        field_dict: Dict[str, Any] = {}
 68        field_dict.update(self.additional_properties)
 69        field_dict.update(
 70            {
 71                "name": name,
 72                "email": email,
 73            }
 74        )
 75        if phone is not UNSET:
 76            field_dict["phone"] = phone
 77        if department is not UNSET:
 78            field_dict["department"] = department
 79        if job_title is not UNSET:
 80            field_dict["jobTitle"] = job_title
 81        if organization is not UNSET:
 82            field_dict["organization"] = organization
 83        if settings is not UNSET:
 84            field_dict["settings"] = settings
 85        if groups is not UNSET:
 86            field_dict["groups"] = groups
 87
 88        return field_dict
 89
 90    @classmethod
 91    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 92        from ..models.user_settings import UserSettings
 93
 94        d = src_dict.copy()
 95        name = d.pop("name")
 96
 97        email = d.pop("email")
 98
 99        phone = d.pop("phone", UNSET)
100
101        department = d.pop("department", UNSET)
102
103        job_title = d.pop("jobTitle", UNSET)
104
105        organization = d.pop("organization", UNSET)
106
107        def _parse_settings(data: object) -> Union["UserSettings", None, Unset]:
108            if data is None:
109                return data
110            if isinstance(data, Unset):
111                return data
112            try:
113                if not isinstance(data, dict):
114                    raise TypeError()
115                settings_type_1 = UserSettings.from_dict(data)
116
117                return settings_type_1
118            except:  # noqa: E722
119                pass
120            return cast(Union["UserSettings", None, Unset], data)
121
122        settings = _parse_settings(d.pop("settings", UNSET))
123
124        groups = cast(List[str], d.pop("groups", UNSET))
125
126        update_user_request = cls(
127            name=name,
128            email=email,
129            phone=phone,
130            department=department,
131            job_title=job_title,
132            organization=organization,
133            settings=settings,
134            groups=groups,
135        )
136
137        update_user_request.additional_properties = d
138        return update_user_request
139
140    @property
141    def additional_keys(self) -> List[str]:
142        return list(self.additional_properties.keys())
Attributes:
  • name (str): Display name of the user
  • email (str): Email address of the user
  • phone (Union[Unset, str]): Phone number of the user
  • department (Union[Unset, str]): Department or lab the user belongs to
  • job_title (Union[Unset, str]): Job title or role of the user
  • organization (Union[Unset, str]): The organization the user belongs to, only editable by administrators
  • settings (Union['UserSettings', None, Unset]):
  • groups (Union[Unset, List[str]]): Groups the user belongs to, only editable by administrators
UpdateUserRequest( name: str, email: str, phone: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, department: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, job_title: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, organization: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, settings: Union[UserSettings, NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>, groups: Union[cirro_api_client.v1.types.Unset, List[str]] = <cirro_api_client.v1.types.Unset object>)
31def __init__(self, name, email, phone=attr_dict['phone'].default, department=attr_dict['department'].default, job_title=attr_dict['job_title'].default, organization=attr_dict['organization'].default, settings=attr_dict['settings'].default, groups=attr_dict['groups'].default):
32    self.name = name
33    self.email = email
34    self.phone = phone
35    self.department = department
36    self.job_title = job_title
37    self.organization = organization
38    self.settings = settings
39    self.groups = groups
40    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UpdateUserRequest.

name: str
email: str
phone: Union[cirro_api_client.v1.types.Unset, str]
department: Union[cirro_api_client.v1.types.Unset, str]
job_title: Union[cirro_api_client.v1.types.Unset, str]
organization: Union[cirro_api_client.v1.types.Unset, str]
settings: Union[UserSettings, NoneType, cirro_api_client.v1.types.Unset]
groups: Union[cirro_api_client.v1.types.Unset, List[str]]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
40    def to_dict(self) -> Dict[str, Any]:
41        from ..models.user_settings import UserSettings
42
43        name = self.name
44
45        email = self.email
46
47        phone = self.phone
48
49        department = self.department
50
51        job_title = self.job_title
52
53        organization = self.organization
54
55        settings: Union[Dict[str, Any], None, Unset]
56        if isinstance(self.settings, Unset):
57            settings = UNSET
58        elif isinstance(self.settings, UserSettings):
59            settings = self.settings.to_dict()
60        else:
61            settings = self.settings
62
63        groups: Union[Unset, List[str]] = UNSET
64        if not isinstance(self.groups, Unset):
65            groups = self.groups
66
67        field_dict: Dict[str, Any] = {}
68        field_dict.update(self.additional_properties)
69        field_dict.update(
70            {
71                "name": name,
72                "email": email,
73            }
74        )
75        if phone is not UNSET:
76            field_dict["phone"] = phone
77        if department is not UNSET:
78            field_dict["department"] = department
79        if job_title is not UNSET:
80            field_dict["jobTitle"] = job_title
81        if organization is not UNSET:
82            field_dict["organization"] = organization
83        if settings is not UNSET:
84            field_dict["settings"] = settings
85        if groups is not UNSET:
86            field_dict["groups"] = groups
87
88        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 90    @classmethod
 91    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 92        from ..models.user_settings import UserSettings
 93
 94        d = src_dict.copy()
 95        name = d.pop("name")
 96
 97        email = d.pop("email")
 98
 99        phone = d.pop("phone", UNSET)
100
101        department = d.pop("department", UNSET)
102
103        job_title = d.pop("jobTitle", UNSET)
104
105        organization = d.pop("organization", UNSET)
106
107        def _parse_settings(data: object) -> Union["UserSettings", None, Unset]:
108            if data is None:
109                return data
110            if isinstance(data, Unset):
111                return data
112            try:
113                if not isinstance(data, dict):
114                    raise TypeError()
115                settings_type_1 = UserSettings.from_dict(data)
116
117                return settings_type_1
118            except:  # noqa: E722
119                pass
120            return cast(Union["UserSettings", None, Unset], data)
121
122        settings = _parse_settings(d.pop("settings", UNSET))
123
124        groups = cast(List[str], d.pop("groups", UNSET))
125
126        update_user_request = cls(
127            name=name,
128            email=email,
129            phone=phone,
130            department=department,
131            job_title=job_title,
132            organization=organization,
133            settings=settings,
134            groups=groups,
135        )
136
137        update_user_request.additional_properties = d
138        return update_user_request
additional_keys: List[str]
140    @property
141    def additional_keys(self) -> List[str]:
142        return list(self.additional_properties.keys())
class UploadDatasetCreateResponse:
10@_attrs_define
11class UploadDatasetCreateResponse:
12    """
13    Attributes:
14        id (str):
15        message (str):
16        upload_path (str):
17        bucket (str):
18    """
19
20    id: str
21    message: str
22    upload_path: str
23    bucket: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        id = self.id
28
29        message = self.message
30
31        upload_path = self.upload_path
32
33        bucket = self.bucket
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "id": id,
40                "message": message,
41                "uploadPath": upload_path,
42                "bucket": bucket,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        id = d.pop("id")
52
53        message = d.pop("message")
54
55        upload_path = d.pop("uploadPath")
56
57        bucket = d.pop("bucket")
58
59        upload_dataset_create_response = cls(
60            id=id,
61            message=message,
62            upload_path=upload_path,
63            bucket=bucket,
64        )
65
66        upload_dataset_create_response.additional_properties = d
67        return upload_dataset_create_response
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • id (str):
  • message (str):
  • upload_path (str):
  • bucket (str):
UploadDatasetCreateResponse(id: str, message: str, upload_path: str, bucket: str)
27def __init__(self, id, message, upload_path, bucket):
28    self.id = id
29    self.message = message
30    self.upload_path = upload_path
31    self.bucket = bucket
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UploadDatasetCreateResponse.

id: str
message: str
upload_path: str
bucket: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        id = self.id
28
29        message = self.message
30
31        upload_path = self.upload_path
32
33        bucket = self.bucket
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "id": id,
40                "message": message,
41                "uploadPath": upload_path,
42                "bucket": bucket,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        id = d.pop("id")
52
53        message = d.pop("message")
54
55        upload_path = d.pop("uploadPath")
56
57        bucket = d.pop("bucket")
58
59        upload_dataset_create_response = cls(
60            id=id,
61            message=message,
62            upload_path=upload_path,
63            bucket=bucket,
64        )
65
66        upload_dataset_create_response.additional_properties = d
67        return upload_dataset_create_response
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class UploadDatasetRequest:
 16@_attrs_define
 17class UploadDatasetRequest:
 18    """
 19    Attributes:
 20        name (str): Name of the dataset
 21        process_id (str): ID of the ingest process Example: paired_dnaseq.
 22        expected_files (List[str]):
 23        description (Union[Unset, str]): Description of the dataset
 24        tags (Union[List['Tag'], None, Unset]): List of tags to apply to the dataset
 25    """
 26
 27    name: str
 28    process_id: str
 29    expected_files: List[str]
 30    description: Union[Unset, str] = UNSET
 31    tags: Union[List["Tag"], None, Unset] = UNSET
 32    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 33
 34    def to_dict(self) -> Dict[str, Any]:
 35        name = self.name
 36
 37        process_id = self.process_id
 38
 39        expected_files = self.expected_files
 40
 41        description = self.description
 42
 43        tags: Union[List[Dict[str, Any]], None, Unset]
 44        if isinstance(self.tags, Unset):
 45            tags = UNSET
 46        elif isinstance(self.tags, list):
 47            tags = []
 48            for tags_type_0_item_data in self.tags:
 49                tags_type_0_item = tags_type_0_item_data.to_dict()
 50                tags.append(tags_type_0_item)
 51
 52        else:
 53            tags = self.tags
 54
 55        field_dict: Dict[str, Any] = {}
 56        field_dict.update(self.additional_properties)
 57        field_dict.update(
 58            {
 59                "name": name,
 60                "processId": process_id,
 61                "expectedFiles": expected_files,
 62            }
 63        )
 64        if description is not UNSET:
 65            field_dict["description"] = description
 66        if tags is not UNSET:
 67            field_dict["tags"] = tags
 68
 69        return field_dict
 70
 71    @classmethod
 72    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 73        from ..models.tag import Tag
 74
 75        d = src_dict.copy()
 76        name = d.pop("name")
 77
 78        process_id = d.pop("processId")
 79
 80        expected_files = cast(List[str], d.pop("expectedFiles"))
 81
 82        description = d.pop("description", UNSET)
 83
 84        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
 85            if data is None:
 86                return data
 87            if isinstance(data, Unset):
 88                return data
 89            try:
 90                if not isinstance(data, list):
 91                    raise TypeError()
 92                tags_type_0 = []
 93                _tags_type_0 = data
 94                for tags_type_0_item_data in _tags_type_0:
 95                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
 96
 97                    tags_type_0.append(tags_type_0_item)
 98
 99                return tags_type_0
100            except:  # noqa: E722
101                pass
102            return cast(Union[List["Tag"], None, Unset], data)
103
104        tags = _parse_tags(d.pop("tags", UNSET))
105
106        upload_dataset_request = cls(
107            name=name,
108            process_id=process_id,
109            expected_files=expected_files,
110            description=description,
111            tags=tags,
112        )
113
114        upload_dataset_request.additional_properties = d
115        return upload_dataset_request
116
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
Attributes:
  • name (str): Name of the dataset
  • process_id (str): ID of the ingest process Example: paired_dnaseq.
  • expected_files (List[str]):
  • description (Union[Unset, str]): Description of the dataset
  • tags (Union[List['Tag'], None, Unset]): List of tags to apply to the dataset
UploadDatasetRequest( name: str, process_id: str, expected_files: List[str], description: Union[cirro_api_client.v1.types.Unset, str] = <cirro_api_client.v1.types.Unset object>, tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset] = <cirro_api_client.v1.types.Unset object>)
28def __init__(self, name, process_id, expected_files, description=attr_dict['description'].default, tags=attr_dict['tags'].default):
29    self.name = name
30    self.process_id = process_id
31    self.expected_files = expected_files
32    self.description = description
33    self.tags = tags
34    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UploadDatasetRequest.

name: str
process_id: str
expected_files: List[str]
description: Union[cirro_api_client.v1.types.Unset, str]
tags: Union[List[Tag], NoneType, cirro_api_client.v1.types.Unset]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
34    def to_dict(self) -> Dict[str, Any]:
35        name = self.name
36
37        process_id = self.process_id
38
39        expected_files = self.expected_files
40
41        description = self.description
42
43        tags: Union[List[Dict[str, Any]], None, Unset]
44        if isinstance(self.tags, Unset):
45            tags = UNSET
46        elif isinstance(self.tags, list):
47            tags = []
48            for tags_type_0_item_data in self.tags:
49                tags_type_0_item = tags_type_0_item_data.to_dict()
50                tags.append(tags_type_0_item)
51
52        else:
53            tags = self.tags
54
55        field_dict: Dict[str, Any] = {}
56        field_dict.update(self.additional_properties)
57        field_dict.update(
58            {
59                "name": name,
60                "processId": process_id,
61                "expectedFiles": expected_files,
62            }
63        )
64        if description is not UNSET:
65            field_dict["description"] = description
66        if tags is not UNSET:
67            field_dict["tags"] = tags
68
69        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
 71    @classmethod
 72    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
 73        from ..models.tag import Tag
 74
 75        d = src_dict.copy()
 76        name = d.pop("name")
 77
 78        process_id = d.pop("processId")
 79
 80        expected_files = cast(List[str], d.pop("expectedFiles"))
 81
 82        description = d.pop("description", UNSET)
 83
 84        def _parse_tags(data: object) -> Union[List["Tag"], None, Unset]:
 85            if data is None:
 86                return data
 87            if isinstance(data, Unset):
 88                return data
 89            try:
 90                if not isinstance(data, list):
 91                    raise TypeError()
 92                tags_type_0 = []
 93                _tags_type_0 = data
 94                for tags_type_0_item_data in _tags_type_0:
 95                    tags_type_0_item = Tag.from_dict(tags_type_0_item_data)
 96
 97                    tags_type_0.append(tags_type_0_item)
 98
 99                return tags_type_0
100            except:  # noqa: E722
101                pass
102            return cast(Union[List["Tag"], None, Unset], data)
103
104        tags = _parse_tags(d.pop("tags", UNSET))
105
106        upload_dataset_request = cls(
107            name=name,
108            process_id=process_id,
109            expected_files=expected_files,
110            description=description,
111            tags=tags,
112        )
113
114        upload_dataset_request.additional_properties = d
115        return upload_dataset_request
additional_keys: List[str]
117    @property
118    def additional_keys(self) -> List[str]:
119        return list(self.additional_properties.keys())
class User:
10@_attrs_define
11class User:
12    """
13    Attributes:
14        name (str):
15        username (str):
16        organization (str):
17        department (str):
18    """
19
20    name: str
21    username: str
22    organization: str
23    department: str
24    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        username = self.username
30
31        organization = self.organization
32
33        department = self.department
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "username": username,
41                "organization": organization,
42                "department": department,
43            }
44        )
45
46        return field_dict
47
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        username = d.pop("username")
54
55        organization = d.pop("organization")
56
57        department = d.pop("department")
58
59        user = cls(
60            name=name,
61            username=username,
62            organization=organization,
63            department=department,
64        )
65
66        user.additional_properties = d
67        return user
68
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
Attributes:
  • name (str):
  • username (str):
  • organization (str):
  • department (str):
User(name: str, username: str, organization: str, department: str)
27def __init__(self, name, username, organization, department):
28    self.name = name
29    self.username = username
30    self.organization = organization
31    self.department = department
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class User.

name: str
username: str
organization: str
department: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
26    def to_dict(self) -> Dict[str, Any]:
27        name = self.name
28
29        username = self.username
30
31        organization = self.organization
32
33        department = self.department
34
35        field_dict: Dict[str, Any] = {}
36        field_dict.update(self.additional_properties)
37        field_dict.update(
38            {
39                "name": name,
40                "username": username,
41                "organization": organization,
42                "department": department,
43            }
44        )
45
46        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
48    @classmethod
49    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
50        d = src_dict.copy()
51        name = d.pop("name")
52
53        username = d.pop("username")
54
55        organization = d.pop("organization")
56
57        department = d.pop("department")
58
59        user = cls(
60            name=name,
61            username=username,
62            organization=organization,
63            department=department,
64        )
65
66        user.additional_properties = d
67        return user
additional_keys: List[str]
69    @property
70    def additional_keys(self) -> List[str]:
71        return list(self.additional_properties.keys())
class UserDetail:
 19@_attrs_define
 20class UserDetail:
 21    """
 22    Attributes:
 23        username (str):
 24        name (str):
 25        phone (str):
 26        email (str):
 27        organization (str):
 28        job_title (str):
 29        department (str):
 30        invited_by (str):
 31        project_assignments (List['UserProjectAssignment']):
 32        groups (List[str]):
 33        settings (UserSettings): Additional settings for the user
 34        sign_up_time (Union[None, Unset, datetime.datetime]):
 35    """
 36
 37    username: str
 38    name: str
 39    phone: str
 40    email: str
 41    organization: str
 42    job_title: str
 43    department: str
 44    invited_by: str
 45    project_assignments: List["UserProjectAssignment"]
 46    groups: List[str]
 47    settings: "UserSettings"
 48    sign_up_time: Union[None, Unset, datetime.datetime] = UNSET
 49    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
 50
 51    def to_dict(self) -> Dict[str, Any]:
 52        username = self.username
 53
 54        name = self.name
 55
 56        phone = self.phone
 57
 58        email = self.email
 59
 60        organization = self.organization
 61
 62        job_title = self.job_title
 63
 64        department = self.department
 65
 66        invited_by = self.invited_by
 67
 68        project_assignments = []
 69        for project_assignments_item_data in self.project_assignments:
 70            project_assignments_item = project_assignments_item_data.to_dict()
 71            project_assignments.append(project_assignments_item)
 72
 73        groups = self.groups
 74
 75        settings = self.settings.to_dict()
 76
 77        sign_up_time: Union[None, Unset, str]
 78        if isinstance(self.sign_up_time, Unset):
 79            sign_up_time = UNSET
 80        elif isinstance(self.sign_up_time, datetime.datetime):
 81            sign_up_time = self.sign_up_time.isoformat()
 82        else:
 83            sign_up_time = self.sign_up_time
 84
 85        field_dict: Dict[str, Any] = {}
 86        field_dict.update(self.additional_properties)
 87        field_dict.update(
 88            {
 89                "username": username,
 90                "name": name,
 91                "phone": phone,
 92                "email": email,
 93                "organization": organization,
 94                "jobTitle": job_title,
 95                "department": department,
 96                "invitedBy": invited_by,
 97                "projectAssignments": project_assignments,
 98                "groups": groups,
 99                "settings": settings,
100            }
101        )
102        if sign_up_time is not UNSET:
103            field_dict["signUpTime"] = sign_up_time
104
105        return field_dict
106
107    @classmethod
108    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
109        from ..models.user_project_assignment import UserProjectAssignment
110        from ..models.user_settings import UserSettings
111
112        d = src_dict.copy()
113        username = d.pop("username")
114
115        name = d.pop("name")
116
117        phone = d.pop("phone")
118
119        email = d.pop("email")
120
121        organization = d.pop("organization")
122
123        job_title = d.pop("jobTitle")
124
125        department = d.pop("department")
126
127        invited_by = d.pop("invitedBy")
128
129        project_assignments = []
130        _project_assignments = d.pop("projectAssignments")
131        for project_assignments_item_data in _project_assignments:
132            project_assignments_item = UserProjectAssignment.from_dict(project_assignments_item_data)
133
134            project_assignments.append(project_assignments_item)
135
136        groups = cast(List[str], d.pop("groups"))
137
138        settings = UserSettings.from_dict(d.pop("settings"))
139
140        def _parse_sign_up_time(data: object) -> Union[None, Unset, datetime.datetime]:
141            if data is None:
142                return data
143            if isinstance(data, Unset):
144                return data
145            try:
146                if not isinstance(data, str):
147                    raise TypeError()
148                sign_up_time_type_0 = isoparse(data)
149
150                return sign_up_time_type_0
151            except:  # noqa: E722
152                pass
153            return cast(Union[None, Unset, datetime.datetime], data)
154
155        sign_up_time = _parse_sign_up_time(d.pop("signUpTime", UNSET))
156
157        user_detail = cls(
158            username=username,
159            name=name,
160            phone=phone,
161            email=email,
162            organization=organization,
163            job_title=job_title,
164            department=department,
165            invited_by=invited_by,
166            project_assignments=project_assignments,
167            groups=groups,
168            settings=settings,
169            sign_up_time=sign_up_time,
170        )
171
172        user_detail.additional_properties = d
173        return user_detail
174
175    @property
176    def additional_keys(self) -> List[str]:
177        return list(self.additional_properties.keys())
Attributes:
  • username (str):
  • name (str):
  • phone (str):
  • email (str):
  • organization (str):
  • job_title (str):
  • department (str):
  • invited_by (str):
  • project_assignments (List['UserProjectAssignment']):
  • groups (List[str]):
  • settings (UserSettings): Additional settings for the user
  • sign_up_time (Union[None, Unset, datetime.datetime]):
UserDetail( username: str, name: str, phone: str, email: str, organization: str, job_title: str, department: str, invited_by: str, project_assignments: List[UserProjectAssignment], groups: List[str], settings: UserSettings, sign_up_time: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
35def __init__(self, username, name, phone, email, organization, job_title, department, invited_by, project_assignments, groups, settings, sign_up_time=attr_dict['sign_up_time'].default):
36    self.username = username
37    self.name = name
38    self.phone = phone
39    self.email = email
40    self.organization = organization
41    self.job_title = job_title
42    self.department = department
43    self.invited_by = invited_by
44    self.project_assignments = project_assignments
45    self.groups = groups
46    self.settings = settings
47    self.sign_up_time = sign_up_time
48    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UserDetail.

username: str
name: str
phone: str
email: str
organization: str
job_title: str
department: str
invited_by: str
project_assignments: List[UserProjectAssignment]
groups: List[str]
settings: UserSettings
sign_up_time: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
 51    def to_dict(self) -> Dict[str, Any]:
 52        username = self.username
 53
 54        name = self.name
 55
 56        phone = self.phone
 57
 58        email = self.email
 59
 60        organization = self.organization
 61
 62        job_title = self.job_title
 63
 64        department = self.department
 65
 66        invited_by = self.invited_by
 67
 68        project_assignments = []
 69        for project_assignments_item_data in self.project_assignments:
 70            project_assignments_item = project_assignments_item_data.to_dict()
 71            project_assignments.append(project_assignments_item)
 72
 73        groups = self.groups
 74
 75        settings = self.settings.to_dict()
 76
 77        sign_up_time: Union[None, Unset, str]
 78        if isinstance(self.sign_up_time, Unset):
 79            sign_up_time = UNSET
 80        elif isinstance(self.sign_up_time, datetime.datetime):
 81            sign_up_time = self.sign_up_time.isoformat()
 82        else:
 83            sign_up_time = self.sign_up_time
 84
 85        field_dict: Dict[str, Any] = {}
 86        field_dict.update(self.additional_properties)
 87        field_dict.update(
 88            {
 89                "username": username,
 90                "name": name,
 91                "phone": phone,
 92                "email": email,
 93                "organization": organization,
 94                "jobTitle": job_title,
 95                "department": department,
 96                "invitedBy": invited_by,
 97                "projectAssignments": project_assignments,
 98                "groups": groups,
 99                "settings": settings,
100            }
101        )
102        if sign_up_time is not UNSET:
103            field_dict["signUpTime"] = sign_up_time
104
105        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
107    @classmethod
108    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
109        from ..models.user_project_assignment import UserProjectAssignment
110        from ..models.user_settings import UserSettings
111
112        d = src_dict.copy()
113        username = d.pop("username")
114
115        name = d.pop("name")
116
117        phone = d.pop("phone")
118
119        email = d.pop("email")
120
121        organization = d.pop("organization")
122
123        job_title = d.pop("jobTitle")
124
125        department = d.pop("department")
126
127        invited_by = d.pop("invitedBy")
128
129        project_assignments = []
130        _project_assignments = d.pop("projectAssignments")
131        for project_assignments_item_data in _project_assignments:
132            project_assignments_item = UserProjectAssignment.from_dict(project_assignments_item_data)
133
134            project_assignments.append(project_assignments_item)
135
136        groups = cast(List[str], d.pop("groups"))
137
138        settings = UserSettings.from_dict(d.pop("settings"))
139
140        def _parse_sign_up_time(data: object) -> Union[None, Unset, datetime.datetime]:
141            if data is None:
142                return data
143            if isinstance(data, Unset):
144                return data
145            try:
146                if not isinstance(data, str):
147                    raise TypeError()
148                sign_up_time_type_0 = isoparse(data)
149
150                return sign_up_time_type_0
151            except:  # noqa: E722
152                pass
153            return cast(Union[None, Unset, datetime.datetime], data)
154
155        sign_up_time = _parse_sign_up_time(d.pop("signUpTime", UNSET))
156
157        user_detail = cls(
158            username=username,
159            name=name,
160            phone=phone,
161            email=email,
162            organization=organization,
163            job_title=job_title,
164            department=department,
165            invited_by=invited_by,
166            project_assignments=project_assignments,
167            groups=groups,
168            settings=settings,
169            sign_up_time=sign_up_time,
170        )
171
172        user_detail.additional_properties = d
173        return user_detail
additional_keys: List[str]
175    @property
176    def additional_keys(self) -> List[str]:
177        return list(self.additional_properties.keys())
class UserProjectAssignment:
15@_attrs_define
16class UserProjectAssignment:
17    """
18    Attributes:
19        project_id (str):
20        role (ProjectRole):
21        created_by (str):
22        created_at (Union[None, Unset, datetime.datetime]):
23    """
24
25    project_id: str
26    role: ProjectRole
27    created_by: str
28    created_at: Union[None, Unset, datetime.datetime] = UNSET
29    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
30
31    def to_dict(self) -> Dict[str, Any]:
32        project_id = self.project_id
33
34        role = self.role.value
35
36        created_by = self.created_by
37
38        created_at: Union[None, Unset, str]
39        if isinstance(self.created_at, Unset):
40            created_at = UNSET
41        elif isinstance(self.created_at, datetime.datetime):
42            created_at = self.created_at.isoformat()
43        else:
44            created_at = self.created_at
45
46        field_dict: Dict[str, Any] = {}
47        field_dict.update(self.additional_properties)
48        field_dict.update(
49            {
50                "projectId": project_id,
51                "role": role,
52                "createdBy": created_by,
53            }
54        )
55        if created_at is not UNSET:
56            field_dict["createdAt"] = created_at
57
58        return field_dict
59
60    @classmethod
61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
62        d = src_dict.copy()
63        project_id = d.pop("projectId")
64
65        role = ProjectRole(d.pop("role"))
66
67        created_by = d.pop("createdBy")
68
69        def _parse_created_at(data: object) -> Union[None, Unset, datetime.datetime]:
70            if data is None:
71                return data
72            if isinstance(data, Unset):
73                return data
74            try:
75                if not isinstance(data, str):
76                    raise TypeError()
77                created_at_type_0 = isoparse(data)
78
79                return created_at_type_0
80            except:  # noqa: E722
81                pass
82            return cast(Union[None, Unset, datetime.datetime], data)
83
84        created_at = _parse_created_at(d.pop("createdAt", UNSET))
85
86        user_project_assignment = cls(
87            project_id=project_id,
88            role=role,
89            created_by=created_by,
90            created_at=created_at,
91        )
92
93        user_project_assignment.additional_properties = d
94        return user_project_assignment
95
96    @property
97    def additional_keys(self) -> List[str]:
98        return list(self.additional_properties.keys())
Attributes:
  • project_id (str):
  • role (ProjectRole):
  • created_by (str):
  • created_at (Union[None, Unset, datetime.datetime]):
UserProjectAssignment( project_id: str, role: ProjectRole, created_by: str, created_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime] = <cirro_api_client.v1.types.Unset object>)
27def __init__(self, project_id, role, created_by, created_at=attr_dict['created_at'].default):
28    self.project_id = project_id
29    self.role = role
30    self.created_by = created_by
31    self.created_at = created_at
32    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UserProjectAssignment.

project_id: str
role: ProjectRole
created_by: str
created_at: Union[NoneType, cirro_api_client.v1.types.Unset, datetime.datetime]
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
31    def to_dict(self) -> Dict[str, Any]:
32        project_id = self.project_id
33
34        role = self.role.value
35
36        created_by = self.created_by
37
38        created_at: Union[None, Unset, str]
39        if isinstance(self.created_at, Unset):
40            created_at = UNSET
41        elif isinstance(self.created_at, datetime.datetime):
42            created_at = self.created_at.isoformat()
43        else:
44            created_at = self.created_at
45
46        field_dict: Dict[str, Any] = {}
47        field_dict.update(self.additional_properties)
48        field_dict.update(
49            {
50                "projectId": project_id,
51                "role": role,
52                "createdBy": created_by,
53            }
54        )
55        if created_at is not UNSET:
56            field_dict["createdAt"] = created_at
57
58        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
60    @classmethod
61    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
62        d = src_dict.copy()
63        project_id = d.pop("projectId")
64
65        role = ProjectRole(d.pop("role"))
66
67        created_by = d.pop("createdBy")
68
69        def _parse_created_at(data: object) -> Union[None, Unset, datetime.datetime]:
70            if data is None:
71                return data
72            if isinstance(data, Unset):
73                return data
74            try:
75                if not isinstance(data, str):
76                    raise TypeError()
77                created_at_type_0 = isoparse(data)
78
79                return created_at_type_0
80            except:  # noqa: E722
81                pass
82            return cast(Union[None, Unset, datetime.datetime], data)
83
84        created_at = _parse_created_at(d.pop("createdAt", UNSET))
85
86        user_project_assignment = cls(
87            project_id=project_id,
88            role=role,
89            created_by=created_by,
90            created_at=created_at,
91        )
92
93        user_project_assignment.additional_properties = d
94        return user_project_assignment
additional_keys: List[str]
96    @property
97    def additional_keys(self) -> List[str]:
98        return list(self.additional_properties.keys())
class UserSettings:
10@_attrs_define
11class UserSettings:
12    """Additional settings for the user
13
14    Attributes:
15        analysis_update_notifications_enabled (bool):
16    """
17
18    analysis_update_notifications_enabled: bool
19    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
21    def to_dict(self) -> Dict[str, Any]:
22        analysis_update_notifications_enabled = self.analysis_update_notifications_enabled
23
24        field_dict: Dict[str, Any] = {}
25        field_dict.update(self.additional_properties)
26        field_dict.update(
27            {
28                "analysisUpdateNotificationsEnabled": analysis_update_notifications_enabled,
29            }
30        )
31
32        return field_dict
33
34    @classmethod
35    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
36        d = src_dict.copy()
37        analysis_update_notifications_enabled = d.pop("analysisUpdateNotificationsEnabled")
38
39        user_settings = cls(
40            analysis_update_notifications_enabled=analysis_update_notifications_enabled,
41        )
42
43        user_settings.additional_properties = d
44        return user_settings
45
46    @property
47    def additional_keys(self) -> List[str]:
48        return list(self.additional_properties.keys())

Additional settings for the user

Attributes:
  • analysis_update_notifications_enabled (bool):
UserSettings(analysis_update_notifications_enabled: bool)
24def __init__(self, analysis_update_notifications_enabled):
25    self.analysis_update_notifications_enabled = analysis_update_notifications_enabled
26    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class UserSettings.

analysis_update_notifications_enabled: bool
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
21    def to_dict(self) -> Dict[str, Any]:
22        analysis_update_notifications_enabled = self.analysis_update_notifications_enabled
23
24        field_dict: Dict[str, Any] = {}
25        field_dict.update(self.additional_properties)
26        field_dict.update(
27            {
28                "analysisUpdateNotificationsEnabled": analysis_update_notifications_enabled,
29            }
30        )
31
32        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
34    @classmethod
35    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
36        d = src_dict.copy()
37        analysis_update_notifications_enabled = d.pop("analysisUpdateNotificationsEnabled")
38
39        user_settings = cls(
40            analysis_update_notifications_enabled=analysis_update_notifications_enabled,
41        )
42
43        user_settings.additional_properties = d
44        return user_settings
additional_keys: List[str]
46    @property
47    def additional_keys(self) -> List[str]:
48        return list(self.additional_properties.keys())
class ValidateFileRequirementsRequest:
10@_attrs_define
11class ValidateFileRequirementsRequest:
12    """
13    Attributes:
14        file_names (List[str]):
15        sample_sheet (str):
16    """
17
18    file_names: List[str]
19    sample_sheet: str
20    additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22    def to_dict(self) -> Dict[str, Any]:
23        file_names = self.file_names
24
25        sample_sheet = self.sample_sheet
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "fileNames": file_names,
32                "sampleSheet": sample_sheet,
33            }
34        )
35
36        return field_dict
37
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        file_names = cast(List[str], d.pop("fileNames"))
42
43        sample_sheet = d.pop("sampleSheet")
44
45        validate_file_requirements_request = cls(
46            file_names=file_names,
47            sample_sheet=sample_sheet,
48        )
49
50        validate_file_requirements_request.additional_properties = d
51        return validate_file_requirements_request
52
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())
Attributes:
  • file_names (List[str]):
  • sample_sheet (str):
ValidateFileRequirementsRequest(file_names: List[str], sample_sheet: str)
25def __init__(self, file_names, sample_sheet):
26    self.file_names = file_names
27    self.sample_sheet = sample_sheet
28    self.additional_properties = __attr_factory_additional_properties()

Method generated by attrs for class ValidateFileRequirementsRequest.

file_names: List[str]
sample_sheet: str
additional_properties: Dict[str, Any]
def to_dict(self) -> Dict[str, Any]:
22    def to_dict(self) -> Dict[str, Any]:
23        file_names = self.file_names
24
25        sample_sheet = self.sample_sheet
26
27        field_dict: Dict[str, Any] = {}
28        field_dict.update(self.additional_properties)
29        field_dict.update(
30            {
31                "fileNames": file_names,
32                "sampleSheet": sample_sheet,
33            }
34        )
35
36        return field_dict
@classmethod
def from_dict(cls: Type[~T], src_dict: Dict[str, Any]) -> ~T:
38    @classmethod
39    def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40        d = src_dict.copy()
41        file_names = cast(List[str], d.pop("fileNames"))
42
43        sample_sheet = d.pop("sampleSheet")
44
45        validate_file_requirements_request = cls(
46            file_names=file_names,
47            sample_sheet=sample_sheet,
48        )
49
50        validate_file_requirements_request.additional_properties = d
51        return validate_file_requirements_request
additional_keys: List[str]
53    @property
54    def additional_keys(self) -> List[str]:
55        return list(self.additional_properties.keys())