Skip to content

Commit dfb6109

Browse files
authored
Query: Adds Computed Properties to Public Interface (#4994)
# [Query] Adds Computed Properties to Public Interface This change promotes Computed Property related interfaces to public. ## Type of change - [x] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [x] This change requires a documentation update
1 parent 536fe06 commit dfb6109

File tree

7 files changed

+96
-121
lines changed

7 files changed

+96
-121
lines changed

Microsoft.Azure.Cosmos/src/Fluent/Settings/ComputedPropertiesDefinition.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@ namespace Microsoft.Azure.Cosmos.Fluent
1010
/// Computed Properties fluent definition.
1111
/// </summary>
1212
/// <seealso cref="ComputedProperty"/>
13-
#if PREVIEW
14-
public
15-
#else
16-
internal
17-
#endif
18-
class ComputedPropertiesDefinition<T>
13+
public class ComputedPropertiesDefinition<T>
1914
{
2015
private readonly Collection<ComputedProperty> computedProperties = new Collection<ComputedProperty>();
2116
private readonly T parent;

Microsoft.Azure.Cosmos/src/Fluent/Settings/ContainerDefinition.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,7 @@ public IndexingPolicyDefinition<T> WithIndexingPolicy()
130130
/// <see cref="Cosmos.ComputedProperty"/> definition for Azure Cosmos container.
131131
/// </summary>
132132
/// <returns>An instance of <see cref="ComputedPropertiesDefinition{T}"/>.</returns>
133-
#if PREVIEW
134-
public
135-
#else
136-
internal
137-
#endif
138-
ComputedPropertiesDefinition<T> WithComputedProperties()
133+
public ComputedPropertiesDefinition<T> WithComputedProperties()
139134
{
140135
if (this.computedProperties != null)
141136
{

Microsoft.Azure.Cosmos/src/Resource/Settings/ComputedProperty.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,7 @@ namespace Microsoft.Azure.Cosmos
1111
/// <summary>
1212
/// Represents a computed property definition in a Cosmos DB collection.
1313
/// </summary>
14-
#if PREVIEW
15-
public
16-
#else
17-
internal
18-
#endif
19-
sealed class ComputedProperty
14+
public sealed class ComputedProperty
2015
{
2116
/// <summary>
2217
/// Gets or sets the name of the computed property.

Microsoft.Azure.Cosmos/src/Resource/Settings/ContainerProperties.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -330,12 +330,7 @@ public VectorEmbeddingPolicy VectorEmbeddingPolicy
330330
/// The collection containing <see cref="ComputedProperty"/> objects associated with the container.
331331
/// </value>
332332
[JsonIgnore]
333-
#if PREVIEW
334-
public
335-
#else
336-
internal
337-
#endif
338-
Collection<ComputedProperty> ComputedProperties
333+
public Collection<ComputedProperty> ComputedProperties
339334
{
340335
get
341336
{

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetPreviewSDKAPI.json

Lines changed: 0 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -257,59 +257,6 @@
257257
},
258258
"NestedTypes": {}
259259
},
260-
"Microsoft.Azure.Cosmos.ComputedProperty;System.Object;IsAbstract:False;IsSealed:True;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
261-
"Subclasses": {},
262-
"Members": {
263-
"System.String get_Name()[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
264-
"Type": "Method",
265-
"Attributes": [
266-
"CompilerGeneratedAttribute"
267-
],
268-
"MethodInfo": "System.String get_Name();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
269-
},
270-
"System.String get_Query()[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
271-
"Type": "Method",
272-
"Attributes": [
273-
"CompilerGeneratedAttribute"
274-
],
275-
"MethodInfo": "System.String get_Query();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
276-
},
277-
"System.String Name[Newtonsoft.Json.JsonPropertyAttribute(PropertyName = \"name\")]": {
278-
"Type": "Property",
279-
"Attributes": [
280-
"JsonPropertyAttribute"
281-
],
282-
"MethodInfo": "System.String Name;CanRead:True;CanWrite:True;System.String get_Name();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_Name(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
283-
},
284-
"System.String Query[Newtonsoft.Json.JsonPropertyAttribute(PropertyName = \"query\")]": {
285-
"Type": "Property",
286-
"Attributes": [
287-
"JsonPropertyAttribute"
288-
],
289-
"MethodInfo": "System.String Query;CanRead:True;CanWrite:True;System.String get_Query();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_Query(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
290-
},
291-
"Void .ctor()": {
292-
"Type": "Constructor",
293-
"Attributes": [],
294-
"MethodInfo": "[Void .ctor(), Void .ctor()]"
295-
},
296-
"Void set_Name(System.String)[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
297-
"Type": "Method",
298-
"Attributes": [
299-
"CompilerGeneratedAttribute"
300-
],
301-
"MethodInfo": "Void set_Name(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
302-
},
303-
"Void set_Query(System.String)[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
304-
"Type": "Method",
305-
"Attributes": [
306-
"CompilerGeneratedAttribute"
307-
],
308-
"MethodInfo": "Void set_Query(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
309-
}
310-
},
311-
"NestedTypes": {}
312-
},
313260
"Microsoft.Azure.Cosmos.Container;System.Object;IsAbstract:True;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
314261
"Subclasses": {},
315262
"Members": {
@@ -358,28 +305,11 @@
358305
"Attributes": [],
359306
"MethodInfo": "Microsoft.Azure.Cosmos.FullTextPolicy get_FullTextPolicy();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
360307
},
361-
"System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] ComputedProperties[Newtonsoft.Json.JsonIgnoreAttribute()]": {
362-
"Type": "Property",
363-
"Attributes": [
364-
"JsonIgnoreAttribute"
365-
],
366-
"MethodInfo": "System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] ComputedProperties;CanRead:True;CanWrite:True;System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty]);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
367-
},
368-
"System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties()": {
369-
"Type": "Method",
370-
"Attributes": [],
371-
"MethodInfo": "System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
372-
},
373308
"Void set_ChangeFeedPolicy(Microsoft.Azure.Cosmos.ChangeFeedPolicy)": {
374309
"Type": "Method",
375310
"Attributes": [],
376311
"MethodInfo": "Void set_ChangeFeedPolicy(Microsoft.Azure.Cosmos.ChangeFeedPolicy);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
377312
},
378-
"Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty])": {
379-
"Type": "Method",
380-
"Attributes": [],
381-
"MethodInfo": "Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty]);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
382-
},
383313
"Void set_FullTextPolicy(Microsoft.Azure.Cosmos.FullTextPolicy)": {
384314
"Type": "Method",
385315
"Attributes": [],
@@ -399,22 +329,6 @@
399329
},
400330
"NestedTypes": {}
401331
},
402-
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1;System.Object;IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:True;IsSerializable:False": {
403-
"Subclasses": {},
404-
"Members": {
405-
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperty(System.String, System.String)": {
406-
"Type": "Method",
407-
"Attributes": [],
408-
"MethodInfo": "Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperty(System.String, System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
409-
},
410-
"T Attach()": {
411-
"Type": "Method",
412-
"Attributes": [],
413-
"MethodInfo": "T Attach();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
414-
}
415-
},
416-
"NestedTypes": {}
417-
},
418332
"Microsoft.Azure.Cosmos.Fluent.ContainerBuilder;Microsoft.Azure.Cosmos.Fluent.ContainerDefinition`1[[Microsoft.Azure.Cosmos.Fluent.ContainerBuilder, ]];IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
419333
"Subclasses": {},
420334
"Members": {
@@ -431,17 +345,6 @@
431345
},
432346
"NestedTypes": {}
433347
},
434-
"Microsoft.Azure.Cosmos.Fluent.ContainerDefinition`1;System.Object;IsAbstract:True;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:True;IsSerializable:False": {
435-
"Subclasses": {},
436-
"Members": {
437-
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperties()": {
438-
"Type": "Method",
439-
"Attributes": [],
440-
"MethodInfo": "Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
441-
}
442-
},
443-
"NestedTypes": {}
444-
},
445348
"Microsoft.Azure.Cosmos.Fluent.CosmosClientBuilder;System.Object;IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
446349
"Subclasses": {},
447350
"Members": {

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/Contracts/DotNetSDKAPI.json

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1122,6 +1122,59 @@
11221122
},
11231123
"NestedTypes": {}
11241124
},
1125+
"Microsoft.Azure.Cosmos.ComputedProperty;System.Object;IsAbstract:False;IsSealed:True;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
1126+
"Subclasses": {},
1127+
"Members": {
1128+
"System.String get_Name()[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
1129+
"Type": "Method",
1130+
"Attributes": [
1131+
"CompilerGeneratedAttribute"
1132+
],
1133+
"MethodInfo": "System.String get_Name();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1134+
},
1135+
"System.String get_Query()[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
1136+
"Type": "Method",
1137+
"Attributes": [
1138+
"CompilerGeneratedAttribute"
1139+
],
1140+
"MethodInfo": "System.String get_Query();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1141+
},
1142+
"System.String Name[Newtonsoft.Json.JsonPropertyAttribute(PropertyName = \"name\")]": {
1143+
"Type": "Property",
1144+
"Attributes": [
1145+
"JsonPropertyAttribute"
1146+
],
1147+
"MethodInfo": "System.String Name;CanRead:True;CanWrite:True;System.String get_Name();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_Name(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1148+
},
1149+
"System.String Query[Newtonsoft.Json.JsonPropertyAttribute(PropertyName = \"query\")]": {
1150+
"Type": "Property",
1151+
"Attributes": [
1152+
"JsonPropertyAttribute"
1153+
],
1154+
"MethodInfo": "System.String Query;CanRead:True;CanWrite:True;System.String get_Query();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_Query(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1155+
},
1156+
"Void .ctor()": {
1157+
"Type": "Constructor",
1158+
"Attributes": [],
1159+
"MethodInfo": "[Void .ctor(), Void .ctor()]"
1160+
},
1161+
"Void set_Name(System.String)[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
1162+
"Type": "Method",
1163+
"Attributes": [
1164+
"CompilerGeneratedAttribute"
1165+
],
1166+
"MethodInfo": "Void set_Name(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1167+
},
1168+
"Void set_Query(System.String)[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]": {
1169+
"Type": "Method",
1170+
"Attributes": [
1171+
"CompilerGeneratedAttribute"
1172+
],
1173+
"MethodInfo": "Void set_Query(System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
1174+
}
1175+
},
1176+
"NestedTypes": {}
1177+
},
11251178
"Microsoft.Azure.Cosmos.ConflictProperties;System.Object;IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
11261179
"Subclasses": {},
11271180
"Members": {
@@ -2232,6 +2285,18 @@
22322285
],
22332286
"MethodInfo": "System.Collections.Generic.IReadOnlyList`1[System.String] PartitionKeyPaths;CanRead:True;CanWrite:True;System.Collections.Generic.IReadOnlyList`1[System.String] get_PartitionKeyPaths();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_PartitionKeyPaths(System.Collections.Generic.IReadOnlyList`1[System.String]);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
22342287
},
2288+
"System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] ComputedProperties[Newtonsoft.Json.JsonIgnoreAttribute()]": {
2289+
"Type": "Property",
2290+
"Attributes": [
2291+
"JsonIgnoreAttribute"
2292+
],
2293+
"MethodInfo": "System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] ComputedProperties;CanRead:True;CanWrite:True;System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty]);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
2294+
},
2295+
"System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties()": {
2296+
"Type": "Method",
2297+
"Attributes": [],
2298+
"MethodInfo": "System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty] get_ComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
2299+
},
22352300
"System.Nullable`1[Microsoft.Azure.Cosmos.PartitionKeyDefinitionVersion] get_PartitionKeyDefinitionVersion()": {
22362301
"Type": "Method",
22372302
"Attributes": [],
@@ -2381,6 +2446,11 @@
23812446
"Attributes": [],
23822447
"MethodInfo": "Void set_ClientEncryptionPolicy(Microsoft.Azure.Cosmos.ClientEncryptionPolicy);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
23832448
},
2449+
"Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty])": {
2450+
"Type": "Method",
2451+
"Attributes": [],
2452+
"MethodInfo": "Void set_ComputedProperties(System.Collections.ObjectModel.Collection`1[Microsoft.Azure.Cosmos.ComputedProperty]);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
2453+
},
23842454
"Void set_ConflictResolutionPolicy(Microsoft.Azure.Cosmos.ConflictResolutionPolicy)": {
23852455
"Type": "Method",
23862456
"Attributes": [],
@@ -5540,6 +5610,22 @@
55405610
},
55415611
"NestedTypes": {}
55425612
},
5613+
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1;System.Object;IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:True;IsSerializable:False": {
5614+
"Subclasses": {},
5615+
"Members": {
5616+
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperty(System.String, System.String)": {
5617+
"Type": "Method",
5618+
"Attributes": [],
5619+
"MethodInfo": "Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperty(System.String, System.String);IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
5620+
},
5621+
"T Attach()": {
5622+
"Type": "Method",
5623+
"Attributes": [],
5624+
"MethodInfo": "T Attach();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
5625+
}
5626+
},
5627+
"NestedTypes": {}
5628+
},
55435629
"Microsoft.Azure.Cosmos.Fluent.ConflictResolutionDefinition;System.Object;IsAbstract:False;IsSealed:False;IsInterface:False;IsEnum:False;IsClass:True;IsValueType:False;IsNested:False;IsGenericType:False;IsSerializable:False": {
55445630
"Subclasses": {},
55455631
"Members": {
@@ -5638,6 +5724,11 @@
56385724
"Attributes": [],
56395725
"MethodInfo": "Microsoft.Azure.Cosmos.ContainerProperties Build();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
56405726
},
5727+
"Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperties()": {
5728+
"Type": "Method",
5729+
"Attributes": [],
5730+
"MethodInfo": "Microsoft.Azure.Cosmos.Fluent.ComputedPropertiesDefinition`1[T] WithComputedProperties();IsAbstract:False;IsStatic:False;IsVirtual:False;IsGenericMethod:False;IsConstructor:False;IsFinal:False;"
5731+
},
56415732
"Microsoft.Azure.Cosmos.Fluent.IndexingPolicyDefinition`1[T] WithIndexingPolicy()": {
56425733
"Type": "Method",
56435734
"Attributes": [],

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.Tests/SettingsContractTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,7 @@ public void ContainerSettingsDefaults()
782782
"TimeToLivePropertyPath",
783783
"PartitionKeyPath",
784784
"PartitionKeyDefinitionVersion",
785+
"ComputedProperties",
785786
"ConflictResolutionPolicy",
786787
"ClientEncryptionPolicy",
787788
"PartitionKeyPaths",

0 commit comments

Comments
 (0)