use std::collections::HashMap;
use azure_iot_operations_mqtt::control_packet::QoS as MqttQoS;
use chrono::{DateTime, Utc};
use crate::azure_device_registry::adr_base_gen::adr_base_service::client as base_client_gen;
use crate::azure_device_registry::adr_base_gen::adr_base_service::service as base_service_gen;
use crate::azure_device_registry::helper::{ConvertOptionMap, ConvertOptionVec};
use crate::azure_device_registry::{ConfigError, ConfigStatus, RuntimeHealth};
#[derive(Clone, Debug, PartialEq)]
pub struct Asset {
pub asset_type_refs: Vec<String>, pub attributes: HashMap<String, String>, pub datasets: Vec<Dataset>, pub default_datasets_configuration: Option<String>,
pub default_datasets_destinations: Vec<DatasetDestination>, pub default_events_configuration: Option<String>,
pub default_events_destinations: Vec<EventStreamDestination>, pub default_management_groups_configuration: Option<String>,
pub default_streams_configuration: Option<String>,
pub default_streams_destinations: Vec<EventStreamDestination>, pub description: Option<String>,
pub device_ref: DeviceRef,
pub discovered_asset_refs: Vec<String>, pub display_name: Option<String>,
pub documentation_uri: Option<String>,
pub enabled: Option<bool>, pub event_groups: Vec<EventGroup>, pub external_asset_id: Option<String>,
pub hardware_revision: Option<String>,
pub last_transition_time: Option<DateTime<Utc>>,
pub management_groups: Vec<ManagementGroup>, pub manufacturer: Option<String>,
pub manufacturer_uri: Option<String>,
pub model: Option<String>,
pub product_code: Option<String>,
pub serial_number: Option<String>,
pub software_revision: Option<String>,
pub streams: Vec<Stream>, pub uuid: Option<String>,
pub version: Option<u64>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredAsset {
pub asset_type_refs: Vec<String>, pub attributes: HashMap<String, String>, pub datasets: Vec<DiscoveredDataset>, pub default_datasets_configuration: Option<String>,
pub default_datasets_destinations: Vec<DatasetDestination>, pub default_events_configuration: Option<String>,
pub default_events_destinations: Vec<EventStreamDestination>, pub default_management_groups_configuration: Option<String>,
pub default_streams_configuration: Option<String>,
pub default_streams_destinations: Vec<EventStreamDestination>, pub description: Option<String>,
pub device_ref: DeviceRef,
pub display_name: Option<String>,
pub documentation_uri: Option<String>,
pub event_groups: Vec<DiscoveredEventGroup>, pub external_asset_id: Option<String>,
pub hardware_revision: Option<String>,
pub management_groups: Vec<DiscoveredManagementGroup>, pub manufacturer: Option<String>,
pub manufacturer_uri: Option<String>,
pub model: Option<String>,
pub product_code: Option<String>,
pub serial_number: Option<String>,
pub software_revision: Option<String>,
pub streams: Vec<DiscoveredStream>, }
#[derive(Clone, Debug, PartialEq)]
pub struct Dataset {
pub dataset_configuration: Option<String>,
pub data_points: Vec<DatasetDataPoint>, pub data_source: Option<String>,
pub destinations: Vec<DatasetDestination>, pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredDataset {
pub dataset_configuration: Option<String>,
pub data_points: Vec<DiscoveredDatasetDataPoint>, pub data_source: Option<String>,
pub destinations: Vec<DatasetDestination>, pub last_updated_on: Option<DateTime<Utc>>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct DatasetDataPoint {
pub data_point_configuration: Option<String>,
pub data_source: Option<String>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredDatasetDataPoint {
pub data_point_configuration: Option<String>,
pub data_source: Option<String>,
pub last_updated_on: Option<DateTime<Utc>>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct DatasetDestination {
pub configuration: DestinationConfiguration,
pub target: DatasetTarget,
}
#[derive(Clone, Debug, PartialEq)]
pub struct EventStreamDestination {
pub configuration: DestinationConfiguration,
pub target: EventStreamTarget,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct DeviceRef {
pub device_name: String,
pub endpoint_name: String,
}
#[derive(Clone, Debug, PartialEq)]
pub struct EventGroup {
pub data_source: Option<String>,
pub default_destinations: Vec<EventStreamDestination>, pub event_group_configuration: Option<String>,
pub events: Vec<Event>, pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredEventGroup {
pub data_source: Option<String>,
pub default_destinations: Vec<EventStreamDestination>, pub event_group_configuration: Option<String>,
pub events: Vec<DiscoveredEvent>, pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct Event {
pub data_source: Option<String>,
pub destinations: Vec<EventStreamDestination>, pub event_configuration: Option<String>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredEvent {
pub data_source: Option<String>,
pub destinations: Vec<EventStreamDestination>, pub event_configuration: Option<String>,
pub last_updated_on: Option<DateTime<Utc>>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct ManagementGroup {
pub actions: Vec<ManagementGroupAction>, pub data_source: Option<String>,
pub default_timeout_in_seconds: Option<u64>,
pub default_topic: Option<String>,
pub management_group_configuration: Option<String>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredManagementGroup {
pub actions: Vec<DiscoveredManagementGroupAction>, pub data_source: Option<String>,
pub default_timeout_in_seconds: Option<u64>,
pub default_topic: Option<String>,
pub last_updated_on: Option<DateTime<Utc>>,
pub management_group_configuration: Option<String>,
pub name: String,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct ManagementGroupAction {
pub action_configuration: Option<String>,
pub action_type: ActionType,
pub name: String,
pub target_uri: String,
pub timeout_in_seconds: Option<u64>,
pub topic: Option<String>,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredManagementGroupAction {
pub action_configuration: Option<String>,
pub action_type: ActionType,
pub last_updated_on: Option<DateTime<Utc>>,
pub name: String,
pub target_uri: String,
pub timeout_in_seconds: Option<u64>,
pub topic: Option<String>,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct Stream {
pub destinations: Vec<EventStreamDestination>, pub name: String,
pub stream_configuration: Option<String>,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug)]
pub struct DiscoveredStream {
pub destinations: Vec<EventStreamDestination>, pub last_updated_on: Option<DateTime<Utc>>,
pub name: String,
pub stream_configuration: Option<String>,
pub type_ref: Option<String>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct DestinationConfiguration {
pub key: Option<String>,
pub path: Option<String>,
pub qos: Option<QoS>,
pub retain: Option<Retain>,
pub topic: Option<String>,
pub ttl: Option<u64>,
}
#[derive(Clone, Debug, Default, PartialEq)]
pub struct AssetStatus {
pub config: Option<ConfigStatus>,
pub datasets: Option<Vec<DatasetEventStreamStatus>>,
pub event_groups: Option<Vec<EventGroupStatus>>,
pub management_groups: Option<Vec<ManagementGroupStatus>>,
pub streams: Option<Vec<DatasetEventStreamStatus>>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct DatasetEventStreamStatus {
pub name: String,
pub message_schema_reference: Option<MessageSchemaReference>,
pub error: Option<ConfigError>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct EventGroupStatus {
pub events: Option<Vec<DatasetEventStreamStatus>>,
pub name: String,
}
#[derive(Clone, Debug, PartialEq)]
pub struct ManagementGroupStatus {
pub actions: Option<Vec<ActionStatus>>,
pub name: String,
}
#[derive(Clone, Debug, PartialEq)]
pub struct ActionStatus {
pub error: Option<ConfigError>,
pub name: String,
pub request_message_schema_reference: Option<MessageSchemaReference>,
pub response_message_schema_reference: Option<MessageSchemaReference>,
}
#[derive(Clone, Debug, PartialEq)]
pub struct MessageSchemaReference {
pub name: String,
pub version: String,
pub registry_namespace: String,
}
impl From<AssetStatus> for base_client_gen::AssetStatus {
fn from(value: AssetStatus) -> Self {
base_client_gen::AssetStatus {
config: value.config.map(Into::into),
datasets: value.datasets.option_vec_into(),
event_groups: value.event_groups.option_vec_into(),
management_groups: value.management_groups.option_vec_into(),
streams: value.streams.option_vec_into(),
}
}
}
impl From<DatasetEventStreamStatus> for base_client_gen::AssetDatasetEventStreamStatus {
fn from(value: DatasetEventStreamStatus) -> Self {
base_client_gen::AssetDatasetEventStreamStatus {
name: value.name,
message_schema_reference: value.message_schema_reference.map(Into::into),
error: value.error.map(Into::into),
}
}
}
impl From<EventGroupStatus> for base_client_gen::AssetEventGroupStatusSchemaElementSchema {
fn from(value: EventGroupStatus) -> Self {
base_client_gen::AssetEventGroupStatusSchemaElementSchema {
events: value.events.option_vec_into(),
name: value.name,
}
}
}
impl From<ManagementGroupStatus>
for base_client_gen::AssetManagementGroupStatusSchemaElementSchema
{
fn from(value: ManagementGroupStatus) -> Self {
base_client_gen::AssetManagementGroupStatusSchemaElementSchema {
actions: value.actions.option_vec_into(),
name: value.name,
}
}
}
impl From<ActionStatus> for base_client_gen::AssetManagementGroupActionStatusSchemaElementSchema {
fn from(value: ActionStatus) -> Self {
base_client_gen::AssetManagementGroupActionStatusSchemaElementSchema {
error: value.error.map(Into::into),
name: value.name,
request_message_schema_reference: value
.request_message_schema_reference
.map(Into::into),
response_message_schema_reference: value
.response_message_schema_reference
.map(Into::into),
}
}
}
impl From<MessageSchemaReference> for base_client_gen::MessageSchemaReference {
fn from(value: MessageSchemaReference) -> Self {
base_client_gen::MessageSchemaReference {
schema_name: value.name,
schema_version: value.version,
schema_registry_namespace: value.registry_namespace,
}
}
}
#[derive(Debug, Clone)]
pub struct DatasetRuntimeHealthEvent {
pub dataset_name: String,
pub runtime_health: RuntimeHealth,
}
#[derive(Debug, Clone)]
pub struct EventRuntimeHealthEvent {
pub event_group_name: String,
pub event_name: String,
pub runtime_health: RuntimeHealth,
}
#[derive(Debug, Clone)]
pub struct StreamRuntimeHealthEvent {
pub stream_name: String,
pub runtime_health: RuntimeHealth,
}
#[derive(Debug, Clone)]
pub struct ManagementActionRuntimeHealthEvent {
pub management_group_name: String,
pub management_action_name: String,
pub runtime_health: RuntimeHealth,
}
impl From<DatasetRuntimeHealthEvent> for base_service_gen::DatasetsSchemaElementSchema {
fn from(value: DatasetRuntimeHealthEvent) -> Self {
base_service_gen::DatasetsSchemaElementSchema {
dataset_name: value.dataset_name,
runtime_health: value.runtime_health.into(),
}
}
}
impl From<EventRuntimeHealthEvent> for base_service_gen::EventsSchemaElementSchema {
fn from(value: EventRuntimeHealthEvent) -> Self {
base_service_gen::EventsSchemaElementSchema {
event_group_name: value.event_group_name,
event_name: value.event_name,
runtime_health: value.runtime_health.into(),
}
}
}
impl From<StreamRuntimeHealthEvent> for base_service_gen::StreamsSchemaElementSchema {
fn from(value: StreamRuntimeHealthEvent) -> Self {
base_service_gen::StreamsSchemaElementSchema {
stream_name: value.stream_name,
runtime_health: value.runtime_health.into(),
}
}
}
impl From<ManagementActionRuntimeHealthEvent>
for base_service_gen::ManagementActionsSchemaElementSchema
{
fn from(value: ManagementActionRuntimeHealthEvent) -> Self {
base_service_gen::ManagementActionsSchemaElementSchema {
management_group_name: value.management_group_name,
management_action_name: value.management_action_name,
runtime_health: value.runtime_health.into(),
}
}
}
#[derive(Clone, Debug, PartialEq)]
pub enum EventStreamTarget {
Mqtt,
Storage,
}
#[derive(Clone, Debug, PartialEq)]
pub enum Retain {
Keep,
Never,
}
#[derive(Clone, Debug, PartialEq)]
pub enum DatasetTarget {
BrokerStateStore,
Mqtt,
Storage,
}
#[derive(Clone, Debug, PartialEq)]
pub enum ActionType {
Call,
Read,
Write,
}
#[derive(Clone, Debug, Copy, PartialEq)]
pub enum QoS {
AtMostOnce,
AtLeastOnce,
}
impl From<Retain> for base_client_gen::Retain {
fn from(value: Retain) -> Self {
match value {
Retain::Keep => Self::Keep,
Retain::Never => Self::Never,
}
}
}
impl From<base_client_gen::AssetStatus> for AssetStatus {
fn from(value: base_client_gen::AssetStatus) -> Self {
AssetStatus {
config: value.config.map(Into::into),
datasets: value.datasets.option_vec_into(),
event_groups: value.event_groups.option_vec_into(),
management_groups: value.management_groups.option_vec_into(),
streams: value.streams.option_vec_into(),
}
}
}
impl From<base_client_gen::AssetEventGroupStatusSchemaElementSchema> for EventGroupStatus {
fn from(value: base_client_gen::AssetEventGroupStatusSchemaElementSchema) -> Self {
EventGroupStatus {
events: value.events.option_vec_into(),
name: value.name,
}
}
}
impl From<base_client_gen::AssetManagementGroupStatusSchemaElementSchema>
for ManagementGroupStatus
{
fn from(value: base_client_gen::AssetManagementGroupStatusSchemaElementSchema) -> Self {
ManagementGroupStatus {
actions: value.actions.option_vec_into(),
name: value.name,
}
}
}
impl From<base_client_gen::AssetManagementGroupActionStatusSchemaElementSchema> for ActionStatus {
fn from(value: base_client_gen::AssetManagementGroupActionStatusSchemaElementSchema) -> Self {
ActionStatus {
error: value.error.map(Into::into),
name: value.name,
request_message_schema_reference: value
.request_message_schema_reference
.map(Into::into),
response_message_schema_reference: value
.response_message_schema_reference
.map(Into::into),
}
}
}
impl From<base_client_gen::AssetDatasetEventStreamStatus> for DatasetEventStreamStatus {
fn from(value: base_client_gen::AssetDatasetEventStreamStatus) -> Self {
DatasetEventStreamStatus {
name: value.name,
message_schema_reference: value.message_schema_reference.map(Into::into),
error: value.error.map(Into::into),
}
}
}
impl From<base_client_gen::MessageSchemaReference> for MessageSchemaReference {
fn from(value: base_client_gen::MessageSchemaReference) -> Self {
MessageSchemaReference {
name: value.schema_name,
version: value.schema_version,
registry_namespace: value.schema_registry_namespace,
}
}
}
impl From<base_client_gen::Asset> for Asset {
fn from(value: base_client_gen::Asset) -> Self {
Asset {
asset_type_refs: value.asset_type_refs.unwrap_or_default(),
attributes: value.attributes.unwrap_or_default(),
datasets: value.datasets.option_vec_into().unwrap_or_default(),
default_datasets_configuration: value.default_datasets_configuration,
default_datasets_destinations: value
.default_datasets_destinations
.option_vec_into()
.unwrap_or_default(),
default_events_configuration: value.default_events_configuration,
default_events_destinations: value
.default_events_destinations
.option_vec_into()
.unwrap_or_default(),
default_management_groups_configuration: value.default_management_groups_configuration,
default_streams_configuration: value.default_streams_configuration,
default_streams_destinations: value
.default_streams_destinations
.option_vec_into()
.unwrap_or_default(),
description: value.description,
device_ref: value.device_ref.into(),
discovered_asset_refs: value.discovered_asset_refs.unwrap_or_default(),
display_name: value.display_name,
documentation_uri: value.documentation_uri,
enabled: value.enabled,
event_groups: value.event_groups.option_vec_into().unwrap_or_default(),
external_asset_id: value.external_asset_id,
hardware_revision: value.hardware_revision,
last_transition_time: value.last_transition_time,
management_groups: value
.management_groups
.option_vec_into()
.unwrap_or_default(),
manufacturer: value.manufacturer,
manufacturer_uri: value.manufacturer_uri,
model: value.model,
product_code: value.product_code,
serial_number: value.serial_number,
software_revision: value.software_revision,
streams: value.streams.option_vec_into().unwrap_or_default(),
uuid: value.uuid,
version: value.version,
}
}
}
impl From<DiscoveredAsset> for base_client_gen::DiscoveredAsset {
fn from(value: DiscoveredAsset) -> Self {
base_client_gen::DiscoveredAsset {
asset_type_refs: value.asset_type_refs.option_vec_into(),
attributes: value.attributes.option_map_into(),
datasets: value.datasets.option_vec_into(),
default_datasets_configuration: value.default_datasets_configuration,
default_datasets_destinations: value.default_datasets_destinations.option_vec_into(),
default_events_configuration: value.default_events_configuration,
default_events_destinations: value.default_events_destinations.option_vec_into(),
default_management_groups_configuration: value.default_management_groups_configuration,
default_streams_configuration: value.default_streams_configuration,
default_streams_destinations: value.default_streams_destinations.option_vec_into(),
description: value.description,
device_ref: value.device_ref.into(),
display_name: value.display_name,
documentation_uri: value.documentation_uri,
event_groups: value.event_groups.option_vec_into(),
external_asset_id: value.external_asset_id,
hardware_revision: value.hardware_revision,
management_groups: value.management_groups.option_vec_into(),
manufacturer: value.manufacturer,
manufacturer_uri: value.manufacturer_uri,
model: value.model,
product_code: value.product_code,
serial_number: value.serial_number,
software_revision: value.software_revision,
streams: value.streams.option_vec_into(),
}
}
}
impl From<base_client_gen::AssetDatasetSchemaElementSchema> for Dataset {
fn from(value: base_client_gen::AssetDatasetSchemaElementSchema) -> Self {
Dataset {
dataset_configuration: value.dataset_configuration,
data_points: value.data_points.option_vec_into().unwrap_or_default(),
data_source: value.data_source,
destinations: value.destinations.option_vec_into().unwrap_or_default(),
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredDataset> for base_client_gen::DiscoveredAssetDataset {
fn from(value: DiscoveredDataset) -> Self {
base_client_gen::DiscoveredAssetDataset {
dataset_configuration: value.dataset_configuration,
data_points: value.data_points.option_vec_into(),
data_source: value.data_source,
destinations: value.destinations.option_vec_into(),
last_updated_on: value.last_updated_on,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::AssetDatasetDataPointSchemaElementSchema> for DatasetDataPoint {
fn from(value: base_client_gen::AssetDatasetDataPointSchemaElementSchema) -> Self {
DatasetDataPoint {
data_point_configuration: value.data_point_configuration,
data_source: value.data_source,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredDatasetDataPoint> for base_client_gen::DiscoveredAssetDatasetDataPoint {
fn from(value: DiscoveredDatasetDataPoint) -> Self {
base_client_gen::DiscoveredAssetDatasetDataPoint {
data_point_configuration: value.data_point_configuration,
data_source: value.data_source,
last_updated_on: value.last_updated_on,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::DatasetDestination> for DatasetDestination {
fn from(value: base_client_gen::DatasetDestination) -> Self {
DatasetDestination {
configuration: value.configuration.into(),
target: value.target.into(),
}
}
}
impl From<DatasetDestination> for base_client_gen::DatasetDestination {
fn from(value: DatasetDestination) -> Self {
base_client_gen::DatasetDestination {
configuration: value.configuration.into(),
target: value.target.into(),
}
}
}
impl From<base_client_gen::AssetDeviceRef> for DeviceRef {
fn from(value: base_client_gen::AssetDeviceRef) -> Self {
DeviceRef {
device_name: value.device_name,
endpoint_name: value.endpoint_name,
}
}
}
impl From<DeviceRef> for base_client_gen::AssetDeviceRef {
fn from(value: DeviceRef) -> Self {
base_client_gen::AssetDeviceRef {
device_name: value.device_name,
endpoint_name: value.endpoint_name,
}
}
}
impl From<base_client_gen::AssetEventGroupSchemaElementSchema> for EventGroup {
fn from(value: base_client_gen::AssetEventGroupSchemaElementSchema) -> Self {
EventGroup {
events: value.events.option_vec_into().unwrap_or_default(),
default_destinations: value
.default_destinations
.option_vec_into()
.unwrap_or_default(),
event_group_configuration: value.event_group_configuration,
data_source: value.data_source,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredEventGroup> for base_client_gen::DiscoveredAssetEventGroup {
fn from(value: DiscoveredEventGroup) -> Self {
base_client_gen::DiscoveredAssetEventGroup {
events: value.events.option_vec_into(),
default_destinations: value.default_destinations.option_vec_into(),
event_group_configuration: value.event_group_configuration,
data_source: value.data_source,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::AssetEventSchemaElementSchema> for Event {
fn from(value: base_client_gen::AssetEventSchemaElementSchema) -> Self {
Event {
destinations: value.destinations.option_vec_into().unwrap_or_default(),
event_configuration: value.event_configuration,
data_source: value.data_source,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredEvent> for base_client_gen::DiscoveredAssetEvent {
fn from(value: DiscoveredEvent) -> Self {
base_client_gen::DiscoveredAssetEvent {
data_source: value.data_source,
destinations: value.destinations.option_vec_into(),
event_configuration: value.event_configuration,
last_updated_on: value.last_updated_on,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::EventStreamDestination> for EventStreamDestination {
fn from(value: base_client_gen::EventStreamDestination) -> Self {
EventStreamDestination {
configuration: value.configuration.into(),
target: value.target.into(),
}
}
}
impl From<EventStreamDestination> for base_client_gen::EventStreamDestination {
fn from(value: EventStreamDestination) -> Self {
base_client_gen::EventStreamDestination {
configuration: value.configuration.into(),
target: value.target.into(),
}
}
}
impl From<base_client_gen::AssetManagementGroupSchemaElementSchema> for ManagementGroup {
fn from(value: base_client_gen::AssetManagementGroupSchemaElementSchema) -> Self {
ManagementGroup {
actions: value.actions.option_vec_into().unwrap_or_default(),
data_source: value.data_source,
default_timeout_in_seconds: value.default_timeout_in_seconds,
default_topic: value.default_topic,
management_group_configuration: value.management_group_configuration,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredManagementGroup> for base_client_gen::DiscoveredAssetManagementGroup {
fn from(value: DiscoveredManagementGroup) -> Self {
base_client_gen::DiscoveredAssetManagementGroup {
actions: value.actions.option_vec_into(),
data_source: value.data_source,
default_timeout_in_seconds: value.default_timeout_in_seconds,
default_topic: value.default_topic,
last_updated_on: value.last_updated_on,
management_group_configuration: value.management_group_configuration,
name: value.name,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::AssetManagementGroupActionSchemaElementSchema>
for ManagementGroupAction
{
fn from(value: base_client_gen::AssetManagementGroupActionSchemaElementSchema) -> Self {
ManagementGroupAction {
action_configuration: value.action_configuration,
action_type: value.action_type.into(),
name: value.name,
target_uri: value.target_uri,
timeout_in_seconds: value.timeout_in_seconds,
topic: value.topic,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredManagementGroupAction>
for base_client_gen::DiscoveredAssetManagementGroupAction
{
fn from(value: DiscoveredManagementGroupAction) -> Self {
base_client_gen::DiscoveredAssetManagementGroupAction {
action_configuration: value.action_configuration,
action_type: value.action_type.into(),
last_updated_on: value.last_updated_on,
name: value.name,
target_uri: value.target_uri,
timeout_in_seconds: value.timeout_in_seconds,
topic: value.topic,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::AssetManagementGroupActionType> for ActionType {
fn from(value: base_client_gen::AssetManagementGroupActionType) -> Self {
match value {
base_client_gen::AssetManagementGroupActionType::Call => ActionType::Call,
base_client_gen::AssetManagementGroupActionType::Read => ActionType::Read,
base_client_gen::AssetManagementGroupActionType::Write => ActionType::Write,
}
}
}
impl From<ActionType> for base_client_gen::AssetManagementGroupActionType {
fn from(value: ActionType) -> Self {
match value {
ActionType::Call => Self::Call,
ActionType::Read => Self::Read,
ActionType::Write => Self::Write,
}
}
}
impl From<base_client_gen::AssetStreamSchemaElementSchema> for Stream {
fn from(value: base_client_gen::AssetStreamSchemaElementSchema) -> Self {
Stream {
destinations: value.destinations.option_vec_into().unwrap_or_default(),
name: value.name,
stream_configuration: value.stream_configuration,
type_ref: value.type_ref,
}
}
}
impl From<DiscoveredStream> for base_client_gen::DiscoveredAssetStream {
fn from(value: DiscoveredStream) -> Self {
base_client_gen::DiscoveredAssetStream {
destinations: value.destinations.option_vec_into(),
last_updated_on: value.last_updated_on,
name: value.name,
stream_configuration: value.stream_configuration,
type_ref: value.type_ref,
}
}
}
impl From<base_client_gen::DestinationConfiguration> for DestinationConfiguration {
fn from(value: base_client_gen::DestinationConfiguration) -> Self {
DestinationConfiguration {
key: value.key,
path: value.path,
qos: value.qos.map(Into::into),
retain: value.retain.map(Into::into),
topic: value.topic,
ttl: value.ttl,
}
}
}
impl From<DestinationConfiguration> for base_client_gen::DestinationConfiguration {
fn from(value: DestinationConfiguration) -> Self {
base_client_gen::DestinationConfiguration {
key: value.key,
path: value.path,
qos: value.qos.map(Into::into),
retain: value.retain.map(Into::into),
topic: value.topic,
ttl: value.ttl,
}
}
}
impl From<base_client_gen::EventStreamTarget> for EventStreamTarget {
fn from(value: base_client_gen::EventStreamTarget) -> Self {
match value {
base_client_gen::EventStreamTarget::Mqtt => EventStreamTarget::Mqtt,
base_client_gen::EventStreamTarget::Storage => EventStreamTarget::Storage,
}
}
}
impl From<EventStreamTarget> for base_client_gen::EventStreamTarget {
fn from(value: EventStreamTarget) -> Self {
match value {
EventStreamTarget::Mqtt => base_client_gen::EventStreamTarget::Mqtt,
EventStreamTarget::Storage => base_client_gen::EventStreamTarget::Storage,
}
}
}
impl From<base_client_gen::DatasetTarget> for DatasetTarget {
fn from(value: base_client_gen::DatasetTarget) -> Self {
match value {
base_client_gen::DatasetTarget::BrokerStateStore => DatasetTarget::BrokerStateStore,
base_client_gen::DatasetTarget::Mqtt => DatasetTarget::Mqtt,
base_client_gen::DatasetTarget::Storage => DatasetTarget::Storage,
}
}
}
impl From<DatasetTarget> for base_client_gen::DatasetTarget {
fn from(value: DatasetTarget) -> Self {
match value {
DatasetTarget::BrokerStateStore => base_client_gen::DatasetTarget::BrokerStateStore,
DatasetTarget::Mqtt => base_client_gen::DatasetTarget::Mqtt,
DatasetTarget::Storage => base_client_gen::DatasetTarget::Storage,
}
}
}
impl From<base_client_gen::Qos> for QoS {
fn from(value: base_client_gen::Qos) -> Self {
match value {
base_client_gen::Qos::Qos0 => QoS::AtMostOnce,
base_client_gen::Qos::Qos1 => QoS::AtLeastOnce,
}
}
}
impl From<QoS> for base_client_gen::Qos {
fn from(value: QoS) -> Self {
match value {
QoS::AtMostOnce => base_client_gen::Qos::Qos0,
QoS::AtLeastOnce => base_client_gen::Qos::Qos1,
}
}
}
impl From<QoS> for MqttQoS {
fn from(value: QoS) -> Self {
match value {
QoS::AtMostOnce => MqttQoS::AtMostOnce,
QoS::AtLeastOnce => MqttQoS::AtLeastOnce,
}
}
}
impl From<base_client_gen::Retain> for Retain {
fn from(value: base_client_gen::Retain) -> Self {
match value {
base_client_gen::Retain::Keep => Retain::Keep,
base_client_gen::Retain::Never => Retain::Never,
}
}
}