"""
    BIMData API

    BIMData API is a tool to interact with your models stored on BIMData’s servers.     Through the API, you can manage your projects, the clouds, upload your IFC files and manage them through endpoints.  # noqa: E501

    The version of the OpenAPI document: v1 (v1)
    Contact: support@bimdata.io
    Generated by: https://openapi-generator.tech
"""


import re  # noqa: F401
import sys  # noqa: F401

from bimdata_api_client.api_client import ApiClient, Endpoint as _Endpoint
from bimdata_api_client.model_utils import (  # noqa: F401
    check_allowed_values,
    check_validations,
    date,
    datetime,
    file_type,
    none_type,
    validate_and_convert_types
)
from bimdata_api_client.model.bcf_project import BcfProject
from bimdata_api_client.model.bcf_project_request import BcfProjectRequest
from bimdata_api_client.model.coloring import Coloring
from bimdata_api_client.model.comment import Comment
from bimdata_api_client.model.comment_request import CommentRequest
from bimdata_api_client.model.component import Component
from bimdata_api_client.model.detailed_extensions import DetailedExtensions
from bimdata_api_client.model.extensions import Extensions
from bimdata_api_client.model.full_topic import FullTopic
from bimdata_api_client.model.full_topic_request import FullTopicRequest
from bimdata_api_client.model.label import Label
from bimdata_api_client.model.label_request import LabelRequest
from bimdata_api_client.model.patched_bcf_project_request import PatchedBcfProjectRequest
from bimdata_api_client.model.patched_comment_request import PatchedCommentRequest
from bimdata_api_client.model.patched_full_topic_request import PatchedFullTopicRequest
from bimdata_api_client.model.patched_label_request import PatchedLabelRequest
from bimdata_api_client.model.patched_priority_request import PatchedPriorityRequest
from bimdata_api_client.model.patched_stage_request import PatchedStageRequest
from bimdata_api_client.model.patched_topic_request import PatchedTopicRequest
from bimdata_api_client.model.patched_topic_status_request import PatchedTopicStatusRequest
from bimdata_api_client.model.patched_topic_type_request import PatchedTopicTypeRequest
from bimdata_api_client.model.patched_viewpoint_request import PatchedViewpointRequest
from bimdata_api_client.model.priority import Priority
from bimdata_api_client.model.priority_request import PriorityRequest
from bimdata_api_client.model.self_bcf_user import SelfBcfUser
from bimdata_api_client.model.stage import Stage
from bimdata_api_client.model.stage_request import StageRequest
from bimdata_api_client.model.topic import Topic
from bimdata_api_client.model.topic_request import TopicRequest
from bimdata_api_client.model.topic_status import TopicStatus
from bimdata_api_client.model.topic_status_request import TopicStatusRequest
from bimdata_api_client.model.topic_type import TopicType
from bimdata_api_client.model.topic_type_request import TopicTypeRequest
from bimdata_api_client.model.viewpoint import Viewpoint
from bimdata_api_client.model.viewpoint_request import ViewpointRequest
from bimdata_api_client.model.visibility import Visibility


class BcfApi(object):
    """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):
        if api_client is None:
            api_client = ApiClient()
        self.api_client = api_client
        self.create_comment_endpoint = _Endpoint(
            settings={
                'response_type': (Comment,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments',
                'operation_id': 'create_comment',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topics_guid',
                    'comment_request',
                ],
                'required': [
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'comment_request':
                        (CommentRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'comment_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_extension_label_endpoint = _Endpoint(
            settings={
                'response_type': (Label,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/label',
                'operation_id': 'create_extension_label',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'label_request',
                ],
                'required': [
                    'projects_pk',
                    'label_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'label_request':
                        (LabelRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'label_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_extension_priority_endpoint = _Endpoint(
            settings={
                'response_type': (Priority,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/priority',
                'operation_id': 'create_extension_priority',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'priority_request',
                ],
                'required': [
                    'projects_pk',
                    'priority_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'priority_request':
                        (PriorityRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'priority_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_extension_stage_endpoint = _Endpoint(
            settings={
                'response_type': (Stage,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/stage',
                'operation_id': 'create_extension_stage',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'stage_request',
                ],
                'required': [
                    'projects_pk',
                    'stage_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'stage_request':
                        (StageRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'stage_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_extension_status_endpoint = _Endpoint(
            settings={
                'response_type': (TopicStatus,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/status',
                'operation_id': 'create_extension_status',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topic_status_request',
                ],
                'required': [
                    'projects_pk',
                    'topic_status_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topic_status_request':
                        (TopicStatusRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topic_status_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_extension_type_endpoint = _Endpoint(
            settings={
                'response_type': (TopicType,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/type',
                'operation_id': 'create_extension_type',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topic_type_request',
                ],
                'required': [
                    'projects_pk',
                    'topic_type_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topic_type_request':
                        (TopicTypeRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topic_type_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_full_topic_endpoint = _Endpoint(
            settings={
                'response_type': (FullTopic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/full-topic',
                'operation_id': 'create_full_topic',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'full_topic_request',
                    'img_format',
                ],
                'required': [
                    'projects_pk',
                    'full_topic_request',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'full_topic_request':
                        (FullTopicRequest,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'full_topic_request': 'body',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_topic_endpoint = _Endpoint(
            settings={
                'response_type': (Topic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics',
                'operation_id': 'create_topic',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topic_request',
                ],
                'required': [
                    'projects_pk',
                    'topic_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topic_request':
                        (TopicRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topic_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.create_viewpoint_endpoint = _Endpoint(
            settings={
                'response_type': (Viewpoint,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints',
                'operation_id': 'create_viewpoint',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                    'viewpoint_request',
                ],
                'required': [
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                    'viewpoint_request':
                        (ViewpointRequest,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                    'viewpoint_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.delete_comment_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments/{guid}',
                'operation_id': 'delete_comment',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_extension_label_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/label/{id}',
                'operation_id': 'delete_extension_label',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_extension_priority_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/priority/{id}',
                'operation_id': 'delete_extension_priority',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_extension_stage_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/stage/{id}',
                'operation_id': 'delete_extension_stage',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_extension_status_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/status/{id}',
                'operation_id': 'delete_extension_status',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_extension_type_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/type/{id}',
                'operation_id': 'delete_extension_type',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_topic_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{guid}',
                'operation_id': 'delete_topic',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.delete_viewpoint_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}',
                'operation_id': 'delete_viewpoint',
                'http_method': 'DELETE',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [],
            },
            api_client=api_client
        )
        self.download_bcf_export_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}/export',
                'operation_id': 'download_bcf_export',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'format',
                    'topics',
                ],
                'required': [
                    'id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'format':
                        (str,),
                    'topics':
                        (str,),
                },
                'attribute_map': {
                    'id': 'id',
                    'format': 'format',
                    'topics': 'topics',
                },
                'location_map': {
                    'id': 'path',
                    'format': 'query',
                    'topics': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.full_update_bcf_project_endpoint = _Endpoint(
            settings={
                'response_type': (BcfProject,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}',
                'operation_id': 'full_update_bcf_project',
                'http_method': 'PUT',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'bcf_project_request',
                ],
                'required': [
                    'id',
                    'bcf_project_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'bcf_project_request':
                        (BcfProjectRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                },
                'location_map': {
                    'id': 'path',
                    'bcf_project_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.full_update_comment_endpoint = _Endpoint(
            settings={
                'response_type': (Comment,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments/{guid}',
                'operation_id': 'full_update_comment',
                'http_method': 'PUT',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'comment_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'comment_request':
                        (CommentRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'comment_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.full_update_full_topic_endpoint = _Endpoint(
            settings={
                'response_type': (FullTopic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/full-topic/{guid}',
                'operation_id': 'full_update_full_topic',
                'http_method': 'PUT',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'full_topic_request',
                    'img_format',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'full_topic_request',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'full_topic_request':
                        (FullTopicRequest,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'full_topic_request': 'body',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.full_update_topic_endpoint = _Endpoint(
            settings={
                'response_type': (Topic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{guid}',
                'operation_id': 'full_update_topic',
                'http_method': 'PUT',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topic_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topic_request',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topic_request':
                        (TopicRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topic_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.full_update_viewpoint_endpoint = _Endpoint(
            settings={
                'response_type': (Viewpoint,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}',
                'operation_id': 'full_update_viewpoint',
                'http_method': 'PUT',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                    'viewpoint_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                    'viewpoint_request':
                        (ViewpointRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                    'viewpoint_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.get_bcf_project_endpoint = _Endpoint(
            settings={
                'response_type': (BcfProject,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}',
                'operation_id': 'get_bcf_project',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                ],
                'required': [
                    'id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                },
                'location_map': {
                    'id': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_bcf_projects_endpoint = _Endpoint(
            settings={
                'response_type': ([BcfProject],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects',
                'operation_id': 'get_bcf_projects',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                },
                'attribute_map': {
                },
                'location_map': {
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_colorings_endpoint = _Endpoint(
            settings={
                'response_type': ([Coloring],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}/coloring',
                'operation_id': 'get_colorings',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_comment_endpoint = _Endpoint(
            settings={
                'response_type': (Comment,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments/{guid}',
                'operation_id': 'get_comment',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_comments_endpoint = _Endpoint(
            settings={
                'response_type': ([Comment],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments',
                'operation_id': 'get_comments',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_detailed_extensions_endpoint = _Endpoint(
            settings={
                'response_type': (DetailedExtensions,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}/detailed-extensions',
                'operation_id': 'get_detailed_extensions',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                ],
                'required': [
                    'id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                },
                'location_map': {
                    'id': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_extensions_endpoint = _Endpoint(
            settings={
                'response_type': (Extensions,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}/extensions',
                'operation_id': 'get_extensions',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                ],
                'required': [
                    'id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                },
                'attribute_map': {
                    'id': 'id',
                },
                'location_map': {
                    'id': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_full_topic_endpoint = _Endpoint(
            settings={
                'response_type': (FullTopic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/full-topic/{guid}',
                'operation_id': 'get_full_topic',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'img_format',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_full_topics_endpoint = _Endpoint(
            settings={
                'response_type': ([FullTopic],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/full-topic',
                'operation_id': 'get_full_topics',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'format',
                    'ifcs',
                    'img_format',
                    'models',
                ],
                'required': [
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'format':
                        (str,),
                    'ifcs':
                        ([int],),
                    'img_format':
                        (str,),
                    'models':
                        ([int],),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'format': 'format',
                    'ifcs': 'ifcs',
                    'img_format': 'img_format',
                    'models': 'models',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'format': 'query',
                    'ifcs': 'query',
                    'img_format': 'query',
                    'models': 'query',
                },
                'collection_format_map': {
                    'ifcs': 'multi',
                    'models': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_selections_endpoint = _Endpoint(
            settings={
                'response_type': ([Component],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}/selection',
                'operation_id': 'get_selections',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_snapshot_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}/snapshot',
                'operation_id': 'get_snapshot',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_topic_endpoint = _Endpoint(
            settings={
                'response_type': (Topic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{guid}',
                'operation_id': 'get_topic',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_topic_viewpoints_endpoint = _Endpoint(
            settings={
                'response_type': ([Viewpoint],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/topic-viewpoints',
                'operation_id': 'get_topic_viewpoints',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                ],
                'required': [
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_topics_endpoint = _Endpoint(
            settings={
                'response_type': ([Topic],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics',
                'operation_id': 'get_topics',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'format',
                    'ifcs',
                    'models',
                ],
                'required': [
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'format':
                        (str,),
                    'ifcs':
                        ([int],),
                    'models':
                        ([int],),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'format': 'format',
                    'ifcs': 'ifcs',
                    'models': 'models',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'format': 'query',
                    'ifcs': 'query',
                    'models': 'query',
                },
                'collection_format_map': {
                    'ifcs': 'multi',
                    'models': 'multi',
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_user_endpoint = _Endpoint(
            settings={
                'response_type': (SelfBcfUser,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/current-user',
                'operation_id': 'get_user',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                ],
                'required': [],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                },
                'attribute_map': {
                },
                'location_map': {
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_viewpoint_endpoint = _Endpoint(
            settings={
                'response_type': (Viewpoint,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}',
                'operation_id': 'get_viewpoint',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_viewpoints_endpoint = _Endpoint(
            settings={
                'response_type': ([Viewpoint],),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints',
                'operation_id': 'get_viewpoints',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                ],
                'required': [
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                },
                'attribute_map': {
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.get_visibilities_endpoint = _Endpoint(
            settings={
                'response_type': (Visibility,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}/visibility',
                'operation_id': 'get_visibilities',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.import_bcf_endpoint = _Endpoint(
            settings={
                'response_type': None,
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}/import',
                'operation_id': 'import_bcf',
                'http_method': 'POST',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'name',
                ],
                'required': [
                    'id',
                    'name',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                    'name',
                ]
            },
            root_map={
                'validations': {
                    ('name',): {
                        'max_length': 256,
                        'min_length': 1,
                    },
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'name':
                        (str,),
                },
                'attribute_map': {
                    'id': 'id',
                    'name': 'name',
                },
                'location_map': {
                    'id': 'path',
                    'name': 'form',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [],
                'content_type': [
                    'multipart/form-data',
                    'application/x-www-form-urlencoded'
                ]
            },
            api_client=api_client
        )
        self.update_bcf_project_endpoint = _Endpoint(
            settings={
                'response_type': (BcfProject,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{id}',
                'operation_id': 'update_bcf_project',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'patched_bcf_project_request',
                ],
                'required': [
                    'id',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'patched_bcf_project_request':
                        (PatchedBcfProjectRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                },
                'location_map': {
                    'id': 'path',
                    'patched_bcf_project_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_comment_endpoint = _Endpoint(
            settings={
                'response_type': (Comment,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/comments/{guid}',
                'operation_id': 'update_comment',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'patched_comment_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'patched_comment_request':
                        (PatchedCommentRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'patched_comment_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_extension_label_endpoint = _Endpoint(
            settings={
                'response_type': (Label,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/label/{id}',
                'operation_id': 'update_extension_label',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                    'patched_label_request',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                    'patched_label_request':
                        (PatchedLabelRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                    'patched_label_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_extension_priority_endpoint = _Endpoint(
            settings={
                'response_type': (Priority,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/priority/{id}',
                'operation_id': 'update_extension_priority',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                    'patched_priority_request',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                    'patched_priority_request':
                        (PatchedPriorityRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                    'patched_priority_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_extension_stage_endpoint = _Endpoint(
            settings={
                'response_type': (Stage,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/stage/{id}',
                'operation_id': 'update_extension_stage',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                    'patched_stage_request',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                    'patched_stage_request':
                        (PatchedStageRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                    'patched_stage_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_extension_status_endpoint = _Endpoint(
            settings={
                'response_type': (TopicStatus,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/status/{id}',
                'operation_id': 'update_extension_status',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                    'patched_topic_status_request',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                    'patched_topic_status_request':
                        (PatchedTopicStatusRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                    'patched_topic_status_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_extension_type_endpoint = _Endpoint(
            settings={
                'response_type': (TopicType,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/extension/type/{id}',
                'operation_id': 'update_extension_type',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'id',
                    'projects_pk',
                    'patched_topic_type_request',
                ],
                'required': [
                    'id',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'id':
                        (int,),
                    'projects_pk':
                        (int,),
                    'patched_topic_type_request':
                        (PatchedTopicTypeRequest,),
                },
                'attribute_map': {
                    'id': 'id',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'id': 'path',
                    'projects_pk': 'path',
                    'patched_topic_type_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_full_topic_endpoint = _Endpoint(
            settings={
                'response_type': (FullTopic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/full-topic/{guid}',
                'operation_id': 'update_full_topic',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'img_format',
                    'patched_full_topic_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'img_format':
                        (str,),
                    'patched_full_topic_request':
                        (PatchedFullTopicRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'img_format': 'query',
                    'patched_full_topic_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_topic_endpoint = _Endpoint(
            settings={
                'response_type': (Topic,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{guid}',
                'operation_id': 'update_topic',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'patched_topic_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                ],
                'nullable': [
                ],
                'enum': [
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'patched_topic_request':
                        (PatchedTopicRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'patched_topic_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )
        self.update_viewpoint_endpoint = _Endpoint(
            settings={
                'response_type': (Viewpoint,),
                'auth': [
                    'ApiKey',
                    'BIMData_Connect',
                    'BIMData_Connect',
                    'Bearer'
                ],
                'endpoint_path': '/bcf/2.1/projects/{projects_pk}/topics/{topics_guid}/viewpoints/{guid}',
                'operation_id': 'update_viewpoint',
                'http_method': 'PATCH',
                'servers': None,
            },
            params_map={
                'all': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                    'img_format',
                    'patched_viewpoint_request',
                ],
                'required': [
                    'guid',
                    'projects_pk',
                    'topics_guid',
                ],
                'nullable': [
                ],
                'enum': [
                    'img_format',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('img_format',): {

                        "URL": "url"
                    },
                },
                'openapi_types': {
                    'guid':
                        (str,),
                    'projects_pk':
                        (int,),
                    'topics_guid':
                        (str,),
                    'img_format':
                        (str,),
                    'patched_viewpoint_request':
                        (PatchedViewpointRequest,),
                },
                'attribute_map': {
                    'guid': 'guid',
                    'projects_pk': 'projects_pk',
                    'topics_guid': 'topics_guid',
                    'img_format': 'img_format',
                },
                'location_map': {
                    'guid': 'path',
                    'projects_pk': 'path',
                    'topics_guid': 'path',
                    'img_format': 'query',
                    'patched_viewpoint_request': 'body',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/json'
                ],
                'content_type': [
                    'application/json',
                    'application/x-www-form-urlencoded',
                    'multipart/form-data'
                ]
            },
            api_client=api_client
        )

    def create_comment(
        self,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Create a comment  # noqa: E501

        Create a comment  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_comment(projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            comment_request (CommentRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Comment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.create_comment_endpoint.call_with_http_info(**kwargs)

    def create_extension_label(
        self,
        projects_pk,
        label_request,
        **kwargs
    ):
        """Create a Label  # noqa: E501

        This is not a standard route. Create a Label available for the project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_extension_label(projects_pk, label_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            label_request (LabelRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Label
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['label_request'] = \
            label_request
        return self.create_extension_label_endpoint.call_with_http_info(**kwargs)

    def create_extension_priority(
        self,
        projects_pk,
        priority_request,
        **kwargs
    ):
        """Create a Priority  # noqa: E501

        This is not a standard route. Create a Priority available for the project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_extension_priority(projects_pk, priority_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            priority_request (PriorityRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Priority
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['priority_request'] = \
            priority_request
        return self.create_extension_priority_endpoint.call_with_http_info(**kwargs)

    def create_extension_stage(
        self,
        projects_pk,
        stage_request,
        **kwargs
    ):
        """Create a Stage  # noqa: E501

        This is not a standard route. Create a Stage available for the project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_extension_stage(projects_pk, stage_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            stage_request (StageRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Stage
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['stage_request'] = \
            stage_request
        return self.create_extension_stage_endpoint.call_with_http_info(**kwargs)

    def create_extension_status(
        self,
        projects_pk,
        topic_status_request,
        **kwargs
    ):
        """Create a TopicStatus  # noqa: E501

        This is not a standard route. Create a TopicStatus available for the project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_extension_status(projects_pk, topic_status_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topic_status_request (TopicStatusRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            TopicStatus
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topic_status_request'] = \
            topic_status_request
        return self.create_extension_status_endpoint.call_with_http_info(**kwargs)

    def create_extension_type(
        self,
        projects_pk,
        topic_type_request,
        **kwargs
    ):
        """Create a TopicType  # noqa: E501

        This is not a standard route. Create a TopicType available for the project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_extension_type(projects_pk, topic_type_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topic_type_request (TopicTypeRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            TopicType
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topic_type_request'] = \
            topic_type_request
        return self.create_extension_type_endpoint.call_with_http_info(**kwargs)

    def create_full_topic(
        self,
        projects_pk,
        full_topic_request,
        **kwargs
    ):
        """Create a Topic with viewpoints and comments  # noqa: E501

        This is not a standard route. You can send a topic, viewpoints and comments in a single call  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_full_topic(projects_pk, full_topic_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            full_topic_request (FullTopicRequest):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            FullTopic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['full_topic_request'] = \
            full_topic_request
        return self.create_full_topic_endpoint.call_with_http_info(**kwargs)

    def create_topic(
        self,
        projects_pk,
        topic_request,
        **kwargs
    ):
        """Create a topic  # noqa: E501

        Create a topic  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_topic(projects_pk, topic_request, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topic_request (TopicRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Topic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topic_request'] = \
            topic_request
        return self.create_topic_endpoint.call_with_http_info(**kwargs)

    def create_viewpoint(
        self,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Create a Viewpoint  # noqa: E501

        Create a Viewpoint  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.create_viewpoint(projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            viewpoint_request (ViewpointRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Viewpoint
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.create_viewpoint_endpoint.call_with_http_info(**kwargs)

    def delete_comment(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Delete a comment  # noqa: E501

        Delete a comment  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_comment(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.delete_comment_endpoint.call_with_http_info(**kwargs)

    def delete_extension_label(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Delete a Label  # noqa: E501

        This is not a standard route. Delete a Label. Topics using this label won't be deleted   Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_extension_label(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this label.
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_extension_label_endpoint.call_with_http_info(**kwargs)

    def delete_extension_priority(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Delete a Priority  # noqa: E501

        This is not a standard route. Delete a Priority. Topics using this priority won't be deleted   Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_extension_priority(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this priority.
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_extension_priority_endpoint.call_with_http_info(**kwargs)

    def delete_extension_stage(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Delete a Stage  # noqa: E501

        This is not a standard route. Delete a Stage. Topics using this stage won't be deleted   Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_extension_stage(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this stage.
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_extension_stage_endpoint.call_with_http_info(**kwargs)

    def delete_extension_status(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Delete a TopicStatus  # noqa: E501

        This is not a standard route. Delete a TopicStatus. Topics using this status won't be deleted   Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_extension_status(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this topic status.
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_extension_status_endpoint.call_with_http_info(**kwargs)

    def delete_extension_type(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Delete a TopicType  # noqa: E501

        This is not a standard route. Delete a TopicType. Topics using this type won't be deleted  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_extension_type(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this topic type.
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_extension_type_endpoint.call_with_http_info(**kwargs)

    def delete_topic(
        self,
        guid,
        projects_pk,
        **kwargs
    ):
        """Delete a topic  # noqa: E501

        Delete a topic  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_topic(guid, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        return self.delete_topic_endpoint.call_with_http_info(**kwargs)

    def delete_viewpoint(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Delete a Viewpoint  # noqa: E501

        This is not a standard route. Delete a Viewpoint  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.delete_viewpoint(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.delete_viewpoint_endpoint.call_with_http_info(**kwargs)

    def download_bcf_export(
        self,
        id,
        **kwargs
    ):
        """Export project's topics in bcf-xml format  # noqa: E501

        This is not a standard route. Export project's topics in bcf-xml format  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.download_bcf_export(id, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.

        Keyword Args:
            format (str): topic format to export, comma separated. Default = all. [optional]
            topics (str): topic guids to export, comma separated. Default = all. [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            file_type
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        return self.download_bcf_export_endpoint.call_with_http_info(**kwargs)

    def full_update_bcf_project(
        self,
        id,
        bcf_project_request,
        **kwargs
    ):
        """Update all fields of a BCF project  # noqa: E501

        Update all fields of a BCF project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.full_update_bcf_project(id, bcf_project_request, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.
            bcf_project_request (BcfProjectRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            BcfProject
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['bcf_project_request'] = \
            bcf_project_request
        return self.full_update_bcf_project_endpoint.call_with_http_info(**kwargs)

    def full_update_comment(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Update all fields of a comment  # noqa: E501

        Update all fields of a comment  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.full_update_comment(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            comment_request (CommentRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Comment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.full_update_comment_endpoint.call_with_http_info(**kwargs)

    def full_update_full_topic(
        self,
        guid,
        projects_pk,
        full_topic_request,
        **kwargs
    ):
        """Update all fields of a topic  # noqa: E501

        This is not a standard route. You can update topic, viewpoints and comment is a signle call  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.full_update_full_topic(guid, projects_pk, full_topic_request, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            full_topic_request (FullTopicRequest):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            FullTopic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['full_topic_request'] = \
            full_topic_request
        return self.full_update_full_topic_endpoint.call_with_http_info(**kwargs)

    def full_update_topic(
        self,
        guid,
        projects_pk,
        topic_request,
        **kwargs
    ):
        """Update all fields of a topic  # noqa: E501

        Update all fields of a topic  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.full_update_topic(guid, projects_pk, topic_request, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topic_request (TopicRequest):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Topic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topic_request'] = \
            topic_request
        return self.full_update_topic_endpoint.call_with_http_info(**kwargs)

    def full_update_viewpoint(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Update all fields of a Viewpoint  # noqa: E501

        This is not a standard route. Update all fields of a Viewpoint  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.full_update_viewpoint(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            viewpoint_request (ViewpointRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Viewpoint
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.full_update_viewpoint_endpoint.call_with_http_info(**kwargs)

    def get_bcf_project(
        self,
        id,
        **kwargs
    ):
        """Retrieve a BCF project  # noqa: E501

        Retrieve a BCF project  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_bcf_project(id, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            BcfProject
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        return self.get_bcf_project_endpoint.call_with_http_info(**kwargs)

    def get_bcf_projects(
        self,
        **kwargs
    ):
        """Retrieve all BCF projects  # noqa: E501

        Retrieve all BCF projects  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_bcf_projects(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [BcfProject]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        return self.get_bcf_projects_endpoint.call_with_http_info(**kwargs)

    def get_colorings(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all colorings of a viewpoint  # noqa: E501

        Retrieve all colorings of a viewpoint  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_colorings(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Coloring]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_colorings_endpoint.call_with_http_info(**kwargs)

    def get_comment(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve a comment  # noqa: E501

        Retrieve a comment  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_comment(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Comment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_comment_endpoint.call_with_http_info(**kwargs)

    def get_comments(
        self,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all comments  # noqa: E501

        Retrieve all comments  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_comments(projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Comment]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_comments_endpoint.call_with_http_info(**kwargs)

    def get_detailed_extensions(
        self,
        id,
        **kwargs
    ):
        """Retrieve project detailed extensions  # noqa: E501

        This is not a standard route. Retrieve project detailed extensions  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_detailed_extensions(id, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            DetailedExtensions
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        return self.get_detailed_extensions_endpoint.call_with_http_info(**kwargs)

    def get_extensions(
        self,
        id,
        **kwargs
    ):
        """Retrieve project extensions  # noqa: E501

        Retrieve project extensions  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_extensions(id, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Extensions
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        return self.get_extensions_endpoint.call_with_http_info(**kwargs)

    def get_full_topic(
        self,
        guid,
        projects_pk,
        **kwargs
    ):
        """Retrieve a full topic  # noqa: E501

        This is not a standard route. It responds with a topic, its viewpoints and its comments  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_full_topic(guid, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            FullTopic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        return self.get_full_topic_endpoint.call_with_http_info(**kwargs)

    def get_full_topics(
        self,
        projects_pk,
        **kwargs
    ):
        """Retrieve all full topics  # noqa: E501

        This is not a standard route. It responds with all topics, their viewpoints and their comments  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_full_topics(projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):

        Keyword Args:
            format (str): [optional]
            ifcs ([int]): [optional]
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            models ([int]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [FullTopic]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        return self.get_full_topics_endpoint.call_with_http_info(**kwargs)

    def get_selections(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all selections of a viewpoint  # noqa: E501

        Retrieve all selections of a viewpoint  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_selections(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Component]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_selections_endpoint.call_with_http_info(**kwargs)

    def get_snapshot(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve the viewpoint' snapshot  # noqa: E501

        Retrieve the viewpoint' snapshot  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_snapshot(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            file_type
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_snapshot_endpoint.call_with_http_info(**kwargs)

    def get_topic(
        self,
        guid,
        projects_pk,
        **kwargs
    ):
        """Retrieve a topic  # noqa: E501

        Retrieve a topic  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_topic(guid, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Topic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        return self.get_topic_endpoint.call_with_http_info(**kwargs)

    def get_topic_viewpoints(
        self,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all viewpoints attached to the topic  # noqa: E501

        This is not a standard route. It returns all viewpoints of the topic that are not attached to a comment.  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_topic_viewpoints(projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Viewpoint]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_topic_viewpoints_endpoint.call_with_http_info(**kwargs)

    def get_topics(
        self,
        projects_pk,
        **kwargs
    ):
        """Retrieve all topics  # noqa: E501

        Retrieve all topics  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_topics(projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):

        Keyword Args:
            format (str): [optional]
            ifcs ([int]): [optional]
            models ([int]): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Topic]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        return self.get_topics_endpoint.call_with_http_info(**kwargs)

    def get_user(
        self,
        **kwargs
    ):
        """Get current user info  # noqa: E501

        Get current user info. If request comes from an App, the response is always:{    \"id\": None,    \"name\": None,    \"is_client\": True,}  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_user(async_req=True)
        >>> result = thread.get()


        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            SelfBcfUser
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        return self.get_user_endpoint.call_with_http_info(**kwargs)

    def get_viewpoint(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve a Viewpoint  # noqa: E501

        Retrieve a Viewpoint  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_viewpoint(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Viewpoint
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_viewpoint_endpoint.call_with_http_info(**kwargs)

    def get_viewpoints(
        self,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all Viewpoints of a topic  # noqa: E501

        Retrieve all Viewpoints of a topic  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_viewpoints(projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            [Viewpoint]
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_viewpoints_endpoint.call_with_http_info(**kwargs)

    def get_visibilities(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Retrieve all visibilities of a viewpoint  # noqa: E501

        Retrieve all visibilities of a viewpoint  Required scopes: bcf:read  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.get_visibilities(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Visibility
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.get_visibilities_endpoint.call_with_http_info(**kwargs)

    def import_bcf(
        self,
        id,
        name,
        **kwargs
    ):
        """Import bcf-xml format into this project  # noqa: E501

        This is not a standard route. Import bcf-xml format into this project. If there are guid conflict, an error will be raised. If there are index conflicts, indexes of the imported file will be overriden with a new index. Author and assigned_to fields will be linked to existing users in the project. If no matching user are found, fields will be emptied. Only BCF 2.1 is supported  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.import_bcf(id, name, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.
            name (str): Name of the project

        Keyword Args:
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            None
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['name'] = \
            name
        return self.import_bcf_endpoint.call_with_http_info(**kwargs)

    def update_bcf_project(
        self,
        id,
        **kwargs
    ):
        """Update some fields of a BCF project  # noqa: E501

        Update some fields of a BCF project  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_bcf_project(id, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this project.

        Keyword Args:
            patched_bcf_project_request (PatchedBcfProjectRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            BcfProject
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        return self.update_bcf_project_endpoint.call_with_http_info(**kwargs)

    def update_comment(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Update some fields of a comment  # noqa: E501

        Update some fields of a comment  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_comment(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int): A unique integer value identifying this project.
            topics_guid (str):

        Keyword Args:
            patched_comment_request (PatchedCommentRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Comment
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.update_comment_endpoint.call_with_http_info(**kwargs)

    def update_extension_label(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Update a Label  # noqa: E501

        This is not a standard route. Update a Label. All topics using this label will be updated  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_extension_label(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this label.
            projects_pk (int):

        Keyword Args:
            patched_label_request (PatchedLabelRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Label
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_extension_label_endpoint.call_with_http_info(**kwargs)

    def update_extension_priority(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Update a Priority  # noqa: E501

        This is not a standard route. Update a Priority. All topics using this priority will be updated  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_extension_priority(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this priority.
            projects_pk (int):

        Keyword Args:
            patched_priority_request (PatchedPriorityRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Priority
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_extension_priority_endpoint.call_with_http_info(**kwargs)

    def update_extension_stage(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Update a Stage  # noqa: E501

        This is not a standard route. Update a Stage. All topics using this stage will be updated  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_extension_stage(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this stage.
            projects_pk (int):

        Keyword Args:
            patched_stage_request (PatchedStageRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Stage
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_extension_stage_endpoint.call_with_http_info(**kwargs)

    def update_extension_status(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Update a TopicStatus  # noqa: E501

        This is not a standard route. Update a TopicStatus. All topics using this status will be updated  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_extension_status(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this topic status.
            projects_pk (int):

        Keyword Args:
            patched_topic_status_request (PatchedTopicStatusRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            TopicStatus
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_extension_status_endpoint.call_with_http_info(**kwargs)

    def update_extension_type(
        self,
        id,
        projects_pk,
        **kwargs
    ):
        """Update a TopicType  # noqa: E501

        This is not a standard route. Update a TopicType. All topics using this type will be updated  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_extension_type(id, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            id (int): A unique integer value identifying this topic type.
            projects_pk (int):

        Keyword Args:
            patched_topic_type_request (PatchedTopicTypeRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            TopicType
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['id'] = \
            id
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_extension_type_endpoint.call_with_http_info(**kwargs)

    def update_full_topic(
        self,
        guid,
        projects_pk,
        **kwargs
    ):
        """Update some fields of a topic  # noqa: E501

        This is not a standard route. You can update topic, viewpoints and comment is a signle call  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_full_topic(guid, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            patched_full_topic_request (PatchedFullTopicRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            FullTopic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_full_topic_endpoint.call_with_http_info(**kwargs)

    def update_topic(
        self,
        guid,
        projects_pk,
        **kwargs
    ):
        """Update some fields of a topic  # noqa: E501

        Update some fields of a topic  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_topic(guid, projects_pk, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):

        Keyword Args:
            patched_topic_request (PatchedTopicRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Topic
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        return self.update_topic_endpoint.call_with_http_info(**kwargs)

    def update_viewpoint(
        self,
        guid,
        projects_pk,
        topics_guid,
        **kwargs
    ):
        """Update some fields of a Viewpoint  # noqa: E501

        This is not a standard route. Update some fields of a Viewpoint  Required scopes: bcf:write  # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.update_viewpoint(guid, projects_pk, topics_guid, async_req=True)
        >>> result = thread.get()

        Args:
            guid (str):
            projects_pk (int):
            topics_guid (str):

        Keyword Args:
            img_format (str): All snapshot_data will be returned as url instead of base64. [optional] if omitted the server will use the default value of "url"
            patched_viewpoint_request (PatchedViewpointRequest): [optional]
            _return_http_data_only (bool): response data without head status
                code and headers. Default is True.
            _preload_content (bool): if False, the urllib3.HTTPResponse object
                will be returned without reading/decoding response data.
                Default is True.
            _request_timeout (int/float/tuple): 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.
                Default is None.
            _check_input_type (bool): specifies if type checking
                should be done one the data sent to the server.
                Default is True.
            _check_return_type (bool): specifies if type checking
                should be done one the data received from the server.
                Default is True.
            _spec_property_naming (bool): True if the variable names in the input data
                are serialized names, as specified in the OpenAPI document.
                False if the variable names in the input data
                are pythonic names, e.g. snake case (default)
            _content_type (str/None): force body content-type.
                Default is None and content-type will be predicted by allowed
                content-types and body.
            _host_index (int/None): specifies the index of the server
                that we want to use.
                Default is read from the configuration.
            async_req (bool): execute request asynchronously

        Returns:
            Viewpoint
                If the method is called asynchronously, returns the request
                thread.
        """
        kwargs['async_req'] = kwargs.get(
            'async_req', False
        )
        kwargs['_return_http_data_only'] = kwargs.get(
            '_return_http_data_only', True
        )
        kwargs['_preload_content'] = kwargs.get(
            '_preload_content', True
        )
        kwargs['_request_timeout'] = kwargs.get(
            '_request_timeout', None
        )
        kwargs['_check_input_type'] = kwargs.get(
            '_check_input_type', True
        )
        kwargs['_check_return_type'] = kwargs.get(
            '_check_return_type', True
        )
        kwargs['_spec_property_naming'] = kwargs.get(
            '_spec_property_naming', False
        )
        kwargs['_content_type'] = kwargs.get(
            '_content_type')
        kwargs['_host_index'] = kwargs.get('_host_index')
        kwargs['guid'] = \
            guid
        kwargs['projects_pk'] = \
            projects_pk
        kwargs['topics_guid'] = \
            topics_guid
        return self.update_viewpoint_endpoint.call_with_http_info(**kwargs)

