aws-sdk-iotsitewise 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d305379c89444298a4b122ef07db07dcce29001e40b3e410c352165cc7c41396
4
- data.tar.gz: 9c31118ed6b51bf11500429306db72150213e725156b4874cf1a9905dba2ae7d
3
+ metadata.gz: ce4560b339387b2c1b2c4cba7c2ce6170c881d0f8c7f76180e49bc7bf61e3cae
4
+ data.tar.gz: c5fab0c350551d91f196125fbd172f28a5604db23205e54874ecaaa82c4d1a43
5
5
  SHA512:
6
- metadata.gz: bdac6f7fdc947ddb549cef8f438962551283404bd4a6a6cf02232455a5272c4773c1c7eb3474a49c1306181511bcc6e990836503099e3619325c4bbdfb915a88
7
- data.tar.gz: 3fe64c09c3b19457a95ca448a064a3e57eeb2a78519cf72968af4c17b009c7102fda0cd669677b4fa822120d797f889d7d74283109addcde40a4f8732a50f32d
6
+ metadata.gz: 892e8b4c9afcc4c50e0c959b6a7f2dda45aef5aad618141f45c2e16e642a18fd60a8ac14400591a62bc0e89568d8a45c9e718c17fd637e16a0e081ce4a1f0e37
7
+ data.tar.gz: 75495f046396dd47b743d2e591c9812dea2082d18be3f3d8fc80f5876594c48cc3027afaf2020a3eb4b3e21c944bd34b5f55a780bbbd448097bb23d937d23534
@@ -49,6 +49,6 @@ require_relative 'aws-sdk-iotsitewise/customizations'
49
49
  # @!group service
50
50
  module Aws::IoTSiteWise
51
51
 
52
- GEM_VERSION = '1.10.0'
52
+ GEM_VERSION = '1.11.0'
53
53
 
54
54
  end
@@ -552,17 +552,17 @@ module Aws::IoTSiteWise
552
552
  req.send_request(options)
553
553
  end
554
554
 
555
- # Creates an access policy that grants the specified AWS Single Sign-On
556
- # user or group access to the specified AWS IoT SiteWise Monitor portal
557
- # or project resource.
555
+ # Creates an access policy that grants the specified identity (AWS SSO
556
+ # user, AWS SSO group, or IAM user) access to the specified AWS IoT
557
+ # SiteWise Monitor portal or project resource.
558
558
  #
559
559
  # @option params [required, Types::Identity] :access_policy_identity
560
- # The identity for this access policy. Choose either a `user` or a
561
- # `group` but not both.
560
+ # The identity for this access policy. Choose an AWS SSO user, an AWS
561
+ # SSO group, or an IAM user.
562
562
  #
563
563
  # @option params [required, Types::Resource] :access_policy_resource
564
564
  # The AWS IoT SiteWise Monitor resource for this access policy. Choose
565
- # either `portal` or `project` but not both.
565
+ # either a portal or a project.
566
566
  #
567
567
  # @option params [required, String] :access_policy_permission
568
568
  # The permission level for this access policy. Note that a project
@@ -600,6 +600,9 @@ module Aws::IoTSiteWise
600
600
  # group: {
601
601
  # id: "IdentityId", # required
602
602
  # },
603
+ # iam_user: {
604
+ # arn: "ARN", # required
605
+ # },
603
606
  # },
604
607
  # access_policy_resource: { # required
605
608
  # portal: {
@@ -954,23 +957,19 @@ module Aws::IoTSiteWise
954
957
  req.send_request(options)
955
958
  end
956
959
 
957
- # Creates a portal, which can contain projects and dashboards. Before
958
- # you can create a portal, you must enable AWS Single Sign-On. AWS IoT
959
- # SiteWise Monitor uses AWS SSO to manage user permissions. For more
960
- # information, see [Enabling AWS SSO][1] in the *AWS IoT SiteWise User
961
- # Guide*.
960
+ # Creates a portal, which can contain projects and dashboards. AWS IoT
961
+ # SiteWise Monitor uses AWS SSO or IAM to authenticate portal users and
962
+ # manage user permissions.
962
963
  #
963
- # <note markdown="1"> Before you can sign in to a new portal, you must add at least one AWS
964
- # SSO user or group to that portal. For more information, see [Adding or
965
- # removing portal administrators][2] in the *AWS IoT SiteWise User
966
- # Guide*.
964
+ # <note markdown="1"> Before you can sign in to a new portal, you must add at least one
965
+ # identity to that portal. For more information, see [Adding or removing
966
+ # portal administrators][1] in the *AWS IoT SiteWise User Guide*.
967
967
  #
968
968
  # </note>
969
969
  #
970
970
  #
971
971
  #
972
- # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso
973
- # [2]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins
972
+ # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins
974
973
  #
975
974
  # @option params [required, String] :portal_name
976
975
  # A friendly name for the portal.
@@ -1013,6 +1012,30 @@ module Aws::IoTSiteWise
1013
1012
  #
1014
1013
  # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html
1015
1014
  #
1015
+ # @option params [String] :portal_auth_mode
1016
+ # The service to use to authenticate users to the portal. Choose from
1017
+ # the following options:
1018
+ #
1019
+ # * `SSO` – The portal uses AWS Single Sign-On to authenticate users and
1020
+ # manage user permissions. Before you can create a portal that uses
1021
+ # AWS SSO, you must enable AWS SSO. For more information, see
1022
+ # [Enabling AWS SSO][1] in the *AWS IoT SiteWise User Guide*. This
1023
+ # option is only available in AWS Regions other than the China
1024
+ # Regions.
1025
+ #
1026
+ # * `IAM` – The portal uses AWS Identity and Access Management (IAM) to
1027
+ # authenticate users and manage user permissions. IAM users must have
1028
+ # the `iotsitewise:CreatePresignedPortalUrl` permission to sign in to
1029
+ # the portal. This option is only available in the China Regions.
1030
+ #
1031
+ # You can't change this value after you create a portal.
1032
+ #
1033
+ # Default: `SSO`
1034
+ #
1035
+ #
1036
+ #
1037
+ # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso
1038
+ #
1016
1039
  # @return [Types::CreatePortalResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1017
1040
  #
1018
1041
  # * {Types::CreatePortalResponse#portal_id #portal_id} => String
@@ -1036,6 +1059,7 @@ module Aws::IoTSiteWise
1036
1059
  # tags: {
1037
1060
  # "TagKey" => "TagValue",
1038
1061
  # },
1062
+ # portal_auth_mode: "IAM", # accepts IAM, SSO
1039
1063
  # })
1040
1064
  #
1041
1065
  # @example Response structure
@@ -1055,6 +1079,42 @@ module Aws::IoTSiteWise
1055
1079
  req.send_request(options)
1056
1080
  end
1057
1081
 
1082
+ # Creates a pre-signed URL to a portal. Use this operation to create
1083
+ # URLs to portals that use AWS Identity and Access Management (IAM) to
1084
+ # authenticate users. An IAM user with access to a portal can call this
1085
+ # API to get a URL to that portal. The URL contains a session token that
1086
+ # lets the IAM user access the portal.
1087
+ #
1088
+ # @option params [required, String] :portal_id
1089
+ # The ID of the portal to access.
1090
+ #
1091
+ # @option params [Integer] :session_duration_seconds
1092
+ # The duration (in seconds) for which the session at the URL is valid.
1093
+ #
1094
+ # Default: 900 seconds (15 minutes)
1095
+ #
1096
+ # @return [Types::CreatePresignedPortalUrlResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1097
+ #
1098
+ # * {Types::CreatePresignedPortalUrlResponse#presigned_portal_url #presigned_portal_url} => String
1099
+ #
1100
+ # @example Request syntax with placeholder values
1101
+ #
1102
+ # resp = client.create_presigned_portal_url({
1103
+ # portal_id: "ID", # required
1104
+ # session_duration_seconds: 1,
1105
+ # })
1106
+ #
1107
+ # @example Response structure
1108
+ #
1109
+ # resp.presigned_portal_url #=> String
1110
+ #
1111
+ # @overload create_presigned_portal_url(params = {})
1112
+ # @param [Hash] params ({})
1113
+ def create_presigned_portal_url(params = {}, options = {})
1114
+ req = build_request(:create_presigned_portal_url, params)
1115
+ req.send_request(options)
1116
+ end
1117
+
1058
1118
  # Creates a project in the specified portal.
1059
1119
  #
1060
1120
  # @option params [required, String] :portal_id
@@ -1112,10 +1172,9 @@ module Aws::IoTSiteWise
1112
1172
  req.send_request(options)
1113
1173
  end
1114
1174
 
1115
- # Deletes an access policy that grants the specified AWS Single Sign-On
1116
- # identity access to the specified AWS IoT SiteWise Monitor resource.
1117
- # You can use this operation to revoke access to an AWS IoT SiteWise
1118
- # Monitor resource.
1175
+ # Deletes an access policy that grants the specified identity access to
1176
+ # the specified AWS IoT SiteWise Monitor resource. You can use this
1177
+ # operation to revoke access to an AWS IoT SiteWise Monitor resource.
1119
1178
  #
1120
1179
  # @option params [required, String] :access_policy_id
1121
1180
  # The ID of the access policy to be deleted.
@@ -1270,12 +1329,6 @@ module Aws::IoTSiteWise
1270
1329
 
1271
1330
  # Deletes a gateway from AWS IoT SiteWise. When you delete a gateway,
1272
1331
  # some of the gateway's files remain in your gateway's file system.
1273
- # For more information, see [Data retention][1] in the *AWS IoT SiteWise
1274
- # User Guide*.
1275
- #
1276
- #
1277
- #
1278
- # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/data-retention.html
1279
1332
  #
1280
1333
  # @option params [required, String] :gateway_id
1281
1334
  # The ID of the gateway to delete.
@@ -1361,8 +1414,8 @@ module Aws::IoTSiteWise
1361
1414
  req.send_request(options)
1362
1415
  end
1363
1416
 
1364
- # Describes an access policy, which specifies an AWS SSO user or
1365
- # group's access to an AWS IoT SiteWise Monitor portal or project.
1417
+ # Describes an access policy, which specifies an identity's access to
1418
+ # an AWS IoT SiteWise Monitor portal or project.
1366
1419
  #
1367
1420
  # @option params [required, String] :access_policy_id
1368
1421
  # The ID of the access policy.
@@ -1389,6 +1442,7 @@ module Aws::IoTSiteWise
1389
1442
  # resp.access_policy_arn #=> String
1390
1443
  # resp.access_policy_identity.user.id #=> String
1391
1444
  # resp.access_policy_identity.group.id #=> String
1445
+ # resp.access_policy_identity.iam_user.arn #=> String
1392
1446
  # resp.access_policy_resource.portal.id #=> String
1393
1447
  # resp.access_policy_resource.project.id #=> String
1394
1448
  # resp.access_policy_permission #=> String, one of "ADMINISTRATOR", "VIEWER"
@@ -1764,6 +1818,7 @@ module Aws::IoTSiteWise
1764
1818
  # * {Types::DescribePortalResponse#portal_last_update_date #portal_last_update_date} => Time
1765
1819
  # * {Types::DescribePortalResponse#portal_logo_image_location #portal_logo_image_location} => Types::ImageLocation
1766
1820
  # * {Types::DescribePortalResponse#role_arn #role_arn} => String
1821
+ # * {Types::DescribePortalResponse#portal_auth_mode #portal_auth_mode} => String
1767
1822
  #
1768
1823
  # @example Request syntax with placeholder values
1769
1824
  #
@@ -1788,6 +1843,7 @@ module Aws::IoTSiteWise
1788
1843
  # resp.portal_logo_image_location.id #=> String
1789
1844
  # resp.portal_logo_image_location.url #=> String
1790
1845
  # resp.role_arn #=> String
1846
+ # resp.portal_auth_mode #=> String, one of "IAM", "SSO"
1791
1847
  #
1792
1848
  #
1793
1849
  # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
@@ -2152,17 +2208,17 @@ module Aws::IoTSiteWise
2152
2208
  req.send_request(options)
2153
2209
  end
2154
2210
 
2155
- # Retrieves a paginated list of access policies for an AWS SSO identity
2156
- # (a user or group) or an AWS IoT SiteWise Monitor resource (a portal or
2157
- # project).
2211
+ # Retrieves a paginated list of access policies for an identity (an AWS
2212
+ # SSO user, an AWS SSO group, or an IAM user) or an AWS IoT SiteWise
2213
+ # Monitor resource (a portal or project).
2158
2214
  #
2159
2215
  # @option params [String] :identity_type
2160
- # The type of identity (user or group). This parameter is required if
2161
- # you specify `identityId`.
2216
+ # The type of identity (AWS SSO user, AWS SSO group, or IAM user). This
2217
+ # parameter is required if you specify `identityId`.
2162
2218
  #
2163
2219
  # @option params [String] :identity_id
2164
2220
  # The ID of the identity. This parameter is required if you specify
2165
- # `identityType`.
2221
+ # `USER` or `GROUP` for `identityType`.
2166
2222
  #
2167
2223
  # @option params [String] :resource_type
2168
2224
  # The type of resource (portal or project). This parameter is required
@@ -2172,6 +2228,15 @@ module Aws::IoTSiteWise
2172
2228
  # The ID of the resource. This parameter is required if you specify
2173
2229
  # `resourceType`.
2174
2230
  #
2231
+ # @option params [String] :iam_arn
2232
+ # The ARN of the IAM user. For more information, see [IAM ARNs][1] in
2233
+ # the *IAM User Guide*. This parameter is required if you specify `IAM`
2234
+ # for `identityType`.
2235
+ #
2236
+ #
2237
+ #
2238
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
2239
+ #
2175
2240
  # @option params [String] :next_token
2176
2241
  # The token to be used for the next set of paginated results.
2177
2242
  #
@@ -2190,10 +2255,11 @@ module Aws::IoTSiteWise
2190
2255
  # @example Request syntax with placeholder values
2191
2256
  #
2192
2257
  # resp = client.list_access_policies({
2193
- # identity_type: "USER", # accepts USER, GROUP
2258
+ # identity_type: "USER", # accepts USER, GROUP, IAM
2194
2259
  # identity_id: "IdentityId",
2195
2260
  # resource_type: "PORTAL", # accepts PORTAL, PROJECT
2196
2261
  # resource_id: "ID",
2262
+ # iam_arn: "ARN",
2197
2263
  # next_token: "NextToken",
2198
2264
  # max_results: 1,
2199
2265
  # })
@@ -2204,6 +2270,7 @@ module Aws::IoTSiteWise
2204
2270
  # resp.access_policy_summaries[0].id #=> String
2205
2271
  # resp.access_policy_summaries[0].identity.user.id #=> String
2206
2272
  # resp.access_policy_summaries[0].identity.group.id #=> String
2273
+ # resp.access_policy_summaries[0].identity.iam_user.arn #=> String
2207
2274
  # resp.access_policy_summaries[0].resource.portal.id #=> String
2208
2275
  # resp.access_policy_summaries[0].resource.project.id #=> String
2209
2276
  # resp.access_policy_summaries[0].permission #=> String, one of "ADMINISTRATOR", "VIEWER"
@@ -2773,20 +2840,19 @@ module Aws::IoTSiteWise
2773
2840
  req.send_request(options)
2774
2841
  end
2775
2842
 
2776
- # Updates an existing access policy that specifies an AWS SSO user or
2777
- # group's access to an AWS IoT SiteWise Monitor portal or project
2778
- # resource.
2843
+ # Updates an existing access policy that specifies an identity's access
2844
+ # to an AWS IoT SiteWise Monitor portal or project resource.
2779
2845
  #
2780
2846
  # @option params [required, String] :access_policy_id
2781
2847
  # The ID of the access policy.
2782
2848
  #
2783
2849
  # @option params [required, Types::Identity] :access_policy_identity
2784
- # The identity for this access policy. Choose either a `user` or a
2785
- # `group` but not both.
2850
+ # The identity for this access policy. Choose an AWS SSO user, an AWS
2851
+ # SSO group, or an IAM user.
2786
2852
  #
2787
2853
  # @option params [required, Types::Resource] :access_policy_resource
2788
2854
  # The AWS IoT SiteWise Monitor resource for this access policy. Choose
2789
- # either `portal` or `project` but not both.
2855
+ # either a portal or a project.
2790
2856
  #
2791
2857
  # @option params [required, String] :access_policy_permission
2792
2858
  # The permission level for this access policy. Note that a project
@@ -2813,6 +2879,9 @@ module Aws::IoTSiteWise
2813
2879
  # group: {
2814
2880
  # id: "IdentityId", # required
2815
2881
  # },
2882
+ # iam_user: {
2883
+ # arn: "ARN", # required
2884
+ # },
2816
2885
  # },
2817
2886
  # access_policy_resource: { # required
2818
2887
  # portal: {
@@ -2890,12 +2959,12 @@ module Aws::IoTSiteWise
2890
2959
  # must include their IDs and definitions in the updated asset model
2891
2960
  # payload. For more information, see [DescribeAssetModel][2].
2892
2961
  #
2893
- # If you remove a property from an asset model or update a property's
2894
- # formula expression, AWS IoT SiteWise deletes all previous data for
2895
- # that property. If you remove a hierarchy definition from an asset
2896
- # model, AWS IoT SiteWise disassociates every asset associated with that
2897
- # hierarchy. You can't change the type or data type of an existing
2898
- # property.
2962
+ # If you remove a property from an asset model, AWS IoT SiteWise
2963
+ # deletes
2964
+ # all previous data for that property. If you remove a hierarchy
2965
+ # definition from an asset model, AWS IoT SiteWise disassociates every
2966
+ # asset associated with that hierarchy. You can't change the type or
2967
+ # data type of an existing property.
2899
2968
  #
2900
2969
  #
2901
2970
  #
@@ -3348,7 +3417,7 @@ module Aws::IoTSiteWise
3348
3417
  params: params,
3349
3418
  config: config)
3350
3419
  context[:gem_name] = 'aws-sdk-iotsitewise'
3351
- context[:gem_version] = '1.10.0'
3420
+ context[:gem_version] = '1.11.0'
3352
3421
  Seahorse::Client::Request.new(handlers, context)
3353
3422
  end
3354
3423
 
@@ -55,6 +55,7 @@ module Aws::IoTSiteWise
55
55
  AssociatedAssetsSummaries = Shapes::ListShape.new(name: 'AssociatedAssetsSummaries')
56
56
  AssociatedAssetsSummary = Shapes::StructureShape.new(name: 'AssociatedAssetsSummary')
57
57
  Attribute = Shapes::StructureShape.new(name: 'Attribute')
58
+ AuthMode = Shapes::StringShape.new(name: 'AuthMode')
58
59
  BatchAssociateProjectAssetsErrors = Shapes::ListShape.new(name: 'BatchAssociateProjectAssetsErrors')
59
60
  BatchAssociateProjectAssetsRequest = Shapes::StructureShape.new(name: 'BatchAssociateProjectAssetsRequest')
60
61
  BatchAssociateProjectAssetsResponse = Shapes::StructureShape.new(name: 'BatchAssociateProjectAssetsResponse')
@@ -85,6 +86,8 @@ module Aws::IoTSiteWise
85
86
  CreateGatewayResponse = Shapes::StructureShape.new(name: 'CreateGatewayResponse')
86
87
  CreatePortalRequest = Shapes::StructureShape.new(name: 'CreatePortalRequest')
87
88
  CreatePortalResponse = Shapes::StructureShape.new(name: 'CreatePortalResponse')
89
+ CreatePresignedPortalUrlRequest = Shapes::StructureShape.new(name: 'CreatePresignedPortalUrlRequest')
90
+ CreatePresignedPortalUrlResponse = Shapes::StructureShape.new(name: 'CreatePresignedPortalUrlResponse')
88
91
  CreateProjectRequest = Shapes::StructureShape.new(name: 'CreateProjectRequest')
89
92
  CreateProjectResponse = Shapes::StructureShape.new(name: 'CreateProjectResponse')
90
93
  DashboardDefinition = Shapes::StringShape.new(name: 'DashboardDefinition')
@@ -148,6 +151,7 @@ module Aws::IoTSiteWise
148
151
  GetAssetPropertyValueResponse = Shapes::StructureShape.new(name: 'GetAssetPropertyValueResponse')
149
152
  Greengrass = Shapes::StructureShape.new(name: 'Greengrass')
150
153
  GroupIdentity = Shapes::StructureShape.new(name: 'GroupIdentity')
154
+ IAMUserIdentity = Shapes::StructureShape.new(name: 'IAMUserIdentity')
151
155
  ID = Shapes::StringShape.new(name: 'ID')
152
156
  IDs = Shapes::ListShape.new(name: 'IDs')
153
157
  Identity = Shapes::StructureShape.new(name: 'Identity')
@@ -233,6 +237,7 @@ module Aws::IoTSiteWise
233
237
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
234
238
  SSOApplicationId = Shapes::StringShape.new(name: 'SSOApplicationId')
235
239
  ServiceUnavailableException = Shapes::StructureShape.new(name: 'ServiceUnavailableException')
240
+ SessionDurationSeconds = Shapes::IntegerShape.new(name: 'SessionDurationSeconds')
236
241
  TagKey = Shapes::StringShape.new(name: 'TagKey')
237
242
  TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
238
243
  TagMap = Shapes::MapShape.new(name: 'TagMap')
@@ -521,6 +526,7 @@ module Aws::IoTSiteWise
521
526
  CreatePortalRequest.add_member(:portal_logo_image_file, Shapes::ShapeRef.new(shape: ImageFile, location_name: "portalLogoImageFile"))
522
527
  CreatePortalRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: ARN, required: true, location_name: "roleArn"))
523
528
  CreatePortalRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
529
+ CreatePortalRequest.add_member(:portal_auth_mode, Shapes::ShapeRef.new(shape: AuthMode, location_name: "portalAuthMode"))
524
530
  CreatePortalRequest.struct_class = Types::CreatePortalRequest
525
531
 
526
532
  CreatePortalResponse.add_member(:portal_id, Shapes::ShapeRef.new(shape: ID, required: true, location_name: "portalId"))
@@ -530,6 +536,13 @@ module Aws::IoTSiteWise
530
536
  CreatePortalResponse.add_member(:sso_application_id, Shapes::ShapeRef.new(shape: SSOApplicationId, required: true, location_name: "ssoApplicationId"))
531
537
  CreatePortalResponse.struct_class = Types::CreatePortalResponse
532
538
 
539
+ CreatePresignedPortalUrlRequest.add_member(:portal_id, Shapes::ShapeRef.new(shape: ID, required: true, location: "uri", location_name: "portalId"))
540
+ CreatePresignedPortalUrlRequest.add_member(:session_duration_seconds, Shapes::ShapeRef.new(shape: SessionDurationSeconds, location: "querystring", location_name: "sessionDurationSeconds"))
541
+ CreatePresignedPortalUrlRequest.struct_class = Types::CreatePresignedPortalUrlRequest
542
+
543
+ CreatePresignedPortalUrlResponse.add_member(:presigned_portal_url, Shapes::ShapeRef.new(shape: Url, required: true, location_name: "presignedPortalUrl"))
544
+ CreatePresignedPortalUrlResponse.struct_class = Types::CreatePresignedPortalUrlResponse
545
+
533
546
  CreateProjectRequest.add_member(:portal_id, Shapes::ShapeRef.new(shape: ID, required: true, location_name: "portalId"))
534
547
  CreateProjectRequest.add_member(:project_name, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "projectName"))
535
548
  CreateProjectRequest.add_member(:project_description, Shapes::ShapeRef.new(shape: Description, location_name: "projectDescription"))
@@ -697,6 +710,7 @@ module Aws::IoTSiteWise
697
710
  DescribePortalResponse.add_member(:portal_last_update_date, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "portalLastUpdateDate"))
698
711
  DescribePortalResponse.add_member(:portal_logo_image_location, Shapes::ShapeRef.new(shape: ImageLocation, location_name: "portalLogoImageLocation"))
699
712
  DescribePortalResponse.add_member(:role_arn, Shapes::ShapeRef.new(shape: ARN, location_name: "roleArn"))
713
+ DescribePortalResponse.add_member(:portal_auth_mode, Shapes::ShapeRef.new(shape: AuthMode, location_name: "portalAuthMode"))
700
714
  DescribePortalResponse.struct_class = Types::DescribePortalResponse
701
715
 
702
716
  DescribeProjectRequest.add_member(:project_id, Shapes::ShapeRef.new(shape: ID, required: true, location: "uri", location_name: "projectId"))
@@ -791,10 +805,14 @@ module Aws::IoTSiteWise
791
805
  GroupIdentity.add_member(:id, Shapes::ShapeRef.new(shape: IdentityId, required: true, location_name: "id"))
792
806
  GroupIdentity.struct_class = Types::GroupIdentity
793
807
 
808
+ IAMUserIdentity.add_member(:arn, Shapes::ShapeRef.new(shape: ARN, required: true, location_name: "arn"))
809
+ IAMUserIdentity.struct_class = Types::IAMUserIdentity
810
+
794
811
  IDs.member = Shapes::ShapeRef.new(shape: ID)
795
812
 
796
813
  Identity.add_member(:user, Shapes::ShapeRef.new(shape: UserIdentity, location_name: "user"))
797
814
  Identity.add_member(:group, Shapes::ShapeRef.new(shape: GroupIdentity, location_name: "group"))
815
+ Identity.add_member(:iam_user, Shapes::ShapeRef.new(shape: IAMUserIdentity, location_name: "iamUser"))
798
816
  Identity.struct_class = Types::Identity
799
817
 
800
818
  Image.add_member(:id, Shapes::ShapeRef.new(shape: ID, location_name: "id"))
@@ -822,6 +840,7 @@ module Aws::IoTSiteWise
822
840
  ListAccessPoliciesRequest.add_member(:identity_id, Shapes::ShapeRef.new(shape: IdentityId, location: "querystring", location_name: "identityId"))
823
841
  ListAccessPoliciesRequest.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location: "querystring", location_name: "resourceType"))
824
842
  ListAccessPoliciesRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: ID, location: "querystring", location_name: "resourceId"))
843
+ ListAccessPoliciesRequest.add_member(:iam_arn, Shapes::ShapeRef.new(shape: ARN, location: "querystring", location_name: "iamArn"))
825
844
  ListAccessPoliciesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location: "querystring", location_name: "nextToken"))
826
845
  ListAccessPoliciesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location: "querystring", location_name: "maxResults"))
827
846
  ListAccessPoliciesRequest.struct_class = Types::ListAccessPoliciesRequest
@@ -1317,6 +1336,20 @@ module Aws::IoTSiteWise
1317
1336
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
1318
1337
  end)
1319
1338
 
1339
+ api.add_operation(:create_presigned_portal_url, Seahorse::Model::Operation.new.tap do |o|
1340
+ o.name = "CreatePresignedPortalUrl"
1341
+ o.http_method = "GET"
1342
+ o.http_request_uri = "/portals/{portalId}/presigned-url"
1343
+ o.endpoint_pattern = {
1344
+ "hostPrefix" => "monitor.",
1345
+ }
1346
+ o.input = Shapes::ShapeRef.new(shape: CreatePresignedPortalUrlRequest)
1347
+ o.output = Shapes::ShapeRef.new(shape: CreatePresignedPortalUrlResponse)
1348
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequestException)
1349
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailureException)
1350
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1351
+ end)
1352
+
1320
1353
  api.add_operation(:create_project, Seahorse::Model::Operation.new.tap do |o|
1321
1354
  o.name = "CreateProject"
1322
1355
  o.http_method = "POST"
@@ -10,15 +10,15 @@
10
10
  module Aws::IoTSiteWise
11
11
  module Types
12
12
 
13
- # Contains an access policy that defines an AWS SSO identity's access
14
- # to an AWS IoT SiteWise Monitor resource.
13
+ # Contains an access policy that defines an identity's access to an AWS
14
+ # IoT SiteWise Monitor resource.
15
15
  #
16
16
  # @!attribute [rw] id
17
17
  # The ID of the access policy.
18
18
  # @return [String]
19
19
  #
20
20
  # @!attribute [rw] identity
21
- # The AWS SSO identity (a user or group).
21
+ # The identity (an AWS SSO user, an AWS SSO group, or an IAM user).
22
22
  # @return [Types::Identity]
23
23
  #
24
24
  # @!attribute [rw] resource
@@ -143,7 +143,7 @@ module Aws::IoTSiteWise
143
143
  #
144
144
  # @!attribute [rw] name
145
145
  # The hierarchy name provided in the [CreateAssetModel][1] or
146
- # [UpdateAssetModel][2] API.
146
+ # [UpdateAssetModel][2] API operation.
147
147
  #
148
148
  #
149
149
  #
@@ -177,7 +177,7 @@ module Aws::IoTSiteWise
177
177
  #
178
178
  # @!attribute [rw] name
179
179
  # The name of the asset model hierarchy that you specify by using the
180
- # [CreateAssetModel][1] or [UpdateAssetModel][2] API.
180
+ # [CreateAssetModel][1] or [UpdateAssetModel][2] API operation.
181
181
  #
182
182
  #
183
183
  #
@@ -212,7 +212,7 @@ module Aws::IoTSiteWise
212
212
  #
213
213
  # @!attribute [rw] name
214
214
  # The name of the asset model hierarchy definition (as specified in
215
- # [CreateAssetModel][1] or [UpdateAssetModel][2]).
215
+ # the [CreateAssetModel][1] or [UpdateAssetModel][2] API operation).
216
216
  #
217
217
  #
218
218
  #
@@ -971,6 +971,9 @@ module Aws::IoTSiteWise
971
971
  # group: {
972
972
  # id: "IdentityId", # required
973
973
  # },
974
+ # iam_user: {
975
+ # arn: "ARN", # required
976
+ # },
974
977
  # },
975
978
  # access_policy_resource: { # required
976
979
  # portal: {
@@ -988,13 +991,13 @@ module Aws::IoTSiteWise
988
991
  # }
989
992
  #
990
993
  # @!attribute [rw] access_policy_identity
991
- # The identity for this access policy. Choose either a `user` or a
992
- # `group` but not both.
994
+ # The identity for this access policy. Choose an AWS SSO user, an AWS
995
+ # SSO group, or an IAM user.
993
996
  # @return [Types::Identity]
994
997
  #
995
998
  # @!attribute [rw] access_policy_resource
996
999
  # The AWS IoT SiteWise Monitor resource for this access policy. Choose
997
- # either `portal` or `project` but not both.
1000
+ # either a portal or a project.
998
1001
  # @return [Types::Resource]
999
1002
  #
1000
1003
  # @!attribute [rw] access_policy_permission
@@ -1450,6 +1453,7 @@ module Aws::IoTSiteWise
1450
1453
  # tags: {
1451
1454
  # "TagKey" => "TagValue",
1452
1455
  # },
1456
+ # portal_auth_mode: "IAM", # accepts IAM, SSO
1453
1457
  # }
1454
1458
  #
1455
1459
  # @!attribute [rw] portal_name
@@ -1500,6 +1504,32 @@ module Aws::IoTSiteWise
1500
1504
  # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html
1501
1505
  # @return [Hash<String,String>]
1502
1506
  #
1507
+ # @!attribute [rw] portal_auth_mode
1508
+ # The service to use to authenticate users to the portal. Choose from
1509
+ # the following options:
1510
+ #
1511
+ # * `SSO` – The portal uses AWS Single Sign-On to authenticate users
1512
+ # and manage user permissions. Before you can create a portal that
1513
+ # uses AWS SSO, you must enable AWS SSO. For more information, see
1514
+ # [Enabling AWS SSO][1] in the *AWS IoT SiteWise User Guide*. This
1515
+ # option is only available in AWS Regions other than the China
1516
+ # Regions.
1517
+ #
1518
+ # * `IAM` – The portal uses AWS Identity and Access Management (IAM)
1519
+ # to authenticate users and manage user permissions. IAM users must
1520
+ # have the `iotsitewise:CreatePresignedPortalUrl` permission to sign
1521
+ # in to the portal. This option is only available in the China
1522
+ # Regions.
1523
+ #
1524
+ # You can't change this value after you create a portal.
1525
+ #
1526
+ # Default: `SSO`
1527
+ #
1528
+ #
1529
+ #
1530
+ # [1]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso
1531
+ # @return [String]
1532
+ #
1503
1533
  class CreatePortalRequest < Struct.new(
1504
1534
  :portal_name,
1505
1535
  :portal_description,
@@ -1507,7 +1537,8 @@ module Aws::IoTSiteWise
1507
1537
  :client_token,
1508
1538
  :portal_logo_image_file,
1509
1539
  :role_arn,
1510
- :tags)
1540
+ :tags,
1541
+ :portal_auth_mode)
1511
1542
  SENSITIVE = []
1512
1543
  include Aws::Structure
1513
1544
  end
@@ -1527,7 +1558,15 @@ module Aws::IoTSiteWise
1527
1558
  # @return [String]
1528
1559
  #
1529
1560
  # @!attribute [rw] portal_start_url
1530
- # The public URL for the AWS IoT SiteWise Monitor portal.
1561
+ # The URL for the AWS IoT SiteWise Monitor portal. You can use this
1562
+ # URL to access portals that use AWS SSO for authentication. For
1563
+ # portals that use IAM for authentication, you must use the
1564
+ # [CreatePresignedPortalUrl][1] operation to create a URL that you can
1565
+ # use to access the portal.
1566
+ #
1567
+ #
1568
+ #
1569
+ # [1]: https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html
1531
1570
  # @return [String]
1532
1571
  #
1533
1572
  # @!attribute [rw] portal_status
@@ -1536,7 +1575,7 @@ module Aws::IoTSiteWise
1536
1575
  # @return [Types::PortalStatus]
1537
1576
  #
1538
1577
  # @!attribute [rw] sso_application_id
1539
- # The associated AWS SSO application Id.
1578
+ # The associated AWS SSO application ID, if the portal uses AWS SSO.
1540
1579
  # @return [String]
1541
1580
  #
1542
1581
  class CreatePortalResponse < Struct.new(
@@ -1549,6 +1588,45 @@ module Aws::IoTSiteWise
1549
1588
  include Aws::Structure
1550
1589
  end
1551
1590
 
1591
+ # @note When making an API call, you may pass CreatePresignedPortalUrlRequest
1592
+ # data as a hash:
1593
+ #
1594
+ # {
1595
+ # portal_id: "ID", # required
1596
+ # session_duration_seconds: 1,
1597
+ # }
1598
+ #
1599
+ # @!attribute [rw] portal_id
1600
+ # The ID of the portal to access.
1601
+ # @return [String]
1602
+ #
1603
+ # @!attribute [rw] session_duration_seconds
1604
+ # The duration (in seconds) for which the session at the URL is valid.
1605
+ #
1606
+ # Default: 900 seconds (15 minutes)
1607
+ # @return [Integer]
1608
+ #
1609
+ class CreatePresignedPortalUrlRequest < Struct.new(
1610
+ :portal_id,
1611
+ :session_duration_seconds)
1612
+ SENSITIVE = []
1613
+ include Aws::Structure
1614
+ end
1615
+
1616
+ # @!attribute [rw] presigned_portal_url
1617
+ # The pre-signed URL to the portal. The URL contains the portal ID and
1618
+ # a session token that lets you access the portal. The URL has the
1619
+ # following format.
1620
+ #
1621
+ # `https://<portal-id>.app.iotsitewise.aws/auth?token=<encrypted-token>`
1622
+ # @return [String]
1623
+ #
1624
+ class CreatePresignedPortalUrlResponse < Struct.new(
1625
+ :presigned_portal_url)
1626
+ SENSITIVE = []
1627
+ include Aws::Structure
1628
+ end
1629
+
1552
1630
  # @note When making an API call, you may pass CreateProjectRequest
1553
1631
  # data as a hash:
1554
1632
  #
@@ -1912,8 +1990,8 @@ module Aws::IoTSiteWise
1912
1990
  # @return [String]
1913
1991
  #
1914
1992
  # @!attribute [rw] access_policy_identity
1915
- # The AWS SSO identity (user or group) to which this access policy
1916
- # applies.
1993
+ # The identity (AWS SSO user, AWS SSO group, or IAM user) to which
1994
+ # this access policy applies.
1917
1995
  # @return [Types::Identity]
1918
1996
  #
1919
1997
  # @!attribute [rw] access_policy_resource
@@ -2411,12 +2489,20 @@ module Aws::IoTSiteWise
2411
2489
  #
2412
2490
  # @!attribute [rw] portal_client_id
2413
2491
  # The AWS SSO application generated client ID (used with AWS SSO
2414
- # APIs).
2492
+ # APIs). AWS IoT SiteWise includes `portalClientId` for only portals
2493
+ # that use AWS SSO to authenticate users.
2415
2494
  # @return [String]
2416
2495
  #
2417
2496
  # @!attribute [rw] portal_start_url
2418
- # The public root URL for the AWS IoT AWS IoT SiteWise Monitor
2419
- # application portal.
2497
+ # The URL for the AWS IoT SiteWise Monitor portal. You can use this
2498
+ # URL to access portals that use AWS SSO for authentication. For
2499
+ # portals that use IAM for authentication, you must use the
2500
+ # [CreatePresignedPortalUrl][1] operation to create a URL that you can
2501
+ # use to access the portal.
2502
+ #
2503
+ #
2504
+ #
2505
+ # [1]: https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html
2420
2506
  # @return [String]
2421
2507
  #
2422
2508
  # @!attribute [rw] portal_contact_email
@@ -2452,6 +2538,10 @@ module Aws::IoTSiteWise
2452
2538
  # [2]: https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html
2453
2539
  # @return [String]
2454
2540
  #
2541
+ # @!attribute [rw] portal_auth_mode
2542
+ # The service to use to authenticate users to the portal.
2543
+ # @return [String]
2544
+ #
2455
2545
  class DescribePortalResponse < Struct.new(
2456
2546
  :portal_id,
2457
2547
  :portal_arn,
@@ -2464,7 +2554,8 @@ module Aws::IoTSiteWise
2464
2554
  :portal_creation_date,
2465
2555
  :portal_last_update_date,
2466
2556
  :portal_logo_image_location,
2467
- :role_arn)
2557
+ :role_arn,
2558
+ :portal_auth_mode)
2468
2559
  SENSITIVE = []
2469
2560
  include Aws::Structure
2470
2561
  end
@@ -3020,7 +3111,41 @@ module Aws::IoTSiteWise
3020
3111
  include Aws::Structure
3021
3112
  end
3022
3113
 
3023
- # Contains an AWS SSO identity ID for a user or group.
3114
+ # Contains information about an AWS Identity and Access Management (IAM)
3115
+ # user.
3116
+ #
3117
+ # @note When making an API call, you may pass IAMUserIdentity
3118
+ # data as a hash:
3119
+ #
3120
+ # {
3121
+ # arn: "ARN", # required
3122
+ # }
3123
+ #
3124
+ # @!attribute [rw] arn
3125
+ # The ARN of the IAM user. IAM users must have the
3126
+ # `iotsitewise:CreatePresignedPortalUrl` permission to sign in to the
3127
+ # portal. For more information, see [IAM ARNs][1] in the *IAM User
3128
+ # Guide*.
3129
+ #
3130
+ # <note markdown="1"> If you delete the IAM user, access policies that contain this
3131
+ # identity include an empty `arn`. You can delete the access policy
3132
+ # for the IAM user that no longer exists.
3133
+ #
3134
+ # </note>
3135
+ #
3136
+ #
3137
+ #
3138
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
3139
+ # @return [String]
3140
+ #
3141
+ class IAMUserIdentity < Struct.new(
3142
+ :arn)
3143
+ SENSITIVE = []
3144
+ include Aws::Structure
3145
+ end
3146
+
3147
+ # Contains an identity that can access an AWS IoT SiteWise Monitor
3148
+ # resource.
3024
3149
  #
3025
3150
  # <note markdown="1"> Currently, you can't use AWS APIs to retrieve AWS SSO identity IDs.
3026
3151
  # You can find the AWS SSO identity IDs in the URL of user and group
@@ -3042,19 +3167,27 @@ module Aws::IoTSiteWise
3042
3167
  # group: {
3043
3168
  # id: "IdentityId", # required
3044
3169
  # },
3170
+ # iam_user: {
3171
+ # arn: "ARN", # required
3172
+ # },
3045
3173
  # }
3046
3174
  #
3047
3175
  # @!attribute [rw] user
3048
- # A user identity.
3176
+ # An AWS SSO user identity.
3049
3177
  # @return [Types::UserIdentity]
3050
3178
  #
3051
3179
  # @!attribute [rw] group
3052
- # A group identity.
3180
+ # An AWS SSO group identity.
3053
3181
  # @return [Types::GroupIdentity]
3054
3182
  #
3183
+ # @!attribute [rw] iam_user
3184
+ # An IAM user identity.
3185
+ # @return [Types::IAMUserIdentity]
3186
+ #
3055
3187
  class Identity < Struct.new(
3056
3188
  :user,
3057
- :group)
3189
+ :group,
3190
+ :iam_user)
3058
3191
  SENSITIVE = []
3059
3192
  include Aws::Structure
3060
3193
  end
@@ -3188,22 +3321,23 @@ module Aws::IoTSiteWise
3188
3321
  # data as a hash:
3189
3322
  #
3190
3323
  # {
3191
- # identity_type: "USER", # accepts USER, GROUP
3324
+ # identity_type: "USER", # accepts USER, GROUP, IAM
3192
3325
  # identity_id: "IdentityId",
3193
3326
  # resource_type: "PORTAL", # accepts PORTAL, PROJECT
3194
3327
  # resource_id: "ID",
3328
+ # iam_arn: "ARN",
3195
3329
  # next_token: "NextToken",
3196
3330
  # max_results: 1,
3197
3331
  # }
3198
3332
  #
3199
3333
  # @!attribute [rw] identity_type
3200
- # The type of identity (user or group). This parameter is required if
3201
- # you specify `identityId`.
3334
+ # The type of identity (AWS SSO user, AWS SSO group, or IAM user).
3335
+ # This parameter is required if you specify `identityId`.
3202
3336
  # @return [String]
3203
3337
  #
3204
3338
  # @!attribute [rw] identity_id
3205
3339
  # The ID of the identity. This parameter is required if you specify
3206
- # `identityType`.
3340
+ # `USER` or `GROUP` for `identityType`.
3207
3341
  # @return [String]
3208
3342
  #
3209
3343
  # @!attribute [rw] resource_type
@@ -3216,6 +3350,16 @@ module Aws::IoTSiteWise
3216
3350
  # `resourceType`.
3217
3351
  # @return [String]
3218
3352
  #
3353
+ # @!attribute [rw] iam_arn
3354
+ # The ARN of the IAM user. For more information, see [IAM ARNs][1] in
3355
+ # the *IAM User Guide*. This parameter is required if you specify
3356
+ # `IAM` for `identityType`.
3357
+ #
3358
+ #
3359
+ #
3360
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html
3361
+ # @return [String]
3362
+ #
3219
3363
  # @!attribute [rw] next_token
3220
3364
  # The token to be used for the next set of paginated results.
3221
3365
  # @return [String]
@@ -3231,6 +3375,7 @@ module Aws::IoTSiteWise
3231
3375
  :identity_id,
3232
3376
  :resource_type,
3233
3377
  :resource_id,
3378
+ :iam_arn,
3234
3379
  :next_token,
3235
3380
  :max_results)
3236
3381
  SENSITIVE = []
@@ -3889,8 +4034,15 @@ module Aws::IoTSiteWise
3889
4034
  # @return [String]
3890
4035
  #
3891
4036
  # @!attribute [rw] start_url
3892
- # The public root URL for the AWS IoT AWS IoT SiteWise Monitor
3893
- # application portal.
4037
+ # The URL for the AWS IoT SiteWise Monitor portal. You can use this
4038
+ # URL to access portals that use AWS SSO for authentication. For
4039
+ # portals that use IAM for authentication, you must use the
4040
+ # [CreatePresignedPortalUrl][1] operation to create a URL that you can
4041
+ # use to access the portal.
4042
+ #
4043
+ #
4044
+ #
4045
+ # [1]: https://docs.aws.amazon.com/AWS IoT SiteWise API ReferenceAPI_CreatePresignedPortalUrl.html
3894
4046
  # @return [String]
3895
4047
  #
3896
4048
  # @!attribute [rw] creation_date
@@ -4146,7 +4298,8 @@ module Aws::IoTSiteWise
4146
4298
  end
4147
4299
 
4148
4300
  # Contains a list of value updates for an asset property in the list of
4149
- # asset entries consumed by the [BatchPutAssetPropertyValue][1] API.
4301
+ # asset entries consumed by the [BatchPutAssetPropertyValue][1] API
4302
+ # operation.
4150
4303
  #
4151
4304
  #
4152
4305
  #
@@ -4543,6 +4696,9 @@ module Aws::IoTSiteWise
4543
4696
  # group: {
4544
4697
  # id: "IdentityId", # required
4545
4698
  # },
4699
+ # iam_user: {
4700
+ # arn: "ARN", # required
4701
+ # },
4546
4702
  # },
4547
4703
  # access_policy_resource: { # required
4548
4704
  # portal: {
@@ -4561,13 +4717,13 @@ module Aws::IoTSiteWise
4561
4717
  # @return [String]
4562
4718
  #
4563
4719
  # @!attribute [rw] access_policy_identity
4564
- # The identity for this access policy. Choose either a `user` or a
4565
- # `group` but not both.
4720
+ # The identity for this access policy. Choose an AWS SSO user, an AWS
4721
+ # SSO group, or an IAM user.
4566
4722
  # @return [Types::Identity]
4567
4723
  #
4568
4724
  # @!attribute [rw] access_policy_resource
4569
4725
  # The AWS IoT SiteWise Monitor resource for this access policy. Choose
4570
- # either `portal` or `project` but not both.
4726
+ # either a portal or a project.
4571
4727
  # @return [Types::Resource]
4572
4728
  #
4573
4729
  # @!attribute [rw] access_policy_permission
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-iotsitewise
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-15 00:00:00.000000000 Z
11
+ date: 2020-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core