-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
AtlasClassificationDef.cs
185 lines (178 loc) · 8.89 KB
/
AtlasClassificationDef.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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Collections.Generic;
using Azure.Core;
namespace Azure.Analytics.Purview.DataMap
{
/// <summary> class that captures details of a classification-type. </summary>
public partial class AtlasClassificationDef
{
/// <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="AtlasClassificationDef"/>. </summary>
public AtlasClassificationDef()
{
Options = new ChangeTrackingDictionary<string, string>();
AttributeDefs = new ChangeTrackingList<AtlasAttributeDef>();
EntityTypes = new ChangeTrackingList<string>();
SubTypes = new ChangeTrackingList<string>();
SuperTypes = new ChangeTrackingList<string>();
}
/// <summary> Initializes a new instance of <see cref="AtlasClassificationDef"/>. </summary>
/// <param name="category"> The enum of type category. </param>
/// <param name="createTime"> The created time of the record. </param>
/// <param name="createdBy"> The user who created the record. </param>
/// <param name="dateFormatter"> The date format. </param>
/// <param name="description"> The description of the type definition. </param>
/// <param name="guid"> The GUID of the type definition. </param>
/// <param name="name"> The name of the type definition. </param>
/// <param name="options"> The options for the type definition. </param>
/// <param name="serviceType"> The service type. </param>
/// <param name="typeVersion"> The version of the type. </param>
/// <param name="updateTime"> The update time of the record. </param>
/// <param name="updatedBy"> The user who updated the record. </param>
/// <param name="version"> The version of the record. </param>
/// <param name="lastModifiedTS"> ETag for concurrency control. </param>
/// <param name="attributeDefs"> An array of attribute definitions. </param>
/// <param name="entityTypes">
/// Specifying a list of entityType names in the classificationDef, ensures that
/// classifications can
/// only be applied to those entityTypes.
///
/// Any subtypes of the entity types inherit the restriction.
///
/// Any classificationDef subtypes inherit the parents entityTypes restrictions.
///
/// Any classificationDef subtypes can further restrict the parents entityTypes
/// restrictions by specifying a subset of the entityTypes.
///
/// An empty entityTypes list when there are no parent restrictions means there are no
/// restrictions.
///
/// An empty entityTypes list when there are parent
/// restrictions means that the subtype picks up the parents
/// restrictions.
///
/// If a list of entityTypes are supplied, where one inherits
/// from another, this will be rejected. This should encourage cleaner
/// classificationsDefs.
///
/// </param>
/// <param name="subTypes"> An array of sub types. </param>
/// <param name="superTypes"> An array of super types. </param>
/// <param name="serializedAdditionalRawData"> Keeps track of any properties unknown to the library. </param>
internal AtlasClassificationDef(TypeCategory? category, long? createTime, string createdBy, AtlasDateFormat dateFormatter, string description, string guid, string name, IDictionary<string, string> options, string serviceType, string typeVersion, long? updateTime, string updatedBy, long? version, string lastModifiedTS, IList<AtlasAttributeDef> attributeDefs, IList<string> entityTypes, IList<string> subTypes, IList<string> superTypes, IDictionary<string, BinaryData> serializedAdditionalRawData)
{
Category = category;
CreateTime = createTime;
CreatedBy = createdBy;
DateFormatter = dateFormatter;
Description = description;
Guid = guid;
Name = name;
Options = options;
ServiceType = serviceType;
TypeVersion = typeVersion;
UpdateTime = updateTime;
UpdatedBy = updatedBy;
Version = version;
LastModifiedTS = lastModifiedTS;
AttributeDefs = attributeDefs;
EntityTypes = entityTypes;
SubTypes = subTypes;
SuperTypes = superTypes;
_serializedAdditionalRawData = serializedAdditionalRawData;
}
/// <summary> The enum of type category. </summary>
public TypeCategory? Category { get; set; }
/// <summary> The created time of the record. </summary>
public long? CreateTime { get; set; }
/// <summary> The user who created the record. </summary>
public string CreatedBy { get; set; }
/// <summary> The date format. </summary>
public AtlasDateFormat DateFormatter { get; set; }
/// <summary> The description of the type definition. </summary>
public string Description { get; set; }
/// <summary> The GUID of the type definition. </summary>
public string Guid { get; set; }
/// <summary> The name of the type definition. </summary>
public string Name { get; set; }
/// <summary> The options for the type definition. </summary>
public IDictionary<string, string> Options { get; }
/// <summary> The service type. </summary>
public string ServiceType { get; set; }
/// <summary> The version of the type. </summary>
public string TypeVersion { get; set; }
/// <summary> The update time of the record. </summary>
public long? UpdateTime { get; set; }
/// <summary> The user who updated the record. </summary>
public string UpdatedBy { get; set; }
/// <summary> The version of the record. </summary>
public long? Version { get; set; }
/// <summary> ETag for concurrency control. </summary>
public string LastModifiedTS { get; set; }
/// <summary> An array of attribute definitions. </summary>
public IList<AtlasAttributeDef> AttributeDefs { get; }
/// <summary>
/// Specifying a list of entityType names in the classificationDef, ensures that
/// classifications can
/// only be applied to those entityTypes.
///
/// Any subtypes of the entity types inherit the restriction.
///
/// Any classificationDef subtypes inherit the parents entityTypes restrictions.
///
/// Any classificationDef subtypes can further restrict the parents entityTypes
/// restrictions by specifying a subset of the entityTypes.
///
/// An empty entityTypes list when there are no parent restrictions means there are no
/// restrictions.
///
/// An empty entityTypes list when there are parent
/// restrictions means that the subtype picks up the parents
/// restrictions.
///
/// If a list of entityTypes are supplied, where one inherits
/// from another, this will be rejected. This should encourage cleaner
/// classificationsDefs.
///
/// </summary>
public IList<string> EntityTypes { get; }
/// <summary> An array of sub types. </summary>
public IList<string> SubTypes { get; }
/// <summary> An array of super types. </summary>
public IList<string> SuperTypes { get; }
}
}