Skip to content

Commit e275b4e

Browse files
Updated modifyStreamingProperties to support PrivateLink VPC endpoints for directories
1 parent 77eef08 commit e275b4e

21 files changed

+1071
-3
lines changed

generator/ServiceModels/workspaces/workspaces-2015-04-08.api.json

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,10 @@
10131013
"output":{"shape":"ModifyWorkspaceAccessPropertiesResult"},
10141014
"errors":[
10151015
{"shape":"ResourceNotFoundException"},
1016-
{"shape":"AccessDeniedException"}
1016+
{"shape":"AccessDeniedException"},
1017+
{"shape":"InvalidParameterValuesException"},
1018+
{"shape":"InvalidParameterCombinationException"},
1019+
{"shape":"OperationNotSupportedException"}
10171020
]
10181021
},
10191022
"ModifyWorkspaceCreationProperties":{
@@ -1402,6 +1405,29 @@
14021405
},
14031406
"exception":true
14041407
},
1408+
"AccessEndpoint":{
1409+
"type":"structure",
1410+
"members":{
1411+
"AccessEndpointType":{"shape":"AccessEndpointType"},
1412+
"VpcEndpointId":{"shape":"AlphanumericDashUnderscoreNonEmptyString"}
1413+
}
1414+
},
1415+
"AccessEndpointConfig":{
1416+
"type":"structure",
1417+
"required":["AccessEndpoints"],
1418+
"members":{
1419+
"AccessEndpoints":{"shape":"AccessEndpointList"},
1420+
"InternetFallbackProtocols":{"shape":"InternetFallbackProtocolList"}
1421+
}
1422+
},
1423+
"AccessEndpointList":{
1424+
"type":"list",
1425+
"member":{"shape":"AccessEndpoint"}
1426+
},
1427+
"AccessEndpointType":{
1428+
"type":"string",
1429+
"enum":["STREAMING_WSP"]
1430+
},
14051431
"AccessPropertyValue":{
14061432
"type":"string",
14071433
"enum":[
@@ -1479,6 +1505,10 @@
14791505
"pattern":"^(http|https)\\://\\S+"
14801506
},
14811507
"Alias":{"type":"string"},
1508+
"AlphanumericDashUnderscoreNonEmptyString":{
1509+
"type":"string",
1510+
"pattern":"^[a-zA-Z0-9\\_\\-]{1,1000}$"
1511+
},
14821512
"AmazonUuid":{
14831513
"type":"string",
14841514
"max":36,
@@ -3168,6 +3198,21 @@
31683198
},
31693199
"exception":true
31703200
},
3201+
"InternetFallbackProtocol":{
3202+
"type":"string",
3203+
"enum":["PCOIP"]
3204+
},
3205+
"InternetFallbackProtocolList":{
3206+
"type":"list",
3207+
"member":{"shape":"InternetFallbackProtocol"}
3208+
},
3209+
"InvalidParameterCombinationException":{
3210+
"type":"structure",
3211+
"members":{
3212+
"message":{"shape":"ExceptionMessage"}
3213+
},
3214+
"exception":true
3215+
},
31713216
"InvalidParameterValuesException":{
31723217
"type":"structure",
31733218
"members":{
@@ -4478,7 +4523,8 @@
44784523
"DeviceTypeChromeOs":{"shape":"AccessPropertyValue"},
44794524
"DeviceTypeZeroClient":{"shape":"AccessPropertyValue"},
44804525
"DeviceTypeLinux":{"shape":"AccessPropertyValue"},
4481-
"DeviceTypeWorkSpacesThinClient":{"shape":"AccessPropertyValue"}
4526+
"DeviceTypeWorkSpacesThinClient":{"shape":"AccessPropertyValue"},
4527+
"AccessEndpointConfig":{"shape":"AccessEndpointConfig"}
44824528
}
44834529
},
44844530
"WorkspaceBundle":{

generator/ServiceModels/workspaces/workspaces-2015-04-08.docs.json

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,30 @@
141141
"base": "<p>The user is not authorized to access a resource.</p>",
142142
"refs": {}
143143
},
144+
"AccessEndpoint": {
145+
"base": "<p>Describes the access type and endpoint for a WorkSpace.</p>",
146+
"refs": {
147+
"AccessEndpointList$member": null
148+
}
149+
},
150+
"AccessEndpointConfig": {
151+
"base": "<p>Describes the access endpoint configuration for a WorkSpace.</p>",
152+
"refs": {
153+
"WorkspaceAccessProperties$AccessEndpointConfig": "<p>Specifies the configuration for accessing the WorkSpace.</p>"
154+
}
155+
},
156+
"AccessEndpointList": {
157+
"base": null,
158+
"refs": {
159+
"AccessEndpointConfig$AccessEndpoints": "<p>Indicates a list of access endpoints associated with this directory.</p>"
160+
}
161+
},
162+
"AccessEndpointType": {
163+
"base": null,
164+
"refs": {
165+
"AccessEndpoint$AccessEndpointType": "<p>Indicates the type of access endpoint.</p>"
166+
}
167+
},
144168
"AccessPropertyValue": {
145169
"base": null,
146170
"refs": {
@@ -232,6 +256,12 @@
232256
"WorkspaceDirectory$Alias": "<p>The directory alias.</p>"
233257
}
234258
},
259+
"AlphanumericDashUnderscoreNonEmptyString": {
260+
"base": null,
261+
"refs": {
262+
"AccessEndpoint$VpcEndpointId": "<p>Indicates the VPC endpoint to use for access.</p>"
263+
}
264+
},
235265
"AmazonUuid": {
236266
"base": null,
237267
"refs": {
@@ -1438,6 +1468,7 @@
14381468
"AccessDeniedException$message": null,
14391469
"ConflictException$message": null,
14401470
"InternalServerException$message": null,
1471+
"InvalidParameterCombinationException$message": "<p>The exception error message.</p>",
14411472
"InvalidParameterValuesException$message": "<p>The exception error message.</p>",
14421473
"InvalidResourceStateException$message": null,
14431474
"OperationInProgressException$message": null,
@@ -1618,6 +1649,22 @@
16181649
"base": "<p>Unexpected server error occured.</p>",
16191650
"refs": {}
16201651
},
1652+
"InternetFallbackProtocol": {
1653+
"base": null,
1654+
"refs": {
1655+
"InternetFallbackProtocolList$member": null
1656+
}
1657+
},
1658+
"InternetFallbackProtocolList": {
1659+
"base": null,
1660+
"refs": {
1661+
"AccessEndpointConfig$InternetFallbackProtocols": "<p>Indicates a list of protocols that fallback to using the public Internet when streaming over a VPC endpoint is not available.</p>"
1662+
}
1663+
},
1664+
"InvalidParameterCombinationException": {
1665+
"base": "<p>Two or more of the selected parameter values cannot be used together.</p>",
1666+
"refs": {}
1667+
},
16211668
"InvalidParameterValuesException": {
16221669
"base": "<p>One or more parameter values are not valid.</p>",
16231670
"refs": {}

generator/ServiceModels/workspaces/workspaces-2015-04-08.normal.json

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1079,7 +1079,10 @@
10791079
"output":{"shape":"ModifyWorkspaceAccessPropertiesResult"},
10801080
"errors":[
10811081
{"shape":"ResourceNotFoundException"},
1082-
{"shape":"AccessDeniedException"}
1082+
{"shape":"AccessDeniedException"},
1083+
{"shape":"InvalidParameterValuesException"},
1084+
{"shape":"InvalidParameterCombinationException"},
1085+
{"shape":"OperationNotSupportedException"}
10831086
],
10841087
"documentation":"<p>Specifies which devices and operating systems users can use to access their WorkSpaces. For more information, see <a href=\"https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access\"> Control Device Access</a>.</p>"
10851088
},
@@ -1501,6 +1504,43 @@
15011504
"documentation":"<p>The user is not authorized to access a resource.</p>",
15021505
"exception":true
15031506
},
1507+
"AccessEndpoint":{
1508+
"type":"structure",
1509+
"members":{
1510+
"AccessEndpointType":{
1511+
"shape":"AccessEndpointType",
1512+
"documentation":"<p>Indicates the type of access endpoint.</p>"
1513+
},
1514+
"VpcEndpointId":{
1515+
"shape":"AlphanumericDashUnderscoreNonEmptyString",
1516+
"documentation":"<p>Indicates the VPC endpoint to use for access.</p>"
1517+
}
1518+
},
1519+
"documentation":"<p>Describes the access type and endpoint for a WorkSpace.</p>"
1520+
},
1521+
"AccessEndpointConfig":{
1522+
"type":"structure",
1523+
"required":["AccessEndpoints"],
1524+
"members":{
1525+
"AccessEndpoints":{
1526+
"shape":"AccessEndpointList",
1527+
"documentation":"<p>Indicates a list of access endpoints associated with this directory.</p>"
1528+
},
1529+
"InternetFallbackProtocols":{
1530+
"shape":"InternetFallbackProtocolList",
1531+
"documentation":"<p>Indicates a list of protocols that fallback to using the public Internet when streaming over a VPC endpoint is not available.</p>"
1532+
}
1533+
},
1534+
"documentation":"<p>Describes the access endpoint configuration for a WorkSpace.</p>"
1535+
},
1536+
"AccessEndpointList":{
1537+
"type":"list",
1538+
"member":{"shape":"AccessEndpoint"}
1539+
},
1540+
"AccessEndpointType":{
1541+
"type":"string",
1542+
"enum":["STREAMING_WSP"]
1543+
},
15041544
"AccessPropertyValue":{
15051545
"type":"string",
15061546
"enum":[
@@ -1617,6 +1657,10 @@
16171657
"pattern":"^(http|https)\\://\\S+"
16181658
},
16191659
"Alias":{"type":"string"},
1660+
"AlphanumericDashUnderscoreNonEmptyString":{
1661+
"type":"string",
1662+
"pattern":"^[a-zA-Z0-9\\_\\-]{1,1000}$"
1663+
},
16201664
"AmazonUuid":{
16211665
"type":"string",
16221666
"max":36,
@@ -4325,6 +4369,25 @@
43254369
"documentation":"<p>Unexpected server error occured.</p>",
43264370
"exception":true
43274371
},
4372+
"InternetFallbackProtocol":{
4373+
"type":"string",
4374+
"enum":["PCOIP"]
4375+
},
4376+
"InternetFallbackProtocolList":{
4377+
"type":"list",
4378+
"member":{"shape":"InternetFallbackProtocol"}
4379+
},
4380+
"InvalidParameterCombinationException":{
4381+
"type":"structure",
4382+
"members":{
4383+
"message":{
4384+
"shape":"ExceptionMessage",
4385+
"documentation":"<p>The exception error message.</p>"
4386+
}
4387+
},
4388+
"documentation":"<p>Two or more of the selected parameter values cannot be used together.</p>",
4389+
"exception":true
4390+
},
43284391
"InvalidParameterValuesException":{
43294392
"type":"structure",
43304393
"members":{
@@ -6319,6 +6382,10 @@
63196382
"DeviceTypeWorkSpacesThinClient":{
63206383
"shape":"AccessPropertyValue",
63216384
"documentation":"<p>Indicates whether users can access their WorkSpaces through a WorkSpaces Thin Client.</p>"
6385+
},
6386+
"AccessEndpointConfig":{
6387+
"shape":"AccessEndpointConfig",
6388+
"documentation":"<p>Specifies the configuration for accessing the WorkSpace.</p>"
63226389
}
63236390
},
63246391
"documentation":"<p>The device types and operating systems that can be used to access a WorkSpace. For more information, see <a href=\"https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html\">Amazon WorkSpaces Client Network Requirements</a>.</p>"

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -872,6 +872,9 @@
872872
<property>Amazon.WorkSpaces.Model.UpdateWorkspacesPoolRequest.PoolId</property>
873873
<pattern>^wspool-[0-9a-z]{9}$</pattern>
874874
</property-value-rule>
875+
<property-value-rule>
876+
<property>Amazon.WorkSpaces.Model.AccessEndpoint.VpcEndpointId</property>
877+
</property-value-rule>
875878
<property-value-rule>
876879
<property>Amazon.WorkSpaces.Model.AccountLink.AccountLinkId</property>
877880
<pattern>^link-.{8,24}$</pattern>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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 workspaces-2015-04-08.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.WorkSpaces.Model
31+
{
32+
/// <summary>
33+
/// Describes the access type and endpoint for a WorkSpace.
34+
/// </summary>
35+
public partial class AccessEndpoint
36+
{
37+
private AccessEndpointType _accessEndpointType;
38+
private string _vpcEndpointId;
39+
40+
/// <summary>
41+
/// Gets and sets the property AccessEndpointType.
42+
/// <para>
43+
/// Indicates the type of access endpoint.
44+
/// </para>
45+
/// </summary>
46+
public AccessEndpointType AccessEndpointType
47+
{
48+
get { return this._accessEndpointType; }
49+
set { this._accessEndpointType = value; }
50+
}
51+
52+
// Check to see if AccessEndpointType property is set
53+
internal bool IsSetAccessEndpointType()
54+
{
55+
return this._accessEndpointType != null;
56+
}
57+
58+
/// <summary>
59+
/// Gets and sets the property VpcEndpointId.
60+
/// <para>
61+
/// Indicates the VPC endpoint to use for access.
62+
/// </para>
63+
/// </summary>
64+
public string VpcEndpointId
65+
{
66+
get { return this._vpcEndpointId; }
67+
set { this._vpcEndpointId = value; }
68+
}
69+
70+
// Check to see if VpcEndpointId property is set
71+
internal bool IsSetVpcEndpointId()
72+
{
73+
return this._vpcEndpointId != null;
74+
}
75+
76+
}
77+
}

0 commit comments

Comments
 (0)