diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index ff25068..abbb831 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -3,7 +3,7 @@ .gitlab-ci.yml .travis.yml README.md -docs/AccessEnum.md +docs/AccessBd4Enum.md docs/AssetsApi.md docs/Cycle.md docs/CycleCreateRequest.md @@ -12,6 +12,8 @@ docs/CycleIssueRequestRequest.md docs/CycleLite.md docs/CyclesApi.md docs/EntityTypeEnum.md +docs/Epic.md +docs/EpicsApi.md docs/GenericAssetUploadRequest.md docs/GetWorkspaceMembers200ResponseInner.md docs/GroupEnum.md @@ -31,12 +33,18 @@ docs/IssueForIntakeRequest.md docs/IssueLink.md docs/IssueLinkCreateRequest.md docs/IssuePropertyAPI.md +docs/IssuePropertyAPIRelationTypeEnum.md docs/IssuePropertyAPIRequest.md docs/IssuePropertyOptionAPI.md docs/IssuePropertyOptionAPIRequest.md docs/IssuePropertyValueAPI.md docs/IssuePropertyValueAPIDetail.md docs/IssuePropertyValueAPIRequest.md +docs/IssueRelation.md +docs/IssueRelationCreateRelationTypeEnum.md +docs/IssueRelationCreateRequest.md +docs/IssueRelationRemoveRequest.md +docs/IssueRelationResponse.md docs/IssueRequest.md docs/IssueSearch.md docs/IssueSearchItem.md @@ -56,10 +64,16 @@ docs/ModuleLite.md docs/ModuleStatusEnum.md docs/ModulesApi.md docs/NetworkEnum.md +docs/PageCreateAPI.md +docs/PageCreateAPIAccessEnum.md +docs/PageCreateAPIRequest.md +docs/PageDetailAPI.md +docs/PagesApi.md docs/PaginatedArchivedCycleResponse.md docs/PaginatedArchivedModuleResponse.md docs/PaginatedCycleIssueResponse.md docs/PaginatedCycleResponse.md +docs/PaginatedEpicResponse.md docs/PaginatedIntakeIssueResponse.md docs/PaginatedIssueActivityDetailResponse.md docs/PaginatedIssueActivityResponse.md @@ -93,7 +107,6 @@ docs/ProjectCreateRequest.md docs/ProjectWorklogSummary.md docs/ProjectsApi.md docs/PropertyTypeEnum.md -docs/RelationTypeEnum.md docs/RetrieveWorkItemAttachment400Response.md docs/State.md docs/StateLite.md @@ -115,15 +128,18 @@ docs/WorkItemPropertiesApi.md docs/WorkItemTypesApi.md docs/WorkItemWorklogsApi.md docs/WorkItemsApi.md +docs/WorkspacesApi.md git_push.sh plane/__init__.py plane/api/__init__.py plane/api/assets_api.py plane/api/cycles_api.py +plane/api/epics_api.py plane/api/intake_api.py plane/api/labels_api.py plane/api/members_api.py plane/api/modules_api.py +plane/api/pages_api.py plane/api/projects_api.py plane/api/states_api.py plane/api/users_api.py @@ -135,18 +151,20 @@ plane/api/work_item_properties_api.py plane/api/work_item_types_api.py plane/api/work_item_worklogs_api.py plane/api/work_items_api.py +plane/api/workspaces_api.py plane/api_client.py plane/api_response.py plane/configuration.py plane/exceptions.py plane/models/__init__.py -plane/models/access_enum.py +plane/models/access_bd4_enum.py plane/models/cycle.py plane/models/cycle_create_request.py plane/models/cycle_issue.py plane/models/cycle_issue_request_request.py plane/models/cycle_lite.py plane/models/entity_type_enum.py +plane/models/epic.py plane/models/generic_asset_upload_request.py plane/models/get_workspace_members200_response_inner.py plane/models/group_enum.py @@ -165,12 +183,18 @@ plane/models/issue_for_intake_request.py plane/models/issue_link.py plane/models/issue_link_create_request.py plane/models/issue_property_api.py +plane/models/issue_property_api_relation_type_enum.py plane/models/issue_property_api_request.py plane/models/issue_property_option_api.py plane/models/issue_property_option_api_request.py plane/models/issue_property_value_api.py plane/models/issue_property_value_api_detail.py plane/models/issue_property_value_api_request.py +plane/models/issue_relation.py +plane/models/issue_relation_create_relation_type_enum.py +plane/models/issue_relation_create_request.py +plane/models/issue_relation_remove_request.py +plane/models/issue_relation_response.py plane/models/issue_request.py plane/models/issue_search.py plane/models/issue_search_item.py @@ -187,10 +211,15 @@ plane/models/module_issue_request_request.py plane/models/module_lite.py plane/models/module_status_enum.py plane/models/network_enum.py +plane/models/page_create_api.py +plane/models/page_create_api_access_enum.py +plane/models/page_create_api_request.py +plane/models/page_detail_api.py plane/models/paginated_archived_cycle_response.py plane/models/paginated_archived_module_response.py plane/models/paginated_cycle_issue_response.py plane/models/paginated_cycle_response.py +plane/models/paginated_epic_response.py plane/models/paginated_intake_issue_response.py plane/models/paginated_issue_activity_detail_response.py plane/models/paginated_issue_activity_response.py @@ -223,7 +252,6 @@ plane/models/project.py plane/models/project_create_request.py plane/models/project_worklog_summary.py plane/models/property_type_enum.py -plane/models/relation_type_enum.py plane/models/retrieve_work_item_attachment400_response.py plane/models/state.py plane/models/state_lite.py diff --git a/README.md b/README.md index 93d77b3..7bfab36 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). -- API version: 0.0.1 -- Package version: 0.1.9 +- API version: 0.0.2 +- Package version: 0.1.10 - Generator version: 7.13.0 - Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit [https://plane.so](https://plane.so) @@ -111,6 +111,8 @@ Class | Method | HTTP request | Description *CyclesApi* | [**transfer_cycle_work_items**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CyclesApi.md#transfer_cycle_work_items) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{cycle_id}/transfer-issues/ | Transfer cycle work items *CyclesApi* | [**unarchive_cycle**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CyclesApi.md#unarchive_cycle) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/archived-cycles/{pk}/unarchive/ | Unarchive cycle *CyclesApi* | [**update_cycle**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CyclesApi.md#update_cycle) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/cycles/{pk}/ | Update cycle +*EpicsApi* | [**list_epics**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/EpicsApi.md#list_epics) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/epics/ | List epics +*EpicsApi* | [**retrieve_epic**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/EpicsApi.md#retrieve_epic) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/epics/{pk}/ | Retrieve an epic *IntakeApi* | [**create_intake_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IntakeApi.md#create_intake_work_item) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/ | Create intake work item *IntakeApi* | [**delete_intake_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IntakeApi.md#delete_intake_work_item) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/{issue_id}/ | Delete intake work item *IntakeApi* | [**get_intake_work_items_list**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IntakeApi.md#get_intake_work_items_list) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/intake-issues/ | List intake work items @@ -134,6 +136,10 @@ Class | Method | HTTP request | Description *ModulesApi* | [**retrieve_module**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ModulesApi.md#retrieve_module) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/ | Retrieve module *ModulesApi* | [**unarchive_module**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ModulesApi.md#unarchive_module) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/archived-modules/{pk}/unarchive/ | Unarchive module *ModulesApi* | [**update_module**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ModulesApi.md#update_module) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/modules/{pk}/ | Update module +*PagesApi* | [**create_project_page**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PagesApi.md#create_project_page) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/pages/ | Create a project page +*PagesApi* | [**create_workspace_page**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PagesApi.md#create_workspace_page) | **POST** /api/v1/workspaces/{slug}/pages/ | Create a workspace page +*PagesApi* | [**get_project_page_detail**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PagesApi.md#get_project_page_detail) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/pages/{pk}/ | Get a project page by ID +*PagesApi* | [**get_workspace_page_detail**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PagesApi.md#get_workspace_page_detail) | **GET** /api/v1/workspaces/{slug}/pages/{pk}/ | Get a workspace page by ID *ProjectsApi* | [**archive_project**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ProjectsApi.md#archive_project) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/archive/ | Archive project *ProjectsApi* | [**create_project**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ProjectsApi.md#create_project) | **POST** /api/v1/workspaces/{slug}/projects/ | Create project *ProjectsApi* | [**delete_project**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ProjectsApi.md#delete_project) | **DELETE** /api/v1/workspaces/{slug}/projects/{pk}/ | Delete project @@ -153,6 +159,7 @@ Class | Method | HTTP request | Description *WorkItemAttachmentsApi* | [**delete_work_item_attachment**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemAttachmentsApi.md#delete_work_item_attachment) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details *WorkItemAttachmentsApi* | [**list_work_item_attachments**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemAttachmentsApi.md#list_work_item_attachments) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details *WorkItemAttachmentsApi* | [**retrieve_work_item_attachment**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemAttachmentsApi.md#retrieve_work_item_attachment) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details +*WorkItemAttachmentsApi* | [**upload_work_item_attachment**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemAttachmentsApi.md#upload_work_item_attachment) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details *WorkItemCommentsApi* | [**create_work_item_comment**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemCommentsApi.md#create_work_item_comment) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/comments/ | Endpoints for issue comment create/update/delete and fetch issue comment details *WorkItemCommentsApi* | [**delete_work_item_comment**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemCommentsApi.md#delete_work_item_comment) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/comments/{pk}/ | Endpoints for issue comment create/update/delete and fetch issue comment details *WorkItemCommentsApi* | [**list_work_item_comments**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemCommentsApi.md#list_work_item_comments) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/comments/ | Endpoints for issue comment create/update/delete and fetch issue comment details @@ -171,6 +178,7 @@ Class | Method | HTTP request | Description *WorkItemPropertiesApi* | [**list_issue_properties**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#list_issue_properties) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/ | List issue properties *WorkItemPropertiesApi* | [**list_issue_property_options**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#list_issue_property_options) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-properties/{property_id}/options/ | List issue property options *WorkItemPropertiesApi* | [**list_issue_property_values**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#list_issue_property_values) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-properties/{property_id}/values/ | List issue property values +*WorkItemPropertiesApi* | [**list_issue_property_values_for_a_workitem**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#list_issue_property_values_for_a_workitem) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-properties/values/ | List issue property values for a workitem *WorkItemPropertiesApi* | [**retrieve_issue_property**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#retrieve_issue_property) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/{property_id}/ | Get issue property by id *WorkItemPropertiesApi* | [**retrieve_issue_property_option**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#retrieve_issue_property_option) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-properties/{property_id}/options/{option_id}/ | Get issue property option by id *WorkItemPropertiesApi* | [**update_issue_property**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemPropertiesApi.md#update_issue_property) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/{property_id}/ | Update an issue property @@ -186,23 +194,28 @@ Class | Method | HTTP request | Description *WorkItemWorklogsApi* | [**list_issue_worklogs**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemWorklogsApi.md#list_issue_worklogs) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/worklogs/ | List worklog entries *WorkItemWorklogsApi* | [**update_issue_worklog**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemWorklogsApi.md#update_issue_worklog) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/worklogs/{pk}/ | Update a worklog entry *WorkItemsApi* | [**create_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#create_work_item) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/ | Create work item +*WorkItemsApi* | [**create_work_item_relation**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#create_work_item_relation) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/ | Create work item relation *WorkItemsApi* | [**delete_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#delete_work_item) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Delete work item *WorkItemsApi* | [**get_workspace_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#get_workspace_work_item) | **GET** /api/v1/workspaces/{slug}/issues/{project_identifier}-{issue_identifier}/ | Retrieve work item by identifiers +*WorkItemsApi* | [**list_work_item_relations**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#list_work_item_relations) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/ | List work item relations *WorkItemsApi* | [**list_work_items**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#list_work_items) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/ | List work items +*WorkItemsApi* | [**remove_work_item_relation**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#remove_work_item_relation) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/remove/ | Remove work item relation *WorkItemsApi* | [**retrieve_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#retrieve_work_item) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Retrieve work item *WorkItemsApi* | [**search_work_items**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#search_work_items) | **GET** /api/v1/workspaces/{slug}/issues/search/ | *WorkItemsApi* | [**update_work_item**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkItemsApi.md#update_work_item) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Partially update work item +*WorkspacesApi* | [**workspaces_projects_members_create**](https://github.com/makeplane/plane-python-sdk/blob/main/docs/WorkspacesApi.md#workspaces_projects_members_create) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/members/ | ## Documentation For Models - - [AccessEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/AccessEnum.md) + - [AccessBd4Enum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/AccessBd4Enum.md) - [Cycle](https://github.com/makeplane/plane-python-sdk/blob/main/docs/Cycle.md) - [CycleCreateRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CycleCreateRequest.md) - [CycleIssue](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CycleIssue.md) - [CycleIssueRequestRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CycleIssueRequestRequest.md) - [CycleLite](https://github.com/makeplane/plane-python-sdk/blob/main/docs/CycleLite.md) - [EntityTypeEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/EntityTypeEnum.md) + - [Epic](https://github.com/makeplane/plane-python-sdk/blob/main/docs/Epic.md) - [GenericAssetUploadRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/GenericAssetUploadRequest.md) - [GetWorkspaceMembers200ResponseInner](https://github.com/makeplane/plane-python-sdk/blob/main/docs/GetWorkspaceMembers200ResponseInner.md) - [GroupEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/GroupEnum.md) @@ -221,12 +234,18 @@ Class | Method | HTTP request | Description - [IssueLink](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueLink.md) - [IssueLinkCreateRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueLinkCreateRequest.md) - [IssuePropertyAPI](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyAPI.md) + - [IssuePropertyAPIRelationTypeEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyAPIRelationTypeEnum.md) - [IssuePropertyAPIRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyAPIRequest.md) - [IssuePropertyOptionAPI](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyOptionAPI.md) - [IssuePropertyOptionAPIRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyOptionAPIRequest.md) - [IssuePropertyValueAPI](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyValueAPI.md) - [IssuePropertyValueAPIDetail](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyValueAPIDetail.md) - [IssuePropertyValueAPIRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssuePropertyValueAPIRequest.md) + - [IssueRelation](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRelation.md) + - [IssueRelationCreateRelationTypeEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRelationCreateRelationTypeEnum.md) + - [IssueRelationCreateRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRelationCreateRequest.md) + - [IssueRelationRemoveRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRelationRemoveRequest.md) + - [IssueRelationResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRelationResponse.md) - [IssueRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueRequest.md) - [IssueSearch](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueSearch.md) - [IssueSearchItem](https://github.com/makeplane/plane-python-sdk/blob/main/docs/IssueSearchItem.md) @@ -243,10 +262,15 @@ Class | Method | HTTP request | Description - [ModuleLite](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ModuleLite.md) - [ModuleStatusEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ModuleStatusEnum.md) - [NetworkEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/NetworkEnum.md) + - [PageCreateAPI](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PageCreateAPI.md) + - [PageCreateAPIAccessEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PageCreateAPIAccessEnum.md) + - [PageCreateAPIRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PageCreateAPIRequest.md) + - [PageDetailAPI](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PageDetailAPI.md) - [PaginatedArchivedCycleResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedArchivedCycleResponse.md) - [PaginatedArchivedModuleResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedArchivedModuleResponse.md) - [PaginatedCycleIssueResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedCycleIssueResponse.md) - [PaginatedCycleResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedCycleResponse.md) + - [PaginatedEpicResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedEpicResponse.md) - [PaginatedIntakeIssueResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedIntakeIssueResponse.md) - [PaginatedIssueActivityDetailResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedIssueActivityDetailResponse.md) - [PaginatedIssueActivityResponse](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PaginatedIssueActivityResponse.md) @@ -279,7 +303,6 @@ Class | Method | HTTP request | Description - [ProjectCreateRequest](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ProjectCreateRequest.md) - [ProjectWorklogSummary](https://github.com/makeplane/plane-python-sdk/blob/main/docs/ProjectWorklogSummary.md) - [PropertyTypeEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/PropertyTypeEnum.md) - - [RelationTypeEnum](https://github.com/makeplane/plane-python-sdk/blob/main/docs/RelationTypeEnum.md) - [RetrieveWorkItemAttachment400Response](https://github.com/makeplane/plane-python-sdk/blob/main/docs/RetrieveWorkItemAttachment400Response.md) - [State](https://github.com/makeplane/plane-python-sdk/blob/main/docs/State.md) - [StateLite](https://github.com/makeplane/plane-python-sdk/blob/main/docs/StateLite.md) diff --git a/docs/AccessBd4Enum.md b/docs/AccessBd4Enum.md new file mode 100644 index 0000000..56bdca8 --- /dev/null +++ b/docs/AccessBd4Enum.md @@ -0,0 +1,13 @@ +# AccessBd4Enum + +* `INTERNAL` - INTERNAL * `EXTERNAL` - EXTERNAL + +## Enum + +* `INTERNAL` (value: `'INTERNAL'`) + +* `EXTERNAL` (value: `'EXTERNAL'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CyclesApi.md b/docs/CyclesApi.md index c5f444b..c41bcfa 100644 --- a/docs/CyclesApi.md +++ b/docs/CyclesApi.md @@ -20,7 +20,7 @@ Method | HTTP request | Description # **add_cycle_work_items** -> CycleIssue add_cycle_work_items(cycle_id, project_id, slug, cycle_issue_request_request) +> List[CycleIssue] add_cycle_work_items(cycle_id, project_id, slug, cycle_issue_request_request) Add Work Items to Cycle @@ -92,7 +92,7 @@ Name | Type | Description | Notes ### Return type -[**CycleIssue**](CycleIssue.md) +[**List[CycleIssue]**](CycleIssue.md) ### Authorization diff --git a/docs/Epic.md b/docs/Epic.md new file mode 100644 index 0000000..e873845 --- /dev/null +++ b/docs/Epic.md @@ -0,0 +1,58 @@ +# Epic + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**deleted_at** | **datetime** | | [optional] [readonly] +**created_at** | **datetime** | | [optional] [readonly] +**updated_at** | **datetime** | | [optional] [readonly] +**point** | **int** | | [optional] +**name** | **str** | | +**description** | **object** | | [optional] +**description_html** | **str** | | [optional] +**description_stripped** | **str** | | [optional] +**description_binary** | **bytearray** | | [optional] [readonly] +**priority** | [**PriorityEnum**](PriorityEnum.md) | | [optional] +**start_date** | **date** | | [optional] +**target_date** | **date** | | [optional] +**sequence_id** | **int** | | [optional] +**sort_order** | **float** | | [optional] +**completed_at** | **datetime** | | [optional] +**archived_at** | **date** | | [optional] +**is_draft** | **bool** | | [optional] +**external_source** | **str** | | [optional] +**external_id** | **str** | | [optional] +**created_by** | **str** | | [optional] +**updated_by** | **str** | | [optional] +**project** | **str** | | +**workspace** | **str** | | +**parent** | **str** | | [optional] +**state** | **str** | | [optional] +**estimate_point** | **str** | | [optional] +**type** | **str** | | [optional] +**assignees** | **List[str]** | | [optional] [readonly] +**labels** | **List[str]** | | [optional] [readonly] + +## Example + +```python +from plane.models.epic import Epic + +# TODO update the JSON string below +json = "{}" +# create an instance of Epic from a JSON string +epic_instance = Epic.from_json(json) +# print the JSON string representation of the object +print(Epic.to_json()) + +# convert the object into a dict +epic_dict = epic_instance.to_dict() +# create an instance of Epic from a dict +epic_from_dict = Epic.from_dict(epic_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/EpicsApi.md b/docs/EpicsApi.md new file mode 100644 index 0000000..a9f2ae8 --- /dev/null +++ b/docs/EpicsApi.md @@ -0,0 +1,200 @@ +# plane.EpicsApi + +All URIs are relative to *https://api.plane.so* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**list_epics**](EpicsApi.md#list_epics) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/epics/ | List epics +[**retrieve_epic**](EpicsApi.md#retrieve_epic) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/epics/{pk}/ | Retrieve an epic + + +# **list_epics** +> PaginatedEpicResponse list_epics(project_id, slug, cursor=cursor, per_page=per_page) + +List epics + +List epics + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.paginated_epic_response import PaginatedEpicResponse +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.EpicsApi(api_client) + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + cursor = '20:1:0' # str | Pagination cursor for getting next set of results (optional) + per_page = 20 # int | Number of results per page (default: 20, max: 100) (optional) + + try: + # List epics + api_response = api_instance.list_epics(project_id, slug, cursor=cursor, per_page=per_page) + print("The response of EpicsApi->list_epics:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling EpicsApi->list_epics: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **cursor** | **str**| Pagination cursor for getting next set of results | [optional] + **per_page** | **int**| Number of results per page (default: 20, max: 100) | [optional] + +### Return type + +[**PaginatedEpicResponse**](PaginatedEpicResponse.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**200** | Paginated list of epics | - | +**400** | Invalid request data provided | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **retrieve_epic** +> Epic retrieve_epic(pk, project_id, slug, fields=fields) + +Retrieve an epic + +Retrieve an epic by id + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.epic import Epic +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.EpicsApi(api_client) + pk = 'pk_example' # str | + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + fields = 'id,name,description' # str | Comma-separated list of fields to include in response (optional) + + try: + # Retrieve an epic + api_response = api_instance.retrieve_epic(pk, project_id, slug, fields=fields) + print("The response of EpicsApi->retrieve_epic:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling EpicsApi->retrieve_epic: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **pk** | **str**| | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **fields** | **str**| Comma-separated list of fields to include in response | [optional] + +### Return type + +[**Epic**](Epic.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**200** | Epic | - | +**400** | Invalid request data provided | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/IssueComment.md b/docs/IssueComment.md index 9858e3a..cdc0aca 100644 --- a/docs/IssueComment.md +++ b/docs/IssueComment.md @@ -14,7 +14,7 @@ Name | Type | Description | Notes **comment_stripped** | **str** | | [optional] **comment_html** | **str** | | [optional] **attachments** | **List[str]** | | [optional] -**access** | [**AccessEnum**](AccessEnum.md) | | [optional] +**access** | [**AccessBd4Enum**](AccessBd4Enum.md) | | [optional] **external_source** | **str** | | [optional] **external_id** | **str** | | [optional] **edited_at** | **datetime** | | [optional] diff --git a/docs/IssueCommentCreateRequest.md b/docs/IssueCommentCreateRequest.md index 3003212..571bd0c 100644 --- a/docs/IssueCommentCreateRequest.md +++ b/docs/IssueCommentCreateRequest.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **comment_json** | **object** | | [optional] **comment_html** | **str** | | [optional] -**access** | [**AccessEnum**](AccessEnum.md) | | [optional] +**access** | [**AccessBd4Enum**](AccessBd4Enum.md) | | [optional] **external_source** | **str** | | [optional] **external_id** | **str** | | [optional] diff --git a/docs/IssuePropertyAPI.md b/docs/IssuePropertyAPI.md index b92b85e..f5d983f 100644 --- a/docs/IssuePropertyAPI.md +++ b/docs/IssuePropertyAPI.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **str** | | [optional] [readonly] **deleted_at** | **datetime** | | [optional] [readonly] -**relation_type** | [**RelationTypeEnum**](RelationTypeEnum.md) | | [optional] +**relation_type** | [**IssuePropertyAPIRelationTypeEnum**](IssuePropertyAPIRelationTypeEnum.md) | | [optional] **created_at** | **datetime** | | [optional] [readonly] **updated_at** | **datetime** | | [optional] [readonly] **name** | **str** | | [optional] [readonly] diff --git a/docs/IssuePropertyAPIRelationTypeEnum.md b/docs/IssuePropertyAPIRelationTypeEnum.md new file mode 100644 index 0000000..9602731 --- /dev/null +++ b/docs/IssuePropertyAPIRelationTypeEnum.md @@ -0,0 +1,13 @@ +# IssuePropertyAPIRelationTypeEnum + +* `ISSUE` - Issue * `USER` - User + +## Enum + +* `ISSUE` (value: `'ISSUE'`) + +* `USER` (value: `'USER'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IssuePropertyAPIRequest.md b/docs/IssuePropertyAPIRequest.md index bfdd426..f673b7f 100644 --- a/docs/IssuePropertyAPIRequest.md +++ b/docs/IssuePropertyAPIRequest.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**relation_type** | [**RelationTypeEnum**](RelationTypeEnum.md) | | [optional] +**relation_type** | [**IssuePropertyAPIRelationTypeEnum**](IssuePropertyAPIRelationTypeEnum.md) | | [optional] **display_name** | **str** | | **description** | **str** | | [optional] **property_type** | [**PropertyTypeEnum**](PropertyTypeEnum.md) | | diff --git a/docs/IssueRelation.md b/docs/IssueRelation.md new file mode 100644 index 0000000..efee8b5 --- /dev/null +++ b/docs/IssueRelation.md @@ -0,0 +1,42 @@ +# IssueRelation + +Serializer for issue relationships showing related issue details. Provides comprehensive information about related issues including project context, sequence ID, and relationship type. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**project_id** | **str** | | [optional] [readonly] +**sequence_id** | **int** | | [optional] [readonly] +**relation_type** | **str** | | [optional] [readonly] +**name** | **str** | | [optional] [readonly] +**type_id** | **str** | | [optional] [readonly] +**is_epic** | **bool** | | [optional] [readonly] +**state_id** | **str** | | [optional] [readonly] +**priority** | **str** | | [optional] [readonly] +**created_by** | **str** | | [optional] [readonly] +**created_at** | **datetime** | | [optional] [readonly] +**updated_at** | **datetime** | | [optional] [readonly] +**updated_by** | **str** | | [optional] [readonly] + +## Example + +```python +from plane.models.issue_relation import IssueRelation + +# TODO update the JSON string below +json = "{}" +# create an instance of IssueRelation from a JSON string +issue_relation_instance = IssueRelation.from_json(json) +# print the JSON string representation of the object +print(IssueRelation.to_json()) + +# convert the object into a dict +issue_relation_dict = issue_relation_instance.to_dict() +# create an instance of IssueRelation from a dict +issue_relation_from_dict = IssueRelation.from_dict(issue_relation_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IssueRelationCreateRelationTypeEnum.md b/docs/IssueRelationCreateRelationTypeEnum.md new file mode 100644 index 0000000..c75dbea --- /dev/null +++ b/docs/IssueRelationCreateRelationTypeEnum.md @@ -0,0 +1,25 @@ +# IssueRelationCreateRelationTypeEnum + +* `blocking` - Blocking * `blocked_by` - Blocked By * `duplicate` - Duplicate * `relates_to` - Relates To * `start_before` - Start Before * `start_after` - Start After * `finish_before` - Finish Before * `finish_after` - Finish After + +## Enum + +* `BLOCKING` (value: `'blocking'`) + +* `BLOCKED_BY` (value: `'blocked_by'`) + +* `DUPLICATE` (value: `'duplicate'`) + +* `RELATES_TO` (value: `'relates_to'`) + +* `START_BEFORE` (value: `'start_before'`) + +* `START_AFTER` (value: `'start_after'`) + +* `FINISH_BEFORE` (value: `'finish_before'`) + +* `FINISH_AFTER` (value: `'finish_after'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IssueRelationCreateRequest.md b/docs/IssueRelationCreateRequest.md new file mode 100644 index 0000000..3ec6c4e --- /dev/null +++ b/docs/IssueRelationCreateRequest.md @@ -0,0 +1,31 @@ +# IssueRelationCreateRequest + +Serializer for creating issue relations. Creates issue relations with the specified relation type and issues. Validates relation types and ensures proper issue ID format. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**relation_type** | [**IssueRelationCreateRelationTypeEnum**](IssueRelationCreateRelationTypeEnum.md) | Type of relationship between work items * `blocking` - Blocking * `blocked_by` - Blocked By * `duplicate` - Duplicate * `relates_to` - Relates To * `start_before` - Start Before * `start_after` - Start After * `finish_before` - Finish Before * `finish_after` - Finish After | +**issues** | **List[str]** | Array of work item IDs to create relations with | + +## Example + +```python +from plane.models.issue_relation_create_request import IssueRelationCreateRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of IssueRelationCreateRequest from a JSON string +issue_relation_create_request_instance = IssueRelationCreateRequest.from_json(json) +# print the JSON string representation of the object +print(IssueRelationCreateRequest.to_json()) + +# convert the object into a dict +issue_relation_create_request_dict = issue_relation_create_request_instance.to_dict() +# create an instance of IssueRelationCreateRequest from a dict +issue_relation_create_request_from_dict = IssueRelationCreateRequest.from_dict(issue_relation_create_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IssueRelationRemoveRequest.md b/docs/IssueRelationRemoveRequest.md new file mode 100644 index 0000000..4dee895 --- /dev/null +++ b/docs/IssueRelationRemoveRequest.md @@ -0,0 +1,30 @@ +# IssueRelationRemoveRequest + +Serializer for removing issue relations. Removes existing relationships between work items by specifying the related issue ID. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**related_issue** | **str** | ID of the related work item to remove relation with | + +## Example + +```python +from plane.models.issue_relation_remove_request import IssueRelationRemoveRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of IssueRelationRemoveRequest from a JSON string +issue_relation_remove_request_instance = IssueRelationRemoveRequest.from_json(json) +# print the JSON string representation of the object +print(IssueRelationRemoveRequest.to_json()) + +# convert the object into a dict +issue_relation_remove_request_dict = issue_relation_remove_request_instance.to_dict() +# create an instance of IssueRelationRemoveRequest from a dict +issue_relation_remove_request_from_dict = IssueRelationRemoveRequest.from_dict(issue_relation_remove_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IssueRelationResponse.md b/docs/IssueRelationResponse.md new file mode 100644 index 0000000..3f6a470 --- /dev/null +++ b/docs/IssueRelationResponse.md @@ -0,0 +1,37 @@ +# IssueRelationResponse + +Serializer for issue relations response showing grouped relation types. Returns issue IDs organized by relation type for efficient client-side processing. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**blocking** | **List[str]** | List of issue IDs that are blocking this issue | +**blocked_by** | **List[str]** | List of issue IDs that this issue is blocked by | +**duplicate** | **List[str]** | List of issue IDs that are duplicates of this issue | +**relates_to** | **List[str]** | List of issue IDs that relate to this issue | +**start_after** | **List[str]** | List of issue IDs that start after this issue | +**start_before** | **List[str]** | List of issue IDs that start before this issue | +**finish_after** | **List[str]** | List of issue IDs that finish after this issue | +**finish_before** | **List[str]** | List of issue IDs that finish before this issue | + +## Example + +```python +from plane.models.issue_relation_response import IssueRelationResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of IssueRelationResponse from a JSON string +issue_relation_response_instance = IssueRelationResponse.from_json(json) +# print the JSON string representation of the object +print(IssueRelationResponse.to_json()) + +# convert the object into a dict +issue_relation_response_dict = issue_relation_response_instance.to_dict() +# create an instance of IssueRelationResponse from a dict +issue_relation_response_from_dict = IssueRelationResponse.from_dict(issue_relation_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ModulesApi.md b/docs/ModulesApi.md index 617674e..16e590b 100644 --- a/docs/ModulesApi.md +++ b/docs/ModulesApi.md @@ -18,7 +18,7 @@ Method | HTTP request | Description # **add_module_work_items** -> ModuleIssue add_module_work_items(module_id, project_id, slug, module_issue_request_request) +> List[ModuleIssue] add_module_work_items(module_id, project_id, slug, module_issue_request_request) Add Work Items to Module @@ -90,7 +90,7 @@ Name | Type | Description | Notes ### Return type -[**ModuleIssue**](ModuleIssue.md) +[**List[ModuleIssue]**](ModuleIssue.md) ### Authorization diff --git a/docs/NullEnum.md b/docs/NullEnum.md new file mode 100644 index 0000000..e897b03 --- /dev/null +++ b/docs/NullEnum.md @@ -0,0 +1,8 @@ +# NullEnum + + +## Enum + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageCreateAPI.md b/docs/PageCreateAPI.md new file mode 100644 index 0000000..0055433 --- /dev/null +++ b/docs/PageCreateAPI.md @@ -0,0 +1,46 @@ +# PageCreateAPI + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**name** | **str** | | +**owned_by** | **str** | | [optional] [readonly] +**access** | [**PageCreateAPIAccessEnum**](PageCreateAPIAccessEnum.md) | | [optional] +**color** | **str** | | [optional] +**is_locked** | **bool** | | [optional] +**archived_at** | **date** | | [optional] +**workspace** | **str** | | [optional] [readonly] +**created_at** | **datetime** | | [optional] [readonly] +**updated_at** | **datetime** | | [optional] [readonly] +**created_by** | **str** | | [optional] [readonly] +**updated_by** | **str** | | [optional] [readonly] +**view_props** | **object** | | [optional] +**logo_props** | **object** | | [optional] +**external_id** | **str** | | [optional] +**external_source** | **str** | | [optional] +**parent_id** | **str** | | [optional] [readonly] +**description_html** | **str** | | + +## Example + +```python +from plane.models.page_create_api import PageCreateAPI + +# TODO update the JSON string below +json = "{}" +# create an instance of PageCreateAPI from a JSON string +page_create_api_instance = PageCreateAPI.from_json(json) +# print the JSON string representation of the object +print(PageCreateAPI.to_json()) + +# convert the object into a dict +page_create_api_dict = page_create_api_instance.to_dict() +# create an instance of PageCreateAPI from a dict +page_create_api_from_dict = PageCreateAPI.from_dict(page_create_api_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageCreateAPIAccessEnum.md b/docs/PageCreateAPIAccessEnum.md new file mode 100644 index 0000000..7254442 --- /dev/null +++ b/docs/PageCreateAPIAccessEnum.md @@ -0,0 +1,13 @@ +# PageCreateAPIAccessEnum + +* `0` - Public * `1` - Private + +## Enum + +* `NUMBER_0` (value: `0`) + +* `NUMBER_1` (value: `1`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageCreateAPIRequest.md b/docs/PageCreateAPIRequest.md new file mode 100644 index 0000000..9f99481 --- /dev/null +++ b/docs/PageCreateAPIRequest.md @@ -0,0 +1,38 @@ +# PageCreateAPIRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | +**access** | [**PageCreateAPIAccessEnum**](PageCreateAPIAccessEnum.md) | | [optional] +**color** | **str** | | [optional] +**is_locked** | **bool** | | [optional] +**archived_at** | **date** | | [optional] +**view_props** | **object** | | [optional] +**logo_props** | **object** | | [optional] +**external_id** | **str** | | [optional] +**external_source** | **str** | | [optional] +**description_html** | **str** | | + +## Example + +```python +from plane.models.page_create_api_request import PageCreateAPIRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of PageCreateAPIRequest from a JSON string +page_create_api_request_instance = PageCreateAPIRequest.from_json(json) +# print the JSON string representation of the object +print(PageCreateAPIRequest.to_json()) + +# convert the object into a dict +page_create_api_request_dict = page_create_api_request_instance.to_dict() +# create an instance of PageCreateAPIRequest from a dict +page_create_api_request_from_dict = PageCreateAPIRequest.from_dict(page_create_api_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageDetailAPI.md b/docs/PageDetailAPI.md new file mode 100644 index 0000000..d7d53c3 --- /dev/null +++ b/docs/PageDetailAPI.md @@ -0,0 +1,37 @@ +# PageDetailAPI + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**name** | **str** | | [optional] +**description_stripped** | **str** | | [optional] +**created_at** | **datetime** | | [optional] [readonly] +**updated_at** | **datetime** | | [optional] [readonly] +**owned_by** | **str** | | [optional] [readonly] +**anchor** | **str** | | [optional] [readonly] +**workspace** | **str** | | [optional] [readonly] +**projects** | **List[str]** | | [optional] [readonly] + +## Example + +```python +from plane.models.page_detail_api import PageDetailAPI + +# TODO update the JSON string below +json = "{}" +# create an instance of PageDetailAPI from a JSON string +page_detail_api_instance = PageDetailAPI.from_json(json) +# print the JSON string representation of the object +print(PageDetailAPI.to_json()) + +# convert the object into a dict +page_detail_api_dict = page_detail_api_instance.to_dict() +# create an instance of PageDetailAPI from a dict +page_detail_api_from_dict = PageDetailAPI.from_dict(page_detail_api_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PageDetailAPIRequest.md b/docs/PageDetailAPIRequest.md new file mode 100644 index 0000000..7677621 --- /dev/null +++ b/docs/PageDetailAPIRequest.md @@ -0,0 +1,30 @@ +# PageDetailAPIRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**description_stripped** | **str** | | [optional] + +## Example + +```python +from plane.models.page_detail_api_request import PageDetailAPIRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of PageDetailAPIRequest from a JSON string +page_detail_api_request_instance = PageDetailAPIRequest.from_json(json) +# print the JSON string representation of the object +print(PageDetailAPIRequest.to_json()) + +# convert the object into a dict +page_detail_api_request_dict = page_detail_api_request_instance.to_dict() +# create an instance of PageDetailAPIRequest from a dict +page_detail_api_request_from_dict = PageDetailAPIRequest.from_dict(page_detail_api_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PagesApi.md b/docs/PagesApi.md new file mode 100644 index 0000000..abeaf90 --- /dev/null +++ b/docs/PagesApi.md @@ -0,0 +1,378 @@ +# plane.PagesApi + +All URIs are relative to *https://api.plane.so* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_project_page**](PagesApi.md#create_project_page) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/pages/ | Create a project page +[**create_workspace_page**](PagesApi.md#create_workspace_page) | **POST** /api/v1/workspaces/{slug}/pages/ | Create a workspace page +[**get_project_page_detail**](PagesApi.md#get_project_page_detail) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/pages/{pk}/ | Get a project page by ID +[**get_workspace_page_detail**](PagesApi.md#get_workspace_page_detail) | **GET** /api/v1/workspaces/{slug}/pages/{pk}/ | Get a workspace page by ID + + +# **create_project_page** +> PageCreateAPI create_project_page(project_id, slug, page_create_api_request) + +Create a project page + +Create a project page + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.page_create_api import PageCreateAPI +from plane.models.page_create_api_request import PageCreateAPIRequest +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.PagesApi(api_client) + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + page_create_api_request = plane.PageCreateAPIRequest() # PageCreateAPIRequest | + + try: + # Create a project page + api_response = api_instance.create_project_page(project_id, slug, page_create_api_request) + print("The response of PagesApi->create_project_page:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling PagesApi->create_project_page: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **page_create_api_request** | [**PageCreateAPIRequest**](PageCreateAPIRequest.md)| | + +### Return type + +[**PageCreateAPI**](PageCreateAPI.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: application/json, application/x-www-form-urlencoded, multipart/form-data + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**201** | Page | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **create_workspace_page** +> PageCreateAPI create_workspace_page(slug, page_create_api_request) + +Create a workspace page + +Create a workspace page + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.page_create_api import PageCreateAPI +from plane.models.page_create_api_request import PageCreateAPIRequest +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.PagesApi(api_client) + slug = 'my-workspace' # str | Workspace slug + page_create_api_request = plane.PageCreateAPIRequest() # PageCreateAPIRequest | + + try: + # Create a workspace page + api_response = api_instance.create_workspace_page(slug, page_create_api_request) + print("The response of PagesApi->create_workspace_page:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling PagesApi->create_workspace_page: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **slug** | **str**| Workspace slug | + **page_create_api_request** | [**PageCreateAPIRequest**](PageCreateAPIRequest.md)| | + +### Return type + +[**PageCreateAPI**](PageCreateAPI.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: application/json, application/x-www-form-urlencoded, multipart/form-data + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**201** | Page | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_project_page_detail** +> PageDetailAPI get_project_page_detail(pk, project_id, slug) + +Get a project page by ID + +Get a project page by ID + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.page_detail_api import PageDetailAPI +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.PagesApi(api_client) + pk = '550e8400-e29b-41d4-a716-446655440000' # str | Page ID + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + + try: + # Get a project page by ID + api_response = api_instance.get_project_page_detail(pk, project_id, slug) + print("The response of PagesApi->get_project_page_detail:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling PagesApi->get_project_page_detail: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **pk** | **str**| Page ID | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + +### Return type + +[**PageDetailAPI**](PageDetailAPI.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**200** | Page | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_workspace_page_detail** +> PageDetailAPI get_workspace_page_detail(pk, slug) + +Get a workspace page by ID + +Get a workspace page by ID + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.page_detail_api import PageDetailAPI +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.PagesApi(api_client) + pk = '550e8400-e29b-41d4-a716-446655440000' # str | Page ID + slug = 'my-workspace' # str | Workspace slug + + try: + # Get a workspace page by ID + api_response = api_instance.get_workspace_page_detail(pk, slug) + print("The response of PagesApi->get_workspace_page_detail:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling PagesApi->get_workspace_page_detail: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **pk** | **str**| Page ID | + **slug** | **str**| Workspace slug | + +### Return type + +[**PageDetailAPI**](PageDetailAPI.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**200** | Page | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/PaginatedEpicResponse.md b/docs/PaginatedEpicResponse.md new file mode 100644 index 0000000..5bcaad9 --- /dev/null +++ b/docs/PaginatedEpicResponse.md @@ -0,0 +1,40 @@ +# PaginatedEpicResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**grouped_by** | **str** | | +**sub_grouped_by** | **str** | | +**total_count** | **int** | | +**next_cursor** | **str** | | +**prev_cursor** | **str** | | +**next_page_results** | **bool** | | +**prev_page_results** | **bool** | | +**count** | **int** | | +**total_pages** | **int** | | +**total_results** | **int** | | +**extra_stats** | **str** | | +**results** | [**List[Epic]**](Epic.md) | | + +## Example + +```python +from plane.models.paginated_epic_response import PaginatedEpicResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of PaginatedEpicResponse from a JSON string +paginated_epic_response_instance = PaginatedEpicResponse.from_json(json) +# print the JSON string representation of the object +print(PaginatedEpicResponse.to_json()) + +# convert the object into a dict +paginated_epic_response_dict = paginated_epic_response_instance.to_dict() +# create an instance of PaginatedEpicResponse from a dict +paginated_epic_response_from_dict = PaginatedEpicResponse.from_dict(paginated_epic_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/PatchedIssueCommentCreateRequest.md b/docs/PatchedIssueCommentCreateRequest.md index 5d41564..7986c9f 100644 --- a/docs/PatchedIssueCommentCreateRequest.md +++ b/docs/PatchedIssueCommentCreateRequest.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **comment_json** | **object** | | [optional] **comment_html** | **str** | | [optional] -**access** | [**AccessEnum**](AccessEnum.md) | | [optional] +**access** | [**AccessBd4Enum**](AccessBd4Enum.md) | | [optional] **external_source** | **str** | | [optional] **external_id** | **str** | | [optional] diff --git a/docs/PatchedIssuePropertyAPIRequest.md b/docs/PatchedIssuePropertyAPIRequest.md index 5bd70d8..96ee21b 100644 --- a/docs/PatchedIssuePropertyAPIRequest.md +++ b/docs/PatchedIssuePropertyAPIRequest.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**relation_type** | [**RelationTypeEnum**](RelationTypeEnum.md) | | [optional] +**relation_type** | [**IssuePropertyAPIRelationTypeEnum**](IssuePropertyAPIRelationTypeEnum.md) | | [optional] **display_name** | **str** | | [optional] **description** | **str** | | [optional] **property_type** | [**PropertyTypeEnum**](PropertyTypeEnum.md) | | [optional] diff --git a/docs/PatchedProjectUpdateRequest.md b/docs/PatchedProjectUpdateRequest.md index f6e1d0e..c89ca66 100644 --- a/docs/PatchedProjectUpdateRequest.md +++ b/docs/PatchedProjectUpdateRequest.md @@ -23,6 +23,10 @@ Name | Type | Description | Notes **archive_in** | **int** | | [optional] **close_in** | **int** | | [optional] **timezone** | [**TimezoneEnum**](TimezoneEnum.md) | | [optional] +**logo_props** | **object** | | [optional] +**external_source** | **str** | | [optional] +**external_id** | **str** | | [optional] +**is_issue_type_enabled** | **bool** | | [optional] **default_state** | **str** | | [optional] **estimate** | **str** | | [optional] diff --git a/docs/ProjectCreateRequest.md b/docs/ProjectCreateRequest.md index d390f8f..ce05d0e 100644 --- a/docs/ProjectCreateRequest.md +++ b/docs/ProjectCreateRequest.md @@ -23,6 +23,10 @@ Name | Type | Description | Notes **archive_in** | **int** | | [optional] **close_in** | **int** | | [optional] **timezone** | [**TimezoneEnum**](TimezoneEnum.md) | | [optional] +**logo_props** | **object** | | [optional] +**external_source** | **str** | | [optional] +**external_id** | **str** | | [optional] +**is_issue_type_enabled** | **bool** | | [optional] ## Example diff --git a/docs/WorkItemAttachmentsApi.md b/docs/WorkItemAttachmentsApi.md index b80aa47..a31576d 100644 --- a/docs/WorkItemAttachmentsApi.md +++ b/docs/WorkItemAttachmentsApi.md @@ -8,6 +8,7 @@ Method | HTTP request | Description [**delete_work_item_attachment**](WorkItemAttachmentsApi.md#delete_work_item_attachment) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details [**list_work_item_attachments**](WorkItemAttachmentsApi.md#list_work_item_attachments) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details [**retrieve_work_item_attachment**](WorkItemAttachmentsApi.md#retrieve_work_item_attachment) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details +[**upload_work_item_attachment**](WorkItemAttachmentsApi.md#upload_work_item_attachment) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/ | Endpoints for issue attachment create/update/delete and fetch issue attachment details # **create_work_item_attachment** @@ -379,3 +380,97 @@ void (empty response body) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **upload_work_item_attachment** +> upload_work_item_attachment(issue_id, pk, project_id, slug, body=body) + +Endpoints for issue attachment create/update/delete and fetch issue attachment details + +Mark an attachment as uploaded after successful file transfer to storage. + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkItemAttachmentsApi(api_client) + issue_id = 'issue_id_example' # str | + pk = '550e8400-e29b-41d4-a716-446655440000' # str | Attachment ID + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + body = {"is_uploaded":true} # object | (optional) + + try: + # Endpoints for issue attachment create/update/delete and fetch issue attachment details + api_instance.upload_work_item_attachment(issue_id, pk, project_id, slug, body=body) + except Exception as e: + print("Exception when calling WorkItemAttachmentsApi->upload_work_item_attachment: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **issue_id** | **str**| | + **pk** | **str**| Attachment ID | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **body** | **object**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: application/json, application/x-www-form-urlencoded, multipart/form-data + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | Attachment not found | - | +**204** | Work item attachment uploaded successfully | - | +**400** | Invalid request data provided | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/WorkItemPropertiesApi.md b/docs/WorkItemPropertiesApi.md index d682bff..7b50431 100644 --- a/docs/WorkItemPropertiesApi.md +++ b/docs/WorkItemPropertiesApi.md @@ -12,6 +12,7 @@ Method | HTTP request | Description [**list_issue_properties**](WorkItemPropertiesApi.md#list_issue_properties) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/ | List issue properties [**list_issue_property_options**](WorkItemPropertiesApi.md#list_issue_property_options) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-properties/{property_id}/options/ | List issue property options [**list_issue_property_values**](WorkItemPropertiesApi.md#list_issue_property_values) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-properties/{property_id}/values/ | List issue property values +[**list_issue_property_values_for_a_workitem**](WorkItemPropertiesApi.md#list_issue_property_values_for_a_workitem) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-properties/values/ | List issue property values for a workitem [**retrieve_issue_property**](WorkItemPropertiesApi.md#retrieve_issue_property) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/{property_id}/ | Get issue property by id [**retrieve_issue_property_option**](WorkItemPropertiesApi.md#retrieve_issue_property_option) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issue-properties/{property_id}/options/{option_id}/ | Get issue property option by id [**update_issue_property**](WorkItemPropertiesApi.md#update_issue_property) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issue-types/{type_id}/issue-properties/{property_id}/ | Update an issue property @@ -769,6 +770,100 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **list_issue_property_values_for_a_workitem** +> IssuePropertyValueAPI list_issue_property_values_for_a_workitem(issue_id, project_id, property_id, slug) + +List issue property values for a workitem + +List issue property values for a workitem + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.issue_property_value_api import IssuePropertyValueAPI +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkItemPropertiesApi(api_client) + issue_id = 'issue_id_example' # str | + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + property_id = 'property_id_example' # str | Property ID + slug = 'my-workspace' # str | Workspace slug + + try: + # List issue property values for a workitem + api_response = api_instance.list_issue_property_values_for_a_workitem(issue_id, project_id, property_id, slug) + print("The response of WorkItemPropertiesApi->list_issue_property_values_for_a_workitem:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling WorkItemPropertiesApi->list_issue_property_values_for_a_workitem: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **issue_id** | **str**| | + **project_id** | **str**| Project ID | + **property_id** | **str**| Property ID | + **slug** | **str**| Workspace slug | + +### Return type + +[**IssuePropertyValueAPI**](IssuePropertyValueAPI.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | The requested resource was not found. | - | +**200** | Issue property values for a workitem | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **retrieve_issue_property** > IssuePropertyAPI retrieve_issue_property(project_id, property_id, slug, type_id) diff --git a/docs/WorkItemsApi.md b/docs/WorkItemsApi.md index 94deae1..57dc989 100644 --- a/docs/WorkItemsApi.md +++ b/docs/WorkItemsApi.md @@ -5,9 +5,12 @@ All URIs are relative to *https://api.plane.so* Method | HTTP request | Description ------------- | ------------- | ------------- [**create_work_item**](WorkItemsApi.md#create_work_item) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/ | Create work item +[**create_work_item_relation**](WorkItemsApi.md#create_work_item_relation) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/ | Create work item relation [**delete_work_item**](WorkItemsApi.md#delete_work_item) | **DELETE** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Delete work item [**get_workspace_work_item**](WorkItemsApi.md#get_workspace_work_item) | **GET** /api/v1/workspaces/{slug}/issues/{project_identifier}-{issue_identifier}/ | Retrieve work item by identifiers +[**list_work_item_relations**](WorkItemsApi.md#list_work_item_relations) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/ | List work item relations [**list_work_items**](WorkItemsApi.md#list_work_items) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/ | List work items +[**remove_work_item_relation**](WorkItemsApi.md#remove_work_item_relation) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/remove/ | Remove work item relation [**retrieve_work_item**](WorkItemsApi.md#retrieve_work_item) | **GET** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Retrieve work item [**search_work_items**](WorkItemsApi.md#search_work_items) | **GET** /api/v1/workspaces/{slug}/issues/search/ | [**update_work_item**](WorkItemsApi.md#update_work_item) | **PATCH** /api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/ | Partially update work item @@ -108,6 +111,102 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **create_work_item_relation** +> List[IssueRelation] create_work_item_relation(issue_id, project_id, slug, issue_relation_create_request) + +Create work item relation + +Create relationships between work items. Supports various relation types including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after. + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.issue_relation import IssueRelation +from plane.models.issue_relation_create_request import IssueRelationCreateRequest +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkItemsApi(api_client) + issue_id = '550e8400-e29b-41d4-a716-446655440000' # str | Issue ID + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + issue_relation_create_request = {"relation_type":"blocking","issues":["550e8400-e29b-41d4-a716-446655440000","550e8400-e29b-41d4-a716-446655440001"]} # IssueRelationCreateRequest | + + try: + # Create work item relation + api_response = api_instance.create_work_item_relation(issue_id, project_id, slug, issue_relation_create_request) + print("The response of WorkItemsApi->create_work_item_relation:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling WorkItemsApi->create_work_item_relation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **issue_id** | **str**| Issue ID | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **issue_relation_create_request** | [**IssueRelationCreateRequest**](IssueRelationCreateRequest.md)| | + +### Return type + +[**List[IssueRelation]**](IssueRelation.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: application/json, application/x-www-form-urlencoded, multipart/form-data + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | Issue not found | - | +**201** | Work item relations created successfully | - | +**400** | Invalid request data provided | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **delete_work_item** > delete_work_item(pk, project_id, slug) @@ -287,6 +386,109 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **list_work_item_relations** +> IssueRelationResponse list_work_item_relations(issue_id, project_id, slug, cursor=cursor, expand=expand, fields=fields, order_by=order_by, per_page=per_page) + +List work item relations + +Retrieve all relationships for a work item including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after relations. + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.issue_relation_response import IssueRelationResponse +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkItemsApi(api_client) + issue_id = '550e8400-e29b-41d4-a716-446655440000' # str | Issue ID + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + cursor = '20:1:0' # str | Pagination cursor for getting next set of results (optional) + expand = 'assignees' # str | Comma-separated list of related fields to expand in response (optional) + fields = 'id,name,description' # str | Comma-separated list of fields to include in response (optional) + order_by = '-created_at' # str | Field to order results by. Prefix with '-' for descending order (optional) + per_page = 20 # int | Number of results per page (default: 20, max: 100) (optional) + + try: + # List work item relations + api_response = api_instance.list_work_item_relations(issue_id, project_id, slug, cursor=cursor, expand=expand, fields=fields, order_by=order_by, per_page=per_page) + print("The response of WorkItemsApi->list_work_item_relations:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling WorkItemsApi->list_work_item_relations: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **issue_id** | **str**| Issue ID | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **cursor** | **str**| Pagination cursor for getting next set of results | [optional] + **expand** | **str**| Comma-separated list of related fields to expand in response | [optional] + **fields** | **str**| Comma-separated list of fields to include in response | [optional] + **order_by** | **str**| Field to order results by. Prefix with '-' for descending order | [optional] + **per_page** | **int**| Number of results per page (default: 20, max: 100) | [optional] + +### Return type + +[**IssueRelationResponse**](IssueRelationResponse.md) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | Issue not found | - | +**200** | Work item relations grouped by relation type | - | +**400** | Invalid request data provided | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **list_work_items** > PaginatedWorkItemResponse list_work_items(project_id, slug, cursor=cursor, expand=expand, external_id=external_id, external_source=external_source, fields=fields, order_by=order_by, per_page=per_page) @@ -392,6 +594,98 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **remove_work_item_relation** +> remove_work_item_relation(issue_id, project_id, slug, issue_relation_remove_request) + +Remove work item relation + +Remove a relationship between work items by specifying the related work item ID. + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.models.issue_relation_remove_request import IssueRelationRemoveRequest +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkItemsApi(api_client) + issue_id = '550e8400-e29b-41d4-a716-446655440000' # str | Issue ID + project_id = '550e8400-e29b-41d4-a716-446655440000' # str | Project ID + slug = 'my-workspace' # str | Workspace slug + issue_relation_remove_request = {"related_issue":"550e8400-e29b-41d4-a716-446655440000"} # IssueRelationRemoveRequest | + + try: + # Remove work item relation + api_instance.remove_work_item_relation(issue_id, project_id, slug, issue_relation_remove_request) + except Exception as e: + print("Exception when calling WorkItemsApi->remove_work_item_relation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **issue_id** | **str**| Issue ID | + **project_id** | **str**| Project ID | + **slug** | **str**| Workspace slug | + **issue_relation_remove_request** | [**IssueRelationRemoveRequest**](IssueRelationRemoveRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: application/json, application/x-www-form-urlencoded, multipart/form-data + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**401** | Authentication credentials were not provided or are invalid. | - | +**403** | Permission denied. User lacks required permissions. | - | +**404** | Work item relation not found | - | +**204** | Work item relation removed successfully | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **retrieve_work_item** > IssueDetail retrieve_work_item(pk, project_id, slug, expand=expand, external_id=external_id, external_source=external_source, fields=fields, order_by=order_by) diff --git a/docs/WorkspacesApi.md b/docs/WorkspacesApi.md new file mode 100644 index 0000000..e630264 --- /dev/null +++ b/docs/WorkspacesApi.md @@ -0,0 +1,91 @@ +# plane.WorkspacesApi + +All URIs are relative to *https://api.plane.so* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**workspaces_projects_members_create**](WorkspacesApi.md#workspaces_projects_members_create) | **POST** /api/v1/workspaces/{slug}/projects/{project_id}/members/ | + + +# **workspaces_projects_members_create** +> workspaces_projects_members_create(project_id, slug) + +This enables timezone conversion according +to the user set timezone + +### Example + +* Api Key Authentication (ApiKeyAuthentication): +* OAuth Authentication (OAuth2Authentication): +* OAuth Authentication (OAuth2Authentication): + +```python +import plane +from plane.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.plane.so +# See configuration.py for a list of all supported configuration parameters. +configuration = plane.Configuration( + host = "https://api.plane.so" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure API key authorization: ApiKeyAuthentication +configuration.api_key['ApiKeyAuthentication'] = os.environ["API_KEY"] + +# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed +# configuration.api_key_prefix['ApiKeyAuthentication'] = 'Bearer' + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +configuration.access_token = os.environ["ACCESS_TOKEN"] + +# Enter a context with an instance of the API client +with plane.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = plane.WorkspacesApi(api_client) + project_id = 'project_id_example' # str | + slug = 'slug_example' # str | + + try: + api_instance.workspaces_projects_members_create(project_id, slug) + except Exception as e: + print("Exception when calling WorkspacesApi->workspaces_projects_members_create: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **project_id** | **str**| | + **slug** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[ApiKeyAuthentication](../README.md#ApiKeyAuthentication), [OAuth2Authentication](../README.md#OAuth2Authentication), [OAuth2Authentication](../README.md#OAuth2Authentication) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | No response body | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/plane/__init__.py b/plane/__init__.py index 15cf483..770f80b 100644 --- a/plane/__init__.py +++ b/plane/__init__.py @@ -7,7 +7,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -15,15 +15,17 @@ """ # noqa: E501 -__version__ = "0.1.9" +__version__ = "0.1.10" # import apis into sdk package from plane.api.assets_api import AssetsApi from plane.api.cycles_api import CyclesApi +from plane.api.epics_api import EpicsApi from plane.api.intake_api import IntakeApi from plane.api.labels_api import LabelsApi from plane.api.members_api import MembersApi from plane.api.modules_api import ModulesApi +from plane.api.pages_api import PagesApi from plane.api.projects_api import ProjectsApi from plane.api.states_api import StatesApi from plane.api.users_api import UsersApi @@ -35,6 +37,7 @@ from plane.api.work_item_types_api import WorkItemTypesApi from plane.api.work_item_worklogs_api import WorkItemWorklogsApi from plane.api.work_items_api import WorkItemsApi +from plane.api.workspaces_api import WorkspacesApi # import ApiClient from plane.api_response import ApiResponse @@ -48,13 +51,14 @@ from plane.exceptions import ApiException # import models into sdk package -from plane.models.access_enum import AccessEnum +from plane.models.access_bd4_enum import AccessBd4Enum from plane.models.cycle import Cycle from plane.models.cycle_create_request import CycleCreateRequest from plane.models.cycle_issue import CycleIssue from plane.models.cycle_issue_request_request import CycleIssueRequestRequest from plane.models.cycle_lite import CycleLite from plane.models.entity_type_enum import EntityTypeEnum +from plane.models.epic import Epic from plane.models.generic_asset_upload_request import GenericAssetUploadRequest from plane.models.get_workspace_members200_response_inner import GetWorkspaceMembers200ResponseInner from plane.models.group_enum import GroupEnum @@ -73,12 +77,18 @@ from plane.models.issue_link import IssueLink from plane.models.issue_link_create_request import IssueLinkCreateRequest from plane.models.issue_property_api import IssuePropertyAPI +from plane.models.issue_property_api_relation_type_enum import IssuePropertyAPIRelationTypeEnum from plane.models.issue_property_api_request import IssuePropertyAPIRequest from plane.models.issue_property_option_api import IssuePropertyOptionAPI from plane.models.issue_property_option_api_request import IssuePropertyOptionAPIRequest from plane.models.issue_property_value_api import IssuePropertyValueAPI from plane.models.issue_property_value_api_detail import IssuePropertyValueAPIDetail from plane.models.issue_property_value_api_request import IssuePropertyValueAPIRequest +from plane.models.issue_relation import IssueRelation +from plane.models.issue_relation_create_relation_type_enum import IssueRelationCreateRelationTypeEnum +from plane.models.issue_relation_create_request import IssueRelationCreateRequest +from plane.models.issue_relation_remove_request import IssueRelationRemoveRequest +from plane.models.issue_relation_response import IssueRelationResponse from plane.models.issue_request import IssueRequest from plane.models.issue_search import IssueSearch from plane.models.issue_search_item import IssueSearchItem @@ -95,10 +105,15 @@ from plane.models.module_lite import ModuleLite from plane.models.module_status_enum import ModuleStatusEnum from plane.models.network_enum import NetworkEnum +from plane.models.page_create_api import PageCreateAPI +from plane.models.page_create_api_access_enum import PageCreateAPIAccessEnum +from plane.models.page_create_api_request import PageCreateAPIRequest +from plane.models.page_detail_api import PageDetailAPI from plane.models.paginated_archived_cycle_response import PaginatedArchivedCycleResponse from plane.models.paginated_archived_module_response import PaginatedArchivedModuleResponse from plane.models.paginated_cycle_issue_response import PaginatedCycleIssueResponse from plane.models.paginated_cycle_response import PaginatedCycleResponse +from plane.models.paginated_epic_response import PaginatedEpicResponse from plane.models.paginated_intake_issue_response import PaginatedIntakeIssueResponse from plane.models.paginated_issue_activity_detail_response import PaginatedIssueActivityDetailResponse from plane.models.paginated_issue_activity_response import PaginatedIssueActivityResponse @@ -131,7 +146,6 @@ from plane.models.project_create_request import ProjectCreateRequest from plane.models.project_worklog_summary import ProjectWorklogSummary from plane.models.property_type_enum import PropertyTypeEnum -from plane.models.relation_type_enum import RelationTypeEnum from plane.models.retrieve_work_item_attachment400_response import RetrieveWorkItemAttachment400Response from plane.models.state import State from plane.models.state_lite import StateLite diff --git a/plane/api/__init__.py b/plane/api/__init__.py index 209d37d..0a53443 100644 --- a/plane/api/__init__.py +++ b/plane/api/__init__.py @@ -3,10 +3,12 @@ # import apis into api package from plane.api.assets_api import AssetsApi from plane.api.cycles_api import CyclesApi +from plane.api.epics_api import EpicsApi from plane.api.intake_api import IntakeApi from plane.api.labels_api import LabelsApi from plane.api.members_api import MembersApi from plane.api.modules_api import ModulesApi +from plane.api.pages_api import PagesApi from plane.api.projects_api import ProjectsApi from plane.api.states_api import StatesApi from plane.api.users_api import UsersApi @@ -18,4 +20,5 @@ from plane.api.work_item_types_api import WorkItemTypesApi from plane.api.work_item_worklogs_api import WorkItemWorklogsApi from plane.api.work_items_api import WorkItemsApi +from plane.api.workspaces_api import WorkspacesApi diff --git a/plane/api/assets_api.py b/plane/api/assets_api.py index 1c39f9c..8f34511 100644 --- a/plane/api/assets_api.py +++ b/plane/api/assets_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/cycles_api.py b/plane/api/cycles_api.py index 1529505..57b6b3f 100644 --- a/plane/api/cycles_api.py +++ b/plane/api/cycles_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -64,7 +64,7 @@ def add_cycle_work_items( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> CycleIssue: + ) -> List[CycleIssue]: """Add Work Items to Cycle Assign multiple work items to a cycle. Automatically handles bulk creation and updates with activity tracking. @@ -114,7 +114,7 @@ def add_cycle_work_items( '401': None, '403': None, '404': None, - '200': "CycleIssue", + '200': "List[CycleIssue]", '400': None, } response_data = self.api_client.call_api( @@ -147,7 +147,7 @@ def add_cycle_work_items_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[CycleIssue]: + ) -> ApiResponse[List[CycleIssue]]: """Add Work Items to Cycle Assign multiple work items to a cycle. Automatically handles bulk creation and updates with activity tracking. @@ -197,7 +197,7 @@ def add_cycle_work_items_with_http_info( '401': None, '403': None, '404': None, - '200': "CycleIssue", + '200': "List[CycleIssue]", '400': None, } response_data = self.api_client.call_api( @@ -280,7 +280,7 @@ def add_cycle_work_items_without_preload_content( '401': None, '403': None, '404': None, - '200': "CycleIssue", + '200': "List[CycleIssue]", '400': None, } response_data = self.api_client.call_api( diff --git a/plane/api/epics_api.py b/plane/api/epics_api.py new file mode 100644 index 0000000..201b29e --- /dev/null +++ b/plane/api/epics_api.py @@ -0,0 +1,683 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from plane.models.epic import Epic +from plane.models.paginated_epic_response import PaginatedEpicResponse + +from plane.api_client import ApiClient, RequestSerialized +from plane.api_response import ApiResponse +from plane.rest import RESTResponseType + + +class EpicsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def list_epics( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PaginatedEpicResponse: + """List epics + + List epics + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_epics_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedEpicResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_epics_with_http_info( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PaginatedEpicResponse]: + """List epics + + List epics + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_epics_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedEpicResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_epics_without_preload_content( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List epics + + List epics + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_epics_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedEpicResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_epics_serialize( + self, + project_id, + slug, + cursor, + per_page, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + if per_page is not None: + + _query_params.append(('per_page', per_page)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/epics/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def retrieve_epic( + self, + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> Epic: + """Retrieve an epic + + Retrieve an epic by id + + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._retrieve_epic_serialize( + pk=pk, + project_id=project_id, + slug=slug, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "Epic", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def retrieve_epic_with_http_info( + self, + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[Epic]: + """Retrieve an epic + + Retrieve an epic by id + + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._retrieve_epic_serialize( + pk=pk, + project_id=project_id, + slug=slug, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "Epic", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def retrieve_epic_without_preload_content( + self, + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Retrieve an epic + + Retrieve an epic by id + + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._retrieve_epic_serialize( + pk=pk, + project_id=project_id, + slug=slug, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "Epic", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _retrieve_epic_serialize( + self, + pk, + project_id, + slug, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if pk is not None: + _path_params['pk'] = pk + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/epics/{pk}/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/plane/api/intake_api.py b/plane/api/intake_api.py index 88aac51..a25bc82 100644 --- a/plane/api/intake_api.py +++ b/plane/api/intake_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/labels_api.py b/plane/api/labels_api.py index af08384..456ec1f 100644 --- a/plane/api/labels_api.py +++ b/plane/api/labels_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/members_api.py b/plane/api/members_api.py index f9253e9..fa09a3a 100644 --- a/plane/api/members_api.py +++ b/plane/api/members_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/modules_api.py b/plane/api/modules_api.py index fdf56e1..27aaaab 100644 --- a/plane/api/modules_api.py +++ b/plane/api/modules_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -62,7 +62,7 @@ def add_module_work_items( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ModuleIssue: + ) -> List[ModuleIssue]: """Add Work Items to Module Assign multiple work items to a module or move them from another module. Automatically handles bulk creation and updates with activity tracking. @@ -112,7 +112,7 @@ def add_module_work_items( '401': None, '403': None, '404': None, - '200': "ModuleIssue", + '200': "List[ModuleIssue]", '400': None, } response_data = self.api_client.call_api( @@ -145,7 +145,7 @@ def add_module_work_items_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[ModuleIssue]: + ) -> ApiResponse[List[ModuleIssue]]: """Add Work Items to Module Assign multiple work items to a module or move them from another module. Automatically handles bulk creation and updates with activity tracking. @@ -195,7 +195,7 @@ def add_module_work_items_with_http_info( '401': None, '403': None, '404': None, - '200': "ModuleIssue", + '200': "List[ModuleIssue]", '400': None, } response_data = self.api_client.call_api( @@ -278,7 +278,7 @@ def add_module_work_items_without_preload_content( '401': None, '403': None, '404': None, - '200': "ModuleIssue", + '200': "List[ModuleIssue]", '400': None, } response_data = self.api_client.call_api( diff --git a/plane/api/pages_api.py b/plane/api/pages_api.py new file mode 100644 index 0000000..ece7262 --- /dev/null +++ b/plane/api/pages_api.py @@ -0,0 +1,1246 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from plane.models.page_create_api import PageCreateAPI +from plane.models.page_create_api_request import PageCreateAPIRequest +from plane.models.page_detail_api import PageDetailAPI + +from plane.api_client import ApiClient, RequestSerialized +from plane.api_response import ApiResponse +from plane.rest import RESTResponseType + + +class PagesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_project_page( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PageCreateAPI: + """Create a project page + + Create a project page + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_project_page_serialize( + project_id=project_id, + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_project_page_with_http_info( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PageCreateAPI]: + """Create a project page + + Create a project page + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_project_page_serialize( + project_id=project_id, + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_project_page_without_preload_content( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create a project page + + Create a project page + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_project_page_serialize( + project_id=project_id, + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_project_page_serialize( + self, + project_id, + slug, + page_create_api_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if page_create_api_request is not None: + _body_params = page_create_api_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/pages/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_workspace_page( + self, + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PageCreateAPI: + """Create a workspace page + + Create a workspace page + + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_workspace_page_serialize( + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_workspace_page_with_http_info( + self, + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PageCreateAPI]: + """Create a workspace page + + Create a workspace page + + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_workspace_page_serialize( + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_workspace_page_without_preload_content( + self, + slug: Annotated[StrictStr, Field(description="Workspace slug")], + page_create_api_request: PageCreateAPIRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create a workspace page + + Create a workspace page + + :param slug: Workspace slug (required) + :type slug: str + :param page_create_api_request: (required) + :type page_create_api_request: PageCreateAPIRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_workspace_page_serialize( + slug=slug, + page_create_api_request=page_create_api_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '201': "PageCreateAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_workspace_page_serialize( + self, + slug, + page_create_api_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if page_create_api_request is not None: + _body_params = page_create_api_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v1/workspaces/{slug}/pages/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_project_page_detail( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PageDetailAPI: + """Get a project page by ID + + Get a project page by ID + + :param pk: Page ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_project_page_detail_serialize( + pk=pk, + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_project_page_detail_with_http_info( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PageDetailAPI]: + """Get a project page by ID + + Get a project page by ID + + :param pk: Page ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_project_page_detail_serialize( + pk=pk, + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_project_page_detail_without_preload_content( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get a project page by ID + + Get a project page by ID + + :param pk: Page ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_project_page_detail_serialize( + pk=pk, + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_project_page_detail_serialize( + self, + pk, + project_id, + slug, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if pk is not None: + _path_params['pk'] = pk + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/pages/{pk}/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_workspace_page_detail( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PageDetailAPI: + """Get a workspace page by ID + + Get a workspace page by ID + + :param pk: Page ID (required) + :type pk: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_workspace_page_detail_serialize( + pk=pk, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_workspace_page_detail_with_http_info( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PageDetailAPI]: + """Get a workspace page by ID + + Get a workspace page by ID + + :param pk: Page ID (required) + :type pk: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_workspace_page_detail_serialize( + pk=pk, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_workspace_page_detail_without_preload_content( + self, + pk: Annotated[StrictStr, Field(description="Page ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get a workspace page by ID + + Get a workspace page by ID + + :param pk: Page ID (required) + :type pk: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_workspace_page_detail_serialize( + pk=pk, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PageDetailAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_workspace_page_detail_serialize( + self, + pk, + slug, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if pk is not None: + _path_params['pk'] = pk + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/pages/{pk}/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/plane/api/projects_api.py b/plane/api/projects_api.py index 28ac4b3..38e3766 100644 --- a/plane/api/projects_api.py +++ b/plane/api/projects_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/states_api.py b/plane/api/states_api.py index b14665c..ef7af44 100644 --- a/plane/api/states_api.py +++ b/plane/api/states_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/users_api.py b/plane/api/users_api.py index 5cbf096..2774bee 100644 --- a/plane/api/users_api.py +++ b/plane/api/users_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_item_activity_api.py b/plane/api/work_item_activity_api.py index 2ac7557..a96d0d6 100644 --- a/plane/api/work_item_activity_api.py +++ b/plane/api/work_item_activity_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_item_attachments_api.py b/plane/api/work_item_attachments_api.py index 2c2b209..014952b 100644 --- a/plane/api/work_item_attachments_api.py +++ b/plane/api/work_item_attachments_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -1298,3 +1298,346 @@ def _retrieve_work_item_attachment_serialize( ) + + + @validate_call + def upload_work_item_attachment( + self, + issue_id: StrictStr, + pk: Annotated[StrictStr, Field(description="Attachment ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + body: Optional[Any] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Endpoints for issue attachment create/update/delete and fetch issue attachment details + + Mark an attachment as uploaded after successful file transfer to storage. + + :param issue_id: (required) + :type issue_id: str + :param pk: Attachment ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param body: + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upload_work_item_attachment_serialize( + issue_id=issue_id, + pk=pk, + project_id=project_id, + slug=slug, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '204': None, + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def upload_work_item_attachment_with_http_info( + self, + issue_id: StrictStr, + pk: Annotated[StrictStr, Field(description="Attachment ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + body: Optional[Any] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Endpoints for issue attachment create/update/delete and fetch issue attachment details + + Mark an attachment as uploaded after successful file transfer to storage. + + :param issue_id: (required) + :type issue_id: str + :param pk: Attachment ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param body: + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upload_work_item_attachment_serialize( + issue_id=issue_id, + pk=pk, + project_id=project_id, + slug=slug, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '204': None, + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def upload_work_item_attachment_without_preload_content( + self, + issue_id: StrictStr, + pk: Annotated[StrictStr, Field(description="Attachment ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + body: Optional[Any] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Endpoints for issue attachment create/update/delete and fetch issue attachment details + + Mark an attachment as uploaded after successful file transfer to storage. + + :param issue_id: (required) + :type issue_id: str + :param pk: Attachment ID (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param body: + :type body: object + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upload_work_item_attachment_serialize( + issue_id=issue_id, + pk=pk, + project_id=project_id, + slug=slug, + body=body, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '204': None, + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _upload_work_item_attachment_serialize( + self, + issue_id, + pk, + project_id, + slug, + body, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if issue_id is not None: + _path_params['issue_id'] = issue_id + if pk is not None: + _path_params['pk'] = pk + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if body is not None: + _body_params = body + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-attachments/{pk}/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/plane/api/work_item_comments_api.py b/plane/api/work_item_comments_api.py index 409f55d..111dfa3 100644 --- a/plane/api/work_item_comments_api.py +++ b/plane/api/work_item_comments_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_item_links_api.py b/plane/api/work_item_links_api.py index fef8ef3..2d3ad6c 100644 --- a/plane/api/work_item_links_api.py +++ b/plane/api/work_item_links_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_item_properties_api.py b/plane/api/work_item_properties_api.py index 70bff51..acdb67a 100644 --- a/plane/api/work_item_properties_api.py +++ b/plane/api/work_item_properties_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -2608,6 +2608,323 @@ def _list_issue_property_values_serialize( + @validate_call + def list_issue_property_values_for_a_workitem( + self, + issue_id: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + property_id: Annotated[StrictStr, Field(description="Property ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> IssuePropertyValueAPI: + """List issue property values for a workitem + + List issue property values for a workitem + + :param issue_id: (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param property_id: Property ID (required) + :type property_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_issue_property_values_for_a_workitem_serialize( + issue_id=issue_id, + project_id=project_id, + property_id=property_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssuePropertyValueAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_issue_property_values_for_a_workitem_with_http_info( + self, + issue_id: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + property_id: Annotated[StrictStr, Field(description="Property ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[IssuePropertyValueAPI]: + """List issue property values for a workitem + + List issue property values for a workitem + + :param issue_id: (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param property_id: Property ID (required) + :type property_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_issue_property_values_for_a_workitem_serialize( + issue_id=issue_id, + project_id=project_id, + property_id=property_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssuePropertyValueAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_issue_property_values_for_a_workitem_without_preload_content( + self, + issue_id: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], + property_id: Annotated[StrictStr, Field(description="Property ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List issue property values for a workitem + + List issue property values for a workitem + + :param issue_id: (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param property_id: Property ID (required) + :type property_id: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_issue_property_values_for_a_workitem_serialize( + issue_id=issue_id, + project_id=project_id, + property_id=property_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssuePropertyValueAPI", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_issue_property_values_for_a_workitem_serialize( + self, + issue_id, + project_id, + property_id, + slug, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if issue_id is not None: + _path_params['issue_id'] = issue_id + if project_id is not None: + _path_params['project_id'] = project_id + if property_id is not None: + _path_params['property_id'] = property_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/issue-properties/values/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + @validate_call def retrieve_issue_property( self, diff --git a/plane/api/work_item_types_api.py b/plane/api/work_item_types_api.py index d078096..6e8f8b3 100644 --- a/plane/api/work_item_types_api.py +++ b/plane/api/work_item_types_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_item_worklogs_api.py b/plane/api/work_item_worklogs_api.py index c98c3e8..a9170e6 100644 --- a/plane/api/work_item_worklogs_api.py +++ b/plane/api/work_item_worklogs_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/api/work_items_api.py b/plane/api/work_items_api.py index 04930fa..665e067 100644 --- a/plane/api/work_items_api.py +++ b/plane/api/work_items_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -18,6 +18,10 @@ from plane.models.issue import Issue from plane.models.issue_detail import IssueDetail +from plane.models.issue_relation import IssueRelation +from plane.models.issue_relation_create_request import IssueRelationCreateRequest +from plane.models.issue_relation_remove_request import IssueRelationRemoveRequest +from plane.models.issue_relation_response import IssueRelationResponse from plane.models.issue_request import IssueRequest from plane.models.issue_search import IssueSearch from plane.models.paginated_work_item_response import PaginatedWorkItemResponse @@ -365,11 +369,12 @@ def _create_work_item_serialize( @validate_call - def delete_work_item( + def create_work_item_relation( self, - pk: StrictStr, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], + issue_relation_create_request: IssueRelationCreateRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -382,17 +387,19 @@ def delete_work_item( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> None: - """Delete work item + ) -> List[IssueRelation]: + """Create work item relation - Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. + Create relationships between work items. Supports various relation types including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after. - :param pk: (required) - :type pk: str + :param issue_id: Issue ID (required) + :type issue_id: str :param project_id: Project ID (required) :type project_id: str :param slug: Workspace slug (required) :type slug: str + :param issue_relation_create_request: (required) + :type issue_relation_create_request: IssueRelationCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -415,10 +422,11 @@ def delete_work_item( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_work_item_serialize( - pk=pk, + _param = self._create_work_item_relation_serialize( + issue_id=issue_id, project_id=project_id, slug=slug, + issue_relation_create_request=issue_relation_create_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -429,7 +437,8 @@ def delete_work_item( '401': None, '403': None, '404': None, - '204': None, + '201': "List[IssueRelation]", + '400': None, } response_data = self.api_client.call_api( *_param, @@ -443,11 +452,12 @@ def delete_work_item( @validate_call - def delete_work_item_with_http_info( + def create_work_item_relation_with_http_info( self, - pk: StrictStr, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], + issue_relation_create_request: IssueRelationCreateRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -460,17 +470,19 @@ def delete_work_item_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[None]: - """Delete work item + ) -> ApiResponse[List[IssueRelation]]: + """Create work item relation - Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. + Create relationships between work items. Supports various relation types including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after. - :param pk: (required) - :type pk: str + :param issue_id: Issue ID (required) + :type issue_id: str :param project_id: Project ID (required) :type project_id: str :param slug: Workspace slug (required) :type slug: str + :param issue_relation_create_request: (required) + :type issue_relation_create_request: IssueRelationCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -493,10 +505,11 @@ def delete_work_item_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_work_item_serialize( - pk=pk, + _param = self._create_work_item_relation_serialize( + issue_id=issue_id, project_id=project_id, slug=slug, + issue_relation_create_request=issue_relation_create_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -507,7 +520,8 @@ def delete_work_item_with_http_info( '401': None, '403': None, '404': None, - '204': None, + '201': "List[IssueRelation]", + '400': None, } response_data = self.api_client.call_api( *_param, @@ -521,11 +535,12 @@ def delete_work_item_with_http_info( @validate_call - def delete_work_item_without_preload_content( + def create_work_item_relation_without_preload_content( self, - pk: StrictStr, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], + issue_relation_create_request: IssueRelationCreateRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -539,16 +554,18 @@ def delete_work_item_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Delete work item + """Create work item relation - Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. + Create relationships between work items. Supports various relation types including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after. - :param pk: (required) - :type pk: str + :param issue_id: Issue ID (required) + :type issue_id: str :param project_id: Project ID (required) :type project_id: str :param slug: Workspace slug (required) :type slug: str + :param issue_relation_create_request: (required) + :type issue_relation_create_request: IssueRelationCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -571,10 +588,11 @@ def delete_work_item_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_work_item_serialize( - pk=pk, + _param = self._create_work_item_relation_serialize( + issue_id=issue_id, project_id=project_id, slug=slug, + issue_relation_create_request=issue_relation_create_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -585,7 +603,8 @@ def delete_work_item_without_preload_content( '401': None, '403': None, '404': None, - '204': None, + '201': "List[IssueRelation]", + '400': None, } response_data = self.api_client.call_api( *_param, @@ -594,11 +613,12 @@ def delete_work_item_without_preload_content( return response_data.response - def _delete_work_item_serialize( + def _create_work_item_relation_serialize( self, - pk, + issue_id, project_id, slug, + issue_relation_create_request, _request_auth, _content_type, _headers, @@ -620,8 +640,8 @@ def _delete_work_item_serialize( _body_params: Optional[bytes] = None # process the path parameters - if pk is not None: - _path_params['pk'] = pk + if issue_id is not None: + _path_params['issue_id'] = issue_id if project_id is not None: _path_params['project_id'] = project_id if slug is not None: @@ -630,9 +650,33 @@ def _delete_work_item_serialize( # process the header parameters # process the form parameters # process the body parameter + if issue_relation_create_request is not None: + _body_params = issue_relation_create_request + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type # authentication setting _auth_settings: List[str] = [ @@ -642,8 +686,8 @@ def _delete_work_item_serialize( ] return self.api_client.param_serialize( - method='DELETE', - resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/', + method='POST', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -660,10 +704,10 @@ def _delete_work_item_serialize( @validate_call - def get_workspace_work_item( + def delete_work_item( self, - issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], - project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], _request_timeout: Union[ None, @@ -677,15 +721,15 @@ def get_workspace_work_item( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Issue: - """Retrieve work item by identifiers + ) -> None: + """Delete work item - Retrieve a specific work item using workspace slug, project identifier, and issue identifier. + Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. - :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) - :type issue_identifier: int - :param project_identifier: Project identifier (unique string within workspace) (required) - :type project_identifier: str + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str :param slug: Workspace slug (required) :type slug: str :param _request_timeout: timeout setting for this request. If one @@ -710,9 +754,9 @@ def get_workspace_work_item( :return: Returns the result object. """ # noqa: E501 - _param = self._get_workspace_work_item_serialize( - issue_identifier=issue_identifier, - project_identifier=project_identifier, + _param = self._delete_work_item_serialize( + pk=pk, + project_id=project_id, slug=slug, _request_auth=_request_auth, _content_type=_content_type, @@ -721,8 +765,10 @@ def get_workspace_work_item( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Issue", + '401': None, + '403': None, '404': None, + '204': None, } response_data = self.api_client.call_api( *_param, @@ -736,10 +782,10 @@ def get_workspace_work_item( @validate_call - def get_workspace_work_item_with_http_info( + def delete_work_item_with_http_info( self, - issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], - project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], _request_timeout: Union[ None, @@ -753,15 +799,15 @@ def get_workspace_work_item_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[Issue]: - """Retrieve work item by identifiers + ) -> ApiResponse[None]: + """Delete work item - Retrieve a specific work item using workspace slug, project identifier, and issue identifier. + Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. - :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) - :type issue_identifier: int - :param project_identifier: Project identifier (unique string within workspace) (required) - :type project_identifier: str + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str :param slug: Workspace slug (required) :type slug: str :param _request_timeout: timeout setting for this request. If one @@ -786,9 +832,9 @@ def get_workspace_work_item_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._get_workspace_work_item_serialize( - issue_identifier=issue_identifier, - project_identifier=project_identifier, + _param = self._delete_work_item_serialize( + pk=pk, + project_id=project_id, slug=slug, _request_auth=_request_auth, _content_type=_content_type, @@ -797,8 +843,10 @@ def get_workspace_work_item_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Issue", + '401': None, + '403': None, '404': None, + '204': None, } response_data = self.api_client.call_api( *_param, @@ -812,10 +860,10 @@ def get_workspace_work_item_with_http_info( @validate_call - def get_workspace_work_item_without_preload_content( + def delete_work_item_without_preload_content( self, - issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], - project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], + pk: StrictStr, + project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], _request_timeout: Union[ None, @@ -830,14 +878,14 @@ def get_workspace_work_item_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Retrieve work item by identifiers + """Delete work item - Retrieve a specific work item using workspace slug, project identifier, and issue identifier. + Permanently delete an existing work item from the project. Only admins or the item creator can perform this action. - :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) - :type issue_identifier: int - :param project_identifier: Project identifier (unique string within workspace) (required) - :type project_identifier: str + :param pk: (required) + :type pk: str + :param project_id: Project ID (required) + :type project_id: str :param slug: Workspace slug (required) :type slug: str :param _request_timeout: timeout setting for this request. If one @@ -862,9 +910,9 @@ def get_workspace_work_item_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._get_workspace_work_item_serialize( - issue_identifier=issue_identifier, - project_identifier=project_identifier, + _param = self._delete_work_item_serialize( + pk=pk, + project_id=project_id, slug=slug, _request_auth=_request_auth, _content_type=_content_type, @@ -873,8 +921,10 @@ def get_workspace_work_item_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Issue", + '401': None, + '403': None, '404': None, + '204': None, } response_data = self.api_client.call_api( *_param, @@ -883,10 +933,10 @@ def get_workspace_work_item_without_preload_content( return response_data.response - def _get_workspace_work_item_serialize( + def _delete_work_item_serialize( self, - issue_identifier, - project_identifier, + pk, + project_id, slug, _request_auth, _content_type, @@ -909,10 +959,10 @@ def _get_workspace_work_item_serialize( _body_params: Optional[bytes] = None # process the path parameters - if issue_identifier is not None: - _path_params['issue_identifier'] = issue_identifier - if project_identifier is not None: - _path_params['project_identifier'] = project_identifier + if pk is not None: + _path_params['pk'] = pk + if project_id is not None: + _path_params['project_id'] = project_id if slug is not None: _path_params['slug'] = slug # process the query parameters @@ -921,13 +971,6 @@ def _get_workspace_work_item_serialize( # process the body parameter - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) # authentication setting @@ -938,8 +981,8 @@ def _get_workspace_work_item_serialize( ] return self.api_client.param_serialize( - method='GET', - resource_path='/api/v1/workspaces/{slug}/issues/{project_identifier}-{issue_identifier}/', + method='DELETE', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{pk}/', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -956,17 +999,11 @@ def _get_workspace_work_item_serialize( @validate_call - def list_work_items( + def get_workspace_work_item( self, - project_id: Annotated[StrictStr, Field(description="Project ID")], + issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], + project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], slug: Annotated[StrictStr, Field(description="Workspace slug")], - cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, - expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, - external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, - external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, - fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, - order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, - per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -979,29 +1016,17 @@ def list_work_items( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> PaginatedWorkItemResponse: - """List work items + ) -> Issue: + """Retrieve work item by identifiers - Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + Retrieve a specific work item using workspace slug, project identifier, and issue identifier. - :param project_id: Project ID (required) - :type project_id: str + :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) + :type issue_identifier: int + :param project_identifier: Project identifier (unique string within workspace) (required) + :type project_identifier: str :param slug: Workspace slug (required) :type slug: str - :param cursor: Pagination cursor for getting next set of results - :type cursor: str - :param expand: Comma-separated list of related fields to expand in response - :type expand: str - :param external_id: External system identifier for filtering or lookup - :type external_id: str - :param external_source: External system source name for filtering or lookup - :type external_source: str - :param fields: Comma-separated list of fields to include in response - :type fields: str - :param order_by: Field to order results by. Prefix with '-' for descending order - :type order_by: str - :param per_page: Number of results per page (default: 20, max: 100) - :type per_page: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1024,16 +1049,10 @@ def list_work_items( :return: Returns the result object. """ # noqa: E501 - _param = self._list_work_items_serialize( - project_id=project_id, + _param = self._get_workspace_work_item_serialize( + issue_identifier=issue_identifier, + project_identifier=project_identifier, slug=slug, - cursor=cursor, - expand=expand, - external_id=external_id, - external_source=external_source, - fields=fields, - order_by=order_by, - per_page=per_page, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1041,11 +1060,8 @@ def list_work_items( ) _response_types_map: Dict[str, Optional[str]] = { - '401': None, - '403': None, + '200': "Issue", '404': None, - '200': "PaginatedWorkItemResponse", - '400': None, } response_data = self.api_client.call_api( *_param, @@ -1059,17 +1075,11 @@ def list_work_items( @validate_call - def list_work_items_with_http_info( + def get_workspace_work_item_with_http_info( self, - project_id: Annotated[StrictStr, Field(description="Project ID")], + issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], + project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], slug: Annotated[StrictStr, Field(description="Workspace slug")], - cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, - expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, - external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, - external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, - fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, - order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, - per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1082,18 +1092,840 @@ def list_work_items_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[PaginatedWorkItemResponse]: - """List work items + ) -> ApiResponse[Issue]: + """Retrieve work item by identifiers - Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + Retrieve a specific work item using workspace slug, project identifier, and issue identifier. - :param project_id: Project ID (required) - :type project_id: str + :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) + :type issue_identifier: int + :param project_identifier: Project identifier (unique string within workspace) (required) + :type project_identifier: str :param slug: Workspace slug (required) :type slug: str - :param cursor: Pagination cursor for getting next set of results - :type cursor: str - :param expand: Comma-separated list of related fields to expand in response + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_workspace_work_item_serialize( + issue_identifier=issue_identifier, + project_identifier=project_identifier, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Issue", + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_workspace_work_item_without_preload_content( + self, + issue_identifier: Annotated[StrictInt, Field(description="Issue sequence ID (numeric identifier within project)")], + project_identifier: Annotated[StrictStr, Field(description="Project identifier (unique string within workspace)")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Retrieve work item by identifiers + + Retrieve a specific work item using workspace slug, project identifier, and issue identifier. + + :param issue_identifier: Issue sequence ID (numeric identifier within project) (required) + :type issue_identifier: int + :param project_identifier: Project identifier (unique string within workspace) (required) + :type project_identifier: str + :param slug: Workspace slug (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_workspace_work_item_serialize( + issue_identifier=issue_identifier, + project_identifier=project_identifier, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Issue", + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_workspace_work_item_serialize( + self, + issue_identifier, + project_identifier, + slug, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if issue_identifier is not None: + _path_params['issue_identifier'] = issue_identifier + if project_identifier is not None: + _path_params['project_identifier'] = project_identifier + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/issues/{project_identifier}-{issue_identifier}/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_work_item_relations( + self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> IssueRelationResponse: + """List work item relations + + Retrieve all relationships for a work item including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after relations. + + :param issue_id: Issue ID (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response + :type expand: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param order_by: Field to order results by. Prefix with '-' for descending order + :type order_by: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_work_item_relations_serialize( + issue_id=issue_id, + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssueRelationResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_work_item_relations_with_http_info( + self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[IssueRelationResponse]: + """List work item relations + + Retrieve all relationships for a work item including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after relations. + + :param issue_id: Issue ID (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response + :type expand: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param order_by: Field to order results by. Prefix with '-' for descending order + :type order_by: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_work_item_relations_serialize( + issue_id=issue_id, + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssueRelationResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_work_item_relations_without_preload_content( + self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List work item relations + + Retrieve all relationships for a work item including blocking, blocked_by, duplicate, relates_to, start_before, start_after, finish_before, and finish_after relations. + + :param issue_id: Issue ID (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response + :type expand: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param order_by: Field to order results by. Prefix with '-' for descending order + :type order_by: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_work_item_relations_serialize( + issue_id=issue_id, + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "IssueRelationResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_work_item_relations_serialize( + self, + issue_id, + project_id, + slug, + cursor, + expand, + fields, + order_by, + per_page, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if issue_id is not None: + _path_params['issue_id'] = issue_id + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + if expand is not None: + + _query_params.append(('expand', expand)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + if order_by is not None: + + _query_params.append(('order_by', order_by)) + + if per_page is not None: + + _query_params.append(('per_page', per_page)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_work_items( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, + external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> PaginatedWorkItemResponse: + """List work items + + Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response + :type expand: str + :param external_id: External system identifier for filtering or lookup + :type external_id: str + :param external_source: External system source name for filtering or lookup + :type external_source: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param order_by: Field to order results by. Prefix with '-' for descending order + :type order_by: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_work_items_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + external_id=external_id, + external_source=external_source, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedWorkItemResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_work_items_with_http_info( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, + external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[PaginatedWorkItemResponse]: + """List work items + + Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response + :type expand: str + :param external_id: External system identifier for filtering or lookup + :type external_id: str + :param external_source: External system source name for filtering or lookup + :type external_source: str + :param fields: Comma-separated list of fields to include in response + :type fields: str + :param order_by: Field to order results by. Prefix with '-' for descending order + :type order_by: str + :param per_page: Number of results per page (default: 20, max: 100) + :type per_page: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_work_items_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + external_id=external_id, + external_source=external_source, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedWorkItemResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_work_items_without_preload_content( + self, + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, + expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, + external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, + external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, + fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, + order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, + per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List work items + + Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param cursor: Pagination cursor for getting next set of results + :type cursor: str + :param expand: Comma-separated list of related fields to expand in response :type expand: str :param external_id: External system identifier for filtering or lookup :type external_id: str @@ -1127,16 +1959,199 @@ def list_work_items_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._list_work_items_serialize( + _param = self._list_work_items_serialize( + project_id=project_id, + slug=slug, + cursor=cursor, + expand=expand, + external_id=external_id, + external_source=external_source, + fields=fields, + order_by=order_by, + per_page=per_page, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '200': "PaginatedWorkItemResponse", + '400': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_work_items_serialize( + self, + project_id, + slug, + cursor, + expand, + external_id, + external_source, + fields, + order_by, + per_page, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + if expand is not None: + + _query_params.append(('expand', expand)) + + if external_id is not None: + + _query_params.append(('external_id', external_id)) + + if external_source is not None: + + _query_params.append(('external_source', external_source)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + if order_by is not None: + + _query_params.append(('order_by', order_by)) + + if per_page is not None: + + _query_params.append(('per_page', per_page)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def remove_work_item_relation( + self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + issue_relation_remove_request: IssueRelationRemoveRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Remove work item relation + + Remove a relationship between work items by specifying the related work item ID. + + :param issue_id: Issue ID (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param issue_relation_remove_request: (required) + :type issue_relation_remove_request: IssueRelationRemoveRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._remove_work_item_relation_serialize( + issue_id=issue_id, project_id=project_id, slug=slug, - cursor=cursor, - expand=expand, - external_id=external_id, - external_source=external_source, - fields=fields, - order_by=order_by, - per_page=per_page, + issue_relation_remove_request=issue_relation_remove_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1147,8 +2162,89 @@ def list_work_items_with_http_info( '401': None, '403': None, '404': None, - '200': "PaginatedWorkItemResponse", - '400': None, + '204': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def remove_work_item_relation_with_http_info( + self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], + project_id: Annotated[StrictStr, Field(description="Project ID")], + slug: Annotated[StrictStr, Field(description="Workspace slug")], + issue_relation_remove_request: IssueRelationRemoveRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Remove work item relation + + Remove a relationship between work items by specifying the related work item ID. + + :param issue_id: Issue ID (required) + :type issue_id: str + :param project_id: Project ID (required) + :type project_id: str + :param slug: Workspace slug (required) + :type slug: str + :param issue_relation_remove_request: (required) + :type issue_relation_remove_request: IssueRelationRemoveRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._remove_work_item_relation_serialize( + issue_id=issue_id, + project_id=project_id, + slug=slug, + issue_relation_remove_request=issue_relation_remove_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '401': None, + '403': None, + '404': None, + '204': None, } response_data = self.api_client.call_api( *_param, @@ -1162,17 +2258,12 @@ def list_work_items_with_http_info( @validate_call - def list_work_items_without_preload_content( + def remove_work_item_relation_without_preload_content( self, + issue_id: Annotated[StrictStr, Field(description="Issue ID")], project_id: Annotated[StrictStr, Field(description="Project ID")], slug: Annotated[StrictStr, Field(description="Workspace slug")], - cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor for getting next set of results")] = None, - expand: Annotated[Optional[StrictStr], Field(description="Comma-separated list of related fields to expand in response")] = None, - external_id: Annotated[Optional[StrictStr], Field(description="External system identifier for filtering or lookup")] = None, - external_source: Annotated[Optional[StrictStr], Field(description="External system source name for filtering or lookup")] = None, - fields: Annotated[Optional[StrictStr], Field(description="Comma-separated list of fields to include in response")] = None, - order_by: Annotated[Optional[StrictStr], Field(description="Field to order results by. Prefix with '-' for descending order")] = None, - per_page: Annotated[Optional[StrictInt], Field(description="Number of results per page (default: 20, max: 100)")] = None, + issue_relation_remove_request: IssueRelationRemoveRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1186,28 +2277,18 @@ def list_work_items_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List work items + """Remove work item relation - Retrieve a paginated list of all work items in a project. Supports filtering, ordering, and field selection through query parameters. + Remove a relationship between work items by specifying the related work item ID. + :param issue_id: Issue ID (required) + :type issue_id: str :param project_id: Project ID (required) :type project_id: str :param slug: Workspace slug (required) :type slug: str - :param cursor: Pagination cursor for getting next set of results - :type cursor: str - :param expand: Comma-separated list of related fields to expand in response - :type expand: str - :param external_id: External system identifier for filtering or lookup - :type external_id: str - :param external_source: External system source name for filtering or lookup - :type external_source: str - :param fields: Comma-separated list of fields to include in response - :type fields: str - :param order_by: Field to order results by. Prefix with '-' for descending order - :type order_by: str - :param per_page: Number of results per page (default: 20, max: 100) - :type per_page: int + :param issue_relation_remove_request: (required) + :type issue_relation_remove_request: IssueRelationRemoveRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1230,16 +2311,11 @@ def list_work_items_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._list_work_items_serialize( + _param = self._remove_work_item_relation_serialize( + issue_id=issue_id, project_id=project_id, slug=slug, - cursor=cursor, - expand=expand, - external_id=external_id, - external_source=external_source, - fields=fields, - order_by=order_by, - per_page=per_page, + issue_relation_remove_request=issue_relation_remove_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1250,8 +2326,7 @@ def list_work_items_without_preload_content( '401': None, '403': None, '404': None, - '200': "PaginatedWorkItemResponse", - '400': None, + '204': None, } response_data = self.api_client.call_api( *_param, @@ -1260,17 +2335,12 @@ def list_work_items_without_preload_content( return response_data.response - def _list_work_items_serialize( + def _remove_work_item_relation_serialize( self, + issue_id, project_id, slug, - cursor, - expand, - external_id, - external_source, - fields, - order_by, - per_page, + issue_relation_remove_request, _request_auth, _content_type, _headers, @@ -1292,52 +2362,36 @@ def _list_work_items_serialize( _body_params: Optional[bytes] = None # process the path parameters + if issue_id is not None: + _path_params['issue_id'] = issue_id if project_id is not None: _path_params['project_id'] = project_id if slug is not None: _path_params['slug'] = slug # process the query parameters - if cursor is not None: - - _query_params.append(('cursor', cursor)) - - if expand is not None: - - _query_params.append(('expand', expand)) - - if external_id is not None: - - _query_params.append(('external_id', external_id)) - - if external_source is not None: - - _query_params.append(('external_source', external_source)) - - if fields is not None: - - _query_params.append(('fields', fields)) - - if order_by is not None: - - _query_params.append(('order_by', order_by)) - - if per_page is not None: - - _query_params.append(('per_page', per_page)) - # process the header parameters # process the form parameters # process the body parameter + if issue_relation_remove_request is not None: + _body_params = issue_relation_remove_request - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json', + 'application/x-www-form-urlencoded', + 'multipart/form-data' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type # authentication setting _auth_settings: List[str] = [ @@ -1347,8 +2401,8 @@ def _list_work_items_serialize( ] return self.api_client.param_serialize( - method='GET', - resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/', + method='POST', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/issues/{issue_id}/relations/remove/', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/plane/api/workspaces_api.py b/plane/api/workspaces_api.py new file mode 100644 index 0000000..3009398 --- /dev/null +++ b/plane/api/workspaces_api.py @@ -0,0 +1,306 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + + +from plane.api_client import ApiClient, RequestSerialized +from plane.api_response import ApiResponse +from plane.rest import RESTResponseType + + +class WorkspacesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def workspaces_projects_members_create( + self, + project_id: StrictStr, + slug: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """workspaces_projects_members_create + + This enables timezone conversion according to the user set timezone + + :param project_id: (required) + :type project_id: str + :param slug: (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._workspaces_projects_members_create_serialize( + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def workspaces_projects_members_create_with_http_info( + self, + project_id: StrictStr, + slug: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """workspaces_projects_members_create + + This enables timezone conversion according to the user set timezone + + :param project_id: (required) + :type project_id: str + :param slug: (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._workspaces_projects_members_create_serialize( + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def workspaces_projects_members_create_without_preload_content( + self, + project_id: StrictStr, + slug: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """workspaces_projects_members_create + + This enables timezone conversion according to the user set timezone + + :param project_id: (required) + :type project_id: str + :param slug: (required) + :type slug: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._workspaces_projects_members_create_serialize( + project_id=project_id, + slug=slug, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _workspaces_projects_members_create_serialize( + self, + project_id, + slug, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if project_id is not None: + _path_params['project_id'] = project_id + if slug is not None: + _path_params['slug'] = slug + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'ApiKeyAuthentication', + 'OAuth2Authentication', + 'OAuth2Authentication' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v1/workspaces/{slug}/projects/{project_id}/members/', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/plane/api_client.py b/plane/api_client.py index 6569dd1..055f1ff 100644 --- a/plane/api_client.py +++ b/plane/api_client.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -86,7 +86,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/0.1.9/python' + self.user_agent = 'OpenAPI-Generator/0.1.10/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): @@ -449,7 +449,7 @@ def __deserialize(self, data, klass): if klass in self.PRIMITIVE_TYPES: return self.__deserialize_primitive(data, klass) - elif klass == object: + elif klass is object: return self.__deserialize_object(data) elif klass == datetime.date: return self.__deserialize_date(data) diff --git a/plane/configuration.py b/plane/configuration.py index 2dfcd39..e5c0443 100644 --- a/plane/configuration.py +++ b/plane/configuration.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -547,8 +547,8 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: 0.0.1\n"\ - "SDK Package Version: 0.1.9".\ + "Version of the API: 0.0.2\n"\ + "SDK Package Version: 0.1.10".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/plane/exceptions.py b/plane/exceptions.py index 054b70f..f726c72 100644 --- a/plane/exceptions.py +++ b/plane/exceptions.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/__init__.py b/plane/models/__init__.py index 962c73f..aa349fb 100644 --- a/plane/models/__init__.py +++ b/plane/models/__init__.py @@ -6,7 +6,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -15,13 +15,14 @@ # import models into model package -from plane.models.access_enum import AccessEnum +from plane.models.access_bd4_enum import AccessBd4Enum from plane.models.cycle import Cycle from plane.models.cycle_create_request import CycleCreateRequest from plane.models.cycle_issue import CycleIssue from plane.models.cycle_issue_request_request import CycleIssueRequestRequest from plane.models.cycle_lite import CycleLite from plane.models.entity_type_enum import EntityTypeEnum +from plane.models.epic import Epic from plane.models.generic_asset_upload_request import GenericAssetUploadRequest from plane.models.get_workspace_members200_response_inner import GetWorkspaceMembers200ResponseInner from plane.models.group_enum import GroupEnum @@ -40,12 +41,18 @@ from plane.models.issue_link import IssueLink from plane.models.issue_link_create_request import IssueLinkCreateRequest from plane.models.issue_property_api import IssuePropertyAPI +from plane.models.issue_property_api_relation_type_enum import IssuePropertyAPIRelationTypeEnum from plane.models.issue_property_api_request import IssuePropertyAPIRequest from plane.models.issue_property_option_api import IssuePropertyOptionAPI from plane.models.issue_property_option_api_request import IssuePropertyOptionAPIRequest from plane.models.issue_property_value_api import IssuePropertyValueAPI from plane.models.issue_property_value_api_detail import IssuePropertyValueAPIDetail from plane.models.issue_property_value_api_request import IssuePropertyValueAPIRequest +from plane.models.issue_relation import IssueRelation +from plane.models.issue_relation_create_relation_type_enum import IssueRelationCreateRelationTypeEnum +from plane.models.issue_relation_create_request import IssueRelationCreateRequest +from plane.models.issue_relation_remove_request import IssueRelationRemoveRequest +from plane.models.issue_relation_response import IssueRelationResponse from plane.models.issue_request import IssueRequest from plane.models.issue_search import IssueSearch from plane.models.issue_search_item import IssueSearchItem @@ -62,10 +69,15 @@ from plane.models.module_lite import ModuleLite from plane.models.module_status_enum import ModuleStatusEnum from plane.models.network_enum import NetworkEnum +from plane.models.page_create_api import PageCreateAPI +from plane.models.page_create_api_access_enum import PageCreateAPIAccessEnum +from plane.models.page_create_api_request import PageCreateAPIRequest +from plane.models.page_detail_api import PageDetailAPI from plane.models.paginated_archived_cycle_response import PaginatedArchivedCycleResponse from plane.models.paginated_archived_module_response import PaginatedArchivedModuleResponse from plane.models.paginated_cycle_issue_response import PaginatedCycleIssueResponse from plane.models.paginated_cycle_response import PaginatedCycleResponse +from plane.models.paginated_epic_response import PaginatedEpicResponse from plane.models.paginated_intake_issue_response import PaginatedIntakeIssueResponse from plane.models.paginated_issue_activity_detail_response import PaginatedIssueActivityDetailResponse from plane.models.paginated_issue_activity_response import PaginatedIssueActivityResponse @@ -98,7 +110,6 @@ from plane.models.project_create_request import ProjectCreateRequest from plane.models.project_worklog_summary import ProjectWorklogSummary from plane.models.property_type_enum import PropertyTypeEnum -from plane.models.relation_type_enum import RelationTypeEnum from plane.models.retrieve_work_item_attachment400_response import RetrieveWorkItemAttachment400Response from plane.models.state import State from plane.models.state_lite import StateLite diff --git a/plane/models/access_enum.py b/plane/models/access_bd4_enum.py similarity index 83% rename from plane/models/access_enum.py rename to plane/models/access_bd4_enum.py index 780ba2c..5d6b223 100644 --- a/plane/models/access_enum.py +++ b/plane/models/access_bd4_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -19,7 +19,7 @@ from typing_extensions import Self -class AccessEnum(str, Enum): +class AccessBd4Enum(str, Enum): """ * `INTERNAL` - INTERNAL * `EXTERNAL` - EXTERNAL """ @@ -32,7 +32,7 @@ class AccessEnum(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of AccessEnum from a JSON string""" + """Create an instance of AccessBd4Enum from a JSON string""" return cls(json.loads(json_str)) diff --git a/plane/models/cycle.py b/plane/models/cycle.py index d13c526..6656f1b 100644 --- a/plane/models/cycle.py +++ b/plane/models/cycle.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/cycle_create_request.py b/plane/models/cycle_create_request.py index f39eac2..bb52417 100644 --- a/plane/models/cycle_create_request.py +++ b/plane/models/cycle_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/cycle_issue.py b/plane/models/cycle_issue.py index bd60349..203b92a 100644 --- a/plane/models/cycle_issue.py +++ b/plane/models/cycle_issue.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/cycle_issue_request_request.py b/plane/models/cycle_issue_request_request.py index 56c740c..e82144a 100644 --- a/plane/models/cycle_issue_request_request.py +++ b/plane/models/cycle_issue_request_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/cycle_lite.py b/plane/models/cycle_lite.py index fcab522..3de9b28 100644 --- a/plane/models/cycle_lite.py +++ b/plane/models/cycle_lite.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/entity_type_enum.py b/plane/models/entity_type_enum.py index 0332cc0..b41f02b 100644 --- a/plane/models/entity_type_enum.py +++ b/plane/models/entity_type_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/epic.py b/plane/models/epic.py new file mode 100644 index 0000000..fdd704d --- /dev/null +++ b/plane/models/epic.py @@ -0,0 +1,248 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import date, datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictBytes, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from plane.models.priority_enum import PriorityEnum +from typing import Set +from typing_extensions import Self + +class Epic(BaseModel): + """ + Epic + """ # noqa: E501 + id: Optional[StrictStr] = None + deleted_at: Optional[datetime] = None + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + point: Optional[Annotated[int, Field(le=12, strict=True, ge=0)]] = None + name: Annotated[str, Field(strict=True, max_length=255)] + description: Optional[Any] = None + description_html: Optional[StrictStr] = None + description_stripped: Optional[StrictStr] = None + description_binary: Optional[Union[StrictBytes, StrictStr]] = None + priority: Optional[PriorityEnum] = None + start_date: Optional[date] = None + target_date: Optional[date] = None + sequence_id: Optional[Annotated[int, Field(le=2147483647, strict=True, ge=-2147483648)]] = None + sort_order: Optional[Union[StrictFloat, StrictInt]] = None + completed_at: Optional[datetime] = None + archived_at: Optional[date] = None + is_draft: Optional[StrictBool] = None + external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + created_by: Optional[StrictStr] = None + updated_by: Optional[StrictStr] = None + project: StrictStr + workspace: StrictStr + parent: Optional[StrictStr] = None + state: Optional[StrictStr] = None + estimate_point: Optional[StrictStr] = None + type: Optional[StrictStr] = None + assignees: Optional[List[StrictStr]] = None + labels: Optional[List[StrictStr]] = None + __properties: ClassVar[List[str]] = ["id", "deleted_at", "created_at", "updated_at", "point", "name", "description", "description_html", "description_stripped", "description_binary", "priority", "start_date", "target_date", "sequence_id", "sort_order", "completed_at", "archived_at", "is_draft", "external_source", "external_id", "created_by", "updated_by", "project", "workspace", "parent", "state", "estimate_point", "type", "assignees", "labels"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Epic from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "deleted_at", + "created_at", + "updated_at", + "description_binary", + "assignees", + "labels", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if deleted_at (nullable) is None + # and model_fields_set contains the field + if self.deleted_at is None and "deleted_at" in self.model_fields_set: + _dict['deleted_at'] = None + + # set to None if point (nullable) is None + # and model_fields_set contains the field + if self.point is None and "point" in self.model_fields_set: + _dict['point'] = None + + # set to None if description (nullable) is None + # and model_fields_set contains the field + if self.description is None and "description" in self.model_fields_set: + _dict['description'] = None + + # set to None if description_stripped (nullable) is None + # and model_fields_set contains the field + if self.description_stripped is None and "description_stripped" in self.model_fields_set: + _dict['description_stripped'] = None + + # set to None if description_binary (nullable) is None + # and model_fields_set contains the field + if self.description_binary is None and "description_binary" in self.model_fields_set: + _dict['description_binary'] = None + + # set to None if start_date (nullable) is None + # and model_fields_set contains the field + if self.start_date is None and "start_date" in self.model_fields_set: + _dict['start_date'] = None + + # set to None if target_date (nullable) is None + # and model_fields_set contains the field + if self.target_date is None and "target_date" in self.model_fields_set: + _dict['target_date'] = None + + # set to None if completed_at (nullable) is None + # and model_fields_set contains the field + if self.completed_at is None and "completed_at" in self.model_fields_set: + _dict['completed_at'] = None + + # set to None if archived_at (nullable) is None + # and model_fields_set contains the field + if self.archived_at is None and "archived_at" in self.model_fields_set: + _dict['archived_at'] = None + + # set to None if external_source (nullable) is None + # and model_fields_set contains the field + if self.external_source is None and "external_source" in self.model_fields_set: + _dict['external_source'] = None + + # set to None if external_id (nullable) is None + # and model_fields_set contains the field + if self.external_id is None and "external_id" in self.model_fields_set: + _dict['external_id'] = None + + # set to None if created_by (nullable) is None + # and model_fields_set contains the field + if self.created_by is None and "created_by" in self.model_fields_set: + _dict['created_by'] = None + + # set to None if updated_by (nullable) is None + # and model_fields_set contains the field + if self.updated_by is None and "updated_by" in self.model_fields_set: + _dict['updated_by'] = None + + # set to None if parent (nullable) is None + # and model_fields_set contains the field + if self.parent is None and "parent" in self.model_fields_set: + _dict['parent'] = None + + # set to None if state (nullable) is None + # and model_fields_set contains the field + if self.state is None and "state" in self.model_fields_set: + _dict['state'] = None + + # set to None if estimate_point (nullable) is None + # and model_fields_set contains the field + if self.estimate_point is None and "estimate_point" in self.model_fields_set: + _dict['estimate_point'] = None + + # set to None if type (nullable) is None + # and model_fields_set contains the field + if self.type is None and "type" in self.model_fields_set: + _dict['type'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Epic from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "deleted_at": obj.get("deleted_at"), + "created_at": obj.get("created_at"), + "updated_at": obj.get("updated_at"), + "point": obj.get("point"), + "name": obj.get("name"), + "description": obj.get("description"), + "description_html": obj.get("description_html"), + "description_stripped": obj.get("description_stripped"), + "description_binary": obj.get("description_binary"), + "priority": obj.get("priority"), + "start_date": obj.get("start_date"), + "target_date": obj.get("target_date"), + "sequence_id": obj.get("sequence_id"), + "sort_order": obj.get("sort_order"), + "completed_at": obj.get("completed_at"), + "archived_at": obj.get("archived_at"), + "is_draft": obj.get("is_draft"), + "external_source": obj.get("external_source"), + "external_id": obj.get("external_id"), + "created_by": obj.get("created_by"), + "updated_by": obj.get("updated_by"), + "project": obj.get("project"), + "workspace": obj.get("workspace"), + "parent": obj.get("parent"), + "state": obj.get("state"), + "estimate_point": obj.get("estimate_point"), + "type": obj.get("type"), + "assignees": obj.get("assignees"), + "labels": obj.get("labels") + }) + return _obj + + diff --git a/plane/models/generic_asset_upload_request.py b/plane/models/generic_asset_upload_request.py index b92605c..b1f00e0 100644 --- a/plane/models/generic_asset_upload_request.py +++ b/plane/models/generic_asset_upload_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/get_workspace_members200_response_inner.py b/plane/models/get_workspace_members200_response_inner.py index dfc33d7..03538f2 100644 --- a/plane/models/get_workspace_members200_response_inner.py +++ b/plane/models/get_workspace_members200_response_inner.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/group_enum.py b/plane/models/group_enum.py index 386278b..2d3c9a8 100644 --- a/plane/models/group_enum.py +++ b/plane/models/group_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/intake_issue.py b/plane/models/intake_issue.py index b828753..0db4e94 100644 --- a/plane/models/intake_issue.py +++ b/plane/models/intake_issue.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/intake_issue_create_request.py b/plane/models/intake_issue_create_request.py index f8357e9..3614d21 100644 --- a/plane/models/intake_issue_create_request.py +++ b/plane/models/intake_issue_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/intake_work_item_status_enum.py b/plane/models/intake_work_item_status_enum.py index 5d4b9e1..47e1b7b 100644 --- a/plane/models/intake_work_item_status_enum.py +++ b/plane/models/intake_work_item_status_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue.py b/plane/models/issue.py index 8702503..5db5b1d 100644 --- a/plane/models/issue.py +++ b/plane/models/issue.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_activity.py b/plane/models/issue_activity.py index 80eeb90..48295ad 100644 --- a/plane/models/issue_activity.py +++ b/plane/models/issue_activity.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_attachment.py b/plane/models/issue_attachment.py index 3544594..feeaa43 100644 --- a/plane/models/issue_attachment.py +++ b/plane/models/issue_attachment.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_attachment_upload_request.py b/plane/models/issue_attachment_upload_request.py index c9e5a1e..c3e2afd 100644 --- a/plane/models/issue_attachment_upload_request.py +++ b/plane/models/issue_attachment_upload_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_comment.py b/plane/models/issue_comment.py index bbcc900..c9272cc 100644 --- a/plane/models/issue_comment.py +++ b/plane/models/issue_comment.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -22,7 +22,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from plane.models.access_enum import AccessEnum +from plane.models.access_bd4_enum import AccessBd4Enum from typing import Set from typing_extensions import Self @@ -38,7 +38,7 @@ class IssueComment(BaseModel): comment_stripped: Optional[StrictStr] = None comment_html: Optional[StrictStr] = None attachments: Optional[Annotated[List[Annotated[str, Field(strict=True, max_length=200)]], Field(max_length=10)]] = None - access: Optional[AccessEnum] = None + access: Optional[AccessBd4Enum] = None external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None edited_at: Optional[datetime] = None diff --git a/plane/models/issue_comment_create_request.py b/plane/models/issue_comment_create_request.py index 88dffa6..306a34f 100644 --- a/plane/models/issue_comment_create_request.py +++ b/plane/models/issue_comment_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -21,7 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from plane.models.access_enum import AccessEnum +from plane.models.access_bd4_enum import AccessBd4Enum from typing import Set from typing_extensions import Self @@ -31,7 +31,7 @@ class IssueCommentCreateRequest(BaseModel): """ # noqa: E501 comment_json: Optional[Any] = None comment_html: Optional[StrictStr] = None - access: Optional[AccessEnum] = None + access: Optional[AccessBd4Enum] = None external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None __properties: ClassVar[List[str]] = ["comment_json", "comment_html", "access", "external_source", "external_id"] diff --git a/plane/models/issue_detail.py b/plane/models/issue_detail.py index 294a98a..8ddeccb 100644 --- a/plane/models/issue_detail.py +++ b/plane/models/issue_detail.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_expand.py b/plane/models/issue_expand.py index b66f35b..8d5c374 100644 --- a/plane/models/issue_expand.py +++ b/plane/models/issue_expand.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_for_intake_request.py b/plane/models/issue_for_intake_request.py index e79893a..6b2e9eb 100644 --- a/plane/models/issue_for_intake_request.py +++ b/plane/models/issue_for_intake_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_link.py b/plane/models/issue_link.py index 8e8444e..7c186ce 100644 --- a/plane/models/issue_link.py +++ b/plane/models/issue_link.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_link_create_request.py b/plane/models/issue_link_create_request.py index 0724de1..2e422ab 100644 --- a/plane/models/issue_link_create_request.py +++ b/plane/models/issue_link_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_property_api.py b/plane/models/issue_property_api.py index c1d09c2..4b4f7b3 100644 --- a/plane/models/issue_property_api.py +++ b/plane/models/issue_property_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -22,8 +22,8 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated +from plane.models.issue_property_api_relation_type_enum import IssuePropertyAPIRelationTypeEnum from plane.models.property_type_enum import PropertyTypeEnum -from plane.models.relation_type_enum import RelationTypeEnum from typing import Set from typing_extensions import Self @@ -33,7 +33,7 @@ class IssuePropertyAPI(BaseModel): """ # noqa: E501 id: Optional[StrictStr] = None deleted_at: Optional[datetime] = None - relation_type: Optional[RelationTypeEnum] = None + relation_type: Optional[IssuePropertyAPIRelationTypeEnum] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None name: Optional[StrictStr] = None @@ -125,6 +125,11 @@ def to_dict(self) -> Dict[str, Any]: if self.deleted_at is None and "deleted_at" in self.model_fields_set: _dict['deleted_at'] = None + # set to None if relation_type (nullable) is None + # and model_fields_set contains the field + if self.relation_type is None and "relation_type" in self.model_fields_set: + _dict['relation_type'] = None + # set to None if description (nullable) is None # and model_fields_set contains the field if self.description is None and "description" in self.model_fields_set: diff --git a/plane/models/relation_type_enum.py b/plane/models/issue_property_api_relation_type_enum.py similarity index 79% rename from plane/models/relation_type_enum.py rename to plane/models/issue_property_api_relation_type_enum.py index 63786dd..f8d0863 100644 --- a/plane/models/relation_type_enum.py +++ b/plane/models/issue_property_api_relation_type_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -19,7 +19,7 @@ from typing_extensions import Self -class RelationTypeEnum(str, Enum): +class IssuePropertyAPIRelationTypeEnum(str, Enum): """ * `ISSUE` - Issue * `USER` - User """ @@ -32,7 +32,7 @@ class RelationTypeEnum(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of RelationTypeEnum from a JSON string""" + """Create an instance of IssuePropertyAPIRelationTypeEnum from a JSON string""" return cls(json.loads(json_str)) diff --git a/plane/models/issue_property_api_request.py b/plane/models/issue_property_api_request.py index ff3e8b3..5a34266 100644 --- a/plane/models/issue_property_api_request.py +++ b/plane/models/issue_property_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -21,8 +21,8 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated +from plane.models.issue_property_api_relation_type_enum import IssuePropertyAPIRelationTypeEnum from plane.models.property_type_enum import PropertyTypeEnum -from plane.models.relation_type_enum import RelationTypeEnum from typing import Set from typing_extensions import Self @@ -30,7 +30,7 @@ class IssuePropertyAPIRequest(BaseModel): """ IssuePropertyAPIRequest """ # noqa: E501 - relation_type: Optional[RelationTypeEnum] = None + relation_type: Optional[IssuePropertyAPIRelationTypeEnum] = None display_name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] description: Optional[StrictStr] = None property_type: PropertyTypeEnum @@ -83,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if relation_type (nullable) is None + # and model_fields_set contains the field + if self.relation_type is None and "relation_type" in self.model_fields_set: + _dict['relation_type'] = None + # set to None if description (nullable) is None # and model_fields_set contains the field if self.description is None and "description" in self.model_fields_set: diff --git a/plane/models/issue_property_option_api.py b/plane/models/issue_property_option_api.py index 5890a15..01733ea 100644 --- a/plane/models/issue_property_option_api.py +++ b/plane/models/issue_property_option_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_property_option_api_request.py b/plane/models/issue_property_option_api_request.py index 26d1052..01c4d37 100644 --- a/plane/models/issue_property_option_api_request.py +++ b/plane/models/issue_property_option_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_property_value_api.py b/plane/models/issue_property_value_api.py index df4ee75..55e7bae 100644 --- a/plane/models/issue_property_value_api.py +++ b/plane/models/issue_property_value_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_property_value_api_detail.py b/plane/models/issue_property_value_api_detail.py index 8772156..6f614d7 100644 --- a/plane/models/issue_property_value_api_detail.py +++ b/plane/models/issue_property_value_api_detail.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_property_value_api_request.py b/plane/models/issue_property_value_api_request.py index c4b92e2..2835b82 100644 --- a/plane/models/issue_property_value_api_request.py +++ b/plane/models/issue_property_value_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_relation.py b/plane/models/issue_relation.py new file mode 100644 index 0000000..1f17ca5 --- /dev/null +++ b/plane/models/issue_relation.py @@ -0,0 +1,149 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Set +from typing_extensions import Self + +class IssueRelation(BaseModel): + """ + Serializer for issue relationships showing related issue details. Provides comprehensive information about related issues including project context, sequence ID, and relationship type. + """ # noqa: E501 + id: Optional[StrictStr] = None + project_id: Optional[StrictStr] = None + sequence_id: Optional[StrictInt] = None + relation_type: Optional[StrictStr] = None + name: Optional[StrictStr] = None + type_id: Optional[StrictStr] = None + is_epic: Optional[StrictBool] = None + state_id: Optional[StrictStr] = None + priority: Optional[StrictStr] = None + created_by: Optional[StrictStr] = None + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + updated_by: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["id", "project_id", "sequence_id", "relation_type", "name", "type_id", "is_epic", "state_id", "priority", "created_by", "created_at", "updated_at", "updated_by"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IssueRelation from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "project_id", + "sequence_id", + "relation_type", + "name", + "type_id", + "is_epic", + "state_id", + "priority", + "created_by", + "created_at", + "updated_at", + "updated_by", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if created_by (nullable) is None + # and model_fields_set contains the field + if self.created_by is None and "created_by" in self.model_fields_set: + _dict['created_by'] = None + + # set to None if updated_by (nullable) is None + # and model_fields_set contains the field + if self.updated_by is None and "updated_by" in self.model_fields_set: + _dict['updated_by'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IssueRelation from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "project_id": obj.get("project_id"), + "sequence_id": obj.get("sequence_id"), + "relation_type": obj.get("relation_type"), + "name": obj.get("name"), + "type_id": obj.get("type_id"), + "is_epic": obj.get("is_epic"), + "state_id": obj.get("state_id"), + "priority": obj.get("priority"), + "created_by": obj.get("created_by"), + "created_at": obj.get("created_at"), + "updated_at": obj.get("updated_at"), + "updated_by": obj.get("updated_by") + }) + return _obj + + diff --git a/plane/models/issue_relation_create_relation_type_enum.py b/plane/models/issue_relation_create_relation_type_enum.py new file mode 100644 index 0000000..c288def --- /dev/null +++ b/plane/models/issue_relation_create_relation_type_enum.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class IssueRelationCreateRelationTypeEnum(str, Enum): + """ + * `blocking` - Blocking * `blocked_by` - Blocked By * `duplicate` - Duplicate * `relates_to` - Relates To * `start_before` - Start Before * `start_after` - Start After * `finish_before` - Finish Before * `finish_after` - Finish After + """ + + """ + allowed enum values + """ + BLOCKING = 'blocking' + BLOCKED_BY = 'blocked_by' + DUPLICATE = 'duplicate' + RELATES_TO = 'relates_to' + START_BEFORE = 'start_before' + START_AFTER = 'start_after' + FINISH_BEFORE = 'finish_before' + FINISH_AFTER = 'finish_after' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of IssueRelationCreateRelationTypeEnum from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/plane/models/issue_relation_create_request.py b/plane/models/issue_relation_create_request.py new file mode 100644 index 0000000..37b925f --- /dev/null +++ b/plane/models/issue_relation_create_request.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from plane.models.issue_relation_create_relation_type_enum import IssueRelationCreateRelationTypeEnum +from typing import Optional, Set +from typing_extensions import Self + +class IssueRelationCreateRequest(BaseModel): + """ + Serializer for creating issue relations. Creates issue relations with the specified relation type and issues. Validates relation types and ensures proper issue ID format. + """ # noqa: E501 + relation_type: IssueRelationCreateRelationTypeEnum = Field(description="Type of relationship between work items * `blocking` - Blocking * `blocked_by` - Blocked By * `duplicate` - Duplicate * `relates_to` - Relates To * `start_before` - Start Before * `start_after` - Start After * `finish_before` - Finish Before * `finish_after` - Finish After") + issues: Annotated[List[StrictStr], Field(min_length=1)] = Field(description="Array of work item IDs to create relations with") + __properties: ClassVar[List[str]] = ["relation_type", "issues"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IssueRelationCreateRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IssueRelationCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "relation_type": obj.get("relation_type"), + "issues": obj.get("issues") + }) + return _obj + + diff --git a/plane/models/issue_relation_remove_request.py b/plane/models/issue_relation_remove_request.py new file mode 100644 index 0000000..84fbf27 --- /dev/null +++ b/plane/models/issue_relation_remove_request.py @@ -0,0 +1,88 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class IssueRelationRemoveRequest(BaseModel): + """ + Serializer for removing issue relations. Removes existing relationships between work items by specifying the related issue ID. + """ # noqa: E501 + related_issue: StrictStr = Field(description="ID of the related work item to remove relation with") + __properties: ClassVar[List[str]] = ["related_issue"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IssueRelationRemoveRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IssueRelationRemoveRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "related_issue": obj.get("related_issue") + }) + return _obj + + diff --git a/plane/models/issue_relation_response.py b/plane/models/issue_relation_response.py new file mode 100644 index 0000000..21f7b03 --- /dev/null +++ b/plane/models/issue_relation_response.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class IssueRelationResponse(BaseModel): + """ + Serializer for issue relations response showing grouped relation types. Returns issue IDs organized by relation type for efficient client-side processing. + """ # noqa: E501 + blocking: List[StrictStr] = Field(description="List of issue IDs that are blocking this issue") + blocked_by: List[StrictStr] = Field(description="List of issue IDs that this issue is blocked by") + duplicate: List[StrictStr] = Field(description="List of issue IDs that are duplicates of this issue") + relates_to: List[StrictStr] = Field(description="List of issue IDs that relate to this issue") + start_after: List[StrictStr] = Field(description="List of issue IDs that start after this issue") + start_before: List[StrictStr] = Field(description="List of issue IDs that start before this issue") + finish_after: List[StrictStr] = Field(description="List of issue IDs that finish after this issue") + finish_before: List[StrictStr] = Field(description="List of issue IDs that finish before this issue") + __properties: ClassVar[List[str]] = ["blocking", "blocked_by", "duplicate", "relates_to", "start_after", "start_before", "finish_after", "finish_before"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IssueRelationResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IssueRelationResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "blocking": obj.get("blocking"), + "blocked_by": obj.get("blocked_by"), + "duplicate": obj.get("duplicate"), + "relates_to": obj.get("relates_to"), + "start_after": obj.get("start_after"), + "start_before": obj.get("start_before"), + "finish_after": obj.get("finish_after"), + "finish_before": obj.get("finish_before") + }) + return _obj + + diff --git a/plane/models/issue_request.py b/plane/models/issue_request.py index c5bd6f5..8261532 100644 --- a/plane/models/issue_request.py +++ b/plane/models/issue_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_search.py b/plane/models/issue_search.py index f206bcf..923a22d 100644 --- a/plane/models/issue_search.py +++ b/plane/models/issue_search.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_search_item.py b/plane/models/issue_search_item.py index 54dae7f..27f8f48 100644 --- a/plane/models/issue_search_item.py +++ b/plane/models/issue_search_item.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_type_api.py b/plane/models/issue_type_api.py index 01e7cfb..89f7550 100644 --- a/plane/models/issue_type_api.py +++ b/plane/models/issue_type_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_type_api_request.py b/plane/models/issue_type_api_request.py index c435b14..7881224 100644 --- a/plane/models/issue_type_api_request.py +++ b/plane/models/issue_type_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_work_log_api.py b/plane/models/issue_work_log_api.py index c079906..a5e604a 100644 --- a/plane/models/issue_work_log_api.py +++ b/plane/models/issue_work_log_api.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/issue_work_log_api_request.py b/plane/models/issue_work_log_api_request.py index 27fe927..87d6cf4 100644 --- a/plane/models/issue_work_log_api_request.py +++ b/plane/models/issue_work_log_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/label.py b/plane/models/label.py index 69a8717..30fbc0a 100644 --- a/plane/models/label.py +++ b/plane/models/label.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/label_create_update_request.py b/plane/models/label_create_update_request.py index cc3b34a..75c0fe9 100644 --- a/plane/models/label_create_update_request.py +++ b/plane/models/label_create_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module.py b/plane/models/module.py index 5379fd2..9942bb6 100644 --- a/plane/models/module.py +++ b/plane/models/module.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module_create_request.py b/plane/models/module_create_request.py index 8758608..dbbfe29 100644 --- a/plane/models/module_create_request.py +++ b/plane/models/module_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module_issue.py b/plane/models/module_issue.py index 3d5aa1e..3624e80 100644 --- a/plane/models/module_issue.py +++ b/plane/models/module_issue.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module_issue_request_request.py b/plane/models/module_issue_request_request.py index cc5d1e6..dbda16e 100644 --- a/plane/models/module_issue_request_request.py +++ b/plane/models/module_issue_request_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module_lite.py b/plane/models/module_lite.py index 6513442..1448a82 100644 --- a/plane/models/module_lite.py +++ b/plane/models/module_lite.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/module_status_enum.py b/plane/models/module_status_enum.py index e7ed7bd..7410c95 100644 --- a/plane/models/module_status_enum.py +++ b/plane/models/module_status_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/network_enum.py b/plane/models/network_enum.py index b1790d8..bd69412 100644 --- a/plane/models/network_enum.py +++ b/plane/models/network_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/page_create_api.py b/plane/models/page_create_api.py new file mode 100644 index 0000000..083232c --- /dev/null +++ b/plane/models/page_create_api.py @@ -0,0 +1,181 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import date, datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from plane.models.page_create_api_access_enum import PageCreateAPIAccessEnum +from typing import Set +from typing_extensions import Self + +class PageCreateAPI(BaseModel): + """ + PageCreateAPI + """ # noqa: E501 + id: Optional[StrictStr] = None + name: StrictStr + owned_by: Optional[StrictStr] = None + access: Optional[PageCreateAPIAccessEnum] = None + color: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + is_locked: Optional[StrictBool] = None + archived_at: Optional[date] = None + workspace: Optional[StrictStr] = None + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + created_by: Optional[StrictStr] = None + updated_by: Optional[StrictStr] = None + view_props: Optional[Any] = None + logo_props: Optional[Any] = None + external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + parent_id: Optional[StrictStr] = None + description_html: StrictStr + __properties: ClassVar[List[str]] = ["id", "name", "owned_by", "access", "color", "is_locked", "archived_at", "workspace", "created_at", "updated_at", "created_by", "updated_by", "view_props", "logo_props", "external_id", "external_source", "parent_id", "description_html"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PageCreateAPI from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "owned_by", + "workspace", + "created_at", + "updated_at", + "created_by", + "updated_by", + "parent_id", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if archived_at (nullable) is None + # and model_fields_set contains the field + if self.archived_at is None and "archived_at" in self.model_fields_set: + _dict['archived_at'] = None + + # set to None if created_by (nullable) is None + # and model_fields_set contains the field + if self.created_by is None and "created_by" in self.model_fields_set: + _dict['created_by'] = None + + # set to None if updated_by (nullable) is None + # and model_fields_set contains the field + if self.updated_by is None and "updated_by" in self.model_fields_set: + _dict['updated_by'] = None + + # set to None if view_props (nullable) is None + # and model_fields_set contains the field + if self.view_props is None and "view_props" in self.model_fields_set: + _dict['view_props'] = None + + # set to None if logo_props (nullable) is None + # and model_fields_set contains the field + if self.logo_props is None and "logo_props" in self.model_fields_set: + _dict['logo_props'] = None + + # set to None if external_id (nullable) is None + # and model_fields_set contains the field + if self.external_id is None and "external_id" in self.model_fields_set: + _dict['external_id'] = None + + # set to None if external_source (nullable) is None + # and model_fields_set contains the field + if self.external_source is None and "external_source" in self.model_fields_set: + _dict['external_source'] = None + + # set to None if parent_id (nullable) is None + # and model_fields_set contains the field + if self.parent_id is None and "parent_id" in self.model_fields_set: + _dict['parent_id'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PageCreateAPI from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name"), + "owned_by": obj.get("owned_by"), + "access": obj.get("access"), + "color": obj.get("color"), + "is_locked": obj.get("is_locked"), + "archived_at": obj.get("archived_at"), + "workspace": obj.get("workspace"), + "created_at": obj.get("created_at"), + "updated_at": obj.get("updated_at"), + "created_by": obj.get("created_by"), + "updated_by": obj.get("updated_by"), + "view_props": obj.get("view_props"), + "logo_props": obj.get("logo_props"), + "external_id": obj.get("external_id"), + "external_source": obj.get("external_source"), + "parent_id": obj.get("parent_id"), + "description_html": obj.get("description_html") + }) + return _obj + + diff --git a/plane/models/page_create_api_access_enum.py b/plane/models/page_create_api_access_enum.py new file mode 100644 index 0000000..6cb04fe --- /dev/null +++ b/plane/models/page_create_api_access_enum.py @@ -0,0 +1,38 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class PageCreateAPIAccessEnum(int, Enum): + """ + * `0` - Public * `1` - Private + """ + + """ + allowed enum values + """ + NUMBER_0 = 0 + NUMBER_1 = 1 + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of PageCreateAPIAccessEnum from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/plane/models/page_create_api_request.py b/plane/models/page_create_api_request.py new file mode 100644 index 0000000..4bef02b --- /dev/null +++ b/plane/models/page_create_api_request.py @@ -0,0 +1,134 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import date +from pydantic import BaseModel, ConfigDict, Field, StrictBool +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from plane.models.page_create_api_access_enum import PageCreateAPIAccessEnum +from typing import Set +from typing_extensions import Self + +class PageCreateAPIRequest(BaseModel): + """ + PageCreateAPIRequest + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True)] + access: Optional[PageCreateAPIAccessEnum] = None + color: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + is_locked: Optional[StrictBool] = None + archived_at: Optional[date] = None + view_props: Optional[Any] = None + logo_props: Optional[Any] = None + external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + description_html: Annotated[str, Field(min_length=1, strict=True)] + __properties: ClassVar[List[str]] = ["name", "access", "color", "is_locked", "archived_at", "view_props", "logo_props", "external_id", "external_source", "description_html"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PageCreateAPIRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if archived_at (nullable) is None + # and model_fields_set contains the field + if self.archived_at is None and "archived_at" in self.model_fields_set: + _dict['archived_at'] = None + + # set to None if view_props (nullable) is None + # and model_fields_set contains the field + if self.view_props is None and "view_props" in self.model_fields_set: + _dict['view_props'] = None + + # set to None if logo_props (nullable) is None + # and model_fields_set contains the field + if self.logo_props is None and "logo_props" in self.model_fields_set: + _dict['logo_props'] = None + + # set to None if external_id (nullable) is None + # and model_fields_set contains the field + if self.external_id is None and "external_id" in self.model_fields_set: + _dict['external_id'] = None + + # set to None if external_source (nullable) is None + # and model_fields_set contains the field + if self.external_source is None and "external_source" in self.model_fields_set: + _dict['external_source'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PageCreateAPIRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "access": obj.get("access"), + "color": obj.get("color"), + "is_locked": obj.get("is_locked"), + "archived_at": obj.get("archived_at"), + "view_props": obj.get("view_props"), + "logo_props": obj.get("logo_props"), + "external_id": obj.get("external_id"), + "external_source": obj.get("external_source"), + "description_html": obj.get("description_html") + }) + return _obj + + diff --git a/plane/models/page_detail_api.py b/plane/models/page_detail_api.py new file mode 100644 index 0000000..16935a9 --- /dev/null +++ b/plane/models/page_detail_api.py @@ -0,0 +1,124 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Set +from typing_extensions import Self + +class PageDetailAPI(BaseModel): + """ + PageDetailAPI + """ # noqa: E501 + id: Optional[StrictStr] = None + name: Optional[StrictStr] = None + description_stripped: Optional[StrictStr] = None + created_at: Optional[datetime] = None + updated_at: Optional[datetime] = None + owned_by: Optional[StrictStr] = None + anchor: Optional[StrictStr] = None + workspace: Optional[StrictStr] = None + projects: Optional[List[StrictStr]] = None + __properties: ClassVar[List[str]] = ["id", "name", "description_stripped", "created_at", "updated_at", "owned_by", "anchor", "workspace", "projects"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PageDetailAPI from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "created_at", + "updated_at", + "owned_by", + "anchor", + "workspace", + "projects", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if description_stripped (nullable) is None + # and model_fields_set contains the field + if self.description_stripped is None and "description_stripped" in self.model_fields_set: + _dict['description_stripped'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PageDetailAPI from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name"), + "description_stripped": obj.get("description_stripped"), + "created_at": obj.get("created_at"), + "updated_at": obj.get("updated_at"), + "owned_by": obj.get("owned_by"), + "anchor": obj.get("anchor"), + "workspace": obj.get("workspace"), + "projects": obj.get("projects") + }) + return _obj + + diff --git a/plane/models/paginated_archived_cycle_response.py b/plane/models/paginated_archived_cycle_response.py index aab8182..0e253e5 100644 --- a/plane/models/paginated_archived_cycle_response.py +++ b/plane/models/paginated_archived_cycle_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_archived_module_response.py b/plane/models/paginated_archived_module_response.py index d4531d0..1f2b3fc 100644 --- a/plane/models/paginated_archived_module_response.py +++ b/plane/models/paginated_archived_module_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_cycle_issue_response.py b/plane/models/paginated_cycle_issue_response.py index bb37965..4e72804 100644 --- a/plane/models/paginated_cycle_issue_response.py +++ b/plane/models/paginated_cycle_issue_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_cycle_response.py b/plane/models/paginated_cycle_response.py index 03310ed..094c485 100644 --- a/plane/models/paginated_cycle_response.py +++ b/plane/models/paginated_cycle_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_epic_response.py b/plane/models/paginated_epic_response.py new file mode 100644 index 0000000..70c7be6 --- /dev/null +++ b/plane/models/paginated_epic_response.py @@ -0,0 +1,133 @@ +# coding: utf-8 + +""" + The Plane REST API + + The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). + + The version of the API Spec: 0.0.2 + Contact: support@plane.so + This class is auto generated. + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from plane.models.epic import Epic +from typing import Set +from typing_extensions import Self + +class PaginatedEpicResponse(BaseModel): + """ + PaginatedEpicResponse + """ # noqa: E501 + grouped_by: Optional[StrictStr] + sub_grouped_by: Optional[StrictStr] + total_count: StrictInt + next_cursor: StrictStr + prev_cursor: StrictStr + next_page_results: StrictBool + prev_page_results: StrictBool + count: StrictInt + total_pages: StrictInt + total_results: StrictInt + extra_stats: Optional[StrictStr] + results: List[Epic] + __properties: ClassVar[List[str]] = ["grouped_by", "sub_grouped_by", "total_count", "next_cursor", "prev_cursor", "next_page_results", "prev_page_results", "count", "total_pages", "total_results", "extra_stats", "results"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PaginatedEpicResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in results (list) + _items = [] + if self.results: + for _item_results in self.results: + if _item_results: + _items.append(_item_results.to_dict()) + _dict['results'] = _items + # set to None if grouped_by (nullable) is None + # and model_fields_set contains the field + if self.grouped_by is None and "grouped_by" in self.model_fields_set: + _dict['grouped_by'] = None + + # set to None if sub_grouped_by (nullable) is None + # and model_fields_set contains the field + if self.sub_grouped_by is None and "sub_grouped_by" in self.model_fields_set: + _dict['sub_grouped_by'] = None + + # set to None if extra_stats (nullable) is None + # and model_fields_set contains the field + if self.extra_stats is None and "extra_stats" in self.model_fields_set: + _dict['extra_stats'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PaginatedEpicResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "grouped_by": obj.get("grouped_by"), + "sub_grouped_by": obj.get("sub_grouped_by"), + "total_count": obj.get("total_count"), + "next_cursor": obj.get("next_cursor"), + "prev_cursor": obj.get("prev_cursor"), + "next_page_results": obj.get("next_page_results"), + "prev_page_results": obj.get("prev_page_results"), + "count": obj.get("count"), + "total_pages": obj.get("total_pages"), + "total_results": obj.get("total_results"), + "extra_stats": obj.get("extra_stats"), + "results": [Epic.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None + }) + return _obj + + diff --git a/plane/models/paginated_intake_issue_response.py b/plane/models/paginated_intake_issue_response.py index dd23515..f7f27c4 100644 --- a/plane/models/paginated_intake_issue_response.py +++ b/plane/models/paginated_intake_issue_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_issue_activity_detail_response.py b/plane/models/paginated_issue_activity_detail_response.py index 700da5c..c785702 100644 --- a/plane/models/paginated_issue_activity_detail_response.py +++ b/plane/models/paginated_issue_activity_detail_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_issue_activity_response.py b/plane/models/paginated_issue_activity_response.py index 1d423fd..9b0c362 100644 --- a/plane/models/paginated_issue_activity_response.py +++ b/plane/models/paginated_issue_activity_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_issue_comment_response.py b/plane/models/paginated_issue_comment_response.py index 8d3af9c..fd2c9f6 100644 --- a/plane/models/paginated_issue_comment_response.py +++ b/plane/models/paginated_issue_comment_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_issue_link_detail_response.py b/plane/models/paginated_issue_link_detail_response.py index c18d7be..731ca50 100644 --- a/plane/models/paginated_issue_link_detail_response.py +++ b/plane/models/paginated_issue_link_detail_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_issue_link_response.py b/plane/models/paginated_issue_link_response.py index da4d4e6..eb2bcb6 100644 --- a/plane/models/paginated_issue_link_response.py +++ b/plane/models/paginated_issue_link_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_label_response.py b/plane/models/paginated_label_response.py index 5007ff3..98170a6 100644 --- a/plane/models/paginated_label_response.py +++ b/plane/models/paginated_label_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_module_issue_response.py b/plane/models/paginated_module_issue_response.py index 44ad5d1..46de93b 100644 --- a/plane/models/paginated_module_issue_response.py +++ b/plane/models/paginated_module_issue_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_module_response.py b/plane/models/paginated_module_response.py index 0db3734..6ab52ce 100644 --- a/plane/models/paginated_module_response.py +++ b/plane/models/paginated_module_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_project_response.py b/plane/models/paginated_project_response.py index 0d6a6e0..d835068 100644 --- a/plane/models/paginated_project_response.py +++ b/plane/models/paginated_project_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_state_response.py b/plane/models/paginated_state_response.py index fc38266..ef77e3e 100644 --- a/plane/models/paginated_state_response.py +++ b/plane/models/paginated_state_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/paginated_work_item_response.py b/plane/models/paginated_work_item_response.py index 90f963c..57ba0d3 100644 --- a/plane/models/paginated_work_item_response.py +++ b/plane/models/paginated_work_item_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_asset_update_request.py b/plane/models/patched_asset_update_request.py index d5d685e..6d99de8 100644 --- a/plane/models/patched_asset_update_request.py +++ b/plane/models/patched_asset_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_cycle_update_request.py b/plane/models/patched_cycle_update_request.py index fbf1a9f..86a4429 100644 --- a/plane/models/patched_cycle_update_request.py +++ b/plane/models/patched_cycle_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_generic_asset_update_request.py b/plane/models/patched_generic_asset_update_request.py index 1f3a857..f165579 100644 --- a/plane/models/patched_generic_asset_update_request.py +++ b/plane/models/patched_generic_asset_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_intake_issue_update_request.py b/plane/models/patched_intake_issue_update_request.py index 63bed29..d53781f 100644 --- a/plane/models/patched_intake_issue_update_request.py +++ b/plane/models/patched_intake_issue_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_issue_comment_create_request.py b/plane/models/patched_issue_comment_create_request.py index 0938eba..c90faa7 100644 --- a/plane/models/patched_issue_comment_create_request.py +++ b/plane/models/patched_issue_comment_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -21,7 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from plane.models.access_enum import AccessEnum +from plane.models.access_bd4_enum import AccessBd4Enum from typing import Set from typing_extensions import Self @@ -31,7 +31,7 @@ class PatchedIssueCommentCreateRequest(BaseModel): """ # noqa: E501 comment_json: Optional[Any] = None comment_html: Optional[StrictStr] = None - access: Optional[AccessEnum] = None + access: Optional[AccessBd4Enum] = None external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None __properties: ClassVar[List[str]] = ["comment_json", "comment_html", "access", "external_source", "external_id"] diff --git a/plane/models/patched_issue_link_update_request.py b/plane/models/patched_issue_link_update_request.py index 5e8895e..b74a53f 100644 --- a/plane/models/patched_issue_link_update_request.py +++ b/plane/models/patched_issue_link_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_issue_property_api_request.py b/plane/models/patched_issue_property_api_request.py index 7f43469..3f719f4 100644 --- a/plane/models/patched_issue_property_api_request.py +++ b/plane/models/patched_issue_property_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -21,8 +21,8 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated +from plane.models.issue_property_api_relation_type_enum import IssuePropertyAPIRelationTypeEnum from plane.models.property_type_enum import PropertyTypeEnum -from plane.models.relation_type_enum import RelationTypeEnum from typing import Set from typing_extensions import Self @@ -30,7 +30,7 @@ class PatchedIssuePropertyAPIRequest(BaseModel): """ PatchedIssuePropertyAPIRequest """ # noqa: E501 - relation_type: Optional[RelationTypeEnum] = None + relation_type: Optional[IssuePropertyAPIRelationTypeEnum] = None display_name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = None description: Optional[StrictStr] = None property_type: Optional[PropertyTypeEnum] = None @@ -83,6 +83,11 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if relation_type (nullable) is None + # and model_fields_set contains the field + if self.relation_type is None and "relation_type" in self.model_fields_set: + _dict['relation_type'] = None + # set to None if description (nullable) is None # and model_fields_set contains the field if self.description is None and "description" in self.model_fields_set: diff --git a/plane/models/patched_issue_property_option_api_request.py b/plane/models/patched_issue_property_option_api_request.py index 2ffb019..ca0852e 100644 --- a/plane/models/patched_issue_property_option_api_request.py +++ b/plane/models/patched_issue_property_option_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_issue_request.py b/plane/models/patched_issue_request.py index 7cf757f..d2e6850 100644 --- a/plane/models/patched_issue_request.py +++ b/plane/models/patched_issue_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_issue_type_api_request.py b/plane/models/patched_issue_type_api_request.py index 4f1bb62..b19f2fe 100644 --- a/plane/models/patched_issue_type_api_request.py +++ b/plane/models/patched_issue_type_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_issue_work_log_api_request.py b/plane/models/patched_issue_work_log_api_request.py index 50a7fa3..30129d5 100644 --- a/plane/models/patched_issue_work_log_api_request.py +++ b/plane/models/patched_issue_work_log_api_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_label_create_update_request.py b/plane/models/patched_label_create_update_request.py index 374bc0f..006281a 100644 --- a/plane/models/patched_label_create_update_request.py +++ b/plane/models/patched_label_create_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_module_update_request.py b/plane/models/patched_module_update_request.py index 076ae01..5e4e65f 100644 --- a/plane/models/patched_module_update_request.py +++ b/plane/models/patched_module_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/patched_project_update_request.py b/plane/models/patched_project_update_request.py index 58ae30e..a91df64 100644 --- a/plane/models/patched_project_update_request.py +++ b/plane/models/patched_project_update_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -46,9 +46,13 @@ class PatchedProjectUpdateRequest(BaseModel): archive_in: Optional[Annotated[int, Field(le=12, strict=True, ge=0)]] = None close_in: Optional[Annotated[int, Field(le=12, strict=True, ge=0)]] = None timezone: Optional[TimezoneEnum] = None + logo_props: Optional[Any] = None + external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + is_issue_type_enabled: Optional[StrictBool] = None default_state: Optional[StrictStr] = None estimate: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["name", "description", "project_lead", "default_assignee", "identifier", "icon_prop", "emoji", "cover_image", "module_view", "cycle_view", "issue_views_view", "page_view", "intake_view", "guest_view_all_features", "archive_in", "close_in", "timezone", "default_state", "estimate"] + __properties: ClassVar[List[str]] = ["name", "description", "project_lead", "default_assignee", "identifier", "icon_prop", "emoji", "cover_image", "module_view", "cycle_view", "issue_views_view", "page_view", "intake_view", "guest_view_all_features", "archive_in", "close_in", "timezone", "logo_props", "external_source", "external_id", "is_issue_type_enabled", "default_state", "estimate"] model_config = ConfigDict( populate_by_name=True, @@ -114,6 +118,21 @@ def to_dict(self) -> Dict[str, Any]: if self.cover_image is None and "cover_image" in self.model_fields_set: _dict['cover_image'] = None + # set to None if logo_props (nullable) is None + # and model_fields_set contains the field + if self.logo_props is None and "logo_props" in self.model_fields_set: + _dict['logo_props'] = None + + # set to None if external_source (nullable) is None + # and model_fields_set contains the field + if self.external_source is None and "external_source" in self.model_fields_set: + _dict['external_source'] = None + + # set to None if external_id (nullable) is None + # and model_fields_set contains the field + if self.external_id is None and "external_id" in self.model_fields_set: + _dict['external_id'] = None + # set to None if default_state (nullable) is None # and model_fields_set contains the field if self.default_state is None and "default_state" in self.model_fields_set: @@ -153,6 +172,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "archive_in": obj.get("archive_in"), "close_in": obj.get("close_in"), "timezone": obj.get("timezone"), + "logo_props": obj.get("logo_props"), + "external_source": obj.get("external_source"), + "external_id": obj.get("external_id"), + "is_issue_type_enabled": obj.get("is_issue_type_enabled"), "default_state": obj.get("default_state"), "estimate": obj.get("estimate") }) diff --git a/plane/models/patched_state_request.py b/plane/models/patched_state_request.py index ea0f156..d862aa2 100644 --- a/plane/models/patched_state_request.py +++ b/plane/models/patched_state_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/priority_enum.py b/plane/models/priority_enum.py index 5a996d6..f3a2798 100644 --- a/plane/models/priority_enum.py +++ b/plane/models/priority_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/project.py b/plane/models/project.py index e790df8..258d80a 100644 --- a/plane/models/project.py +++ b/plane/models/project.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/project_create_request.py b/plane/models/project_create_request.py index b4898dc..c4f1f6b 100644 --- a/plane/models/project_create_request.py +++ b/plane/models/project_create_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -46,7 +46,11 @@ class ProjectCreateRequest(BaseModel): archive_in: Optional[Annotated[int, Field(le=12, strict=True, ge=0)]] = None close_in: Optional[Annotated[int, Field(le=12, strict=True, ge=0)]] = None timezone: Optional[TimezoneEnum] = None - __properties: ClassVar[List[str]] = ["name", "description", "project_lead", "default_assignee", "identifier", "icon_prop", "emoji", "cover_image", "module_view", "cycle_view", "issue_views_view", "page_view", "intake_view", "guest_view_all_features", "archive_in", "close_in", "timezone"] + logo_props: Optional[Any] = None + external_source: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + external_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + is_issue_type_enabled: Optional[StrictBool] = None + __properties: ClassVar[List[str]] = ["name", "description", "project_lead", "default_assignee", "identifier", "icon_prop", "emoji", "cover_image", "module_view", "cycle_view", "issue_views_view", "page_view", "intake_view", "guest_view_all_features", "archive_in", "close_in", "timezone", "logo_props", "external_source", "external_id", "is_issue_type_enabled"] model_config = ConfigDict( populate_by_name=True, @@ -112,6 +116,21 @@ def to_dict(self) -> Dict[str, Any]: if self.cover_image is None and "cover_image" in self.model_fields_set: _dict['cover_image'] = None + # set to None if logo_props (nullable) is None + # and model_fields_set contains the field + if self.logo_props is None and "logo_props" in self.model_fields_set: + _dict['logo_props'] = None + + # set to None if external_source (nullable) is None + # and model_fields_set contains the field + if self.external_source is None and "external_source" in self.model_fields_set: + _dict['external_source'] = None + + # set to None if external_id (nullable) is None + # and model_fields_set contains the field + if self.external_id is None and "external_id" in self.model_fields_set: + _dict['external_id'] = None + return _dict @classmethod @@ -140,7 +159,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "guest_view_all_features": obj.get("guest_view_all_features"), "archive_in": obj.get("archive_in"), "close_in": obj.get("close_in"), - "timezone": obj.get("timezone") + "timezone": obj.get("timezone"), + "logo_props": obj.get("logo_props"), + "external_source": obj.get("external_source"), + "external_id": obj.get("external_id"), + "is_issue_type_enabled": obj.get("is_issue_type_enabled") }) return _obj diff --git a/plane/models/project_worklog_summary.py b/plane/models/project_worklog_summary.py index 644fd09..461abf1 100644 --- a/plane/models/project_worklog_summary.py +++ b/plane/models/project_worklog_summary.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/property_type_enum.py b/plane/models/property_type_enum.py index 7b8d1fe..15d0e08 100644 --- a/plane/models/property_type_enum.py +++ b/plane/models/property_type_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/retrieve_work_item_attachment400_response.py b/plane/models/retrieve_work_item_attachment400_response.py index ef3549a..0bb23aa 100644 --- a/plane/models/retrieve_work_item_attachment400_response.py +++ b/plane/models/retrieve_work_item_attachment400_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/state.py b/plane/models/state.py index 9c33d89..0b47ba3 100644 --- a/plane/models/state.py +++ b/plane/models/state.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/state_lite.py b/plane/models/state_lite.py index 169a43a..7955337 100644 --- a/plane/models/state_lite.py +++ b/plane/models/state_lite.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/state_request.py b/plane/models/state_request.py index 935eb0f..c45772c 100644 --- a/plane/models/state_request.py +++ b/plane/models/state_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/timezone_enum.py b/plane/models/timezone_enum.py index 4c14dd6..1310394 100644 --- a/plane/models/timezone_enum.py +++ b/plane/models/timezone_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/transfer_cycle_issue_request_request.py b/plane/models/transfer_cycle_issue_request_request.py index 6f447be..c3ebb6e 100644 --- a/plane/models/transfer_cycle_issue_request_request.py +++ b/plane/models/transfer_cycle_issue_request_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/transfer_cycle_work_items200_response.py b/plane/models/transfer_cycle_work_items200_response.py index f635e59..fe9e403 100644 --- a/plane/models/transfer_cycle_work_items200_response.py +++ b/plane/models/transfer_cycle_work_items200_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/transfer_cycle_work_items400_response.py b/plane/models/transfer_cycle_work_items400_response.py index 908bdf6..d17921f 100644 --- a/plane/models/transfer_cycle_work_items400_response.py +++ b/plane/models/transfer_cycle_work_items400_response.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/type_enum.py b/plane/models/type_enum.py index 2591328..bec2a53 100644 --- a/plane/models/type_enum.py +++ b/plane/models/type_enum.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/user_asset_upload_request.py b/plane/models/user_asset_upload_request.py index bfef710..ec5b04a 100644 --- a/plane/models/user_asset_upload_request.py +++ b/plane/models/user_asset_upload_request.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/models/user_lite.py b/plane/models/user_lite.py index 5fa50fd..8a6494f 100644 --- a/plane/models/user_lite.py +++ b/plane/models/user_lite.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/plane/rest.py b/plane/rest.py index 903f490..9d9fe4c 100644 --- a/plane/rest.py +++ b/plane/rest.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. diff --git a/pyproject.toml b/pyproject.toml index 873d495..7479cf5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "plane" -version = "0.1.9" +version = "0.1.10" description = "The Plane REST API" authors = ["Plane "] license = "GNU AGPLv3" diff --git a/setup.py b/setup.py index 84e607d..8a97f7b 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ The Plane REST API Visit our quick start guide and full API documentation at [developers.plane.so](https://developers.plane.so/api-reference/introduction). - The version of the API Spec: 0.0.1 + The version of the API Spec: 0.0.2 Contact: support@plane.so This class is auto generated. @@ -22,7 +22,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "plane-sdk" -VERSION = "0.1.9" +VERSION = "0.1.10" PYTHON_REQUIRES = ">= 3.9" REQUIRES = [ "urllib3 >= 2.1.0, < 3.0.0",