Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MetricsAdvisor] Overwriting patch serialization methods to support sending null (3) #22464

Merged
merged 4 commits into from
Jul 8, 2021
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Collections.Generic;
using System.Text.Json;
using Azure.Core;

namespace Azure.AI.MetricsAdvisor.Models
{
/// <summary> The AnomalyAlertingConfigurationPatch. </summary>
internal partial class AnomalyAlertingConfigurationPatch
{
/// <summary> hook unique ids. </summary>
public IList<Guid> HookIds { get; internal set; }

/// <summary> Anomaly alerting configurations. </summary>
public IList<MetricAlertConfiguration> MetricAlertingConfigurations { get; internal set; }

/// <summary> dimensions used to split alert. </summary>
public IList<string> SplitAlertByDimensions { get; internal set; }

// Full qualification must be used so CodeGen skips the generation of this method.
// See: https://github.com/Azure/autorest.csharp/issues/793
void global::Azure.Core.IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
{
writer.WriteStartObject();
writer.WriteNullStringValue("name", Name);
writer.WriteNullStringValue("description", Description);
if (Optional.IsDefined(CrossMetricsOperator))
{
writer.WritePropertyName("crossMetricsOperator");
writer.WriteStringValue(CrossMetricsOperator.Value.ToString());
}
Comment on lines +30 to +34
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sending null on this one because the service does not support this scenario. They only accept "send value" / "not send" for this property.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plop. so weird

if (Optional.IsCollectionDefined(SplitAlertByDimensions))
{
writer.WritePropertyName("splitAlertByDimensions");
writer.WriteStartArray();
foreach (var item in SplitAlertByDimensions)
{
writer.WriteStringValue(item);
}
writer.WriteEndArray();
}
if (Optional.IsCollectionDefined(HookIds))
{
writer.WritePropertyName("hookIds");
writer.WriteStartArray();
foreach (var item in HookIds)
{
writer.WriteStringValue(item);
}
writer.WriteEndArray();
}
if (Optional.IsCollectionDefined(MetricAlertingConfigurations))
{
writer.WritePropertyName("metricAlertingConfigurations");
writer.WriteStartArray();
foreach (var item in MetricAlertingConfigurations)
{
writer.WriteObjectValue(item);
}
writer.WriteEndArray();
}
writer.WriteEndObject();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Text.Json;
using Azure.Core;

namespace Azure.AI.MetricsAdvisor.Models
{
internal partial class EmailHookInfoPatch : IUtf8JsonSerializable
{
// Full qualification must be used so CodeGen skips the generation of this method.
// See: https://github.com/Azure/autorest.csharp/issues/793
void global::Azure.Core.IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
{
writer.WriteStartObject();
writer.WriteNullObjectValue("hookParameter", HookParameter);
SerializeCommonProperties(writer);
writer.WriteEndObject();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Collections.Generic;
using System.Text.Json;
using Azure.Core;

namespace Azure.AI.MetricsAdvisor.Models
{
/// <summary> The HookInfoPatch. </summary>
internal partial class HookInfoPatch
{
/// <summary> hook administrators. </summary>
public IList<string> Admins { get; internal set; }

protected void SerializeCommonProperties(Utf8JsonWriter writer)
{
writer.WritePropertyName("hookType");
writer.WriteStringValue(HookType.ToString());
writer.WriteNullStringValue("hookName", HookName);
writer.WriteNullStringValue("description", Description);
writer.WriteNullStringValue("externalLink", ExternalLink);
if (Optional.IsCollectionDefined(Admins))
{
writer.WritePropertyName("admins");
writer.WriteStartArray();
foreach (var item in Admins)
{
writer.WriteStringValue(item);
}
writer.WriteEndArray();
}
}

// Full qualification must be used so CodeGen skips the generation of this method.
// See: https://github.com/Azure/autorest.csharp/issues/793
void global::Azure.Core.IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
{
writer.WriteStartObject();
SerializeCommonProperties(writer);
writer.WriteEndObject();
}
}
}
Loading