Skip to content

Commit 37f9c78

Browse files
This release adds support for ProtectedQuery results to be delivered to more than one collaboration member via the new distribute output configuration in StartProtectedQuery.
1 parent b1bae5c commit 37f9c78

18 files changed

+820
-9
lines changed

generator/ServiceModels/cleanrooms/cleanrooms-2022-02-17.api.json

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,7 +1580,6 @@
15801580
"AllowedColumnList":{
15811581
"type":"list",
15821582
"member":{"shape":"ColumnName"},
1583-
"max":225,
15841583
"min":1
15851584
},
15861585
"AllowedResultReceivers":{
@@ -6038,6 +6037,33 @@
60386037
"computeConfiguration":{"shape":"ComputeConfiguration"}
60396038
}
60406039
},
6040+
"ProtectedQueryDistributeOutput":{
6041+
"type":"structure",
6042+
"members":{
6043+
"s3":{"shape":"ProtectedQueryS3Output"},
6044+
"memberList":{"shape":"ProtectedQueryMemberOutputList"}
6045+
}
6046+
},
6047+
"ProtectedQueryDistributeOutputConfiguration":{
6048+
"type":"structure",
6049+
"required":["locations"],
6050+
"members":{
6051+
"locations":{"shape":"ProtectedQueryDistributeOutputConfigurationLocationsList"}
6052+
}
6053+
},
6054+
"ProtectedQueryDistributeOutputConfigurationLocation":{
6055+
"type":"structure",
6056+
"members":{
6057+
"s3":{"shape":"ProtectedQueryS3OutputConfiguration"},
6058+
"member":{"shape":"ProtectedQueryMemberOutputConfiguration"}
6059+
},
6060+
"union":true
6061+
},
6062+
"ProtectedQueryDistributeOutputConfigurationLocationsList":{
6063+
"type":"list",
6064+
"member":{"shape":"ProtectedQueryDistributeOutputConfigurationLocation"},
6065+
"min":1
6066+
},
60416067
"ProtectedQueryError":{
60426068
"type":"structure",
60436069
"required":[
@@ -6070,15 +6096,17 @@
60706096
"type":"structure",
60716097
"members":{
60726098
"s3":{"shape":"ProtectedQueryS3Output"},
6073-
"memberList":{"shape":"ProtectedQueryMemberOutputList"}
6099+
"memberList":{"shape":"ProtectedQueryMemberOutputList"},
6100+
"distribute":{"shape":"ProtectedQueryDistributeOutput"}
60746101
},
60756102
"union":true
60766103
},
60776104
"ProtectedQueryOutputConfiguration":{
60786105
"type":"structure",
60796106
"members":{
60806107
"s3":{"shape":"ProtectedQueryS3OutputConfiguration"},
6081-
"member":{"shape":"ProtectedQueryMemberOutputConfiguration"}
6108+
"member":{"shape":"ProtectedQueryMemberOutputConfiguration"},
6109+
"distribute":{"shape":"ProtectedQueryDistributeOutputConfiguration"}
60826110
},
60836111
"union":true
60846112
},

generator/ServiceModels/cleanrooms/cleanrooms-2022-02-17.docs.json

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3033,6 +3033,30 @@
30333033
"UpdateProtectedQueryOutput$protectedQuery": "<p>The protected query output.</p>"
30343034
}
30353035
},
3036+
"ProtectedQueryDistributeOutput": {
3037+
"base": "<p> Contains the output information for a protected query with a distribute output configuration.</p> <p> This output type allows query results to be distributed to multiple receivers, including S3 and collaboration members. It is only available for queries using the Spark analytics engine.</p>",
3038+
"refs": {
3039+
"ProtectedQueryOutput$distribute": "<p>Contains output information for protected queries that use a <code>distribute</code> output type. This output type lets you send query results to multiple locations - either to S3 or to collaboration members. </p> <note> <p> You can only use the <code>distribute</code> output type with the Spark analytics engine. </p> </note>"
3040+
}
3041+
},
3042+
"ProtectedQueryDistributeOutputConfiguration": {
3043+
"base": "<p> Specifies the configuration for distributing protected query results to multiple receivers, including S3 and collaboration members.</p>",
3044+
"refs": {
3045+
"ProtectedQueryOutputConfiguration$distribute": "<p> Required configuration for a protected query with a <code>distribute</code> output type.</p>"
3046+
}
3047+
},
3048+
"ProtectedQueryDistributeOutputConfigurationLocation": {
3049+
"base": "<p> Specifies where you'll distribute the results of your protected query. You must configure either an S3 destination or a collaboration member destination.</p>",
3050+
"refs": {
3051+
"ProtectedQueryDistributeOutputConfigurationLocationsList$member": null
3052+
}
3053+
},
3054+
"ProtectedQueryDistributeOutputConfigurationLocationsList": {
3055+
"base": null,
3056+
"refs": {
3057+
"ProtectedQueryDistributeOutputConfiguration$locations": "<p> A list of locations where you want to distribute the protected query results. Each location must specify either an S3 destination or a collaboration member destination.</p> <important> <p>You can't specify more than one S3 location.</p> <p>You can't specify the query runner's account as a member location.</p> <p>You must include either an S3 or member output configuration for each location, but not both.</p> </important>"
3058+
}
3059+
},
30363060
"ProtectedQueryError": {
30373061
"base": "<p>Details of errors thrown by the protected query.</p>",
30383062
"refs": {
@@ -3049,12 +3073,14 @@
30493073
"ProtectedQueryMemberOutputConfiguration": {
30503074
"base": "<p> Contains configuration details for the protected query member output.</p>",
30513075
"refs": {
3076+
"ProtectedQueryDistributeOutputConfigurationLocation$member": null,
30523077
"ProtectedQueryOutputConfiguration$member": "<p> Required configuration for a protected query with a <code>member</code> output type.</p>"
30533078
}
30543079
},
30553080
"ProtectedQueryMemberOutputList": {
30563081
"base": null,
30573082
"refs": {
3083+
"ProtectedQueryDistributeOutput$memberList": "<p> Contains the output results for each member location specified in the distribute output configuration. Each entry provides details about the result distribution to a specific collaboration member. </p>",
30583084
"ProtectedQueryOutput$memberList": "<p>The list of member Amazon Web Services account(s) that received the results of the query. </p>"
30593085
}
30603086
},
@@ -3086,13 +3112,15 @@
30863112
"ProtectedQueryS3Output": {
30873113
"base": "<p>Contains output information for protected queries with an S3 output type.</p>",
30883114
"refs": {
3089-
"ProtectedQueryOutput$s3": "<p>If present, the output for a protected query with an `S3` output type.</p>"
3115+
"ProtectedQueryDistributeOutput$s3": null,
3116+
"ProtectedQueryOutput$s3": "<p>If present, the output for a protected query with an <code>S3</code> output type.</p>"
30903117
}
30913118
},
30923119
"ProtectedQueryS3OutputConfiguration": {
30933120
"base": "<p>Contains the configuration to write the query results to S3.</p>",
30943121
"refs": {
30953122
"MembershipProtectedQueryOutputConfiguration$s3": null,
3123+
"ProtectedQueryDistributeOutputConfigurationLocation$s3": null,
30963124
"ProtectedQueryOutputConfiguration$s3": "<p>Required configuration for a protected query with an <code>s3</code> output type.</p>"
30973125
}
30983126
},

generator/ServiceModels/cleanrooms/cleanrooms-2022-02-17.normal.json

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1685,7 +1685,6 @@
16851685
"AllowedColumnList":{
16861686
"type":"list",
16871687
"member":{"shape":"ColumnName"},
1688-
"max":225,
16891688
"min":1
16901689
},
16911690
"AllowedResultReceivers":{
@@ -8594,6 +8593,42 @@
85948593
},
85958594
"documentation":"<p>The parameters for an Clean Rooms protected query.</p>"
85968595
},
8596+
"ProtectedQueryDistributeOutput":{
8597+
"type":"structure",
8598+
"members":{
8599+
"s3":{"shape":"ProtectedQueryS3Output"},
8600+
"memberList":{
8601+
"shape":"ProtectedQueryMemberOutputList",
8602+
"documentation":"<p> Contains the output results for each member location specified in the distribute output configuration. Each entry provides details about the result distribution to a specific collaboration member. </p>"
8603+
}
8604+
},
8605+
"documentation":"<p> Contains the output information for a protected query with a distribute output configuration.</p> <p> This output type allows query results to be distributed to multiple receivers, including S3 and collaboration members. It is only available for queries using the Spark analytics engine.</p>"
8606+
},
8607+
"ProtectedQueryDistributeOutputConfiguration":{
8608+
"type":"structure",
8609+
"required":["locations"],
8610+
"members":{
8611+
"locations":{
8612+
"shape":"ProtectedQueryDistributeOutputConfigurationLocationsList",
8613+
"documentation":"<p> A list of locations where you want to distribute the protected query results. Each location must specify either an S3 destination or a collaboration member destination.</p> <important> <p>You can't specify more than one S3 location.</p> <p>You can't specify the query runner's account as a member location.</p> <p>You must include either an S3 or member output configuration for each location, but not both.</p> </important>"
8614+
}
8615+
},
8616+
"documentation":"<p> Specifies the configuration for distributing protected query results to multiple receivers, including S3 and collaboration members.</p>"
8617+
},
8618+
"ProtectedQueryDistributeOutputConfigurationLocation":{
8619+
"type":"structure",
8620+
"members":{
8621+
"s3":{"shape":"ProtectedQueryS3OutputConfiguration"},
8622+
"member":{"shape":"ProtectedQueryMemberOutputConfiguration"}
8623+
},
8624+
"documentation":"<p> Specifies where you'll distribute the results of your protected query. You must configure either an S3 destination or a collaboration member destination.</p>",
8625+
"union":true
8626+
},
8627+
"ProtectedQueryDistributeOutputConfigurationLocationsList":{
8628+
"type":"list",
8629+
"member":{"shape":"ProtectedQueryDistributeOutputConfigurationLocation"},
8630+
"min":1
8631+
},
85978632
"ProtectedQueryError":{
85988633
"type":"structure",
85998634
"required":[
@@ -8638,11 +8673,15 @@
86388673
"members":{
86398674
"s3":{
86408675
"shape":"ProtectedQueryS3Output",
8641-
"documentation":"<p>If present, the output for a protected query with an `S3` output type.</p>"
8676+
"documentation":"<p>If present, the output for a protected query with an <code>S3</code> output type.</p>"
86428677
},
86438678
"memberList":{
86448679
"shape":"ProtectedQueryMemberOutputList",
86458680
"documentation":"<p>The list of member Amazon Web Services account(s) that received the results of the query. </p>"
8681+
},
8682+
"distribute":{
8683+
"shape":"ProtectedQueryDistributeOutput",
8684+
"documentation":"<p>Contains output information for protected queries that use a <code>distribute</code> output type. This output type lets you send query results to multiple locations - either to S3 or to collaboration members. </p> <note> <p> You can only use the <code>distribute</code> output type with the Spark analytics engine. </p> </note>"
86468685
}
86478686
},
86488687
"documentation":"<p>Contains details about the protected query output.</p>",
@@ -8658,6 +8697,10 @@
86588697
"member":{
86598698
"shape":"ProtectedQueryMemberOutputConfiguration",
86608699
"documentation":"<p> Required configuration for a protected query with a <code>member</code> output type.</p>"
8700+
},
8701+
"distribute":{
8702+
"shape":"ProtectedQueryDistributeOutputConfiguration",
8703+
"documentation":"<p> Required configuration for a protected query with a <code>distribute</code> output type.</p>"
86618704
}
86628705
},
86638706
"documentation":"<p>Contains configuration details for protected query output.</p>",

sdk/src/Services/CleanRooms/Generated/Model/ConfiguredTable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public partial class ConfiguredTable
5252
/// The columns within the underlying Glue table that can be utilized within collaborations.
5353
/// </para>
5454
/// </summary>
55-
[AWSProperty(Required=true, Min=1, Max=225)]
55+
[AWSProperty(Required=true, Min=1)]
5656
public List<string> AllowedColumns
5757
{
5858
get { return this._allowedColumns; }

sdk/src/Services/CleanRooms/Generated/Model/CreateConfiguredTableRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public partial class CreateConfiguredTableRequest : AmazonCleanRoomsRequest
5050
/// rules.
5151
/// </para>
5252
/// </summary>
53-
[AWSProperty(Required=true, Min=1, Max=225)]
53+
[AWSProperty(Required=true, Min=1)]
5454
public List<string> AllowedColumns
5555
{
5656
get { return this._allowedColumns; }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the cleanrooms-2022-02-17.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Globalization;
22+
using System.IO;
23+
using System.Text;
24+
using System.Xml.Serialization;
25+
26+
using Amazon.CleanRooms.Model;
27+
using Amazon.Runtime;
28+
using Amazon.Runtime.Internal;
29+
using Amazon.Runtime.Internal.Transform;
30+
using Amazon.Runtime.Internal.Util;
31+
#pragma warning disable CS0612,CS0618
32+
namespace Amazon.CleanRooms.Model.Internal.MarshallTransformations
33+
{
34+
/// <summary>
35+
/// ProtectedQueryDistributeOutputConfigurationLocation Marshaller
36+
/// </summary>
37+
public class ProtectedQueryDistributeOutputConfigurationLocationMarshaller : IRequestMarshaller<ProtectedQueryDistributeOutputConfigurationLocation, JsonMarshallerContext>
38+
{
39+
/// <summary>
40+
/// Unmarshaller the response from the service to the response class.
41+
/// </summary>
42+
/// <param name="requestObject"></param>
43+
/// <param name="context"></param>
44+
/// <returns></returns>
45+
public void Marshall(ProtectedQueryDistributeOutputConfigurationLocation requestObject, JsonMarshallerContext context)
46+
{
47+
if(requestObject == null)
48+
return;
49+
if(requestObject.IsSetMember())
50+
{
51+
context.Writer.WritePropertyName("member");
52+
context.Writer.WriteStartObject();
53+
54+
var marshaller = ProtectedQueryMemberOutputConfigurationMarshaller.Instance;
55+
marshaller.Marshall(requestObject.Member, context);
56+
57+
context.Writer.WriteEndObject();
58+
}
59+
60+
if(requestObject.IsSetS3())
61+
{
62+
context.Writer.WritePropertyName("s3");
63+
context.Writer.WriteStartObject();
64+
65+
var marshaller = ProtectedQueryS3OutputConfigurationMarshaller.Instance;
66+
marshaller.Marshall(requestObject.S3, context);
67+
68+
context.Writer.WriteEndObject();
69+
}
70+
71+
}
72+
73+
/// <summary>
74+
/// Singleton Marshaller.
75+
/// </summary>
76+
public readonly static ProtectedQueryDistributeOutputConfigurationLocationMarshaller Instance = new ProtectedQueryDistributeOutputConfigurationLocationMarshaller();
77+
78+
}
79+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the cleanrooms-2022-02-17.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Globalization;
22+
using System.IO;
23+
using System.Net;
24+
using System.Text;
25+
using System.Xml.Serialization;
26+
27+
using Amazon.CleanRooms.Model;
28+
using Amazon.Runtime;
29+
using Amazon.Runtime.Internal;
30+
using Amazon.Runtime.Internal.Transform;
31+
using Amazon.Runtime.Internal.Util;
32+
using System.Text.Json;
33+
#pragma warning disable CS0612,CS0618
34+
namespace Amazon.CleanRooms.Model.Internal.MarshallTransformations
35+
{
36+
/// <summary>
37+
/// Response Unmarshaller for ProtectedQueryDistributeOutputConfigurationLocation Object
38+
/// </summary>
39+
public class ProtectedQueryDistributeOutputConfigurationLocationUnmarshaller : IJsonUnmarshaller<ProtectedQueryDistributeOutputConfigurationLocation, JsonUnmarshallerContext>
40+
{
41+
/// <summary>
42+
/// Unmarshaller the response from the service to the response class.
43+
/// </summary>
44+
/// <param name="context"></param>
45+
/// <param name="reader"></param>
46+
/// <returns>The unmarshalled object</returns>
47+
public ProtectedQueryDistributeOutputConfigurationLocation Unmarshall(JsonUnmarshallerContext context, ref StreamingUtf8JsonReader reader)
48+
{
49+
ProtectedQueryDistributeOutputConfigurationLocation unmarshalledObject = new ProtectedQueryDistributeOutputConfigurationLocation();
50+
if (context.IsEmptyResponse)
51+
return null;
52+
context.Read(ref reader);
53+
if (context.CurrentTokenType == JsonTokenType.Null)
54+
return null;
55+
56+
int targetDepth = context.CurrentDepth;
57+
while (context.ReadAtDepth(targetDepth, ref reader))
58+
{
59+
if (context.TestExpression("member", targetDepth))
60+
{
61+
var unmarshaller = ProtectedQueryMemberOutputConfigurationUnmarshaller.Instance;
62+
unmarshalledObject.Member = unmarshaller.Unmarshall(context, ref reader);
63+
continue;
64+
}
65+
if (context.TestExpression("s3", targetDepth))
66+
{
67+
var unmarshaller = ProtectedQueryS3OutputConfigurationUnmarshaller.Instance;
68+
unmarshalledObject.S3 = unmarshaller.Unmarshall(context, ref reader);
69+
continue;
70+
}
71+
}
72+
return unmarshalledObject;
73+
}
74+
75+
76+
private static ProtectedQueryDistributeOutputConfigurationLocationUnmarshaller _instance = new ProtectedQueryDistributeOutputConfigurationLocationUnmarshaller();
77+
78+
/// <summary>
79+
/// Gets the singleton.
80+
/// </summary>
81+
public static ProtectedQueryDistributeOutputConfigurationLocationUnmarshaller Instance
82+
{
83+
get
84+
{
85+
return _instance;
86+
}
87+
}
88+
}
89+
}

0 commit comments

Comments
 (0)