fluvius-energy-api 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,123 @@
1
+ """Models for the Fluvius Energy API."""
2
+
3
+ from .base import (
4
+ ErrorResponse,
5
+ ErrorValidationResponse,
6
+ FluviusBaseModel,
7
+ ResponseMetadata,
8
+ )
9
+ from .energy import (
10
+ AuxiliarySubHeadpoint,
11
+ GetEnergyResponse,
12
+ GetEnergyResponseApiDataResponse,
13
+ Headpoint,
14
+ HeadpointUnion,
15
+ MeasurementDirection,
16
+ MeasurementTimeSlice,
17
+ MeasurementValue,
18
+ MeasurementValueSet,
19
+ MeteringOnHeadpoint,
20
+ MeteringOnHeadpointAndMeter,
21
+ MeteringOnMeter,
22
+ OfftakeSubHeadpoint,
23
+ PhysicalMeter,
24
+ ProductionSubHeadpoint,
25
+ SubHeadpoint,
26
+ SubHeadpointUnion,
27
+ )
28
+ from .enums import (
29
+ CreateClientSessionStatus,
30
+ DataServiceType,
31
+ EnergyType,
32
+ EstimatedVolumeType,
33
+ Flow,
34
+ GasConversionFactor,
35
+ LocalProductionInstallationType,
36
+ MandateRenewalStatus,
37
+ MandateStatus,
38
+ MeasurementValidationState,
39
+ MeterType,
40
+ PeriodType,
41
+ Register,
42
+ Unit,
43
+ )
44
+ from .installation import (
45
+ EstimatedVolume,
46
+ GetInstallationResponse,
47
+ GetInstallationResponseApiDataResponse,
48
+ Installation,
49
+ LocalProductionInstallation,
50
+ )
51
+ from .mandate import (
52
+ CreateMandateRequest,
53
+ CreateMandateResponse,
54
+ CreateMandateResponseApiDataResponse,
55
+ GetMandatesResponse,
56
+ GetMandatesResponseApiDataResponse,
57
+ Mandate,
58
+ )
59
+ from .session import (
60
+ ClientSessionDataService,
61
+ CreateClientSessionRequest,
62
+ CreateClientSessionResponse,
63
+ CreateClientSessionResponseApiDataResponse,
64
+ )
65
+
66
+ __all__ = [
67
+ # Base
68
+ "ErrorResponse",
69
+ "ErrorValidationResponse",
70
+ "FluviusBaseModel",
71
+ "ResponseMetadata",
72
+ # Energy
73
+ "AuxiliarySubHeadpoint",
74
+ "GetEnergyResponse",
75
+ "GetEnergyResponseApiDataResponse",
76
+ "Headpoint",
77
+ "HeadpointUnion",
78
+ "MeasurementDirection",
79
+ "MeasurementTimeSlice",
80
+ "MeasurementValue",
81
+ "MeasurementValueSet",
82
+ "MeteringOnHeadpoint",
83
+ "MeteringOnHeadpointAndMeter",
84
+ "MeteringOnMeter",
85
+ "OfftakeSubHeadpoint",
86
+ "PhysicalMeter",
87
+ "ProductionSubHeadpoint",
88
+ "SubHeadpoint",
89
+ "SubHeadpointUnion",
90
+ # Enums
91
+ "CreateClientSessionStatus",
92
+ "DataServiceType",
93
+ "EnergyType",
94
+ "EstimatedVolumeType",
95
+ "Flow",
96
+ "GasConversionFactor",
97
+ "LocalProductionInstallationType",
98
+ "MandateRenewalStatus",
99
+ "MandateStatus",
100
+ "MeasurementValidationState",
101
+ "MeterType",
102
+ "PeriodType",
103
+ "Register",
104
+ "Unit",
105
+ # Installation
106
+ "EstimatedVolume",
107
+ "GetInstallationResponse",
108
+ "GetInstallationResponseApiDataResponse",
109
+ "Installation",
110
+ "LocalProductionInstallation",
111
+ # Mandate
112
+ "CreateMandateRequest",
113
+ "CreateMandateResponse",
114
+ "CreateMandateResponseApiDataResponse",
115
+ "GetMandatesResponse",
116
+ "GetMandatesResponseApiDataResponse",
117
+ "Mandate",
118
+ # Session
119
+ "ClientSessionDataService",
120
+ "CreateClientSessionRequest",
121
+ "CreateClientSessionResponse",
122
+ "CreateClientSessionResponseApiDataResponse",
123
+ ]
@@ -0,0 +1,36 @@
1
+ """Base model classes for the Fluvius Energy API."""
2
+
3
+ from datetime import datetime
4
+
5
+ from pydantic import BaseModel, ConfigDict, Field
6
+
7
+
8
+ class FluviusBaseModel(BaseModel):
9
+ """Base model with camelCase alias configuration."""
10
+
11
+ model_config = ConfigDict(
12
+ populate_by_name=True,
13
+ use_enum_values=True,
14
+ )
15
+
16
+
17
+ class ResponseMetadata(FluviusBaseModel):
18
+ """Represents metadata for a response."""
19
+
20
+ fetch_time: datetime | None = Field(default=None, alias="fetchTime")
21
+
22
+
23
+ class ErrorResponse(FluviusBaseModel):
24
+ """Represents an error response from the API."""
25
+
26
+ type: str | None = Field(default=None, alias="Type")
27
+ code: str | None = Field(default=None, alias="Code")
28
+ message: str | None = Field(default=None, alias="Message")
29
+
30
+
31
+ class ErrorValidationResponse(ErrorResponse):
32
+ """Represents a response when validation has failed during the request."""
33
+
34
+ validation_error_messages: list[str] | None = Field(
35
+ default=None, alias="ValidationErrorMessages"
36
+ )
@@ -0,0 +1,201 @@
1
+ """Energy measurement models for the Fluvius Energy API."""
2
+
3
+ from datetime import datetime
4
+ from typing import Annotated, Literal
5
+ from pydantic import Field
6
+
7
+ from .base import FluviusBaseModel, ResponseMetadata
8
+ from .enums import (
9
+ EnergyType,
10
+ GasConversionFactor,
11
+ LocalProductionInstallationType,
12
+ MeasurementValidationState,
13
+ Unit,
14
+ )
15
+
16
+
17
+ class MeasurementValue(FluviusBaseModel):
18
+ """Represents a single measurement value."""
19
+
20
+ value: float | None = None
21
+ unit: Unit | None = None
22
+ validation_state: MeasurementValidationState | None = Field(
23
+ default=None, alias="validationState"
24
+ )
25
+ gas_conversion_factor: GasConversionFactor | None = Field(
26
+ default=None, alias="gasConversionFactor"
27
+ )
28
+
29
+
30
+ class MeasurementValueSet(FluviusBaseModel):
31
+ """Represents a measurement value set for different registers."""
32
+
33
+ total: MeasurementValue | None = None
34
+ day: MeasurementValue | None = None
35
+ night: MeasurementValue | None = None
36
+ reactive: MeasurementValue | None = None
37
+ inductive: MeasurementValue | None = None
38
+ capacitive: MeasurementValue | None = None
39
+
40
+
41
+ class MeasurementDirection(FluviusBaseModel):
42
+ """Represents a measurement set for different energy directions."""
43
+
44
+ offtake: MeasurementValueSet | None = None
45
+ injection: MeasurementValueSet | None = None
46
+ production: MeasurementValueSet | None = None
47
+ auxiliary: MeasurementValueSet | None = None
48
+
49
+
50
+ class MeasurementTimeSlice(FluviusBaseModel):
51
+ """Represents a measurement set within a given period (time slice)."""
52
+
53
+ start: datetime | None = None
54
+ end: datetime | None = None
55
+ measurements: list[MeasurementDirection] | None = None
56
+
57
+
58
+ class PhysicalMeter(FluviusBaseModel):
59
+ """Represents a physical meter."""
60
+
61
+ seq_number: str | None = Field(default=None, alias="seqNumber")
62
+ meter_id: str | None = Field(default=None, alias="meterID")
63
+ daily_energy: list[MeasurementTimeSlice] | None = Field(
64
+ default=None, alias="dailyEnergy"
65
+ )
66
+ hourly_energy: list[MeasurementTimeSlice] | None = Field(
67
+ default=None, alias="hourlyEnergy"
68
+ )
69
+ quarter_hourly_energy: list[MeasurementTimeSlice] | None = Field(
70
+ default=None, alias="quarterHourlyEnergy"
71
+ )
72
+
73
+
74
+ class SubHeadpoint(FluviusBaseModel):
75
+ """Base response for different kinds of submetering installations."""
76
+
77
+ type_discriminator: str = Field(alias="$type")
78
+ ean: str | None = None
79
+ seq_number: str | None = Field(default=None, alias="seqNumber")
80
+ vreg_id: str | None = Field(default=None, alias="vregId")
81
+ type: LocalProductionInstallationType | None = None
82
+ daily_energy: list[MeasurementTimeSlice] | None = Field(
83
+ default=None, alias="dailyEnergy"
84
+ )
85
+ hourly_energy: list[MeasurementTimeSlice] | None = Field(
86
+ default=None, alias="hourlyEnergy"
87
+ )
88
+ quarter_hourly_energy: list[MeasurementTimeSlice] | None = Field(
89
+ default=None, alias="quarterHourlyEnergy"
90
+ )
91
+
92
+
93
+ class AuxiliarySubHeadpoint(SubHeadpoint):
94
+ """Represents a submetering installation for auxiliary energy."""
95
+
96
+ type_discriminator: Literal["submetering-auxiliary"] = Field(
97
+ default="submetering-auxiliary", alias="$type"
98
+ )
99
+
100
+
101
+ class OfftakeSubHeadpoint(SubHeadpoint):
102
+ """Represents a submetering installation for offtake energy."""
103
+
104
+ type_discriminator: Literal["submetering-offtake"] = Field(
105
+ default="submetering-offtake", alias="$type"
106
+ )
107
+
108
+
109
+ class ProductionSubHeadpoint(SubHeadpoint):
110
+ """Represents a submetering installation for produced energy."""
111
+
112
+ type_discriminator: Literal["submetering-production"] = Field(
113
+ default="submetering-production", alias="$type"
114
+ )
115
+
116
+
117
+ SubHeadpointUnion = Annotated[
118
+ AuxiliarySubHeadpoint | OfftakeSubHeadpoint | ProductionSubHeadpoint,
119
+ Field(discriminator="type_discriminator"),
120
+ ]
121
+
122
+
123
+ class Headpoint(FluviusBaseModel):
124
+ """Base response for different kinds of installations."""
125
+
126
+ type_discriminator: str = Field(alias="$type")
127
+ ean: str | None = None
128
+ energy_type: EnergyType | None = Field(default=None, alias="energyType")
129
+
130
+
131
+ class MeteringOnHeadpoint(Headpoint):
132
+ """Response containing an installation where metering is done on headpoint level (AMR)."""
133
+
134
+ type_discriminator: Literal["metering-on-headpoint"] = Field(
135
+ default="metering-on-headpoint", alias="$type"
136
+ )
137
+ daily_energy: list[MeasurementTimeSlice] | None = Field(
138
+ default=None, alias="dailyEnergy"
139
+ )
140
+ hourly_energy: list[MeasurementTimeSlice] | None = Field(
141
+ default=None, alias="hourlyEnergy"
142
+ )
143
+ quarter_hourly_energy: list[MeasurementTimeSlice] | None = Field(
144
+ default=None, alias="quarterHourlyEnergy"
145
+ )
146
+ sub_headpoints: list[SubHeadpointUnion] | None = Field(
147
+ default=None, alias="subHeadpoints"
148
+ )
149
+
150
+
151
+ class MeteringOnMeter(Headpoint):
152
+ """Response containing an installation where metering is done on meter level (DM)."""
153
+
154
+ type_discriminator: Literal["metering-on-meter"] = Field(
155
+ default="metering-on-meter", alias="$type"
156
+ )
157
+ physical_meters: list[PhysicalMeter] | None = Field(
158
+ default=None, alias="physicalMeters"
159
+ )
160
+
161
+
162
+ class MeteringOnHeadpointAndMeter(Headpoint):
163
+ """Response containing an installation where metering is done on both headpoint and meter level."""
164
+
165
+ type_discriminator: Literal["metering-on-headpoint-and-meter"] = Field(
166
+ default="metering-on-headpoint-and-meter", alias="$type"
167
+ )
168
+ physical_meters: list[PhysicalMeter] | None = Field(
169
+ default=None, alias="physicalMeters"
170
+ )
171
+ daily_energy: list[MeasurementTimeSlice] | None = Field(
172
+ default=None, alias="dailyEnergy"
173
+ )
174
+ hourly_energy: list[MeasurementTimeSlice] | None = Field(
175
+ default=None, alias="hourlyEnergy"
176
+ )
177
+ quarter_hourly_energy: list[MeasurementTimeSlice] | None = Field(
178
+ default=None, alias="quarterHourlyEnergy"
179
+ )
180
+ sub_headpoints: list[SubHeadpointUnion] | None = Field(
181
+ default=None, alias="subHeadpoints"
182
+ )
183
+
184
+
185
+ HeadpointUnion = Annotated[
186
+ MeteringOnHeadpoint | MeteringOnMeter | MeteringOnHeadpointAndMeter,
187
+ Field(discriminator="type_discriminator"),
188
+ ]
189
+
190
+
191
+ class GetEnergyResponse(FluviusBaseModel):
192
+ """Represents a response containing energy for a single installation."""
193
+
194
+ headpoint: HeadpointUnion | None = None
195
+
196
+
197
+ class GetEnergyResponseApiDataResponse(FluviusBaseModel):
198
+ """Represents a successful response from the server containing data."""
199
+
200
+ meta: ResponseMetadata | None = Field(default=None, alias="_meta")
201
+ data: GetEnergyResponse | None = None
@@ -0,0 +1,137 @@
1
+ """Enum definitions for the Fluvius Energy API."""
2
+
3
+ from enum import Enum
4
+
5
+
6
+ class CreateClientSessionStatus(str, Enum):
7
+ """Defines all client session creation statuses."""
8
+
9
+ SUCCESS = "success"
10
+ FAILED = "failed"
11
+
12
+
13
+ class DataServiceType(str, Enum):
14
+ """Defines the available data service types."""
15
+
16
+ VH_ONBEPAALD = "VH_onbepaald"
17
+ VH_KWARTIER_UUR = "VH_kwartier_uur"
18
+ VH_DAG = "VH_dag"
19
+ IG = "IG"
20
+
21
+
22
+ class EnergyType(str, Enum):
23
+ """Defines all supported disciplines (energy types)."""
24
+
25
+ ELECTRICITY = "E"
26
+ GAS = "G"
27
+
28
+
29
+ class EstimatedVolumeType(str, Enum):
30
+ """Defines the supported types of estimated volume."""
31
+
32
+ EAV = "EAV"
33
+
34
+
35
+ class Flow(str, Enum):
36
+ """Defines all possible flows."""
37
+
38
+ B2C = "B2C"
39
+ B2B = "B2B"
40
+
41
+
42
+ class GasConversionFactor(str, Enum):
43
+ """Defines all possible values for gas conversion factor."""
44
+
45
+ PREDICTIVE = "P"
46
+ DEFINITIVE = "D"
47
+ CONSTANT = "C"
48
+
49
+
50
+ class LocalProductionInstallationType(str, Enum):
51
+ """Defines the types of local production installation."""
52
+
53
+ UNKNOWN = "?"
54
+ NDGR = "NDGR"
55
+ NDGR2 = "NDGR2"
56
+ PV = "PV"
57
+ WKKB = "WKKB"
58
+ WKKD = "WKKD"
59
+ WKKA = "WKKA"
60
+ WTR = "WTR"
61
+ WND = "WND"
62
+ TBJT = "TBJT"
63
+ ORC = "ORC"
64
+ BC = "BC"
65
+ BIOM = "BIOM"
66
+ DSL = "DSL"
67
+ FOSM = "FOSM"
68
+ PPPV = "PPPV"
69
+ PPBAT = "PPBAT"
70
+ BAT = "BAT"
71
+
72
+
73
+ class MandateRenewalStatus(str, Enum):
74
+ """Defines all mandate renewal statuses."""
75
+
76
+ TO_BE_RENEWED = "ToBeRenewed"
77
+ RENEWAL_REQUESTED = "RenewalRequested"
78
+ EXPIRED = "Expired"
79
+
80
+
81
+ class MandateStatus(str, Enum):
82
+ """Defines all mandate statuses."""
83
+
84
+ REQUESTED = "Requested"
85
+ APPROVED = "Approved"
86
+ REJECTED = "Rejected"
87
+ FINISHED = "Finished"
88
+
89
+
90
+ class MeasurementValidationState(str, Enum):
91
+ """Defines all possible values for validation states of measurements."""
92
+
93
+ READ = "READ"
94
+ EST = "EST"
95
+ VAL = "VAL"
96
+ NVAL = "NVAL"
97
+
98
+
99
+ class MeterType(str, Enum):
100
+ """Defines all possible meter types."""
101
+
102
+ KM = "KM"
103
+ DM = "DM"
104
+
105
+
106
+ class PeriodType(str, Enum):
107
+ """Defines the type of period for which will be queried."""
108
+
109
+ READ_TIME = "readTime"
110
+ INSERT_TIME = "insertTime"
111
+
112
+
113
+ class Register(str, Enum):
114
+ """Represents a register."""
115
+
116
+ UNKNOWN = "Unknown"
117
+ OFFTAKE_TOTAL_HOURS = "OfftakeTotalHours"
118
+ OFFTAKE_HIGH = "OfftakeHigh"
119
+ OFFTAKE_LOW = "OfftakeLow"
120
+ OFFTAKE_EXCLUSIVE_NIGHT = "OfftakeExclusiveNight"
121
+ COMPENSATED_OFFTAKE_TOTAL_HOURS = "CompensatedOfftakeTotalHours"
122
+ COMPENSATED_OFFTAKE_HIGH = "CompensatedOfftakeHigh"
123
+ COMPENSATED_OFFTAKE_LOW = "CompensatedOfftakeLow"
124
+ INJECTION_TOTAL_HOURS = "InjectionTotalHours"
125
+ INJECTION_HIGH = "InjectionHigh"
126
+ INJECTION_LOW = "InjectionLow"
127
+
128
+
129
+ class Unit(str, Enum):
130
+ """Defines all supported units."""
131
+
132
+ UNKNOWN = "?"
133
+ KVA = "kVA"
134
+ KVARH = "kVArh"
135
+ KWH = "kWh"
136
+ KW = "kW"
137
+ M3 = "m3"
@@ -0,0 +1,68 @@
1
+ """Installation models for the Fluvius Energy API."""
2
+
3
+ from datetime import datetime
4
+ from pydantic import Field
5
+
6
+ from .base import FluviusBaseModel, ResponseMetadata
7
+ from .enums import (
8
+ EnergyType,
9
+ EstimatedVolumeType,
10
+ LocalProductionInstallationType,
11
+ MeterType,
12
+ Register,
13
+ Unit,
14
+ )
15
+
16
+
17
+ class LocalProductionInstallation(FluviusBaseModel):
18
+ """Represents a single local production installation."""
19
+
20
+ vreg_id: str | None = Field(default=None, alias="vregId")
21
+ type: LocalProductionInstallationType | None = None
22
+ converter_power: float | None = Field(default=None, alias="converterPower")
23
+ converter_power_unit: Unit | None = Field(default=None, alias="converterPowerUnit")
24
+ inspection_date: datetime | None = Field(default=None, alias="inspectionDate")
25
+
26
+
27
+ class EstimatedVolume(FluviusBaseModel):
28
+ """Represents a response containing an estimated volume."""
29
+
30
+ type: EstimatedVolumeType | None = None
31
+ calculated_register: Register | None = Field(
32
+ default=None, alias="calculatedRegister"
33
+ )
34
+ value: int | None = None
35
+ unit: Unit | None = None
36
+ consumption_start_date: datetime | None = Field(
37
+ default=None, alias="consumptionStartDate"
38
+ )
39
+ consumption_end_date: datetime | None = Field(
40
+ default=None, alias="consumptionEndDate"
41
+ )
42
+
43
+
44
+ class Installation(FluviusBaseModel):
45
+ """Represents a single installation."""
46
+
47
+ energy_type: EnergyType | None = Field(default=None, alias="energyType")
48
+ meter_type: MeterType | None = Field(default=None, alias="meterType")
49
+ smr3: bool | None = None
50
+ local_production_installations: list[LocalProductionInstallation] | None = Field(
51
+ default=None, alias="localProductionInstallations"
52
+ )
53
+ estimated_volumes: list[EstimatedVolume] | None = Field(
54
+ default=None, alias="estimatedVolumes"
55
+ )
56
+
57
+
58
+ class GetInstallationResponse(FluviusBaseModel):
59
+ """Represents a response containing installation data."""
60
+
61
+ installation: Installation | None = None
62
+
63
+
64
+ class GetInstallationResponseApiDataResponse(FluviusBaseModel):
65
+ """Represents a successful response from the server containing data."""
66
+
67
+ meta: ResponseMetadata | None = Field(default=None, alias="_meta")
68
+ data: GetInstallationResponse | None = None
@@ -0,0 +1,73 @@
1
+ """Mandate models for the Fluvius Energy API."""
2
+
3
+ from datetime import datetime
4
+ from pydantic import Field
5
+
6
+ from .base import FluviusBaseModel, ResponseMetadata
7
+ from .enums import DataServiceType, EnergyType, MandateRenewalStatus, MandateStatus
8
+
9
+
10
+ class Mandate(FluviusBaseModel):
11
+ """Represents a single mandate."""
12
+
13
+ reference_number: str | None = Field(default=None, alias="referenceNumber")
14
+ status: MandateStatus | None = None
15
+ ean: str | None = None
16
+ energy_type: EnergyType | None = Field(default=None, alias="energyType")
17
+ data_period_from: datetime | None = Field(default=None, alias="dataPeriodFrom")
18
+ data_period_to: datetime | None = Field(default=None, alias="dataPeriodTo")
19
+ data_service_type: DataServiceType | None = Field(
20
+ default=None, alias="dataServiceType"
21
+ )
22
+ mandate_expiration_date: datetime | None = Field(
23
+ default=None, alias="mandateExpirationDate"
24
+ )
25
+ renewal_status: MandateRenewalStatus | None = Field(
26
+ default=None, alias="renewalStatus"
27
+ )
28
+
29
+
30
+ class GetMandatesResponse(FluviusBaseModel):
31
+ """Represents a response containing multiple mandates."""
32
+
33
+ mandates: list[Mandate] | None = None
34
+
35
+
36
+ class GetMandatesResponseApiDataResponse(FluviusBaseModel):
37
+ """Represents a successful response from the server containing data."""
38
+
39
+ meta: ResponseMetadata | None = Field(default=None, alias="_meta")
40
+ data: GetMandatesResponse | None = None
41
+
42
+
43
+ class CreateMandateRequest(FluviusBaseModel):
44
+ """Request to create a mock mandate in the sandbox environment.
45
+
46
+ This endpoint is only available in the sandbox environment.
47
+ """
48
+
49
+ reference_number: str = Field(..., alias="referenceNumber")
50
+ ean: str
51
+ data_service_type: DataServiceType = Field(..., alias="dataServiceType")
52
+ data_period_from: str | None = Field(default=None, alias="dataPeriodFrom")
53
+ data_period_to: str | None = Field(default=None, alias="dataPeriodTo")
54
+ status: MandateStatus | None = None
55
+ mandate_expiration_date: str | None = Field(
56
+ default=None, alias="mandateExpirationDate"
57
+ )
58
+ renewal_status: MandateRenewalStatus | None = Field(
59
+ default=None, alias="renewalStatus"
60
+ )
61
+
62
+
63
+ class CreateMandateResponse(FluviusBaseModel):
64
+ """Response from creating a mock mandate."""
65
+
66
+ status: str | None = None
67
+
68
+
69
+ class CreateMandateResponseApiDataResponse(FluviusBaseModel):
70
+ """Represents a successful response from the mock mandate creation."""
71
+
72
+ meta: ResponseMetadata | None = Field(default=None, alias="_meta")
73
+ data: CreateMandateResponse | None = None
@@ -0,0 +1,46 @@
1
+ """Client session models for the Fluvius Energy API."""
2
+
3
+ from datetime import datetime
4
+ from pydantic import Field
5
+
6
+ from .base import FluviusBaseModel, ResponseMetadata
7
+ from .enums import CreateClientSessionStatus, DataServiceType, Flow
8
+
9
+
10
+ class ClientSessionDataService(FluviusBaseModel):
11
+ """Represents a data service on a request to create a client session."""
12
+
13
+ data_service_type: DataServiceType = Field(alias="dataServiceType")
14
+ data_period_from: str | None = Field(default=None, alias="dataPeriodFrom")
15
+ data_period_to: str | None = Field(default=None, alias="dataPeriodTo")
16
+
17
+
18
+ class CreateClientSessionRequest(FluviusBaseModel):
19
+ """Represents a request to create a client session."""
20
+
21
+ data_access_contract_number: str = Field(alias="dataAccessContractNumber")
22
+ reference_number: str = Field(alias="referenceNumber")
23
+ flow: Flow
24
+ data_services: list[ClientSessionDataService] | None = Field(
25
+ default=None, alias="dataServices"
26
+ )
27
+ number_of_eans: int | None = Field(default=None, alias="numberOfEans")
28
+ return_url_success: str | None = Field(default=None, alias="returnUrlSuccess")
29
+ return_url_failed: str | None = Field(default=None, alias="returnUrlFailed")
30
+ sso: bool | None = None
31
+ enterprise_number: str | None = Field(default=None, alias="enterpriseNumber")
32
+
33
+
34
+ class CreateClientSessionResponse(FluviusBaseModel):
35
+ """Represents a response containing a new client session."""
36
+
37
+ status: CreateClientSessionStatus | None = None
38
+ short_url_identifier: str | None = Field(default=None, alias="shortUrlIdentifier")
39
+ valid_to: datetime | None = Field(default=None, alias="validTo")
40
+
41
+
42
+ class CreateClientSessionResponseApiDataResponse(FluviusBaseModel):
43
+ """Represents a successful response from the server containing data."""
44
+
45
+ meta: ResponseMetadata | None = Field(default=None, alias="_meta")
46
+ data: CreateClientSessionResponse | None = None
File without changes