Server

<back to all web services

AddNutzeinheit

Requires Authentication
The following routes are available for this service:
POST/App/{UserId}/Nutzeinheit
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddNutzeinheitResponse:
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    guid: Optional[str] = None
    street: Optional[str] = None
    street2: Optional[str] = None
    street_number: Optional[str] = None
    zipcode: Optional[str] = None
    city: Optional[str] = None
    mailbox: Optional[str] = None
    additional: Optional[str] = None
    latitude: float = 0.0
    longitude: float = 0.0


class UnitKind(str, Enum):
    L = 'L'
    KG = 'Kg'
    CBM = 'CBM'
    STCK = 'Stck'
    KWH = 'KWH'
    MWH = 'MWH'
    GWH = 'GWH'
    T = 'T'
    RM = 'RM'
    EINHEIT = 'Einheit'
    QM = 'Qm'
    GJ = 'GJ'
    MJ = 'MJ'
    NULL = 'Null'


class EstimationKind(str, Enum):
    NULL = 'Null'
    S1 = 'S1'
    S2 = 'S2'
    S3 = 'S3'
    S4 = 'S4'
    S5 = 'S5'
    N1 = 'N1'
    N2 = 'N2'


class DeviceConsumptionState(str, Enum):
    NULL = 'Null'
    RM_IN_ORDNUNG = 'RMInOrdnung'
    RM_FEHLER = 'RMFehler'
    RM_NICHT_GEPR = 'RMNichtGepr'
    RM_FEHLER_TAUSCH = 'RMFehlerTausch'
    KEIN_WOHNUNGSZUTRITT = 'KeinWohnungszutritt'
    DEFEKT = 'Defekt'
    FALSCH_LAUFEND = 'FalschLaufend'
    _ÜBERLAUF = 'Überlauf'
    EICHUNG_BEACHTEN = 'EichungBeachten'
    PROBE_ENTNOMMEN = 'ProbeEntnommen'
    PROBE_ZUM_LABOR = 'ProbeZumLabor'
    PROBE_POSITIV = 'ProbePositiv'
    PROBE_NEGATIV = 'ProbeNegativ'


class DeviceConsumptionOrigin(str, Enum):
    UNBEKANNT = 'Unbekannt'
    MANUAL = 'Manual'
    EMR = 'Emr'
    WALKBY = 'Walkby'
    DELETED = 'Deleted'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeviceConsumption:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    reading_date: Optional[datetime.datetime] = None
    factor: float = 0.0
    reading: Optional[float] = None
    consumption: Optional[float] = None
    change_date: Optional[datetime.datetime] = None
    estimation: Optional[EstimationKind] = None
    state: Optional[DeviceConsumptionState] = None
    note: Optional[str] = None
    is_reconstructed: bool = False
    manual: Optional[float] = None
    origin: Optional[DeviceConsumptionOrigin] = None
    air_temperature: Optional[Decimal] = None
    radiator_temperature: Optional[Decimal] = None
    last_error_date: Optional[datetime.datetime] = None
    error: Optional[str] = None
    ampoule_colour: Optional[str] = None
    readind_kind_guid: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Photo:
    guid: Optional[str] = None
    recorded_date: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeviceAdditionalArticle:
    additional_article_guid: Optional[str] = None
    quantity: Optional[Decimal] = None
    last_modified: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Device:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number: Optional[str] = None
    label: Optional[str] = None
    description: Optional[str] = None
    installation_date: datetime.datetime = datetime.datetime(1, 1, 1)
    deinstallation_date: Optional[datetime.datetime] = None
    calibration_date: Optional[datetime.datetime] = None
    unit: Optional[UnitKind] = None
    note: Optional[str] = None
    subtraction: bool = False
    group_identifier: Optional[str] = None
    estimation: Optional[EstimationKind] = None
    first_activation: Optional[datetime.datetime] = None
    firmware_version: Optional[str] = None
    room_guid: Optional[str] = None
    ongoing_number: Optional[str] = None
    is_leased: bool = False
    is_maintained: bool = False
    device_catalog_guid: Optional[str] = None
    device_consumptions: Optional[IList[DeviceConsumption]] = None
    photos: Optional[IList[Photo]] = None
    device_additional_articles: Optional[IList[DeviceAdditionalArticle]] = None


class NutzerKind(str, Enum):
    LEERSTAND = 'Leerstand'
    GEWERBLICH = 'Gewerblich'
    PRIVAT = 'Privat'
    ALLGEMEINE_NUTZUNG = 'AllgemeineNutzung'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerCommunication:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    address: Optional[str] = None
    note: Optional[str] = None
    communication_feature_guid: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerPersonen:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number_of_people: Optional[int] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerCoOwnership:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    share_value: Optional[Decimal] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerQuadratmeter:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    square_meters__hzg: Optional[Decimal] = None
    square_meters__ww: Optional[Decimal] = None
    square_meters__nk: Optional[Decimal] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Nutzer:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    kind: Optional[NutzerKind] = None
    move_in_date: Optional[datetime.datetime] = None
    move_out_date: Optional[datetime.datetime] = None
    name1: Optional[str] = None
    name2: Optional[str] = None
    name3: Optional[str] = None
    name4: Optional[str] = None
    note: Optional[str] = None
    next_appointment_date: Optional[datetime.datetime] = None
    salutation: Optional[str] = None
    title: Optional[str] = None
    nutzer_communications: Optional[List[NutzerCommunication]] = None
    nutzer_personen: Optional[List[NutzerPersonen]] = None
    nutzer_co_ownership: Optional[List[NutzerCoOwnership]] = None
    nutzer_quadratmeter: Optional[List[NutzerQuadratmeter]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Nutzeinheit:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number: Optional[str] = None
    location: Optional[str] = None
    walk_sequence: Optional[str] = None
    note: Optional[str] = None
    abrechnungseinheit_guid: Optional[str] = None
    address: Optional[Address] = None
    devices: Optional[IList[Device]] = None
    nutzer: Optional[IList[Nutzer]] = None
    photos: Optional[IList[Photo]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddNutzeinheit:
    nutzeinheit: Optional[Nutzeinheit] = None

Python AddNutzeinheit DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /App/{UserId}/Nutzeinheit HTTP/1.1 
Host: calotec-portal-servamw.eras-online.de 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"Nutzeinheit":{"Guid":"00000000000000000000000000000000","LastModified":"0001-01-01T00:00:00.0000000Z","NeNummerInt":"String","Lage":"String","BegeReihenfolge":"String","Anmerkung":"String","AbrechnungseinheitGuid":"00000000000000000000000000000000","Adresse":{"Guid":"00000000000000000000000000000000","Straße":"String","Straße2":"String","Hausnummer":"String","Postleitzahl":"String","Ort":"String","Postfach":"String","Adresszusatz":"String","Breitengrad":0,"Laengengrad":0}},"UserId":"00000000000000000000000000000000"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}},"nutzeinheit":{"Guid":"00000000000000000000000000000000","LastModified":"0001-01-01T00:00:00.0000000Z","NeNummerInt":"String","Lage":"String","BegeReihenfolge":"String","Anmerkung":"String","AbrechnungseinheitGuid":"00000000000000000000000000000000","Adresse":{"Guid":"00000000000000000000000000000000","Straße":"String","Straße2":"String","Hausnummer":"String","Postleitzahl":"String","Ort":"String","Postfach":"String","Adresszusatz":"String","Breitengrad":0,"Laengengrad":0}}}