aws-sdk-workmail 1.50.0 → 1.52.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.
@@ -30,7 +30,7 @@ require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
31
  require 'aws-sdk-core/plugins/defaults_mode.rb'
32
32
  require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/signature_v4.rb'
33
+ require 'aws-sdk-core/plugins/sign.rb'
34
34
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
35
35
 
36
36
  Aws::Plugins::GlobalConfiguration.add_identifier(:workmail)
@@ -79,8 +79,9 @@ module Aws::WorkMail
79
79
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
80
80
  add_plugin(Aws::Plugins::DefaultsMode)
81
81
  add_plugin(Aws::Plugins::RecursionDetection)
82
- add_plugin(Aws::Plugins::SignatureV4)
82
+ add_plugin(Aws::Plugins::Sign)
83
83
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
84
+ add_plugin(Aws::WorkMail::Plugins::Endpoints)
84
85
 
85
86
  # @overload initialize(options)
86
87
  # @param [Hash] options
@@ -297,6 +298,19 @@ module Aws::WorkMail
297
298
  # ** Please note ** When response stubbing is enabled, no HTTP
298
299
  # requests are made, and retries are disabled.
299
300
  #
301
+ # @option options [Aws::TokenProvider] :token_provider
302
+ # A Bearer Token Provider. This can be an instance of any one of the
303
+ # following classes:
304
+ #
305
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
306
+ # tokens.
307
+ #
308
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
309
+ # access token generated from `aws login`.
310
+ #
311
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
312
+ # will be used to search for tokens configured for your profile in shared configuration files.
313
+ #
300
314
  # @option options [Boolean] :use_dualstack_endpoint
301
315
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
302
316
  # will be used if available.
@@ -310,6 +324,9 @@ module Aws::WorkMail
310
324
  # When `true`, request parameters are validated before
311
325
  # sending the request.
312
326
  #
327
+ # @option options [Aws::WorkMail::EndpointProvider] :endpoint_provider
328
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::WorkMail::EndpointParameters`
329
+ #
313
330
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
314
331
  # requests through. Formatted like 'http://proxy.com:123'.
315
332
  #
@@ -421,6 +438,43 @@ module Aws::WorkMail
421
438
  req.send_request(options)
422
439
  end
423
440
 
441
+ # Assumes an impersonation role for the given WorkMail organization.
442
+ # This method returns an authentication token you can use to make
443
+ # impersonated calls.
444
+ #
445
+ # @option params [required, String] :organization_id
446
+ # The WorkMail organization under which the impersonation role will be
447
+ # assumed.
448
+ #
449
+ # @option params [required, String] :impersonation_role_id
450
+ # The impersonation role ID to assume.
451
+ #
452
+ # @return [Types::AssumeImpersonationRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
453
+ #
454
+ # * {Types::AssumeImpersonationRoleResponse#token #token} => String
455
+ # * {Types::AssumeImpersonationRoleResponse#expires_in #expires_in} => Integer
456
+ #
457
+ # @example Request syntax with placeholder values
458
+ #
459
+ # resp = client.assume_impersonation_role({
460
+ # organization_id: "OrganizationId", # required
461
+ # impersonation_role_id: "ImpersonationRoleId", # required
462
+ # })
463
+ #
464
+ # @example Response structure
465
+ #
466
+ # resp.token #=> String
467
+ # resp.expires_in #=> Integer
468
+ #
469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssumeImpersonationRole AWS API Documentation
470
+ #
471
+ # @overload assume_impersonation_role(params = {})
472
+ # @param [Hash] params ({})
473
+ def assume_impersonation_role(params = {}, options = {})
474
+ req = build_request(:assume_impersonation_role, params)
475
+ req.send_request(options)
476
+ end
477
+
424
478
  # Cancels a mailbox export job.
425
479
  #
426
480
  # <note markdown="1"> If the mailbox export job is near completion, it might not be possible
@@ -459,7 +513,7 @@ module Aws::WorkMail
459
513
  req.send_request(options)
460
514
  end
461
515
 
462
- # Adds an alias to the set of a given member (user or group) of Amazon
516
+ # Adds an alias to the set of a given member (user or group) of
463
517
  # WorkMail.
464
518
  #
465
519
  # @option params [required, String] :organization_id
@@ -501,8 +555,8 @@ module Aws::WorkMail
501
555
  # not need to pass this option.**
502
556
  #
503
557
  # @option params [required, String] :organization_id
504
- # The Amazon WorkMail organization for which the
505
- # `AvailabilityConfiguration` will be created.
558
+ # The WorkMail organization for which the `AvailabilityConfiguration`
559
+ # will be created.
506
560
  #
507
561
  # @option params [required, String] :domain_name
508
562
  # The domain to which the provider applies.
@@ -544,7 +598,7 @@ module Aws::WorkMail
544
598
  req.send_request(options)
545
599
  end
546
600
 
547
- # Creates a group that can be used in Amazon WorkMail by calling the
601
+ # Creates a group that can be used in WorkMail by calling the
548
602
  # RegisterToWorkMail operation.
549
603
  #
550
604
  # @option params [required, String] :organization_id
@@ -577,11 +631,77 @@ module Aws::WorkMail
577
631
  req.send_request(options)
578
632
  end
579
633
 
580
- # Creates a new mobile device access rule for the specified Amazon
581
- # WorkMail organization.
634
+ # Creates an impersonation role for the given WorkMail organization.
635
+ #
636
+ # *Idempotency* ensures that an API request completes no more than one
637
+ # time. With an idempotent request, if the original request completes
638
+ # successfully, any subsequent retries also complete successfully
639
+ # without performing any further actions.
640
+ #
641
+ # @option params [String] :client_token
642
+ # The idempotency token for the client request.
643
+ #
644
+ # **A suitable default value is auto-generated.** You should normally
645
+ # not need to pass this option.**
582
646
  #
583
647
  # @option params [required, String] :organization_id
584
- # The Amazon WorkMail organization under which the rule will be created.
648
+ # The WorkMail organization to create the new impersonation role within.
649
+ #
650
+ # @option params [required, String] :name
651
+ # The name of the new impersonation role.
652
+ #
653
+ # @option params [required, String] :type
654
+ # The impersonation role's type. The available impersonation role types
655
+ # are `READ_ONLY` or `FULL_ACCESS`.
656
+ #
657
+ # @option params [String] :description
658
+ # The description of the new impersonation role.
659
+ #
660
+ # @option params [required, Array<Types::ImpersonationRule>] :rules
661
+ # The list of rules for the impersonation role.
662
+ #
663
+ # @return [Types::CreateImpersonationRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
664
+ #
665
+ # * {Types::CreateImpersonationRoleResponse#impersonation_role_id #impersonation_role_id} => String
666
+ #
667
+ # @example Request syntax with placeholder values
668
+ #
669
+ # resp = client.create_impersonation_role({
670
+ # client_token: "IdempotencyClientToken",
671
+ # organization_id: "OrganizationId", # required
672
+ # name: "ImpersonationRoleName", # required
673
+ # type: "FULL_ACCESS", # required, accepts FULL_ACCESS, READ_ONLY
674
+ # description: "ImpersonationRoleDescription",
675
+ # rules: [ # required
676
+ # {
677
+ # impersonation_rule_id: "ImpersonationRuleId", # required
678
+ # name: "ImpersonationRuleName",
679
+ # description: "ImpersonationRuleDescription",
680
+ # effect: "ALLOW", # required, accepts ALLOW, DENY
681
+ # target_users: ["EntityIdentifier"],
682
+ # not_target_users: ["EntityIdentifier"],
683
+ # },
684
+ # ],
685
+ # })
686
+ #
687
+ # @example Response structure
688
+ #
689
+ # resp.impersonation_role_id #=> String
690
+ #
691
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateImpersonationRole AWS API Documentation
692
+ #
693
+ # @overload create_impersonation_role(params = {})
694
+ # @param [Hash] params ({})
695
+ def create_impersonation_role(params = {}, options = {})
696
+ req = build_request(:create_impersonation_role, params)
697
+ req.send_request(options)
698
+ end
699
+
700
+ # Creates a new mobile device access rule for the specified WorkMail
701
+ # organization.
702
+ #
703
+ # @option params [required, String] :organization_id
704
+ # The WorkMail organization under which the rule will be created.
585
705
  #
586
706
  # @option params [String] :client_token
587
707
  # The idempotency token for the client request.
@@ -662,26 +782,25 @@ module Aws::WorkMail
662
782
  req.send_request(options)
663
783
  end
664
784
 
665
- # Creates a new Amazon WorkMail organization. Optionally, you can choose
666
- # to associate an existing AWS Directory Service directory with your
785
+ # Creates a new WorkMail organization. Optionally, you can choose to
786
+ # associate an existing AWS Directory Service directory with your
667
787
  # organization. If an AWS Directory Service directory ID is specified,
668
788
  # the organization alias must match the directory alias. If you choose
669
789
  # not to associate an existing directory with your organization, then we
670
- # create a new Amazon WorkMail directory for you. For more information,
671
- # see [Adding an organization][1] in the *Amazon WorkMail Administrator
672
- # Guide*.
790
+ # create a new WorkMail directory for you. For more information, see
791
+ # [Adding an organization][1] in the *WorkMail Administrator Guide*.
673
792
  #
674
793
  # You can associate multiple email domains with an organization, then
675
- # set your default email domain from the Amazon WorkMail console. You
676
- # can also associate a domain that is managed in an Amazon Route 53
677
- # public hosted zone. For more information, see [Adding a domain][2] and
678
- # [Choosing the default domain][3] in the *Amazon WorkMail Administrator
794
+ # choose your default email domain from the WorkMail console. You can
795
+ # also associate a domain that is managed in an Amazon Route 53 public
796
+ # hosted zone. For more information, see [Adding a domain][2] and
797
+ # [Choosing the default domain][3] in the *WorkMail Administrator
679
798
  # Guide*.
680
799
  #
681
- # Optionally, you can use a customer managed master key from AWS Key
682
- # Management Service (AWS KMS) to encrypt email for your organization.
683
- # If you don't associate an AWS KMS key, Amazon WorkMail creates a
684
- # default AWS managed master key for you.
800
+ # Optionally, you can use a customer managed key from AWS Key Management
801
+ # Service (AWS KMS) to encrypt email for your organization. If you
802
+ # don't associate an AWS KMS key, WorkMail creates a default, AWS
803
+ # managed key for you.
685
804
  #
686
805
  #
687
806
  #
@@ -705,13 +824,12 @@ module Aws::WorkMail
705
824
  # The email domains to associate with the organization.
706
825
  #
707
826
  # @option params [String] :kms_key_arn
708
- # The Amazon Resource Name (ARN) of a customer managed master key from
709
- # AWS KMS.
827
+ # The Amazon Resource Name (ARN) of a customer managed key from AWS KMS.
710
828
  #
711
829
  # @option params [Boolean] :enable_interoperability
712
- # When `true`, allows organization interoperability between Amazon
713
- # WorkMail and Microsoft Exchange. Can only be set to `true` if an AD
714
- # Connector directory ID is included in the request.
830
+ # When `true`, allows organization interoperability between WorkMail and
831
+ # Microsoft Exchange. If `true`, you must include a AD Connector
832
+ # directory ID in the request.
715
833
  #
716
834
  # @return [Types::CreateOrganizationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
717
835
  #
@@ -746,7 +864,7 @@ module Aws::WorkMail
746
864
  req.send_request(options)
747
865
  end
748
866
 
749
- # Creates a new Amazon WorkMail resource.
867
+ # Creates a new WorkMail resource.
750
868
  #
751
869
  # @option params [required, String] :organization_id
752
870
  # The identifier associated with the organization for which the resource
@@ -784,7 +902,7 @@ module Aws::WorkMail
784
902
  req.send_request(options)
785
903
  end
786
904
 
787
- # Creates a user who can be used in Amazon WorkMail by calling the
905
+ # Creates a user who can be used in WorkMail by calling the
788
906
  # RegisterToWorkMail operation.
789
907
  #
790
908
  # @option params [required, String] :organization_id
@@ -897,8 +1015,8 @@ module Aws::WorkMail
897
1015
  # organization and domain.
898
1016
  #
899
1017
  # @option params [required, String] :organization_id
900
- # The Amazon WorkMail organization for which the
901
- # `AvailabilityConfiguration` will be deleted.
1018
+ # The WorkMail organization for which the `AvailabilityConfiguration`
1019
+ # will be deleted.
902
1020
  #
903
1021
  # @option params [required, String] :domain_name
904
1022
  # The domain for which the `AvailabilityConfiguration` will be deleted.
@@ -945,7 +1063,7 @@ module Aws::WorkMail
945
1063
  req.send_request(options)
946
1064
  end
947
1065
 
948
- # Deletes a group from Amazon WorkMail.
1066
+ # Deletes a group from WorkMail.
949
1067
  #
950
1068
  # @option params [required, String] :organization_id
951
1069
  # The organization that contains the group.
@@ -971,6 +1089,32 @@ module Aws::WorkMail
971
1089
  req.send_request(options)
972
1090
  end
973
1091
 
1092
+ # Deletes an impersonation role for the given WorkMail organization.
1093
+ #
1094
+ # @option params [required, String] :organization_id
1095
+ # The WorkMail organization from which to delete the impersonation role.
1096
+ #
1097
+ # @option params [required, String] :impersonation_role_id
1098
+ # The ID of the impersonation role to delete.
1099
+ #
1100
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1101
+ #
1102
+ # @example Request syntax with placeholder values
1103
+ #
1104
+ # resp = client.delete_impersonation_role({
1105
+ # organization_id: "OrganizationId", # required
1106
+ # impersonation_role_id: "ImpersonationRoleId", # required
1107
+ # })
1108
+ #
1109
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteImpersonationRole AWS API Documentation
1110
+ #
1111
+ # @overload delete_impersonation_role(params = {})
1112
+ # @param [Hash] params ({})
1113
+ def delete_impersonation_role(params = {}, options = {})
1114
+ req = build_request(:delete_impersonation_role, params)
1115
+ req.send_request(options)
1116
+ end
1117
+
974
1118
  # Deletes permissions granted to a member (user or group).
975
1119
  #
976
1120
  # @option params [required, String] :organization_id
@@ -1013,7 +1157,7 @@ module Aws::WorkMail
1013
1157
  # </note>
1014
1158
  #
1015
1159
  # @option params [required, String] :organization_id
1016
- # The Amazon WorkMail organization for which the access override will be
1160
+ # The WorkMail organization for which the access override will be
1017
1161
  # deleted.
1018
1162
  #
1019
1163
  # @option params [required, String] :user_id
@@ -1050,7 +1194,7 @@ module Aws::WorkMail
1050
1194
  req.send_request(options)
1051
1195
  end
1052
1196
 
1053
- # Deletes a mobile device access rule for the specified Amazon WorkMail
1197
+ # Deletes a mobile device access rule for the specified WorkMail
1054
1198
  # organization.
1055
1199
  #
1056
1200
  # <note markdown="1"> Deleting already deleted and non-existing rules does not produce an
@@ -1060,7 +1204,7 @@ module Aws::WorkMail
1060
1204
  # </note>
1061
1205
  #
1062
1206
  # @option params [required, String] :organization_id
1063
- # The Amazon WorkMail organization under which the rule will be deleted.
1207
+ # The WorkMail organization under which the rule will be deleted.
1064
1208
  #
1065
1209
  # @option params [required, String] :mobile_device_access_rule_id
1066
1210
  # The identifier of the rule to be deleted.
@@ -1083,11 +1227,10 @@ module Aws::WorkMail
1083
1227
  req.send_request(options)
1084
1228
  end
1085
1229
 
1086
- # Deletes an Amazon WorkMail organization and all underlying AWS
1087
- # resources managed by Amazon WorkMail as part of the organization. You
1088
- # can choose whether to delete the associated directory. For more
1089
- # information, see [Removing an organization][1] in the *Amazon WorkMail
1090
- # Administrator Guide*.
1230
+ # Deletes an WorkMail organization and all underlying AWS resources
1231
+ # managed by WorkMail as part of the organization. You can choose
1232
+ # whether to delete the associated directory. For more information, see
1233
+ # [Removing an organization][1] in the *WorkMail Administrator Guide*.
1091
1234
  #
1092
1235
  #
1093
1236
  #
@@ -1187,8 +1330,8 @@ module Aws::WorkMail
1187
1330
  req.send_request(options)
1188
1331
  end
1189
1332
 
1190
- # Deletes a user from Amazon WorkMail and all subsequent systems. Before
1191
- # you can delete a user, the user state must be `DISABLED`. Use the
1333
+ # Deletes a user from WorkMail and all subsequent systems. Before you
1334
+ # can delete a user, the user state must be `DISABLED`. Use the
1192
1335
  # DescribeUser action to confirm the user state.
1193
1336
  #
1194
1337
  # Deleting a user is permanent and cannot be undone. WorkMail archives
@@ -1218,14 +1361,14 @@ module Aws::WorkMail
1218
1361
  req.send_request(options)
1219
1362
  end
1220
1363
 
1221
- # Mark a user, group, or resource as no longer used in Amazon WorkMail.
1222
- # This action disassociates the mailbox and schedules it for clean-up.
1364
+ # Mark a user, group, or resource as no longer used in WorkMail. This
1365
+ # action disassociates the mailbox and schedules it for clean-up.
1223
1366
  # WorkMail keeps mailboxes for 30 days before they are permanently
1224
1367
  # removed. The functionality in the console is *Disable*.
1225
1368
  #
1226
1369
  # @option params [required, String] :organization_id
1227
- # The identifier for the organization under which the Amazon WorkMail
1228
- # entity exists.
1370
+ # The identifier for the organization under which the WorkMail entity
1371
+ # exists.
1229
1372
  #
1230
1373
  # @option params [required, String] :entity_id
1231
1374
  # The identifier for the member (user or group) to be updated.
@@ -1248,15 +1391,13 @@ module Aws::WorkMail
1248
1391
  req.send_request(options)
1249
1392
  end
1250
1393
 
1251
- # Removes a domain from Amazon WorkMail, stops email routing to
1252
- # WorkMail, and removes the authorization allowing WorkMail use. SES
1253
- # keeps the domain because other applications may use it. You must first
1254
- # remove any email address used by WorkMail entities before you remove
1255
- # the domain.
1394
+ # Removes a domain from WorkMail, stops email routing to WorkMail, and
1395
+ # removes the authorization allowing WorkMail use. SES keeps the domain
1396
+ # because other applications may use it. You must first remove any email
1397
+ # address used by WorkMail entities before you remove the domain.
1256
1398
  #
1257
1399
  # @option params [required, String] :organization_id
1258
- # The Amazon WorkMail organization for which the domain will be
1259
- # deregistered.
1400
+ # The WorkMail organization for which the domain will be deregistered.
1260
1401
  #
1261
1402
  # @option params [required, String] :domain_name
1262
1403
  # The domain to deregister in WorkMail and SES.
@@ -1638,7 +1779,10 @@ module Aws::WorkMail
1638
1779
  end
1639
1780
 
1640
1781
  # Gets the effects of an organization's access control rules as they
1641
- # apply to a specified IPv4 address, access protocol action, or user ID.
1782
+ # apply to a specified IPv4 address, access protocol action, and user ID
1783
+ # or impersonation role ID. You must provide either the user ID or
1784
+ # impersonation role ID. Impersonation role ID can only be used with
1785
+ # Action EWS.
1642
1786
  #
1643
1787
  # @option params [required, String] :organization_id
1644
1788
  # The identifier for the organization.
@@ -1651,9 +1795,12 @@ module Aws::WorkMail
1651
1795
  # `AutoDiscover`, `EWS`, `IMAP`, `SMTP`, `WindowsOutlook`, and
1652
1796
  # `WebMail`.
1653
1797
  #
1654
- # @option params [required, String] :user_id
1798
+ # @option params [String] :user_id
1655
1799
  # The user ID.
1656
1800
  #
1801
+ # @option params [String] :impersonation_role_id
1802
+ # The impersonation role ID.
1803
+ #
1657
1804
  # @return [Types::GetAccessControlEffectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1658
1805
  #
1659
1806
  # * {Types::GetAccessControlEffectResponse#effect #effect} => String
@@ -1665,7 +1812,8 @@ module Aws::WorkMail
1665
1812
  # organization_id: "OrganizationId", # required
1666
1813
  # ip_address: "IpAddress", # required
1667
1814
  # action: "AccessControlRuleAction", # required
1668
- # user_id: "WorkMailIdentifier", # required
1815
+ # user_id: "WorkMailIdentifier",
1816
+ # impersonation_role_id: "ImpersonationRoleId",
1669
1817
  # })
1670
1818
  #
1671
1819
  # @example Response structure
@@ -1721,11 +1869,116 @@ module Aws::WorkMail
1721
1869
  req.send_request(options)
1722
1870
  end
1723
1871
 
1872
+ # Gets the impersonation role details for the given WorkMail
1873
+ # organization.
1874
+ #
1875
+ # @option params [required, String] :organization_id
1876
+ # The WorkMail organization from which to retrieve the impersonation
1877
+ # role.
1878
+ #
1879
+ # @option params [required, String] :impersonation_role_id
1880
+ # The impersonation role ID to retrieve.
1881
+ #
1882
+ # @return [Types::GetImpersonationRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1883
+ #
1884
+ # * {Types::GetImpersonationRoleResponse#impersonation_role_id #impersonation_role_id} => String
1885
+ # * {Types::GetImpersonationRoleResponse#name #name} => String
1886
+ # * {Types::GetImpersonationRoleResponse#type #type} => String
1887
+ # * {Types::GetImpersonationRoleResponse#description #description} => String
1888
+ # * {Types::GetImpersonationRoleResponse#rules #rules} => Array&lt;Types::ImpersonationRule&gt;
1889
+ # * {Types::GetImpersonationRoleResponse#date_created #date_created} => Time
1890
+ # * {Types::GetImpersonationRoleResponse#date_modified #date_modified} => Time
1891
+ #
1892
+ # @example Request syntax with placeholder values
1893
+ #
1894
+ # resp = client.get_impersonation_role({
1895
+ # organization_id: "OrganizationId", # required
1896
+ # impersonation_role_id: "ImpersonationRoleId", # required
1897
+ # })
1898
+ #
1899
+ # @example Response structure
1900
+ #
1901
+ # resp.impersonation_role_id #=> String
1902
+ # resp.name #=> String
1903
+ # resp.type #=> String, one of "FULL_ACCESS", "READ_ONLY"
1904
+ # resp.description #=> String
1905
+ # resp.rules #=> Array
1906
+ # resp.rules[0].impersonation_rule_id #=> String
1907
+ # resp.rules[0].name #=> String
1908
+ # resp.rules[0].description #=> String
1909
+ # resp.rules[0].effect #=> String, one of "ALLOW", "DENY"
1910
+ # resp.rules[0].target_users #=> Array
1911
+ # resp.rules[0].target_users[0] #=> String
1912
+ # resp.rules[0].not_target_users #=> Array
1913
+ # resp.rules[0].not_target_users[0] #=> String
1914
+ # resp.date_created #=> Time
1915
+ # resp.date_modified #=> Time
1916
+ #
1917
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetImpersonationRole AWS API Documentation
1918
+ #
1919
+ # @overload get_impersonation_role(params = {})
1920
+ # @param [Hash] params ({})
1921
+ def get_impersonation_role(params = {}, options = {})
1922
+ req = build_request(:get_impersonation_role, params)
1923
+ req.send_request(options)
1924
+ end
1925
+
1926
+ # Tests whether the given impersonation role can impersonate a target
1927
+ # user.
1928
+ #
1929
+ # @option params [required, String] :organization_id
1930
+ # The WorkMail organization where the impersonation role is defined.
1931
+ #
1932
+ # @option params [required, String] :impersonation_role_id
1933
+ # The impersonation role ID to test.
1934
+ #
1935
+ # @option params [required, String] :target_user
1936
+ # The WorkMail organization user chosen to test the impersonation role.
1937
+ # The following identity formats are available:
1938
+ #
1939
+ # * User ID: `12345678-1234-1234-1234-123456789012` or
1940
+ # `S-1-1-12-1234567890-123456789-123456789-1234`
1941
+ #
1942
+ # * Email address: `user@domain.tld`
1943
+ #
1944
+ # * User name: `user`
1945
+ #
1946
+ # @return [Types::GetImpersonationRoleEffectResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1947
+ #
1948
+ # * {Types::GetImpersonationRoleEffectResponse#type #type} => String
1949
+ # * {Types::GetImpersonationRoleEffectResponse#effect #effect} => String
1950
+ # * {Types::GetImpersonationRoleEffectResponse#matched_rules #matched_rules} => Array&lt;Types::ImpersonationMatchedRule&gt;
1951
+ #
1952
+ # @example Request syntax with placeholder values
1953
+ #
1954
+ # resp = client.get_impersonation_role_effect({
1955
+ # organization_id: "OrganizationId", # required
1956
+ # impersonation_role_id: "ImpersonationRoleId", # required
1957
+ # target_user: "EntityIdentifier", # required
1958
+ # })
1959
+ #
1960
+ # @example Response structure
1961
+ #
1962
+ # resp.type #=> String, one of "FULL_ACCESS", "READ_ONLY"
1963
+ # resp.effect #=> String, one of "ALLOW", "DENY"
1964
+ # resp.matched_rules #=> Array
1965
+ # resp.matched_rules[0].impersonation_rule_id #=> String
1966
+ # resp.matched_rules[0].name #=> String
1967
+ #
1968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetImpersonationRoleEffect AWS API Documentation
1969
+ #
1970
+ # @overload get_impersonation_role_effect(params = {})
1971
+ # @param [Hash] params ({})
1972
+ def get_impersonation_role_effect(params = {}, options = {})
1973
+ req = build_request(:get_impersonation_role_effect, params)
1974
+ req.send_request(options)
1975
+ end
1976
+
1724
1977
  # Gets details for a mail domain, including domain records required to
1725
1978
  # configure your domain with recommended security.
1726
1979
  #
1727
1980
  # @option params [required, String] :organization_id
1728
- # The Amazon WorkMail organization for which the domain is retrieved.
1981
+ # The WorkMail organization for which the domain is retrieved.
1729
1982
  #
1730
1983
  # @option params [required, String] :domain_name
1731
1984
  # The domain from which you want to retrieve details.
@@ -1804,10 +2057,10 @@ module Aws::WorkMail
1804
2057
  # Simulates the effect of the mobile device access rules for the given
1805
2058
  # attributes of a sample access event. Use this method to test the
1806
2059
  # effects of the current set of mobile device access rules for the
1807
- # Amazon WorkMail organization for a particular user's attributes.
2060
+ # WorkMail organization for a particular user's attributes.
1808
2061
  #
1809
2062
  # @option params [required, String] :organization_id
1810
- # The Amazon WorkMail organization to simulate the access effect for.
2063
+ # The WorkMail organization to simulate the access effect for.
1811
2064
  #
1812
2065
  # @option params [String] :device_type
1813
2066
  # Device type the simulated user will report.
@@ -1856,8 +2109,7 @@ module Aws::WorkMail
1856
2109
  # organization, user, and device.
1857
2110
  #
1858
2111
  # @option params [required, String] :organization_id
1859
- # The Amazon WorkMail organization to which you want to apply the
1860
- # override.
2112
+ # The WorkMail organization to which you want to apply the override.
1861
2113
  #
1862
2114
  # @option params [required, String] :user_id
1863
2115
  # Identifies the WorkMail user for the override. Accepts the following
@@ -1944,6 +2196,10 @@ module Aws::WorkMail
1944
2196
  # resp.rules[0].not_user_ids[0] #=> String
1945
2197
  # resp.rules[0].date_created #=> Time
1946
2198
  # resp.rules[0].date_modified #=> Time
2199
+ # resp.rules[0].impersonation_role_ids #=> Array
2200
+ # resp.rules[0].impersonation_role_ids[0] #=> String
2201
+ # resp.rules[0].not_impersonation_role_ids #=> Array
2202
+ # resp.rules[0].not_impersonation_role_ids[0] #=> String
1947
2203
  #
1948
2204
  # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAccessControlRules AWS API Documentation
1949
2205
  #
@@ -2005,8 +2261,8 @@ module Aws::WorkMail
2005
2261
  # organization.
2006
2262
  #
2007
2263
  # @option params [required, String] :organization_id
2008
- # The Amazon WorkMail organization for which the
2009
- # `AvailabilityConfiguration`'s will be listed.
2264
+ # The WorkMail organization for which the `AvailabilityConfiguration`'s
2265
+ # will be listed.
2010
2266
  #
2011
2267
  # @option params [Integer] :max_results
2012
2268
  # The maximum number of results to return in a single call.
@@ -2151,10 +2407,57 @@ module Aws::WorkMail
2151
2407
  req.send_request(options)
2152
2408
  end
2153
2409
 
2154
- # Lists the mail domains in a given Amazon WorkMail organization.
2410
+ # Lists all the impersonation roles for the given WorkMail organization.
2411
+ #
2412
+ # @option params [required, String] :organization_id
2413
+ # The WorkMail organization to which the listed impersonation roles
2414
+ # belong.
2415
+ #
2416
+ # @option params [String] :next_token
2417
+ # The token used to retrieve the next page of results. The first call
2418
+ # doesn't require a token.
2419
+ #
2420
+ # @option params [Integer] :max_results
2421
+ # The maximum number of results returned in a single call.
2422
+ #
2423
+ # @return [Types::ListImpersonationRolesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2424
+ #
2425
+ # * {Types::ListImpersonationRolesResponse#roles #roles} => Array&lt;Types::ImpersonationRole&gt;
2426
+ # * {Types::ListImpersonationRolesResponse#next_token #next_token} => String
2427
+ #
2428
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2429
+ #
2430
+ # @example Request syntax with placeholder values
2431
+ #
2432
+ # resp = client.list_impersonation_roles({
2433
+ # organization_id: "OrganizationId", # required
2434
+ # next_token: "NextToken",
2435
+ # max_results: 1,
2436
+ # })
2437
+ #
2438
+ # @example Response structure
2439
+ #
2440
+ # resp.roles #=> Array
2441
+ # resp.roles[0].impersonation_role_id #=> String
2442
+ # resp.roles[0].name #=> String
2443
+ # resp.roles[0].type #=> String, one of "FULL_ACCESS", "READ_ONLY"
2444
+ # resp.roles[0].date_created #=> Time
2445
+ # resp.roles[0].date_modified #=> Time
2446
+ # resp.next_token #=> String
2447
+ #
2448
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListImpersonationRoles AWS API Documentation
2449
+ #
2450
+ # @overload list_impersonation_roles(params = {})
2451
+ # @param [Hash] params ({})
2452
+ def list_impersonation_roles(params = {}, options = {})
2453
+ req = build_request(:list_impersonation_roles, params)
2454
+ req.send_request(options)
2455
+ end
2456
+
2457
+ # Lists the mail domains in a given WorkMail organization.
2155
2458
  #
2156
2459
  # @option params [required, String] :organization_id
2157
- # The Amazon WorkMail organization for which to list domains.
2460
+ # The WorkMail organization for which to list domains.
2158
2461
  #
2159
2462
  # @option params [Integer] :max_results
2160
2463
  # The maximum number of results to return in a single call.
@@ -2300,8 +2603,8 @@ module Aws::WorkMail
2300
2603
  # of WorkMail organization, user, or device.
2301
2604
  #
2302
2605
  # @option params [required, String] :organization_id
2303
- # The Amazon WorkMail organization under which to list mobile device
2304
- # access overrides.
2606
+ # The WorkMail organization under which to list mobile device access
2607
+ # overrides.
2305
2608
  #
2306
2609
  # @option params [String] :user_id
2307
2610
  # The WorkMail user under which you list the mobile device access
@@ -2361,11 +2664,11 @@ module Aws::WorkMail
2361
2664
  req.send_request(options)
2362
2665
  end
2363
2666
 
2364
- # Lists the mobile device access rules for the specified Amazon WorkMail
2667
+ # Lists the mobile device access rules for the specified WorkMail
2365
2668
  # organization.
2366
2669
  #
2367
2670
  # @option params [required, String] :organization_id
2368
- # The Amazon WorkMail organization for which to list the rules.
2671
+ # The WorkMail organization for which to list the rules.
2369
2672
  #
2370
2673
  # @return [Types::ListMobileDeviceAccessRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2371
2674
  #
@@ -2551,7 +2854,7 @@ module Aws::WorkMail
2551
2854
  req.send_request(options)
2552
2855
  end
2553
2856
 
2554
- # Lists the tags applied to an Amazon WorkMail organization resource.
2857
+ # Lists the tags applied to an WorkMail organization resource.
2555
2858
  #
2556
2859
  # @option params [required, String] :resource_arn
2557
2860
  # The resource ARN.
@@ -2632,8 +2935,9 @@ module Aws::WorkMail
2632
2935
 
2633
2936
  # Adds a new access control rule for the specified organization. The
2634
2937
  # rule allows or denies access to the organization for the specified
2635
- # IPv4 addresses, access protocol actions, and user IDs. Adding a new
2636
- # rule with the same name as an existing rule replaces the older rule.
2938
+ # IPv4 addresses, access protocol actions, user IDs and impersonation
2939
+ # IDs. Adding a new rule with the same name as an existing rule replaces
2940
+ # the older rule.
2637
2941
  #
2638
2942
  # @option params [required, String] :name
2639
2943
  # The rule name.
@@ -2669,6 +2973,12 @@ module Aws::WorkMail
2669
2973
  # @option params [required, String] :organization_id
2670
2974
  # The identifier of the organization.
2671
2975
  #
2976
+ # @option params [Array<String>] :impersonation_role_ids
2977
+ # Impersonation role IDs to include in the rule.
2978
+ #
2979
+ # @option params [Array<String>] :not_impersonation_role_ids
2980
+ # Impersonation role IDs to exclude from the rule.
2981
+ #
2672
2982
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2673
2983
  #
2674
2984
  # @example Request syntax with placeholder values
@@ -2684,6 +2994,8 @@ module Aws::WorkMail
2684
2994
  # user_ids: ["WorkMailIdentifier"],
2685
2995
  # not_user_ids: ["WorkMailIdentifier"],
2686
2996
  # organization_id: "OrganizationId", # required
2997
+ # impersonation_role_ids: ["ImpersonationRoleId"],
2998
+ # not_impersonation_role_ids: ["ImpersonationRoleId"],
2687
2999
  # })
2688
3000
  #
2689
3001
  # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutAccessControlRule AWS API Documentation
@@ -2803,7 +3115,7 @@ module Aws::WorkMail
2803
3115
  # WorkMail organization, user, and device.
2804
3116
  #
2805
3117
  # @option params [required, String] :organization_id
2806
- # Identifies the Amazon WorkMail organization for which you create the
3118
+ # Identifies the WorkMail organization for which you create the
2807
3119
  # override.
2808
3120
  #
2809
3121
  # @option params [required, String] :user_id
@@ -2892,11 +3204,10 @@ module Aws::WorkMail
2892
3204
  req.send_request(options)
2893
3205
  end
2894
3206
 
2895
- # Registers a new domain in Amazon WorkMail and SES, and configures it
2896
- # for use by WorkMail. Emails received by SES for this domain are routed
2897
- # to the specified WorkMail organization, and WorkMail has permanent
2898
- # permission to use the specified domain for sending your users'
2899
- # emails.
3207
+ # Registers a new domain in WorkMail and SES, and configures it for use
3208
+ # by WorkMail. Emails received by SES for this domain are routed to the
3209
+ # specified WorkMail organization, and WorkMail has permanent permission
3210
+ # to use the specified domain for sending your users' emails.
2900
3211
  #
2901
3212
  # @option params [String] :client_token
2902
3213
  # Idempotency token used when retrying requests.
@@ -2905,11 +3216,10 @@ module Aws::WorkMail
2905
3216
  # not need to pass this option.**
2906
3217
  #
2907
3218
  # @option params [required, String] :organization_id
2908
- # The Amazon WorkMail organization under which you're creating the
2909
- # domain.
3219
+ # The WorkMail organization under which you're creating the domain.
2910
3220
  #
2911
3221
  # @option params [required, String] :domain_name
2912
- # The name of the mail domain to create in Amazon WorkMail and SES.
3222
+ # The name of the mail domain to create in WorkMail and SES.
2913
3223
  #
2914
3224
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2915
3225
  #
@@ -2930,7 +3240,7 @@ module Aws::WorkMail
2930
3240
  req.send_request(options)
2931
3241
  end
2932
3242
 
2933
- # Registers an existing and disabled user, group, or resource for Amazon
3243
+ # Registers an existing and disabled user, group, or resource for
2934
3244
  # WorkMail use by associating a mailbox and calendaring capabilities. It
2935
3245
  # performs no change if the user, group, or resource is enabled and
2936
3246
  # fails if the user, group, or resource is deleted. This operation
@@ -3009,8 +3319,7 @@ module Aws::WorkMail
3009
3319
  # Starts a mailbox export job to export MIME-format email messages and
3010
3320
  # calendar items from the specified mailbox to the specified Amazon
3011
3321
  # Simple Storage Service (Amazon S3) bucket. For more information, see
3012
- # [Exporting mailbox content][1] in the *Amazon WorkMail Administrator
3013
- # Guide*.
3322
+ # [Exporting mailbox content][1] in the *WorkMail Administrator Guide*.
3014
3323
  #
3015
3324
  #
3016
3325
  #
@@ -3075,8 +3384,8 @@ module Aws::WorkMail
3075
3384
  req.send_request(options)
3076
3385
  end
3077
3386
 
3078
- # Applies the specified tags to the specified Amazon WorkMail
3079
- # organization resource.
3387
+ # Applies the specified tags to the specified WorkMailorganization
3388
+ # resource.
3080
3389
  #
3081
3390
  # @option params [required, String] :resource_arn
3082
3391
  # The resource ARN.
@@ -3122,8 +3431,8 @@ module Aws::WorkMail
3122
3431
  # </note>
3123
3432
  #
3124
3433
  # @option params [required, String] :organization_id
3125
- # The Amazon WorkMail organization where the availability provider will
3126
- # be tested.
3434
+ # The WorkMail organization where the availability provider will be
3435
+ # tested.
3127
3436
  #
3128
3437
  # @option params [String] :domain_name
3129
3438
  # The domain to which the provider applies. If this field is provided, a
@@ -3171,8 +3480,8 @@ module Aws::WorkMail
3171
3480
  req.send_request(options)
3172
3481
  end
3173
3482
 
3174
- # Untags the specified tags from the specified Amazon WorkMail
3175
- # organization resource.
3483
+ # Untags the specified tags from the specified WorkMail organization
3484
+ # resource.
3176
3485
  #
3177
3486
  # @option params [required, String] :resource_arn
3178
3487
  # The resource ARN.
@@ -3202,8 +3511,8 @@ module Aws::WorkMail
3202
3511
  # organization and domain.
3203
3512
  #
3204
3513
  # @option params [required, String] :organization_id
3205
- # The Amazon WorkMail organization for which the
3206
- # `AvailabilityConfiguration` will be updated.
3514
+ # The WorkMail organization for which the `AvailabilityConfiguration`
3515
+ # will be updated.
3207
3516
  #
3208
3517
  # @option params [required, String] :domain_name
3209
3518
  # The domain to which the provider applies the availability
@@ -3252,7 +3561,7 @@ module Aws::WorkMail
3252
3561
  # when enabling a mail user. You can only have one default domain.
3253
3562
  #
3254
3563
  # @option params [required, String] :organization_id
3255
- # The Amazon WorkMail organization for which to list domains.
3564
+ # The WorkMail organization for which to list domains.
3256
3565
  #
3257
3566
  # @option params [required, String] :domain_name
3258
3567
  # The domain name that will become the default domain.
@@ -3275,6 +3584,58 @@ module Aws::WorkMail
3275
3584
  req.send_request(options)
3276
3585
  end
3277
3586
 
3587
+ # Updates an impersonation role for the given WorkMail organization.
3588
+ #
3589
+ # @option params [required, String] :organization_id
3590
+ # The WorkMail organization that contains the impersonation role to
3591
+ # update.
3592
+ #
3593
+ # @option params [required, String] :impersonation_role_id
3594
+ # The ID of the impersonation role to update.
3595
+ #
3596
+ # @option params [required, String] :name
3597
+ # The updated impersonation role name.
3598
+ #
3599
+ # @option params [required, String] :type
3600
+ # The updated impersonation role type.
3601
+ #
3602
+ # @option params [String] :description
3603
+ # The updated impersonation role description.
3604
+ #
3605
+ # @option params [required, Array<Types::ImpersonationRule>] :rules
3606
+ # The updated list of rules.
3607
+ #
3608
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3609
+ #
3610
+ # @example Request syntax with placeholder values
3611
+ #
3612
+ # resp = client.update_impersonation_role({
3613
+ # organization_id: "OrganizationId", # required
3614
+ # impersonation_role_id: "ImpersonationRoleId", # required
3615
+ # name: "ImpersonationRoleName", # required
3616
+ # type: "FULL_ACCESS", # required, accepts FULL_ACCESS, READ_ONLY
3617
+ # description: "ImpersonationRoleDescription",
3618
+ # rules: [ # required
3619
+ # {
3620
+ # impersonation_rule_id: "ImpersonationRuleId", # required
3621
+ # name: "ImpersonationRuleName",
3622
+ # description: "ImpersonationRuleDescription",
3623
+ # effect: "ALLOW", # required, accepts ALLOW, DENY
3624
+ # target_users: ["EntityIdentifier"],
3625
+ # not_target_users: ["EntityIdentifier"],
3626
+ # },
3627
+ # ],
3628
+ # })
3629
+ #
3630
+ # @see http://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateImpersonationRole AWS API Documentation
3631
+ #
3632
+ # @overload update_impersonation_role(params = {})
3633
+ # @param [Hash] params ({})
3634
+ def update_impersonation_role(params = {}, options = {})
3635
+ req = build_request(:update_impersonation_role, params)
3636
+ req.send_request(options)
3637
+ end
3638
+
3278
3639
  # Updates a user's current mailbox quota for a specified organization
3279
3640
  # and user.
3280
3641
  #
@@ -3307,11 +3668,11 @@ module Aws::WorkMail
3307
3668
  req.send_request(options)
3308
3669
  end
3309
3670
 
3310
- # Updates a mobile device access rule for the specified Amazon WorkMail
3671
+ # Updates a mobile device access rule for the specified WorkMail
3311
3672
  # organization.
3312
3673
  #
3313
3674
  # @option params [required, String] :organization_id
3314
- # The Amazon WorkMail organization under which the rule will be updated.
3675
+ # The WorkMail organization under which the rule will be updated.
3315
3676
  #
3316
3677
  # @option params [required, String] :mobile_device_access_rule_id
3317
3678
  # The identifier of the rule to be updated.
@@ -3471,7 +3832,7 @@ module Aws::WorkMail
3471
3832
  params: params,
3472
3833
  config: config)
3473
3834
  context[:gem_name] = 'aws-sdk-workmail'
3474
- context[:gem_version] = '1.50.0'
3835
+ context[:gem_version] = '1.52.0'
3475
3836
  Seahorse::Client::Request.new(handlers, context)
3476
3837
  end
3477
3838