/// <summary> /// Initializes a new instance of TimeSeriesInstance. /// </summary> /// <param name="timeSeriesId"> /// Time Series Id that uniquely identifies the instance.It matches Time Series Id properties in /// an environment. Immutable, never null. /// </param> /// <param name="typeId"> /// This represents the type that this instance belongs to. Never null. /// </param> /// <exception cref="ArgumentNullException"> /// <paramref name="timeSeriesId"/> or <paramref name="typeId"/> is null. /// </exception> public TimeSeriesInstance(TimeSeriesId timeSeriesId, string typeId) { TimeSeriesId = timeSeriesId ?? throw new ArgumentNullException(nameof(timeSeriesId)); TypeId = typeId ?? throw new ArgumentNullException(nameof(typeId)); HierarchyIds = new ChangeTrackingList <string>(); InstanceFields = new ChangeTrackingDictionary <string, object>(); }
/// <summary> /// Initializes a new instance of TimeSeriesInstance. /// </summary> /// <param name="timeSeriesId"> /// Time Series Id that uniquely identifies the instance. It matches Time Series Id properties in /// an environment. Immutable, never null. /// </param> /// <param name="typeId">This represents the type that this instance belongs to. Never null. </param> /// <param name="name"> /// Optional name of the instance which is unique in an environment. Names acts as a mutable alias /// or display name of the time series instance. Mutable, may be null. /// </param> /// <param name="description">This optional field contains description about the instance. </param> /// <param name="hierarchyIds">Set of time series hierarchy Ids that the instance belong to. May be null. </param> /// <param name="instanceFields"> /// Set of key-value pairs that contain user-defined instance properties. /// It may be null. Supported property value types are: bool, string, long, double and it cannot be nested or null. /// </param> internal TimeSeriesInstance( TimeSeriesId timeSeriesId, string typeId, string name, string description, IList <string> hierarchyIds, IDictionary <string, object> instanceFields) { TimeSeriesId = timeSeriesId; TypeId = typeId; Name = name; Description = description; HierarchyIds = hierarchyIds; InstanceFields = instanceFields; }
// The use of fully qualified name for IUtf8JsonSerializable is a work around until this // issue is fixed: https://github.com/Azure/autorest.csharp/issues/793 void global::Azure.Core.IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); writer.WritePropertyName("timeSeriesId"); writer.WriteStartArray(); foreach (object item in TimeSeriesId.ToArray()) { writer.WriteObjectValue(item); } writer.WriteEndArray(); writer.WritePropertyName("typeId"); writer.WriteStringValue(TypeId); if (Optional.IsDefined(Name)) { writer.WritePropertyName("name"); writer.WriteStringValue(Name); } if (Optional.IsDefined(Description)) { writer.WritePropertyName("description"); writer.WriteStringValue(Description); } if (Optional.IsCollectionDefined(HierarchyIds)) { writer.WritePropertyName("hierarchyIds"); writer.WriteStartArray(); foreach (var item in HierarchyIds) { writer.WriteStringValue(item); } writer.WriteEndArray(); } if (Optional.IsCollectionDefined(InstanceFields)) { writer.WritePropertyName("instanceFields"); writer.WriteStartObject(); foreach (KeyValuePair <string, object> item in InstanceFields) { writer.WritePropertyName(item.Key); writer.WriteObjectValue(item.Value); } writer.WriteEndObject(); } writer.WriteEndObject(); }
internal static TimeSeriesInstance DeserializeTimeSeriesInstance(JsonElement element) { TimeSeriesId timeSeriesId = default; string typeId = default; Optional <string> name = default; Optional <string> description = default; Optional <IList <string> > hierarchyIds = default; Optional <IDictionary <string, object> > instanceFields = default; foreach (JsonProperty property in element.EnumerateObject()) { if (property.NameEquals("timeSeriesId")) { var array = new List <string>(); foreach (JsonElement item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } timeSeriesId = array.Count switch { 1 => new TimeSeriesId(array[0]), 2 => new TimeSeriesId(array[0], array[1]), 3 => new TimeSeriesId(array[0], array[1], array[2]), _ => throw new Exception($"Invalid number of Time Series Insights Id properties."), }; continue; } if (property.NameEquals("typeId")) { typeId = property.Value.GetString(); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("description")) { description = property.Value.GetString(); continue; } if (property.NameEquals("hierarchyIds")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (JsonElement item in property.Value.EnumerateArray()) { array.Add(item.GetString()); } hierarchyIds = array; continue; } if (property.NameEquals("instanceFields")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } Dictionary <string, object> dictionary = new Dictionary <string, object>(); foreach (JsonProperty property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetObject()); } instanceFields = dictionary; continue; } } return(new TimeSeriesInstance( timeSeriesId, typeId, name.Value, description.Value, Optional.ToList(hierarchyIds), Optional.ToDictionary(instanceFields))); }