Skip to content

Commit fc50cd2

Browse files
Add support for anonymous user access for Q Business applications
1 parent ff42eb9 commit fc50cd2

14 files changed

+847
-6
lines changed

generator/ServiceModels/qbusiness/qbusiness-2023-11-27.api.json

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,24 @@
145145
{"shape":"AccessDeniedException"}
146146
]
147147
},
148+
"CreateAnonymousWebExperienceUrl":{
149+
"name":"CreateAnonymousWebExperienceUrl",
150+
"http":{
151+
"method":"POST",
152+
"requestUri":"/applications/{applicationId}/experiences/{webExperienceId}/anonymous-url",
153+
"responseCode":200
154+
},
155+
"input":{"shape":"CreateAnonymousWebExperienceUrlRequest"},
156+
"output":{"shape":"CreateAnonymousWebExperienceUrlResponse"},
157+
"errors":[
158+
{"shape":"InternalServerException"},
159+
{"shape":"ResourceNotFoundException"},
160+
{"shape":"ThrottlingException"},
161+
{"shape":"ValidationException"},
162+
{"shape":"AccessDeniedException"},
163+
{"shape":"ServiceQuotaExceededException"}
164+
]
165+
},
148166
"CreateApplication":{
149167
"name":"CreateApplication",
150168
"http":{
@@ -2379,6 +2397,32 @@
23792397
},
23802398
"union":true
23812399
},
2400+
"CreateAnonymousWebExperienceUrlRequest":{
2401+
"type":"structure",
2402+
"required":[
2403+
"applicationId",
2404+
"webExperienceId"
2405+
],
2406+
"members":{
2407+
"applicationId":{
2408+
"shape":"ApplicationId",
2409+
"location":"uri",
2410+
"locationName":"applicationId"
2411+
},
2412+
"webExperienceId":{
2413+
"shape":"WebExperienceId",
2414+
"location":"uri",
2415+
"locationName":"webExperienceId"
2416+
},
2417+
"sessionDurationInMinutes":{"shape":"SessionDurationInMinutes"}
2418+
}
2419+
},
2420+
"CreateAnonymousWebExperienceUrlResponse":{
2421+
"type":"structure",
2422+
"members":{
2423+
"anonymousUrl":{"shape":"Url"}
2424+
}
2425+
},
23822426
"CreateApplicationRequest":{
23832427
"type":"structure",
23842428
"required":["displayName"],
@@ -4104,7 +4148,8 @@
41044148
"AWS_IAM_IDP_SAML",
41054149
"AWS_IAM_IDP_OIDC",
41064150
"AWS_IAM_IDC",
4107-
"AWS_QUICKSIGHT_IDP"
4151+
"AWS_QUICKSIGHT_IDP",
4152+
"ANONYMOUS"
41084153
]
41094154
},
41104155
"ImageExtractionConfiguration":{
@@ -5778,6 +5823,12 @@
57785823
},
57795824
"exception":true
57805825
},
5826+
"SessionDurationInMinutes":{
5827+
"type":"integer",
5828+
"box":true,
5829+
"max":60,
5830+
"min":15
5831+
},
57815832
"SnippetExcerpt":{
57825833
"type":"structure",
57835834
"members":{

generator/ServiceModels/qbusiness/qbusiness-2023-11-27.docs.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"Chat": "<p>Starts or continues a streaming Amazon Q Business conversation.</p>",
1010
"ChatSync": "<p>Starts or continues a non-streaming Amazon Q Business conversation.</p>",
1111
"CheckDocumentAccess": "<p>Verifies if a user has access permissions for a specified document and returns the actual ACL attached to the document. Resolves user access on the document via user aliases and groups when verifying user access.</p>",
12+
"CreateAnonymousWebExperienceUrl": "<p>Creates a unique URL for anonymous Amazon Q Business web experience. This URL can only be used once and must be used within 5 minutes after it's generated.</p>",
1213
"CreateApplication": "<p>Creates an Amazon Q Business application.</p> <note> <p>There are new tiers for Amazon Q Business. Not all features in Amazon Q Business Pro are also available in Amazon Q Business Lite. For information on what's included in Amazon Q Business Lite and what's included in Amazon Q Business Pro, see <a href=\"https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#user-sub-tiers\">Amazon Q Business tiers</a>. You must use the Amazon Q Business console to assign subscription tiers to users. </p> <p>An Amazon Q Apps service linked role will be created if it's absent in the Amazon Web Services account when <code>QAppsConfiguration</code> is enabled in the request. For more information, see <a href=\"https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/using-service-linked-roles-qapps.html\"> Using service-linked roles for Q Apps</a>.</p> <p>When you create an application, Amazon Q Business may securely transmit data for processing from your selected Amazon Web Services region, but within your geography. For more information, see <a href=\"https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/cross-region-inference.html\">Cross region inference in Amazon Q Business</a>.</p> </note>",
1314
"CreateDataAccessor": "<p>Creates a new data accessor for an ISV to access data from a Amazon Q Business application. The data accessor is an entity that represents the ISV's access to the Amazon Q Business application's data. It includes the IAM role ARN for the ISV, a friendly name, and a set of action configurations that define the specific actions the ISV is allowed to perform and any associated data filters. When the data accessor is created, an IAM Identity Center application is also created to manage the ISV's identity and authentication for accessing the Amazon Q Business application.</p>",
1415
"CreateDataSource": "<p>Creates a data source connector for an Amazon Q Business application.</p> <p> <code>CreateDataSource</code> is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.</p>",
@@ -281,6 +282,7 @@
281282
"ChatInput$applicationId": "<p>The identifier of the Amazon Q Business application linked to a streaming Amazon Q Business conversation.</p>",
282283
"ChatSyncInput$applicationId": "<p>The identifier of the Amazon Q Business application linked to the Amazon Q Business conversation.</p>",
283284
"CheckDocumentAccessRequest$applicationId": "<p>The unique identifier of the application. This is required to identify the specific Amazon Q Business application context for the document access check.</p>",
285+
"CreateAnonymousWebExperienceUrlRequest$applicationId": "<p>The identifier of the Amazon Q Business application environment attached to the web experience.</p>",
284286
"CreateApplicationResponse$applicationId": "<p>The identifier of the Amazon Q Business application.</p>",
285287
"CreateDataAccessorRequest$applicationId": "<p>The unique identifier of the Amazon Q Business application.</p>",
286288
"CreateDataSourceRequest$applicationId": "<p> The identifier of the Amazon Q Business application the data source will be attached to.</p>",
@@ -905,6 +907,16 @@
905907
"AttachmentInput$copyFrom": "<p>A reference to an existing attachment.</p>"
906908
}
907909
},
910+
"CreateAnonymousWebExperienceUrlRequest": {
911+
"base": null,
912+
"refs": {
913+
}
914+
},
915+
"CreateAnonymousWebExperienceUrlResponse": {
916+
"base": null,
917+
"refs": {
918+
}
919+
},
908920
"CreateApplicationRequest": {
909921
"base": null,
910922
"refs": {
@@ -1864,7 +1876,7 @@
18641876
}
18651877
},
18661878
"HallucinationReductionConfiguration": {
1867-
"base": "<p>Configuration information required to setup hallucination reduction. For more information, see <a href=\"amazonq/latest/qbusiness-ug/hallucination-reduction.html\">hallucination reduction</a>.</p> <note> <p>The hallucination reduction feature won't work if chat orchestration controls are enabled for your application.</p> </note>",
1879+
"base": "<p>Configuration information required to setup hallucination reduction. For more information, see <a href=\"https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/hallucination-reduction.html\"> hallucination reduction</a>.</p> <note> <p>The hallucination reduction feature won't work if chat orchestration controls are enabled for your application.</p> </note>",
18681880
"refs": {
18691881
"GetChatControlsConfigurationResponse$hallucinationReductionConfiguration": "<p> The hallucination reduction settings for your application.</p>",
18701882
"UpdateChatControlsConfigurationRequest$hallucinationReductionConfiguration": "<p> The hallucination reduction settings for your application.</p>"
@@ -3140,6 +3152,12 @@
31403152
"refs": {
31413153
}
31423154
},
3155+
"SessionDurationInMinutes": {
3156+
"base": null,
3157+
"refs": {
3158+
"CreateAnonymousWebExperienceUrlRequest$sessionDurationInMinutes": "<p>The duration of the session associated with the unique URL for the web experience.</p>"
3159+
}
3160+
},
31433161
"SnippetExcerpt": {
31443162
"base": "<p>Contains the relevant text excerpt from a source that was used to generate a citation text segment in an Amazon Q Business chat response.</p>",
31453163
"refs": {
@@ -3665,6 +3683,7 @@
36653683
"refs": {
36663684
"AuthChallengeRequest$authorizationUrl": "<p>The URL sent by Amazon Q Business to the third party authentication server to authenticate a custom plugin user through an OAuth protocol.</p>",
36673685
"AuthChallengeRequestEvent$authorizationUrl": "<p>The URL sent by Amazon Q Business to a third party authentication server in response to an authentication verification event activated by an end user request to use a custom plugin. </p>",
3686+
"CreateAnonymousWebExperienceUrlResponse$anonymousUrl": "<p>The unique URL for accessing the web experience.</p> <important> <p>This URL can only be used once and must be used within 5 minutes after it's generated.</p> </important>",
36683687
"CreatePluginRequest$serverUrl": "<p>The source URL used for plugin configuration.</p>",
36693688
"GetPluginResponse$serverUrl": "<p>The source URL used for plugin configuration.</p>",
36703689
"GetWebExperienceResponse$defaultEndpoint": "<p>The endpoint of your Amazon Q Business web experience.</p>",
@@ -3812,6 +3831,7 @@
38123831
"WebExperienceId": {
38133832
"base": null,
38143833
"refs": {
3834+
"CreateAnonymousWebExperienceUrlRequest$webExperienceId": "<p>The identifier of the web experience.</p>",
38153835
"CreateWebExperienceResponse$webExperienceId": "<p>The identifier of the Amazon Q Business web experience.</p>",
38163836
"DeleteWebExperienceRequest$webExperienceId": "<p>The identifier of the Amazon Q Business web experience being deleted.</p>",
38173837
"GetWebExperienceRequest$webExperienceId": "<p>The identifier of the Amazon Q Business web experience. </p>",

generator/ServiceModels/qbusiness/qbusiness-2023-11-27.normal.json

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,25 @@
152152
],
153153
"documentation":"<p>Verifies if a user has access permissions for a specified document and returns the actual ACL attached to the document. Resolves user access on the document via user aliases and groups when verifying user access.</p>"
154154
},
155+
"CreateAnonymousWebExperienceUrl":{
156+
"name":"CreateAnonymousWebExperienceUrl",
157+
"http":{
158+
"method":"POST",
159+
"requestUri":"/applications/{applicationId}/experiences/{webExperienceId}/anonymous-url",
160+
"responseCode":200
161+
},
162+
"input":{"shape":"CreateAnonymousWebExperienceUrlRequest"},
163+
"output":{"shape":"CreateAnonymousWebExperienceUrlResponse"},
164+
"errors":[
165+
{"shape":"InternalServerException"},
166+
{"shape":"ResourceNotFoundException"},
167+
{"shape":"ThrottlingException"},
168+
{"shape":"ValidationException"},
169+
{"shape":"AccessDeniedException"},
170+
{"shape":"ServiceQuotaExceededException"}
171+
],
172+
"documentation":"<p>Creates a unique URL for anonymous Amazon Q Business web experience. This URL can only be used once and must be used within 5 minutes after it's generated.</p>"
173+
},
155174
"CreateApplication":{
156175
"name":"CreateApplication",
157176
"http":{
@@ -3023,6 +3042,40 @@
30233042
"documentation":"<p>The source reference for an existing attachment.</p>",
30243043
"union":true
30253044
},
3045+
"CreateAnonymousWebExperienceUrlRequest":{
3046+
"type":"structure",
3047+
"required":[
3048+
"applicationId",
3049+
"webExperienceId"
3050+
],
3051+
"members":{
3052+
"applicationId":{
3053+
"shape":"ApplicationId",
3054+
"documentation":"<p>The identifier of the Amazon Q Business application environment attached to the web experience.</p>",
3055+
"location":"uri",
3056+
"locationName":"applicationId"
3057+
},
3058+
"webExperienceId":{
3059+
"shape":"WebExperienceId",
3060+
"documentation":"<p>The identifier of the web experience.</p>",
3061+
"location":"uri",
3062+
"locationName":"webExperienceId"
3063+
},
3064+
"sessionDurationInMinutes":{
3065+
"shape":"SessionDurationInMinutes",
3066+
"documentation":"<p>The duration of the session associated with the unique URL for the web experience.</p>"
3067+
}
3068+
}
3069+
},
3070+
"CreateAnonymousWebExperienceUrlResponse":{
3071+
"type":"structure",
3072+
"members":{
3073+
"anonymousUrl":{
3074+
"shape":"Url",
3075+
"documentation":"<p>The unique URL for accessing the web experience.</p> <important> <p>This URL can only be used once and must be used within 5 minutes after it's generated.</p> </important>"
3076+
}
3077+
}
3078+
},
30263079
"CreateApplicationRequest":{
30273080
"type":"structure",
30283081
"required":["displayName"],
@@ -5647,7 +5700,7 @@
56475700
"documentation":"<p>Controls whether hallucination reduction has been enabled or disabled for your application. The default status is <code>DISABLED</code>. </p>"
56485701
}
56495702
},
5650-
"documentation":"<p>Configuration information required to setup hallucination reduction. For more information, see <a href=\"amazonq/latest/qbusiness-ug/hallucination-reduction.html\">hallucination reduction</a>.</p> <note> <p>The hallucination reduction feature won't work if chat orchestration controls are enabled for your application.</p> </note>"
5703+
"documentation":"<p>Configuration information required to setup hallucination reduction. For more information, see <a href=\"https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/hallucination-reduction.html\"> hallucination reduction</a>.</p> <note> <p>The hallucination reduction feature won't work if chat orchestration controls are enabled for your application.</p> </note>"
56515704
},
56525705
"HallucinationReductionControl":{
56535706
"type":"string",
@@ -5723,7 +5776,8 @@
57235776
"AWS_IAM_IDP_SAML",
57245777
"AWS_IAM_IDP_OIDC",
57255778
"AWS_IAM_IDC",
5726-
"AWS_QUICKSIGHT_IDP"
5779+
"AWS_QUICKSIGHT_IDP",
5780+
"ANONYMOUS"
57275781
]
57285782
},
57295783
"ImageExtractionConfiguration":{
@@ -7971,6 +8025,12 @@
79718025
},
79728026
"exception":true
79738027
},
8028+
"SessionDurationInMinutes":{
8029+
"type":"integer",
8030+
"box":true,
8031+
"max":60,
8032+
"min":15
8033+
},
79748034
"SnippetExcerpt":{
79758035
"type":"structure",
79768036
"members":{

sdk/code-analysis/ServiceAnalysis/QBusiness/Generated/PropertyValueRules.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,29 @@
192192
<min>1</min>
193193
<max>2048</max>
194194
</property-value-rule>
195+
<property-value-rule>
196+
<property>Amazon.QBusiness.Model.CreateAnonymousWebExperienceUrlRequest.ApplicationId</property>
197+
<min>36</min>
198+
<max>36</max>
199+
<pattern>[a-zA-Z0-9][a-zA-Z0-9-]{35}</pattern>
200+
</property-value-rule>
201+
<property-value-rule>
202+
<property>Amazon.QBusiness.Model.CreateAnonymousWebExperienceUrlRequest.SessionDurationInMinutes</property>
203+
<min>15</min>
204+
<max>60</max>
205+
</property-value-rule>
206+
<property-value-rule>
207+
<property>Amazon.QBusiness.Model.CreateAnonymousWebExperienceUrlRequest.WebExperienceId</property>
208+
<min>36</min>
209+
<max>36</max>
210+
<pattern>[a-zA-Z0-9][a-zA-Z0-9-]*</pattern>
211+
</property-value-rule>
212+
<property-value-rule>
213+
<property>Amazon.QBusiness.Model.CreateAnonymousWebExperienceUrlResponse.AnonymousUrl</property>
214+
<min>1</min>
215+
<max>2048</max>
216+
<pattern>(https?|ftp|file)://([^\s]*)</pattern>
217+
</property-value-rule>
195218
<property-value-rule>
196219
<property>Amazon.QBusiness.Model.CreateApplicationRequest.ClientToken</property>
197220
<min>1</min>
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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 qbusiness-2023-11-27.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
#pragma warning disable CS0612,CS0618,CS1570
30+
namespace Amazon.QBusiness.Model
31+
{
32+
/// <summary>
33+
/// Container for the parameters to the CreateAnonymousWebExperienceUrl operation.
34+
/// Creates a unique URL for anonymous Amazon Q Business web experience. This URL can
35+
/// only be used once and must be used within 5 minutes after it's generated.
36+
/// </summary>
37+
public partial class CreateAnonymousWebExperienceUrlRequest : AmazonQBusinessRequest
38+
{
39+
private string _applicationId;
40+
private int? _sessionDurationInMinutes;
41+
private string _webExperienceId;
42+
43+
/// <summary>
44+
/// Gets and sets the property ApplicationId.
45+
/// <para>
46+
/// The identifier of the Amazon Q Business application environment attached to the web
47+
/// experience.
48+
/// </para>
49+
/// </summary>
50+
[AWSProperty(Required=true, Min=36, Max=36)]
51+
public string ApplicationId
52+
{
53+
get { return this._applicationId; }
54+
set { this._applicationId = value; }
55+
}
56+
57+
// Check to see if ApplicationId property is set
58+
internal bool IsSetApplicationId()
59+
{
60+
return this._applicationId != null;
61+
}
62+
63+
/// <summary>
64+
/// Gets and sets the property SessionDurationInMinutes.
65+
/// <para>
66+
/// The duration of the session associated with the unique URL for the web experience.
67+
/// </para>
68+
/// </summary>
69+
[AWSProperty(Min=15, Max=60)]
70+
public int? SessionDurationInMinutes
71+
{
72+
get { return this._sessionDurationInMinutes; }
73+
set { this._sessionDurationInMinutes = value; }
74+
}
75+
76+
// Check to see if SessionDurationInMinutes property is set
77+
internal bool IsSetSessionDurationInMinutes()
78+
{
79+
return this._sessionDurationInMinutes.HasValue;
80+
}
81+
82+
/// <summary>
83+
/// Gets and sets the property WebExperienceId.
84+
/// <para>
85+
/// The identifier of the web experience.
86+
/// </para>
87+
/// </summary>
88+
[AWSProperty(Required=true, Min=36, Max=36)]
89+
public string WebExperienceId
90+
{
91+
get { return this._webExperienceId; }
92+
set { this._webExperienceId = value; }
93+
}
94+
95+
// Check to see if WebExperienceId property is set
96+
internal bool IsSetWebExperienceId()
97+
{
98+
return this._webExperienceId != null;
99+
}
100+
101+
}
102+
}

0 commit comments

Comments
 (0)