"""
    XBIM Flex API v2

    This is the XBIM Flex Swagger service where you can explore the REST API for the platform.  # noqa: E501

    The version of the OpenAPI document: 2.0
    Contact: info@xbim.net
    Generated by: https://openapi-generator.tech
"""


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

from xbim_flex.aim.api_client import ApiClient, Endpoint as _Endpoint
from xbim_flex.aim.model_utils import (  # noqa: F401
    check_allowed_values,
    check_validations,
    date,
    datetime,
    file_type,
    none_type,
    validate_and_convert_types
)


class WexbimApi(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.wexbim_get_complete_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/complete",
                'operation_id': 'wexbim_get_complete',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_components_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/components",
                'operation_id': 'wexbim_get_components',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_dynamic_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/dynamic",
                'operation_id': 'wexbim_get_dynamic',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'included',
                    'tenant_id',
                    'region',
                    'excluded',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'included',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'included',
                    'region',
                    'excluded',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('included',): {

                        "PRODUCT": "Product",
                        "ELEMENT": "Element",
                        "DISTRIBUTIONELEMENT": "DistributionElement",
                        "DISTRIBUTIONFLOWELEMENT": "DistributionFlowElement",
                        "DISTRIBUTIONCHAMBERELEMENT": "DistributionChamberElement",
                        "ENERGYCONVERSIONDEVICE": "EnergyConversionDevice",
                        "AIRTOAIRHEATRECOVERY": "AirToAirHeatRecovery",
                        "BOILER": "Boiler",
                        "BURNER": "Burner",
                        "CHILLER": "Chiller",
                        "COIL": "Coil",
                        "CONDENSER": "Condenser",
                        "COOLEDBEAM": "CooledBeam",
                        "COOLINGTOWER": "CoolingTower",
                        "ENGINE": "Engine",
                        "EVAPORATIVECOOLER": "EvaporativeCooler",
                        "EVAPORATOR": "Evaporator",
                        "HEATEXCHANGER": "HeatExchanger",
                        "HUMIDIFIER": "Humidifier",
                        "TUBEBUNDLE": "TubeBundle",
                        "UNITARYEQUIPMENT": "UnitaryEquipment",
                        "ELECTRICGENERATOR": "ElectricGenerator",
                        "ELECTRICMOTOR": "ElectricMotor",
                        "MOTORCONNECTION": "MotorConnection",
                        "SOLARDEVICE": "SolarDevice",
                        "TRANSFORMER": "Transformer",
                        "FLOWCONTROLLER": "FlowController",
                        "ELECTRICDISTRIBUTIONPOINT": "ElectricDistributionPoint",
                        "AIRTERMINALBOX": "AirTerminalBox",
                        "DAMPER": "Damper",
                        "FLOWMETER": "FlowMeter",
                        "VALVE": "Valve",
                        "ELECTRICDISTRIBUTIONBOARD": "ElectricDistributionBoard",
                        "ELECTRICTIMECONTROL": "ElectricTimeControl",
                        "PROTECTIVEDEVICE": "ProtectiveDevice",
                        "SWITCHINGDEVICE": "SwitchingDevice",
                        "FLOWFITTING": "FlowFitting",
                        "DUCTFITTING": "DuctFitting",
                        "PIPEFITTING": "PipeFitting",
                        "CABLECARRIERFITTING": "CableCarrierFitting",
                        "CABLEFITTING": "CableFitting",
                        "JUNCTIONBOX": "JunctionBox",
                        "FLOWMOVINGDEVICE": "FlowMovingDevice",
                        "COMPRESSOR": "Compressor",
                        "FAN": "Fan",
                        "PUMP": "Pump",
                        "FLOWSEGMENT": "FlowSegment",
                        "DUCTSEGMENT": "DuctSegment",
                        "PIPESEGMENT": "PipeSegment",
                        "CABLECARRIERSEGMENT": "CableCarrierSegment",
                        "CABLESEGMENT": "CableSegment",
                        "FLOWSTORAGEDEVICE": "FlowStorageDevice",
                        "TANK": "Tank",
                        "ELECTRICFLOWSTORAGEDEVICE": "ElectricFlowStorageDevice",
                        "FLOWTERMINAL": "FlowTerminal",
                        "FIRESUPPRESSIONTERMINAL": "FireSuppressionTerminal",
                        "SANITARYTERMINAL": "SanitaryTerminal",
                        "STACKTERMINAL": "StackTerminal",
                        "WASTETERMINAL": "WasteTerminal",
                        "AIRTERMINAL": "AirTerminal",
                        "MEDICALDEVICE": "MedicalDevice",
                        "SPACEHEATER": "SpaceHeater",
                        "AUDIOVISUALAPPLIANCE": "AudioVisualAppliance",
                        "COMMUNICATIONSAPPLIANCE": "CommunicationsAppliance",
                        "ELECTRICAPPLIANCE": "ElectricAppliance",
                        "LAMP": "Lamp",
                        "LIGHTFIXTURE": "LightFixture",
                        "OUTLET": "Outlet",
                        "FLOWTREATMENTDEVICE": "FlowTreatmentDevice",
                        "INTERCEPTOR": "Interceptor",
                        "DUCTSILENCER": "DuctSilencer",
                        "FILTER": "Filter",
                        "DISTRIBUTIONCONTROLELEMENT": "DistributionControlElement",
                        "PROTECTIVEDEVICETRIPPINGUNIT": "ProtectiveDeviceTrippingUnit",
                        "ACTUATOR": "Actuator",
                        "ALARM": "Alarm",
                        "CONTROLLER": "Controller",
                        "FLOWINSTRUMENT": "FlowInstrument",
                        "SENSOR": "Sensor",
                        "UNITARYCONTROLELEMENT": "UnitaryControlElement",
                        "ELEMENTCOMPONENT": "ElementComponent",
                        "DISCRETEACCESSORY": "DiscreteAccessory",
                        "FASTENER": "Fastener",
                        "MECHANICALFASTENER": "MechanicalFastener",
                        "REINFORCINGELEMENT": "ReinforcingElement",
                        "REINFORCINGBAR": "ReinforcingBar",
                        "REINFORCINGMESH": "ReinforcingMesh",
                        "TENDON": "Tendon",
                        "TENDONANCHOR": "TendonAnchor",
                        "BUILDINGELEMENTPART": "BuildingElementPart",
                        "VIBRATIONISOLATOR": "VibrationIsolator",
                        "FEATUREELEMENT": "FeatureElement",
                        "FEATUREELEMENTSUBTRACTION": "FeatureElementSubtraction",
                        "EDGEFEATURE": "EdgeFeature",
                        "CHAMFEREDGEFEATURE": "ChamferEdgeFeature",
                        "ROUNDEDEDGEFEATURE": "RoundedEdgeFeature",
                        "OPENINGELEMENT": "OpeningElement",
                        "OPENINGSTANDARDCASE": "OpeningStandardCase",
                        "VOIDINGFEATURE": "VoidingFeature",
                        "FEATUREELEMENTADDITION": "FeatureElementAddition",
                        "PROJECTIONELEMENT": "ProjectionElement",
                        "SURFACEFEATURE": "SurfaceFeature",
                        "BUILDINGELEMENT": "BuildingElement",
                        "BUILDINGELEMENTCOMPONENT": "BuildingElementComponent",
                        "FOOTING": "Footing",
                        "PILE": "Pile",
                        "BEAM": "Beam",
                        "BEAMSTANDARDCASE": "BeamStandardCase",
                        "COLUMN": "Column",
                        "COLUMNSTANDARDCASE": "ColumnStandardCase",
                        "CURTAINWALL": "CurtainWall",
                        "DOOR": "Door",
                        "DOORSTANDARDCASE": "DoorStandardCase",
                        "MEMBER": "Member",
                        "MEMBERSTANDARDCASE": "MemberStandardCase",
                        "PLATE": "Plate",
                        "PLATESTANDARDCASE": "PlateStandardCase",
                        "RAILING": "Railing",
                        "RAMP": "Ramp",
                        "RAMPFLIGHT": "RampFlight",
                        "ROOF": "Roof",
                        "SLAB": "Slab",
                        "SLABELEMENTEDCASE": "SlabElementedCase",
                        "SLABSTANDARDCASE": "SlabStandardCase",
                        "STAIR": "Stair",
                        "STAIRFLIGHT": "StairFlight",
                        "WALL": "Wall",
                        "WALLSTANDARDCASE": "WallStandardCase",
                        "WALLELEMENTEDCASE": "WallElementedCase",
                        "WINDOW": "Window",
                        "WINDOWSTANDARDCASE": "WindowStandardCase",
                        "BUILDINGELEMENTPROXY": "BuildingElementProxy",
                        "COVERING": "Covering",
                        "CHIMNEY": "Chimney",
                        "SHADINGDEVICE": "ShadingDevice",
                        "ELEMENTASSEMBLY": "ElementAssembly",
                        "FURNISHINGELEMENT": "FurnishingElement",
                        "FURNITURE": "Furniture",
                        "SYSTEMFURNITUREELEMENT": "SystemFurnitureElement",
                        "TRANSPORTELEMENT": "TransportElement",
                        "VIRTUALELEMENT": "VirtualElement",
                        "ELECTRICALELEMENT": "ElectricalElement",
                        "EQUIPMENTELEMENT": "EquipmentElement",
                        "CIVILELEMENT": "CivilElement",
                        "GEOGRAPHICELEMENT": "GeographicElement",
                        "PORT": "Port",
                        "DISTRIBUTIONPORT": "DistributionPort",
                        "PROXY": "Proxy",
                        "STRUCTURALACTIVITY": "StructuralActivity",
                        "STRUCTURALACTION": "StructuralAction",
                        "STRUCTURALLINEARACTION": "StructuralLinearAction",
                        "STRUCTURALLINEARACTIONVARYING": "StructuralLinearActionVarying",
                        "STRUCTURALPLANARACTION": "StructuralPlanarAction",
                        "STRUCTURALPLANARACTIONVARYING": "StructuralPlanarActionVarying",
                        "STRUCTURALPOINTACTION": "StructuralPointAction",
                        "STRUCTURALCURVEACTION": "StructuralCurveAction",
                        "STRUCTURALSURFACEACTION": "StructuralSurfaceAction",
                        "STRUCTURALREACTION": "StructuralReaction",
                        "STRUCTURALPOINTREACTION": "StructuralPointReaction",
                        "STRUCTURALCURVEREACTION": "StructuralCurveReaction",
                        "STRUCTURALSURFACEREACTION": "StructuralSurfaceReaction",
                        "STRUCTURALITEM": "StructuralItem",
                        "STRUCTURALCONNECTION": "StructuralConnection",
                        "STRUCTURALCURVECONNECTION": "StructuralCurveConnection",
                        "STRUCTURALPOINTCONNECTION": "StructuralPointConnection",
                        "STRUCTURALSURFACECONNECTION": "StructuralSurfaceConnection",
                        "STRUCTURALMEMBER": "StructuralMember",
                        "STRUCTURALCURVEMEMBER": "StructuralCurveMember",
                        "STRUCTURALCURVEMEMBERVARYING": "StructuralCurveMemberVarying",
                        "STRUCTURALSURFACEMEMBER": "StructuralSurfaceMember",
                        "STRUCTURALSURFACEMEMBERVARYING": "StructuralSurfaceMemberVarying",
                        "ANNOTATION": "Annotation",
                        "SPATIALSTRUCTUREELEMENT": "SpatialStructureElement",
                        "BUILDING": "Building",
                        "BUILDINGSTOREY": "BuildingStorey",
                        "SITE": "Site",
                        "SPACE": "Space",
                        "GRID": "Grid",
                        "SPATIALELEMENT": "SpatialElement",
                        "EXTERNALSPATIALSTRUCTUREELEMENT": "ExternalSpatialStructureElement",
                        "EXTERNALSPATIALELEMENT": "ExternalSpatialElement",
                        "SPATIALZONE": "SpatialZone",
                        "PERSON": "Person",
                        "DOCUMENT": "Document",
                        "DOORSTYLE": "DoorStyle",
                        "DOORTYPE": "DoorType",
                        "WALLTYPE": "WallType"
                    },
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                    ('excluded',): {

                        "PRODUCT": "Product",
                        "ELEMENT": "Element",
                        "DISTRIBUTIONELEMENT": "DistributionElement",
                        "DISTRIBUTIONFLOWELEMENT": "DistributionFlowElement",
                        "DISTRIBUTIONCHAMBERELEMENT": "DistributionChamberElement",
                        "ENERGYCONVERSIONDEVICE": "EnergyConversionDevice",
                        "AIRTOAIRHEATRECOVERY": "AirToAirHeatRecovery",
                        "BOILER": "Boiler",
                        "BURNER": "Burner",
                        "CHILLER": "Chiller",
                        "COIL": "Coil",
                        "CONDENSER": "Condenser",
                        "COOLEDBEAM": "CooledBeam",
                        "COOLINGTOWER": "CoolingTower",
                        "ENGINE": "Engine",
                        "EVAPORATIVECOOLER": "EvaporativeCooler",
                        "EVAPORATOR": "Evaporator",
                        "HEATEXCHANGER": "HeatExchanger",
                        "HUMIDIFIER": "Humidifier",
                        "TUBEBUNDLE": "TubeBundle",
                        "UNITARYEQUIPMENT": "UnitaryEquipment",
                        "ELECTRICGENERATOR": "ElectricGenerator",
                        "ELECTRICMOTOR": "ElectricMotor",
                        "MOTORCONNECTION": "MotorConnection",
                        "SOLARDEVICE": "SolarDevice",
                        "TRANSFORMER": "Transformer",
                        "FLOWCONTROLLER": "FlowController",
                        "ELECTRICDISTRIBUTIONPOINT": "ElectricDistributionPoint",
                        "AIRTERMINALBOX": "AirTerminalBox",
                        "DAMPER": "Damper",
                        "FLOWMETER": "FlowMeter",
                        "VALVE": "Valve",
                        "ELECTRICDISTRIBUTIONBOARD": "ElectricDistributionBoard",
                        "ELECTRICTIMECONTROL": "ElectricTimeControl",
                        "PROTECTIVEDEVICE": "ProtectiveDevice",
                        "SWITCHINGDEVICE": "SwitchingDevice",
                        "FLOWFITTING": "FlowFitting",
                        "DUCTFITTING": "DuctFitting",
                        "PIPEFITTING": "PipeFitting",
                        "CABLECARRIERFITTING": "CableCarrierFitting",
                        "CABLEFITTING": "CableFitting",
                        "JUNCTIONBOX": "JunctionBox",
                        "FLOWMOVINGDEVICE": "FlowMovingDevice",
                        "COMPRESSOR": "Compressor",
                        "FAN": "Fan",
                        "PUMP": "Pump",
                        "FLOWSEGMENT": "FlowSegment",
                        "DUCTSEGMENT": "DuctSegment",
                        "PIPESEGMENT": "PipeSegment",
                        "CABLECARRIERSEGMENT": "CableCarrierSegment",
                        "CABLESEGMENT": "CableSegment",
                        "FLOWSTORAGEDEVICE": "FlowStorageDevice",
                        "TANK": "Tank",
                        "ELECTRICFLOWSTORAGEDEVICE": "ElectricFlowStorageDevice",
                        "FLOWTERMINAL": "FlowTerminal",
                        "FIRESUPPRESSIONTERMINAL": "FireSuppressionTerminal",
                        "SANITARYTERMINAL": "SanitaryTerminal",
                        "STACKTERMINAL": "StackTerminal",
                        "WASTETERMINAL": "WasteTerminal",
                        "AIRTERMINAL": "AirTerminal",
                        "MEDICALDEVICE": "MedicalDevice",
                        "SPACEHEATER": "SpaceHeater",
                        "AUDIOVISUALAPPLIANCE": "AudioVisualAppliance",
                        "COMMUNICATIONSAPPLIANCE": "CommunicationsAppliance",
                        "ELECTRICAPPLIANCE": "ElectricAppliance",
                        "LAMP": "Lamp",
                        "LIGHTFIXTURE": "LightFixture",
                        "OUTLET": "Outlet",
                        "FLOWTREATMENTDEVICE": "FlowTreatmentDevice",
                        "INTERCEPTOR": "Interceptor",
                        "DUCTSILENCER": "DuctSilencer",
                        "FILTER": "Filter",
                        "DISTRIBUTIONCONTROLELEMENT": "DistributionControlElement",
                        "PROTECTIVEDEVICETRIPPINGUNIT": "ProtectiveDeviceTrippingUnit",
                        "ACTUATOR": "Actuator",
                        "ALARM": "Alarm",
                        "CONTROLLER": "Controller",
                        "FLOWINSTRUMENT": "FlowInstrument",
                        "SENSOR": "Sensor",
                        "UNITARYCONTROLELEMENT": "UnitaryControlElement",
                        "ELEMENTCOMPONENT": "ElementComponent",
                        "DISCRETEACCESSORY": "DiscreteAccessory",
                        "FASTENER": "Fastener",
                        "MECHANICALFASTENER": "MechanicalFastener",
                        "REINFORCINGELEMENT": "ReinforcingElement",
                        "REINFORCINGBAR": "ReinforcingBar",
                        "REINFORCINGMESH": "ReinforcingMesh",
                        "TENDON": "Tendon",
                        "TENDONANCHOR": "TendonAnchor",
                        "BUILDINGELEMENTPART": "BuildingElementPart",
                        "VIBRATIONISOLATOR": "VibrationIsolator",
                        "FEATUREELEMENT": "FeatureElement",
                        "FEATUREELEMENTSUBTRACTION": "FeatureElementSubtraction",
                        "EDGEFEATURE": "EdgeFeature",
                        "CHAMFEREDGEFEATURE": "ChamferEdgeFeature",
                        "ROUNDEDEDGEFEATURE": "RoundedEdgeFeature",
                        "OPENINGELEMENT": "OpeningElement",
                        "OPENINGSTANDARDCASE": "OpeningStandardCase",
                        "VOIDINGFEATURE": "VoidingFeature",
                        "FEATUREELEMENTADDITION": "FeatureElementAddition",
                        "PROJECTIONELEMENT": "ProjectionElement",
                        "SURFACEFEATURE": "SurfaceFeature",
                        "BUILDINGELEMENT": "BuildingElement",
                        "BUILDINGELEMENTCOMPONENT": "BuildingElementComponent",
                        "FOOTING": "Footing",
                        "PILE": "Pile",
                        "BEAM": "Beam",
                        "BEAMSTANDARDCASE": "BeamStandardCase",
                        "COLUMN": "Column",
                        "COLUMNSTANDARDCASE": "ColumnStandardCase",
                        "CURTAINWALL": "CurtainWall",
                        "DOOR": "Door",
                        "DOORSTANDARDCASE": "DoorStandardCase",
                        "MEMBER": "Member",
                        "MEMBERSTANDARDCASE": "MemberStandardCase",
                        "PLATE": "Plate",
                        "PLATESTANDARDCASE": "PlateStandardCase",
                        "RAILING": "Railing",
                        "RAMP": "Ramp",
                        "RAMPFLIGHT": "RampFlight",
                        "ROOF": "Roof",
                        "SLAB": "Slab",
                        "SLABELEMENTEDCASE": "SlabElementedCase",
                        "SLABSTANDARDCASE": "SlabStandardCase",
                        "STAIR": "Stair",
                        "STAIRFLIGHT": "StairFlight",
                        "WALL": "Wall",
                        "WALLSTANDARDCASE": "WallStandardCase",
                        "WALLELEMENTEDCASE": "WallElementedCase",
                        "WINDOW": "Window",
                        "WINDOWSTANDARDCASE": "WindowStandardCase",
                        "BUILDINGELEMENTPROXY": "BuildingElementProxy",
                        "COVERING": "Covering",
                        "CHIMNEY": "Chimney",
                        "SHADINGDEVICE": "ShadingDevice",
                        "ELEMENTASSEMBLY": "ElementAssembly",
                        "FURNISHINGELEMENT": "FurnishingElement",
                        "FURNITURE": "Furniture",
                        "SYSTEMFURNITUREELEMENT": "SystemFurnitureElement",
                        "TRANSPORTELEMENT": "TransportElement",
                        "VIRTUALELEMENT": "VirtualElement",
                        "ELECTRICALELEMENT": "ElectricalElement",
                        "EQUIPMENTELEMENT": "EquipmentElement",
                        "CIVILELEMENT": "CivilElement",
                        "GEOGRAPHICELEMENT": "GeographicElement",
                        "PORT": "Port",
                        "DISTRIBUTIONPORT": "DistributionPort",
                        "PROXY": "Proxy",
                        "STRUCTURALACTIVITY": "StructuralActivity",
                        "STRUCTURALACTION": "StructuralAction",
                        "STRUCTURALLINEARACTION": "StructuralLinearAction",
                        "STRUCTURALLINEARACTIONVARYING": "StructuralLinearActionVarying",
                        "STRUCTURALPLANARACTION": "StructuralPlanarAction",
                        "STRUCTURALPLANARACTIONVARYING": "StructuralPlanarActionVarying",
                        "STRUCTURALPOINTACTION": "StructuralPointAction",
                        "STRUCTURALCURVEACTION": "StructuralCurveAction",
                        "STRUCTURALSURFACEACTION": "StructuralSurfaceAction",
                        "STRUCTURALREACTION": "StructuralReaction",
                        "STRUCTURALPOINTREACTION": "StructuralPointReaction",
                        "STRUCTURALCURVEREACTION": "StructuralCurveReaction",
                        "STRUCTURALSURFACEREACTION": "StructuralSurfaceReaction",
                        "STRUCTURALITEM": "StructuralItem",
                        "STRUCTURALCONNECTION": "StructuralConnection",
                        "STRUCTURALCURVECONNECTION": "StructuralCurveConnection",
                        "STRUCTURALPOINTCONNECTION": "StructuralPointConnection",
                        "STRUCTURALSURFACECONNECTION": "StructuralSurfaceConnection",
                        "STRUCTURALMEMBER": "StructuralMember",
                        "STRUCTURALCURVEMEMBER": "StructuralCurveMember",
                        "STRUCTURALCURVEMEMBERVARYING": "StructuralCurveMemberVarying",
                        "STRUCTURALSURFACEMEMBER": "StructuralSurfaceMember",
                        "STRUCTURALSURFACEMEMBERVARYING": "StructuralSurfaceMemberVarying",
                        "ANNOTATION": "Annotation",
                        "SPATIALSTRUCTUREELEMENT": "SpatialStructureElement",
                        "BUILDING": "Building",
                        "BUILDINGSTOREY": "BuildingStorey",
                        "SITE": "Site",
                        "SPACE": "Space",
                        "GRID": "Grid",
                        "SPATIALELEMENT": "SpatialElement",
                        "EXTERNALSPATIALSTRUCTUREELEMENT": "ExternalSpatialStructureElement",
                        "EXTERNALSPATIALELEMENT": "ExternalSpatialElement",
                        "SPATIALZONE": "SpatialZone",
                        "PERSON": "Person",
                        "DOCUMENT": "Document",
                        "DOORSTYLE": "DoorStyle",
                        "DOORTYPE": "DoorType",
                        "WALLTYPE": "WallType"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'included':
                        ([str],),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                    'excluded':
                        ([str],),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'included': 'included',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                    'excluded': 'excluded',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'included': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                    'excluded': 'query',
                },
                'collection_format_map': {
                    'included': 'csv',
                    'excluded': 'csv',
                }
            },
            headers_map={
                'accept': [
                    'application/json',
                    'text/json',
                    'application/xml',
                    'text/xml'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_envelope_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/envelope",
                'operation_id': 'wexbim_get_envelope',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_envelope_cut_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/envelopecut",
                'operation_id': 'wexbim_get_envelope_cut',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'bottom',
                    'top',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'bottom',
                    'top',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'bottom':
                        (float,),
                    'top':
                        (float,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'bottom': 'bottom',
                    'top': 'top',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'bottom': 'query',
                    'top': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_envelope_free_cut_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/envelopefreecut",
                'operation_id': 'wexbim_get_envelope_free_cut',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'planes',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'planes',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'planes':
                        ([float],),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'planes': 'planes',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'planes': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                    'planes': 'csv',
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_site_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/site",
                'operation_id': 'wexbim_get_site',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_spatial_structure_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/spatial",
                'operation_id': 'wexbim_get_spatial_structure',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )
        self.wexbim_get_windows_and_doors_endpoint = _Endpoint(
            settings={
                'response_type': (file_type,),
                'auth': [
                    'oauth2'
                ],
                'endpoint_path': "/{region}/aim/2.0/{tenantId}/wexbim/windowsdoors",
                'operation_id': 'wexbim_get_windows_and_doors',
                'http_method': 'GET',
                'servers': None,
            },
            params_map={
                'all': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'required': [
                    'asset_id',
                    'model_id',
                    'tenant_id',
                    'region',
                ],
                'nullable': [
                ],
                'enum': [
                    'region',
                ],
                'validation': [
                ]
            },
            root_map={
                'validations': {
                },
                'allowed_values': {
                    ('region',): {

                        "UK": "UK",
                        "WESTEUROPE": "WestEurope",
                        "SANDBOX": "Sandbox"
                    },
                },
                'openapi_types': {
                    'asset_id':
                        (int,),
                    'model_id':
                        (int,),
                    'tenant_id':
                        (str,),
                    'region':
                        (str,),
                },
                'attribute_map': {
                    'asset_id': 'assetId',
                    'model_id': 'modelId',
                    'tenant_id': 'tenantId',
                    'region': 'region',
                },
                'location_map': {
                    'asset_id': 'query',
                    'model_id': 'query',
                    'tenant_id': 'path',
                    'region': 'path',
                },
                'collection_format_map': {
                }
            },
            headers_map={
                'accept': [
                    'application/octet-stream'
                ],
                'content_type': [],
            },
            api_client=api_client
        )

    def wexbim_get_complete(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim complete  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated complete wexbim geometry stream for a model. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_complete(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int):
            model_id (int):
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_complete_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_components(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim components  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated components wexbim geometry stream for a model. E.g. Fixtures / Furniture, mechnical, electrical and engineering. Excludes the Envelope and Doors, windows and spaces. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_components(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int):
            model_id (int):
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_components_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_dynamic(
        self,
        asset_id,
        model_id,
        included,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim dynamic  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets a dynamically generated geometry stream for a model. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_dynamic(asset_id, model_id, included, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int): The id of asset the model belongs to
            model_id (int): The id of the model
            included ([str]): The IFC types to include (hierarchical)
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        Keyword Args:
            excluded ([str]): The IFC types to exclude (hierarchical). [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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['included'] = \
            included
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_dynamic_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_envelope(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim envelope  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated building envelope wexbim geometry stream for a model. E.g. The building fabric and external envelope. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_envelope(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int): The asset identifier.
            model_id (int): The model identifier.
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_envelope_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_envelope_cut(
        self,
        asset_id,
        model_id,
        bottom,
        top,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim envelope cut  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the building envelope geometry cut plane. This can be used to cap the holes after clipping.. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_envelope_cut(asset_id, model_id, bottom, top, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int):
            model_id (int):
            bottom (float):
            top (float):
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['bottom'] = \
            bottom
        kwargs['top'] = \
            top
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_envelope_cut_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_envelope_free_cut(
        self,
        asset_id,
        model_id,
        planes,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim envelope free cut  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the a cutplane across the envelope for up to 6 cut planes.. Used to cap voids in the envelope when employing sections / section boxes. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_envelope_free_cut(asset_id, model_id, planes, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int):
            model_id (int):
            planes ([float]):
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['planes'] = \
            planes
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_envelope_free_cut_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_site(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim site  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated Site wexbim geometry stream for a model. E.g. The building fabric and external envelope. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_site(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int): The asset identifier.
            model_id (int): The model identifier.
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_site_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_spatial_structure(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim spatial structure  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated spatial wexbim geometry stream for a model. E.g. The Site, Zones, Spaces in a Facility. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_spatial_structure(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int): Asset ID
            model_id (int): Model ID
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_spatial_structure_endpoint.call_with_http_info(**kwargs)

    def wexbim_get_windows_and_doors(
        self,
        asset_id,
        model_id,
        tenant_id,
        region="UK",
        **kwargs
    ):
        """Get Wexbim windows and doors  # noqa: E501

        <span style='font-size: 17px;'>Summary</span><br/>Gets the pre-generated doors/windows wexbim geometry stream for a model. E.g. The building fabric and external envelope. Return Type: string <br/><br/>    # noqa: E501
        This method makes a synchronous HTTP request by default. To make an
        asynchronous HTTP request, please pass async_req=True

        >>> thread = api.wexbim_get_windows_and_doors(asset_id, model_id, tenant_id, region="UK", async_req=True)
        >>> result = thread.get()

        Args:
            asset_id (int):
            model_id (int):
            tenant_id (str): The unique Tenant ID (UUID or Identifier string)
            region (str): The data center region the data resides in. defaults to "UK", must be one of ["UK"]

        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.
            _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['_host_index'] = kwargs.get('_host_index')
        kwargs['asset_id'] = \
            asset_id
        kwargs['model_id'] = \
            model_id
        kwargs['tenant_id'] = \
            tenant_id
        kwargs['region'] = \
            region
        return self.wexbim_get_windows_and_doors_endpoint.call_with_http_info(**kwargs)

