-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
ExtensionDataSource.cs
137 lines (128 loc) · 6.3 KB
/
ExtensionDataSource.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Collections.Generic;
namespace Azure.ResourceManager.Monitor.Models
{
/// <summary>
/// Definition of which data will be collected from a separate VM extension that integrates with the Azure Monitor Agent.
/// Collected from either Windows and Linux machines, depending on which extension is defined.
/// </summary>
public partial class ExtensionDataSource
{
/// <summary>
/// Keeps track of any properties unknown to the library.
/// <para>
/// To assign an object to the value of this property use <see cref="BinaryData.FromObjectAsJson{T}(T, System.Text.Json.JsonSerializerOptions?)"/>.
/// </para>
/// <para>
/// To assign an already formatted json string to this property use <see cref="BinaryData.FromString(string)"/>.
/// </para>
/// <para>
/// Examples:
/// <list type="bullet">
/// <item>
/// <term>BinaryData.FromObjectAsJson("foo")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("\"foo\"")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromObjectAsJson(new { key = "value" })</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("{\"key\": \"value\"}")</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// </list>
/// </para>
/// </summary>
private IDictionary<string, BinaryData> _serializedAdditionalRawData;
/// <summary> Initializes a new instance of <see cref="ExtensionDataSource"/>. </summary>
/// <param name="extensionName"> The name of the VM extension. </param>
/// <exception cref="ArgumentNullException"> <paramref name="extensionName"/> is null. </exception>
public ExtensionDataSource(string extensionName)
{
Argument.AssertNotNull(extensionName, nameof(extensionName));
Streams = new ChangeTrackingList<ExtensionDataSourceStream>();
ExtensionName = extensionName;
InputDataSources = new ChangeTrackingList<string>();
}
/// <summary> Initializes a new instance of <see cref="ExtensionDataSource"/>. </summary>
/// <param name="streams">
/// List of streams that this data source will be sent to.
/// A stream indicates what schema will be used for this data and usually what table in Log Analytics the data will be sent to.
/// </param>
/// <param name="extensionName"> The name of the VM extension. </param>
/// <param name="extensionSettings"> The extension settings. The format is specific for particular extension. </param>
/// <param name="inputDataSources"> The list of data sources this extension needs data from. </param>
/// <param name="name">
/// A friendly name for the data source.
/// This name should be unique across all data sources (regardless of type) within the data collection rule.
/// </param>
/// <param name="serializedAdditionalRawData"> Keeps track of any properties unknown to the library. </param>
internal ExtensionDataSource(IList<ExtensionDataSourceStream> streams, string extensionName, BinaryData extensionSettings, IList<string> inputDataSources, string name, IDictionary<string, BinaryData> serializedAdditionalRawData)
{
Streams = streams;
ExtensionName = extensionName;
ExtensionSettings = extensionSettings;
InputDataSources = inputDataSources;
Name = name;
_serializedAdditionalRawData = serializedAdditionalRawData;
}
/// <summary> Initializes a new instance of <see cref="ExtensionDataSource"/> for deserialization. </summary>
internal ExtensionDataSource()
{
}
/// <summary>
/// List of streams that this data source will be sent to.
/// A stream indicates what schema will be used for this data and usually what table in Log Analytics the data will be sent to.
/// </summary>
public IList<ExtensionDataSourceStream> Streams { get; }
/// <summary> The name of the VM extension. </summary>
public string ExtensionName { get; set; }
/// <summary>
/// The extension settings. The format is specific for particular extension.
/// <para>
/// To assign an object to this property use <see cref="BinaryData.FromObjectAsJson{T}(T, System.Text.Json.JsonSerializerOptions?)"/>.
/// </para>
/// <para>
/// To assign an already formatted json string to this property use <see cref="BinaryData.FromString(string)"/>.
/// </para>
/// <para>
/// Examples:
/// <list type="bullet">
/// <item>
/// <term>BinaryData.FromObjectAsJson("foo")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("\"foo\"")</term>
/// <description>Creates a payload of "foo".</description>
/// </item>
/// <item>
/// <term>BinaryData.FromObjectAsJson(new { key = "value" })</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// <item>
/// <term>BinaryData.FromString("{\"key\": \"value\"}")</term>
/// <description>Creates a payload of { "key": "value" }.</description>
/// </item>
/// </list>
/// </para>
/// </summary>
public BinaryData ExtensionSettings { get; set; }
/// <summary> The list of data sources this extension needs data from. </summary>
public IList<string> InputDataSources { get; }
/// <summary>
/// A friendly name for the data source.
/// This name should be unique across all data sources (regardless of type) within the data collection rule.
/// </summary>
public string Name { get; set; }
}
}