diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d8089e99a2..be4368cb227 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +Release v1.45.12 (2023-09-18) +=== + +### Service Client Updates +* `service/discovery`: Updates service API + * Add sensitive protection for customer information +* `service/macie2`: Updates service documentation +* `service/workmail`: Updates service API, documentation, and paginators + * This release includes four new APIs UpdateUser, UpdateGroup, ListGroupsForEntity and DescribeEntity, along with RemoteUsers and some enhancements to existing APIs. + Release v1.45.11 (2023-09-15) === diff --git a/aws/version.go b/aws/version.go index b3dd2d694e3..30d1c361228 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.45.11" +const SDKVersion = "1.45.12" diff --git a/models/apis/discovery/2015-11-01/api-2.json b/models/apis/discovery/2015-11-01/api-2.json index d538ff0aed5..24718e07408 100644 --- a/models/apis/discovery/2015-11-01/api-2.json +++ b/models/apis/discovery/2015-11-01/api-2.json @@ -473,7 +473,8 @@ "members":{ "ipAddress":{"shape":"String"}, "macAddress":{"shape":"String"} - } + }, + "sensitive":true }, "AgentNetworkInfoList":{ "type":"list", diff --git a/models/apis/discovery/2015-11-01/endpoint-rule-set-1.json b/models/apis/discovery/2015-11-01/endpoint-rule-set-1.json index b745570fa9c..825e814d7fa 100644 --- a/models/apis/discovery/2015-11-01/endpoint-rule-set-1.json +++ b/models/apis/discovery/2015-11-01/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://discovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://discovery-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://discovery-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://discovery-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://discovery.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://discovery.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://discovery.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://discovery.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/macie2/2020-01-01/docs-2.json b/models/apis/macie2/2020-01-01/docs-2.json index de827384a90..c5ccdf5b6ac 100644 --- a/models/apis/macie2/2020-01-01/docs-2.json +++ b/models/apis/macie2/2020-01-01/docs-2.json @@ -1062,8 +1062,8 @@ "ManagedDataIdentifierSelector" : { "base" : "

The selection type that determines which managed data identifiers a classification job uses to analyze data. Valid values are:

", "refs" : { - "CreateClassificationJobRequest$ManagedDataIdentifierSelector" : "

The selection type to apply when determining which managed data identifiers the job uses to analyze data. Valid values are:

If you don't specify a value for this property, the job uses all managed data identifiers.

If the job is a recurring job and you don't specify a value for this property or you specify ALL or EXCLUDE, each job run automatically uses new managed data identifiers that are released. If you specify RECOMMENDED for a recurring job, each job run automatically uses all the managed data identifiers that are in the recommended set when the job starts to run.

For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.

", - "DescribeClassificationJobResponse$ManagedDataIdentifierSelector" : "

The selection type that determines which managed data identifiers the job uses when it analyzes data. Possible values are:

If this value is null, the job uses all managed data identifiers.

If the job is a recurring job and this value is null, ALL, or EXCLUDE, each job run automatically uses new managed data identifiers that are released after the job was created or the preceding run ended. If this value is RECOMMENDED for a recurring job, each job run uses all the managed data identifiers that are in the recommended set when the run starts.

For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.

" + "CreateClassificationJobRequest$ManagedDataIdentifierSelector" : "

The selection type to apply when determining which managed data identifiers the job uses to analyze data. Valid values are:

If you don't specify a value for this property, the job uses the recommended set of managed data identifiers.

If the job is a recurring job and you specify ALL or EXCLUDE, each job run automatically uses new managed data identifiers that are released. If you specify RECOMMENDED for a recurring job, each job run automatically uses all the managed data identifiers that are in the recommended set when the run starts.

For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.

", + "DescribeClassificationJobResponse$ManagedDataIdentifierSelector" : "

The selection type that determines which managed data identifiers the job uses when it analyzes data. Possible values are:

If this value is null, the job uses the recommended set of managed data identifiers.

If the job is a recurring job and this value is ALL or EXCLUDE, each job run automatically uses new managed data identifiers that are released. If this value is null or RECOMMENDED for a recurring job, each job run uses all the managed data identifiers that are in the recommended set when the run starts.

For information about individual managed data identifiers or to determine which ones are in the recommended set, see Using managed data identifiers and Recommended managed data identifiers in the Amazon Macie User Guide.

" } }, "ManagedDataIdentifierSummary" : { diff --git a/models/apis/macie2/2020-01-01/endpoint-rule-set-1.json b/models/apis/macie2/2020-01-01/endpoint-rule-set-1.json index cca5913612c..d8387421b1f 100644 --- a/models/apis/macie2/2020-01-01/endpoint-rule-set-1.json +++ b/models/apis/macie2/2020-01-01/endpoint-rule-set-1.json @@ -58,52 +58,56 @@ "type": "error" }, { - "conditions": [], - "type": "tree", - "rules": [ + "conditions": [ { - "conditions": [ + "fn": "booleanEquals", + "argv": [ { - "fn": "booleanEquals", - "argv": [ - { - "ref": "UseDualStack" - }, - true - ] - } - ], - "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", - "type": "error" - }, - { - "conditions": [], - "endpoint": { - "url": { - "ref": "Endpoint" + "ref": "UseDualStack" }, - "properties": {}, - "headers": {} - }, - "type": "endpoint" + true + ] } - ] + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, { - "conditions": [], + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], "type": "tree", "rules": [ { "conditions": [ { - "fn": "isSet", + "fn": "aws.partition", "argv": [ { "ref": "Region" } - ] + ], + "assign": "PartitionResult" } ], "type": "tree", @@ -111,13 +115,22 @@ { "conditions": [ { - "fn": "aws.partition", + "fn": "booleanEquals", "argv": [ { - "ref": "Region" - } - ], - "assign": "PartitionResult" + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] } ], "type": "tree", @@ -127,224 +140,175 @@ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } ] }, { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", - "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - }, - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://macie2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS and DualStack are enabled, but this partition does not support one or both", - "type": "error" + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseFIPS" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, - { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsFIPS" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ { - "conditions": [], - "endpoint": { - "url": "https://macie2-fips.{Region}.{PartitionResult#dnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsFIPS" ] } ] - }, + } + ], + "type": "tree", + "rules": [ { "conditions": [], - "error": "FIPS is enabled but this partition does not support FIPS", - "type": "error" + "endpoint": { + "url": "https://macie2-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ { "conditions": [ { "fn": "booleanEquals", "argv": [ + true, { - "ref": "UseDualStack" - }, - true - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [ - { - "fn": "booleanEquals", + "fn": "getAttr", "argv": [ - true, { - "fn": "getAttr", - "argv": [ - { - "ref": "PartitionResult" - }, - "supportsDualStack" - ] - } - ] - } - ], - "type": "tree", - "rules": [ - { - "conditions": [], - "type": "tree", - "rules": [ - { - "conditions": [], - "endpoint": { - "url": "https://macie2.{Region}.{PartitionResult#dualStackDnsSuffix}", - "properties": {}, - "headers": {} - }, - "type": "endpoint" - } + "ref": "PartitionResult" + }, + "supportsDualStack" ] } ] - }, - { - "conditions": [], - "error": "DualStack is enabled but this partition does not support DualStack", - "type": "error" } - ] - }, - { - "conditions": [], + ], "type": "tree", "rules": [ { "conditions": [], "endpoint": { - "url": "https://macie2.{Region}.{PartitionResult#dnsSuffix}", + "url": "https://macie2.{Region}.{PartitionResult#dualStackDnsSuffix}", "properties": {}, "headers": {} }, "type": "endpoint" } ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" } ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://macie2.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" } ] - }, - { - "conditions": [], - "error": "Invalid Configuration: Missing Region", - "type": "error" } ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" } ] } \ No newline at end of file diff --git a/models/apis/workmail/2017-10-01/api-2.json b/models/apis/workmail/2017-10-01/api-2.json index f1a03d939fe..88260c5e270 100644 --- a/models/apis/workmail/2017-10-01/api-2.json +++ b/models/apis/workmail/2017-10-01/api-2.json @@ -25,7 +25,8 @@ {"shape":"EntityStateException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -202,7 +203,8 @@ {"shape":"NameAvailabilityException"}, {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"}, - {"shape":"ReservedNameException"} + {"shape":"ReservedNameException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -392,7 +394,8 @@ {"shape":"EntityStateException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -480,6 +483,22 @@ ], "idempotent":true }, + "DescribeEntity":{ + "name":"DescribeEntity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeEntityRequest"}, + "output":{"shape":"DescribeEntityResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"} + ], + "idempotent":true + }, "DescribeGroup":{ "name":"DescribeGroup", "http":{ @@ -552,7 +571,8 @@ {"shape":"EntityNotFoundException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -585,7 +605,8 @@ {"shape":"EntityStateException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -698,6 +719,7 @@ "input":{"shape":"GetMailboxDetailsRequest"}, "output":{"shape":"GetMailboxDetailsResponse"}, "errors":[ + {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, {"shape":"OrganizationStateException"}, {"shape":"EntityNotFoundException"} @@ -810,6 +832,23 @@ ], "idempotent":true }, + "ListGroupsForEntity":{ + "name":"ListGroupsForEntity", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupsForEntityRequest"}, + "output":{"shape":"ListGroupsForEntityResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"InvalidParameterException"} + ], + "idempotent":true + }, "ListImpersonationRoles":{ "name":"ListImpersonationRoles", "http":{ @@ -925,7 +964,8 @@ {"shape":"EntityStateException"}, {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -940,7 +980,8 @@ "errors":[ {"shape":"InvalidParameterException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"} ], "idempotent":true }, @@ -1154,6 +1195,7 @@ "input":{"shape":"TagResourceRequest"}, "output":{"shape":"TagResourceResponse"}, "errors":[ + {"shape":"InvalidParameterException"}, {"shape":"ResourceNotFoundException"}, {"shape":"TooManyTagsException"}, {"shape":"OrganizationStateException"} @@ -1219,6 +1261,24 @@ ], "idempotent":true }, + "UpdateGroup":{ + "name":"UpdateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGroupRequest"}, + "output":{"shape":"UpdateGroupResponse"}, + "errors":[ + {"shape":"EntityNotFoundException"}, + {"shape":"EntityStateException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"} + ], + "idempotent":true + }, "UpdateImpersonationRole":{ "name":"UpdateImpersonationRole", "http":{ @@ -1311,7 +1371,29 @@ {"shape":"MailDomainStateException"}, {"shape":"NameAvailabilityException"}, {"shape":"OrganizationNotFoundException"}, - {"shape":"OrganizationStateException"} + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"InvalidParameterException"} + ], + "idempotent":true + }, + "UpdateUser":{ + "name":"UpdateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserRequest"}, + "output":{"shape":"UpdateUserResponse"}, + "errors":[ + {"shape":"DirectoryServiceAuthenticationFailedException"}, + {"shape":"DirectoryUnavailableException"}, + {"shape":"EntityNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"OrganizationNotFoundException"}, + {"shape":"OrganizationStateException"}, + {"shape":"UnsupportedOperationException"}, + {"shape":"EntityStateException"} ], "idempotent":true } @@ -1392,7 +1474,8 @@ "AmazonResourceName":{ "type":"string", "max":1011, - "min":1 + "min":1, + "pattern":"arn:aws:workmail:[a-z0-9-]*:[a-z0-9-]+:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}" }, "AssociateDelegateToResourceRequest":{ "type":"structure", @@ -1403,8 +1486,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"ResourceId"}, - "EntityId":{"shape":"WorkMailIdentifier"} + "ResourceId":{"shape":"EntityIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"} } }, "AssociateDelegateToResourceResponse":{ @@ -1421,8 +1504,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "GroupId":{"shape":"WorkMailIdentifier"}, - "MemberId":{"shape":"WorkMailIdentifier"} + "GroupId":{"shape":"EntityIdentifier"}, + "MemberId":{"shape":"EntityIdentifier"} } }, "AssociateMemberToGroupResponse":{ @@ -1549,7 +1632,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "Name":{"shape":"GroupName"} + "Name":{"shape":"GroupName"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"} } }, "CreateGroupResponse":{ @@ -1647,7 +1731,9 @@ "members":{ "OrganizationId":{"shape":"OrganizationId"}, "Name":{"shape":"ResourceName"}, - "Type":{"shape":"ResourceType"} + "Type":{"shape":"ResourceType"}, + "Description":{"shape":"ResourceDescription"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"} } }, "CreateResourceResponse":{ @@ -1661,14 +1747,17 @@ "required":[ "OrganizationId", "Name", - "DisplayName", - "Password" + "DisplayName" ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, "Name":{"shape":"UserName"}, - "DisplayName":{"shape":"String"}, - "Password":{"shape":"Password"} + "DisplayName":{"shape":"UserAttribute"}, + "Password":{"shape":"Password"}, + "Role":{"shape":"UserRole"}, + "FirstName":{"shape":"UserAttribute"}, + "LastName":{"shape":"UserAttribute"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"} } }, "CreateUserResponse":{ @@ -1758,7 +1847,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "GroupId":{"shape":"WorkMailIdentifier"} + "GroupId":{"shape":"EntityIdentifier"} } }, "DeleteGroupResponse":{ @@ -1791,8 +1880,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, - "GranteeId":{"shape":"WorkMailIdentifier"} + "EntityId":{"shape":"EntityIdentifier"}, + "GranteeId":{"shape":"EntityIdentifier"} } }, "DeleteMailboxPermissionsResponse":{ @@ -1846,7 +1935,8 @@ "idempotencyToken":true }, "OrganizationId":{"shape":"OrganizationId"}, - "DeleteDirectory":{"shape":"Boolean"} + "DeleteDirectory":{"shape":"Boolean"}, + "ForceDelete":{"shape":"Boolean"} } }, "DeleteOrganizationResponse":{ @@ -1864,7 +1954,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"ResourceId"} + "ResourceId":{"shape":"EntityIdentifier"} } }, "DeleteResourceResponse":{ @@ -1896,7 +1986,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "UserId":{"shape":"WorkMailIdentifier"} + "UserId":{"shape":"EntityIdentifier"} } }, "DeleteUserResponse":{ @@ -1912,7 +2002,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"} + "EntityId":{"shape":"EntityIdentifier"} } }, "DeregisterFromWorkMailResponse":{ @@ -1950,6 +2040,25 @@ "LogGroupArn":{"shape":"LogGroupArn"} } }, + "DescribeEntityRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "Email" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "Email":{"shape":"EmailAddress"} + } + }, + "DescribeEntityResponse":{ + "type":"structure", + "members":{ + "EntityId":{"shape":"WorkMailIdentifier"}, + "Name":{"shape":"String"}, + "Type":{"shape":"EntityType"} + } + }, "DescribeGroupRequest":{ "type":"structure", "required":[ @@ -1958,7 +2067,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "GroupId":{"shape":"WorkMailIdentifier"} + "GroupId":{"shape":"EntityIdentifier"} } }, "DescribeGroupResponse":{ @@ -1969,7 +2078,8 @@ "Email":{"shape":"EmailAddress"}, "State":{"shape":"EntityState"}, "EnabledDate":{"shape":"Timestamp"}, - "DisabledDate":{"shape":"Timestamp"} + "DisabledDate":{"shape":"Timestamp"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"} } }, "DescribeInboundDmarcSettingsRequest":{ @@ -2031,7 +2141,9 @@ "DefaultMailDomain":{"shape":"String"}, "CompletedDate":{"shape":"Timestamp"}, "ErrorMessage":{"shape":"String"}, - "ARN":{"shape":"AmazonResourceName"} + "ARN":{"shape":"AmazonResourceName"}, + "MigrationAdmin":{"shape":"WorkMailIdentifier"}, + "InteroperabilityEnabled":{"shape":"Boolean"} } }, "DescribeResourceRequest":{ @@ -2042,7 +2154,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"ResourceId"} + "ResourceId":{"shape":"EntityIdentifier"} } }, "DescribeResourceResponse":{ @@ -2055,7 +2167,9 @@ "BookingOptions":{"shape":"BookingOptions"}, "State":{"shape":"EntityState"}, "EnabledDate":{"shape":"Timestamp"}, - "DisabledDate":{"shape":"Timestamp"} + "DisabledDate":{"shape":"Timestamp"}, + "Description":{"shape":"ResourceDescription"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"} } }, "DescribeUserRequest":{ @@ -2066,7 +2180,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "UserId":{"shape":"WorkMailIdentifier"} + "UserId":{"shape":"EntityIdentifier"} } }, "DescribeUserResponse":{ @@ -2075,11 +2189,26 @@ "UserId":{"shape":"WorkMailIdentifier"}, "Name":{"shape":"UserName"}, "Email":{"shape":"EmailAddress"}, - "DisplayName":{"shape":"String"}, + "DisplayName":{"shape":"UserAttribute"}, "State":{"shape":"EntityState"}, "UserRole":{"shape":"UserRole"}, "EnabledDate":{"shape":"Timestamp"}, - "DisabledDate":{"shape":"Timestamp"} + "DisabledDate":{"shape":"Timestamp"}, + "MailboxProvisionedDate":{"shape":"Timestamp"}, + "MailboxDeprovisionedDate":{"shape":"Timestamp"}, + "FirstName":{"shape":"UserAttribute"}, + "LastName":{"shape":"UserAttribute"}, + "HiddenFromGlobalAddressList":{"shape":"Boolean"}, + "Initials":{"shape":"UserAttribute"}, + "Telephone":{"shape":"UserAttribute"}, + "Street":{"shape":"UserAttribute"}, + "JobTitle":{"shape":"UserAttribute"}, + "City":{"shape":"UserAttribute"}, + "Company":{"shape":"UserAttribute"}, + "ZipCode":{"shape":"UserAttribute"}, + "Department":{"shape":"UserAttribute"}, + "Country":{"shape":"UserAttribute"}, + "Office":{"shape":"UserAttribute"} } }, "Description":{ @@ -2178,8 +2307,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"ResourceId"}, - "EntityId":{"shape":"WorkMailIdentifier"} + "ResourceId":{"shape":"EntityIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"} } }, "DisassociateDelegateFromResourceResponse":{ @@ -2196,8 +2325,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "GroupId":{"shape":"WorkMailIdentifier"}, - "MemberId":{"shape":"WorkMailIdentifier"} + "GroupId":{"shape":"EntityIdentifier"}, + "MemberId":{"shape":"EntityIdentifier"} } }, "DisassociateMemberFromGroupResponse":{ @@ -2227,6 +2356,7 @@ }, "Domain":{ "type":"structure", + "required":["DomainName"], "members":{ "DomainName":{"shape":"DomainName"}, "HostedZoneId":{"shape":"HostedZoneId"} @@ -2236,7 +2366,7 @@ "type":"string", "max":255, "min":3, - "pattern":"[a-zA-Z0-9.-]+\\.[a-zA-Z-]{2,}" + "pattern":"[a-zA-Z0-9.-]+" }, "Domains":{ "type":"list", @@ -2292,6 +2422,14 @@ }, "exception":true }, + "EntityType":{ + "type":"string", + "enum":[ + "GROUP", + "USER", + "RESOURCE" + ] + }, "EwsAvailabilityProvider":{ "type":"structure", "required":[ @@ -2451,7 +2589,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "UserId":{"shape":"WorkMailIdentifier"} + "UserId":{"shape":"EntityIdentifier"} } }, "GetMailboxDetailsResponse":{ @@ -2514,6 +2652,17 @@ "DisabledDate":{"shape":"Timestamp"} } }, + "GroupIdentifier":{ + "type":"structure", + "members":{ + "GroupId":{"shape":"WorkMailIdentifier"}, + "GroupName":{"shape":"GroupName"} + } + }, + "GroupIdentifiers":{ + "type":"list", + "member":{"shape":"GroupIdentifier"} + }, "GroupName":{ "type":"string", "max":256, @@ -2528,7 +2677,7 @@ "type":"string", "max":32, "min":1, - "pattern":"[\\S\\s]*" + "pattern":"[^/\\\\]*" }, "IdempotencyClientToken":{ "type":"string", @@ -2774,7 +2923,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "GroupId":{"shape":"WorkMailIdentifier"}, + "GroupId":{"shape":"EntityIdentifier"}, "NextToken":{"shape":"NextToken"}, "MaxResults":{"shape":"MaxResults"} } @@ -2786,13 +2935,49 @@ "NextToken":{"shape":"NextToken"} } }, + "ListGroupsFilters":{ + "type":"structure", + "members":{ + "NamePrefix":{"shape":"String"}, + "PrimaryEmailPrefix":{"shape":"String"}, + "State":{"shape":"EntityState"} + } + }, + "ListGroupsForEntityFilters":{ + "type":"structure", + "members":{ + "GroupNamePrefix":{"shape":"String"} + } + }, + "ListGroupsForEntityRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "EntityId" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "EntityId":{"shape":"EntityIdentifier"}, + "Filters":{"shape":"ListGroupsForEntityFilters"}, + "NextToken":{"shape":"NextToken"}, + "MaxResults":{"shape":"MaxResults"} + } + }, + "ListGroupsForEntityResponse":{ + "type":"structure", + "members":{ + "Groups":{"shape":"GroupIdentifiers"}, + "NextToken":{"shape":"NextToken"} + } + }, "ListGroupsRequest":{ "type":"structure", "required":["OrganizationId"], "members":{ "OrganizationId":{"shape":"OrganizationId"}, "NextToken":{"shape":"NextToken"}, - "MaxResults":{"shape":"MaxResults"} + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"ListGroupsFilters"} } }, "ListGroupsResponse":{ @@ -2858,7 +3043,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"}, "NextToken":{"shape":"NextToken"}, "MaxResults":{"shape":"MaxResults"} } @@ -2923,7 +3108,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"WorkMailIdentifier"}, + "ResourceId":{"shape":"EntityIdentifier"}, "NextToken":{"shape":"NextToken"}, "MaxResults":{"shape":"MaxResults"} } @@ -2935,13 +3120,22 @@ "NextToken":{"shape":"NextToken"} } }, + "ListResourcesFilters":{ + "type":"structure", + "members":{ + "NamePrefix":{"shape":"String"}, + "PrimaryEmailPrefix":{"shape":"String"}, + "State":{"shape":"EntityState"} + } + }, "ListResourcesRequest":{ "type":"structure", "required":["OrganizationId"], "members":{ "OrganizationId":{"shape":"OrganizationId"}, "NextToken":{"shape":"NextToken"}, - "MaxResults":{"shape":"MaxResults"} + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"ListResourcesFilters"} } }, "ListResourcesResponse":{ @@ -2964,13 +3158,23 @@ "Tags":{"shape":"TagList"} } }, + "ListUsersFilters":{ + "type":"structure", + "members":{ + "UsernamePrefix":{"shape":"String"}, + "DisplayNamePrefix":{"shape":"UserAttribute"}, + "PrimaryEmailPrefix":{"shape":"String"}, + "State":{"shape":"EntityState"} + } + }, "ListUsersRequest":{ "type":"structure", "required":["OrganizationId"], "members":{ "OrganizationId":{"shape":"OrganizationId"}, "NextToken":{"shape":"NextToken"}, - "MaxResults":{"shape":"MaxResults"} + "MaxResults":{"shape":"MaxResults"}, + "Filters":{"shape":"ListUsersFilters"} } }, "ListUsersResponse":{ @@ -3175,6 +3379,11 @@ }, "exception":true }, + "NewResourceDescription":{ + "type":"string", + "max":64, + "min":0 + }, "NextToken":{ "type":"string", "max":1024, @@ -3339,8 +3548,8 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, - "GranteeId":{"shape":"WorkMailIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"}, + "GranteeId":{"shape":"EntityIdentifier"}, "PermissionValues":{"shape":"PermissionValues"} } }, @@ -3426,7 +3635,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"}, "Email":{"shape":"EmailAddress"} } }, @@ -3469,13 +3678,19 @@ "Type":{"shape":"ResourceType"}, "State":{"shape":"EntityState"}, "EnabledDate":{"shape":"Timestamp"}, - "DisabledDate":{"shape":"Timestamp"} + "DisabledDate":{"shape":"Timestamp"}, + "Description":{"shape":"ResourceDescription"} } }, "ResourceDelegates":{ "type":"list", "member":{"shape":"Delegate"} }, + "ResourceDescription":{ + "type":"string", + "max":64, + "min":1 + }, "ResourceId":{ "type":"string", "max":34, @@ -3523,7 +3738,8 @@ "RoleArn":{ "type":"string", "max":2048, - "min":20 + "min":20, + "pattern":"arn:aws:iam:[a-z0-9-]*:[a-z0-9-]+:[A-Za-z0-9][A-Za-z0-9:_/+=,@.-]{0,1023}" }, "S3BucketName":{ "type":"string", @@ -3560,7 +3776,7 @@ "idempotencyToken":true }, "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"}, "Description":{"shape":"Description"}, "RoleArn":{"shape":"RoleArn"}, "KmsKeyArn":{"shape":"KmsKeyArn"}, @@ -3715,6 +3931,23 @@ "members":{ } }, + "UpdateGroupRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "GroupId" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "GroupId":{"shape":"EntityIdentifier"}, + "HiddenFromGlobalAddressList":{"shape":"BooleanObject"} + } + }, + "UpdateGroupResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateImpersonationRoleRequest":{ "type":"structure", "required":[ @@ -3747,7 +3980,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "UserId":{"shape":"WorkMailIdentifier"}, + "UserId":{"shape":"EntityIdentifier"}, "MailboxQuota":{"shape":"MailboxQuota"} } }, @@ -3794,7 +4027,7 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "EntityId":{"shape":"WorkMailIdentifier"}, + "EntityId":{"shape":"EntityIdentifier"}, "Email":{"shape":"EmailAddress"} } }, @@ -3811,9 +4044,12 @@ ], "members":{ "OrganizationId":{"shape":"OrganizationId"}, - "ResourceId":{"shape":"ResourceId"}, + "ResourceId":{"shape":"EntityIdentifier"}, "Name":{"shape":"ResourceName"}, - "BookingOptions":{"shape":"BookingOptions"} + "BookingOptions":{"shape":"BookingOptions"}, + "Description":{"shape":"NewResourceDescription"}, + "Type":{"shape":"ResourceType"}, + "HiddenFromGlobalAddressList":{"shape":"BooleanObject"} } }, "UpdateResourceResponse":{ @@ -3821,6 +4057,37 @@ "members":{ } }, + "UpdateUserRequest":{ + "type":"structure", + "required":[ + "OrganizationId", + "UserId" + ], + "members":{ + "OrganizationId":{"shape":"OrganizationId"}, + "UserId":{"shape":"EntityIdentifier"}, + "Role":{"shape":"UserRole"}, + "DisplayName":{"shape":"UserAttribute"}, + "FirstName":{"shape":"UserAttribute"}, + "LastName":{"shape":"UserAttribute"}, + "HiddenFromGlobalAddressList":{"shape":"BooleanObject"}, + "Initials":{"shape":"UserAttribute"}, + "Telephone":{"shape":"UserAttribute"}, + "Street":{"shape":"UserAttribute"}, + "JobTitle":{"shape":"UserAttribute"}, + "City":{"shape":"UserAttribute"}, + "Company":{"shape":"UserAttribute"}, + "ZipCode":{"shape":"UserAttribute"}, + "Department":{"shape":"UserAttribute"}, + "Country":{"shape":"UserAttribute"}, + "Office":{"shape":"UserAttribute"} + } + }, + "UpdateUserResponse":{ + "type":"structure", + "members":{ + } + }, "Url":{ "type":"string", "max":256, @@ -3839,6 +4106,11 @@ "DisabledDate":{"shape":"Timestamp"} } }, + "UserAttribute":{ + "type":"string", + "max":256, + "sensitive":true + }, "UserIdList":{ "type":"list", "member":{"shape":"WorkMailIdentifier"}, @@ -3856,7 +4128,8 @@ "enum":[ "USER", "RESOURCE", - "SYSTEM_USER" + "SYSTEM_USER", + "REMOTE_USER" ] }, "Users":{ @@ -3867,7 +4140,7 @@ "type":"string", "max":209, "min":3, - "pattern":"[a-zA-Z0-9.-]+\\.[a-zA-Z-]{2,}" + "pattern":"[a-zA-Z0-9.-]+" }, "WorkMailIdentifier":{ "type":"string", diff --git a/models/apis/workmail/2017-10-01/docs-2.json b/models/apis/workmail/2017-10-01/docs-2.json index d7f85730794..64cd936d086 100644 --- a/models/apis/workmail/2017-10-01/docs-2.json +++ b/models/apis/workmail/2017-10-01/docs-2.json @@ -30,6 +30,7 @@ "DeregisterFromWorkMail": "

Mark a user, group, or resource as no longer used in WorkMail. This action disassociates the mailbox and schedules it for clean-up. WorkMail keeps mailboxes for 30 days before they are permanently removed. The functionality in the console is Disable.

", "DeregisterMailDomain": "

Removes a domain from WorkMail, stops email routing to WorkMail, and removes the authorization allowing WorkMail use. SES keeps the domain because other applications may use it. You must first remove any email address used by WorkMail entities before you remove the domain.

", "DescribeEmailMonitoringConfiguration": "

Describes the current email monitoring configuration for a specified organization.

", + "DescribeEntity": "

Returns basic details about an entity in WorkMail.

", "DescribeGroup": "

Returns the data available for the group.

", "DescribeInboundDmarcSettings": "

Lists the settings in a DMARC policy for a specified organization.

", "DescribeMailboxExportJob": "

Describes the current status of a mailbox export job.

", @@ -51,6 +52,7 @@ "ListAvailabilityConfigurations": "

List all the AvailabilityConfiguration's for the given WorkMail organization.

", "ListGroupMembers": "

Returns an overview of the members of a group. Users and groups can be members of a group.

", "ListGroups": "

Returns summaries of the organization's groups.

", + "ListGroupsForEntity": "

Returns all the groups to which an entity belongs.

", "ListImpersonationRoles": "

Lists all the impersonation roles for the given WorkMail organization.

", "ListMailDomains": "

Lists the mail domains in a given WorkMail organization.

", "ListMailboxExportJobs": "

Lists the mailbox export jobs started for the specified organization within the last seven days.

", @@ -77,11 +79,13 @@ "UntagResource": "

Untags the specified tags from the specified WorkMail organization resource.

", "UpdateAvailabilityConfiguration": "

Updates an existing AvailabilityConfiguration for the given WorkMail organization and domain.

", "UpdateDefaultMailDomain": "

Updates the default mail domain for an organization. The default mail domain is used by the WorkMail AWS Console to suggest an email address when enabling a mail user. You can only have one default domain.

", + "UpdateGroup": "

Updates attibutes in a group.

", "UpdateImpersonationRole": "

Updates an impersonation role for the given WorkMail organization.

", "UpdateMailboxQuota": "

Updates a user's current mailbox quota for a specified organization and user.

", "UpdateMobileDeviceAccessRule": "

Updates a mobile device access rule for the specified WorkMail organization.

", "UpdatePrimaryEmailAddress": "

Updates the primary email for a user, group, or resource. The current email is moved into the list of aliases (or swapped between an existing alias and the current primary email), and the email provided in the input is promoted as the primary.

", - "UpdateResource": "

Updates data for the resource. To have the latest information, it must be preceded by a DescribeResource call. The dataset in the request should be the one expected when performing another DescribeResource call.

" + "UpdateResource": "

Updates data for the resource. To have the latest information, it must be preceded by a DescribeResource call. The dataset in the request should be the one expected when performing another DescribeResource call.

", + "UpdateUser": "

Updates data for the user. To have the latest information, it must be preceded by a DescribeUser call. The dataset in the request should be the one expected when performing another DescribeUser call.

" }, "shapes": { "AccessControlRule": { @@ -225,9 +229,17 @@ "BookingOptions$AutoAcceptRequests": "

The resource's ability to automatically reply to requests. If disabled, delegates must be associated to the resource.

", "BookingOptions$AutoDeclineRecurringRequests": "

The resource's ability to automatically decline any recurring requests.

", "BookingOptions$AutoDeclineConflictingRequests": "

The resource's ability to automatically decline any conflicting requests.

", + "CreateGroupRequest$HiddenFromGlobalAddressList": "

If this parameter is enabled, the group will be hidden from the address book.

", "CreateOrganizationRequest$EnableInteroperability": "

When true, allows organization interoperability between WorkMail and Microsoft Exchange. If true, you must include a AD Connector directory ID in the request.

", + "CreateResourceRequest$HiddenFromGlobalAddressList": "

If this parameter is enabled, the resource will be hidden from the address book.

", + "CreateUserRequest$HiddenFromGlobalAddressList": "

If this parameter is enabled, the user will be hidden from the address book.

", "DeleteOrganizationRequest$DeleteDirectory": "

If true, deletes the AWS Directory Service directory associated with the organization.

", + "DeleteOrganizationRequest$ForceDelete": "

Deletes a WorkMail organization even if the organization has enabled users.

", + "DescribeGroupResponse$HiddenFromGlobalAddressList": "

If the value is set to true, the group is hidden from the address book.

", "DescribeInboundDmarcSettingsResponse$Enforced": "

Lists the enforcement setting of the applied policy.

", + "DescribeOrganizationResponse$InteroperabilityEnabled": "

Indicates if interoperability is enabled for this organization.

", + "DescribeResourceResponse$HiddenFromGlobalAddressList": "

If enabled, the resource is hidden from the global address list.

", + "DescribeUserResponse$HiddenFromGlobalAddressList": "

If enabled, the user is hidden from the global address list.

", "GetMailDomainResponse$IsTestDomain": "

Specifies whether the domain is a test domain provided by WorkMail, or a custom domain.

", "GetMailDomainResponse$IsDefault": "

Specifies whether the domain is the default domain for your organization.

", "MailDomainSummary$DefaultDomain": "

Whether the domain is default or not.

", @@ -237,7 +249,10 @@ "BooleanObject": { "base": null, "refs": { - "PutInboundDmarcSettingsRequest$Enforced": "

Enforces or suspends a policy after it's applied.

" + "PutInboundDmarcSettingsRequest$Enforced": "

Enforces or suspends a policy after it's applied.

", + "UpdateGroupRequest$HiddenFromGlobalAddressList": "

If enabled, the group is hidden from the global address list.

", + "UpdateResourceRequest$HiddenFromGlobalAddressList": "

If enabled, the resource is hidden from the global address list.

", + "UpdateUserRequest$HiddenFromGlobalAddressList": "

If enabled, the user is hidden from the global address list.

" } }, "CancelMailboxExportJobRequest": { @@ -496,6 +511,16 @@ "refs": { } }, + "DescribeEntityRequest": { + "base": null, + "refs": { + } + }, + "DescribeEntityResponse": { + "base": null, + "refs": { + } + }, "DescribeGroupRequest": { "base": null, "refs": { @@ -738,6 +763,7 @@ "Aliases$member": null, "CreateAliasRequest$Alias": "

The alias to add to the member set.

", "DeleteAliasRequest$Alias": "

The aliases to be removed from the user's set of aliases. Duplicate entries in the list are collapsed into single entries (the list is transformed into a set).

", + "DescribeEntityRequest$Email": "

The email under which the entity exists.

", "DescribeGroupResponse$Email": "

The email of the described group.

", "DescribeResourceResponse$Email": "

The email of the described resource.

", "DescribeUserResponse$Email": "

The email of the user.

", @@ -761,12 +787,43 @@ "EntityIdentifier": { "base": null, "refs": { + "AssociateDelegateToResourceRequest$ResourceId": "

The resource for which members (users or groups) are associated.

The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available:

", + "AssociateDelegateToResourceRequest$EntityId": "

The member (user or group) to associate to the resource.

The entity ID can accept UserId or GroupID, Username or Groupname, or email.

", + "AssociateMemberToGroupRequest$GroupId": "

The group to which the member (user or group) is associated.

The identifier can accept GroupId, Groupname, or email. The following identity formats are available:

", + "AssociateMemberToGroupRequest$MemberId": "

The member (user or group) to associate to the group.

The member ID can accept UserID or GroupId, Username or Groupname, or email.

", + "DeleteGroupRequest$GroupId": "

The identifier of the group to be deleted.

The identifier can be the GroupId, or Groupname. The following identity formats are available:

", + "DeleteMailboxPermissionsRequest$EntityId": "

The identifier of the entity that owns the mailbox.

The identifier can be UserId or Group Id, Username or Groupname, or email.

", + "DeleteMailboxPermissionsRequest$GranteeId": "

The identifier of the entity for which to delete granted permissions.

The identifier can be UserId, ResourceID, or Group Id, Username or Groupname, or email.

", "DeleteMobileDeviceAccessOverrideRequest$UserId": "

The WorkMail user for which you want to delete the override. Accepts the following types of user identities:

", + "DeleteResourceRequest$ResourceId": "

The identifier of the resource to be deleted.

The identifier can accept ResourceId, or Resourcename. The following identity formats are available:

", + "DeleteUserRequest$UserId": "

The identifier of the user to be deleted.

The identifier can be the UserId or Username. The following identity formats are available:

", + "DeregisterFromWorkMailRequest$EntityId": "

The identifier for the member to be updated.

The identifier can be UserId, ResourceId, or Group Id, Username, Resourcename, or Groupname, or email.

", + "DescribeGroupRequest$GroupId": "

The identifier for the group to be described.

The identifier can accept GroupId, Groupname, or email. The following identity formats are available:

", + "DescribeResourceRequest$ResourceId": "

The identifier of the resource to be described.

The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available:

", + "DescribeUserRequest$UserId": "

The identifier for the user to be described.

The identifier can be the UserId, Username, or email. The following identity formats are available:

", + "DisassociateDelegateFromResourceRequest$ResourceId": "

The identifier of the resource from which delegates' set members are removed.

The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available:

", + "DisassociateDelegateFromResourceRequest$EntityId": "

The identifier for the member (user, group) to be removed from the resource's delegates.

The entity ID can accept UserId or GroupID, Username or Groupname, or email.

", + "DisassociateMemberFromGroupRequest$GroupId": "

The identifier for the group from which members are removed.

The identifier can accept GroupId, Groupname, or email. The following identity formats are available:

", + "DisassociateMemberFromGroupRequest$MemberId": "

The identifier for the member to be removed from the group.

The member ID can accept UserID or GroupId, Username or Groupname, or email.

", "GetImpersonationRoleEffectRequest$TargetUser": "

The WorkMail organization user chosen to test the impersonation role. The following identity formats are available:

", + "GetMailboxDetailsRequest$UserId": "

The identifier for the user whose mailbox details are being requested.

The identifier can be the UserId, Username, or email. The following identity formats are available:

", "GetMobileDeviceAccessOverrideRequest$UserId": "

Identifies the WorkMail user for the override. Accepts the following types of user identities:

", + "ListGroupMembersRequest$GroupId": "

The identifier for the group to which the members (users or groups) are associated.

The identifier can accept GroupId, Groupname, or email. The following identity formats are available:

", + "ListGroupsForEntityRequest$EntityId": "

The identifier for the entity.

The entity ID can accept UserId or GroupID, Username or Groupname, or email.

", + "ListMailboxPermissionsRequest$EntityId": "

The identifier of the user, or resource for which to list mailbox permissions.

The entity ID can accept UserId or ResourceId, Username or Resourcename, or email.

", "ListMobileDeviceAccessOverridesRequest$UserId": "

The WorkMail user under which you list the mobile device access overrides. Accepts the following types of user identities:

", + "ListResourceDelegatesRequest$ResourceId": "

The identifier for the resource whose delegates are listed.

The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available:

", + "PutMailboxPermissionsRequest$EntityId": "

The identifier of the user or resource for which to update mailbox permissions.

The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, or Groupname, or email.

", + "PutMailboxPermissionsRequest$GranteeId": "

The identifier of the user, group, or resource to which to grant the permissions.

The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, or Groupname, or email.

", "PutMobileDeviceAccessOverrideRequest$UserId": "

The WorkMail user for which you create the override. Accepts the following types of user identities:

", - "TargetUsers$member": null + "RegisterToWorkMailRequest$EntityId": "

The identifier for the user, group, or resource to be updated.

The identifier can accept UserId, ResourceId, or GroupId, or Username, Resourcename, or Groupname. The following identity formats are available:

", + "StartMailboxExportJobRequest$EntityId": "

The identifier of the user or resource associated with the mailbox.

The identifier can accept UserId or ResourceId, Username or Resourcename, or email. The following identity formats are available:

", + "TargetUsers$member": null, + "UpdateGroupRequest$GroupId": "

The identifier for the group to be updated.

The identifier can accept GroupId, Groupname, or email. The following identity formats are available:

", + "UpdateMailboxQuotaRequest$UserId": "

The identifer for the user for whom to update the mailbox quota.

The identifier can be the UserId, Username, or email. The following identity formats are available:

", + "UpdatePrimaryEmailAddressRequest$EntityId": "

The user, group, or resource to update.

The identifier can accept UseriD, ResourceId, or GroupId, Username, Resourcename, or Groupname, or email. The following identity formats are available:

", + "UpdateResourceRequest$ResourceId": "

The identifier of the resource to be updated.

The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available:

", + "UpdateUserRequest$UserId": "

The identifier for the user to be updated.

The identifier can be the UserId, Username, or email. The following identity formats are available:

" } }, "EntityNotFoundException": { @@ -781,6 +838,9 @@ "DescribeResourceResponse$State": "

The state of the resource: enabled (registered to WorkMail), disabled (deregistered or never registered to WorkMail), or deleted.

", "DescribeUserResponse$State": "

The state of a user: enabled (registered to WorkMail) or disabled (deregistered or never registered to WorkMail).

", "Group$State": "

The state of the group, which can be ENABLED, DISABLED, or DELETED.

", + "ListGroupsFilters$State": "

Filters only groups with the provided state.

", + "ListResourcesFilters$State": "

Filters only resource with the provided state.

", + "ListUsersFilters$State": "

Filters only users with the provided state.

", "Member$State": "

The state of the member, which can be ENABLED, DISABLED, or DELETED.

", "Resource$State": "

The state of the resource, which can be ENABLED, DISABLED, or DELETED.

", "User$State": "

The state of the user, which can be ENABLED, DISABLED, or DELETED.

" @@ -791,6 +851,12 @@ "refs": { } }, + "EntityType": { + "base": null, + "refs": { + "DescribeEntityResponse$Type": "

Entity type.

" + } + }, "EwsAvailabilityProvider": { "base": "

Describes an EWS based availability provider. This is only used as input to the service.

", "refs": { @@ -917,12 +983,25 @@ "Groups$member": null } }, + "GroupIdentifier": { + "base": "

The identifier that contains the Group ID and name of a group.

", + "refs": { + "GroupIdentifiers$member": null + } + }, + "GroupIdentifiers": { + "base": null, + "refs": { + "ListGroupsForEntityResponse$Groups": "

The overview of groups in an organization.

" + } + }, "GroupName": { "base": null, "refs": { "CreateGroupRequest$Name": "

The name of the group.

", "DescribeGroupResponse$Name": "

The name of the described group.

", - "Group$Name": "

The name of the group.

" + "Group$Name": "

The name of the group.

", + "GroupIdentifier$GroupName": "

Group name that matched the group.

" } }, "Groups": { @@ -1180,6 +1259,28 @@ "refs": { } }, + "ListGroupsFilters": { + "base": "

Filtering options for ListGroups operation. This is only used as input to Operation.

", + "refs": { + "ListGroupsRequest$Filters": "

Limit the search results based on the filter criteria. Only one filter per request is supported.

" + } + }, + "ListGroupsForEntityFilters": { + "base": "

Filtering options for ListGroupsForEntity operation. This is only used as input to Operation.

", + "refs": { + "ListGroupsForEntityRequest$Filters": "

Limit the search results based on the filter criteria.

" + } + }, + "ListGroupsForEntityRequest": { + "base": null, + "refs": { + } + }, + "ListGroupsForEntityResponse": { + "base": null, + "refs": { + } + }, "ListGroupsRequest": { "base": null, "refs": { @@ -1270,6 +1371,12 @@ "refs": { } }, + "ListResourcesFilters": { + "base": "

Filtering options for ListResources operation. This is only used as input to Operation.

", + "refs": { + "ListResourcesRequest$Filters": "

Limit the resource search results based on the filter criteria. You can only use one filter per request.

" + } + }, "ListResourcesRequest": { "base": null, "refs": { @@ -1290,6 +1397,12 @@ "refs": { } }, + "ListUsersFilters": { + "base": "

Filtering options for ListUsers operation. This is only used as input to Operation.

", + "refs": { + "ListUsersRequest$Filters": "

Limit the user search results based on the filter criteria. You can only use one filter per request.

" + } + }, "ListUsersRequest": { "base": null, "refs": { @@ -1381,6 +1494,7 @@ "ListAliasesRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListAvailabilityConfigurationsRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListGroupMembersRequest$MaxResults": "

The maximum number of results to return in a single call.

", + "ListGroupsForEntityRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListGroupsRequest$MaxResults": "

The maximum number of results to return in a single call.

", "ListImpersonationRolesRequest$MaxResults": "

The maximum number of results returned in a single call.

", "ListMailDomainsRequest$MaxResults": "

The maximum number of results to return in a single call.

", @@ -1496,6 +1610,12 @@ "refs": { } }, + "NewResourceDescription": { + "base": null, + "refs": { + "UpdateResourceRequest$Description": "

Updates the resource description.

" + } + }, "NextToken": { "base": null, "refs": { @@ -1505,6 +1625,8 @@ "ListAvailabilityConfigurationsResponse$NextToken": "

The token to use to retrieve the next page of results. The value is null when there are no further results to return.

", "ListGroupMembersRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", "ListGroupMembersResponse$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", + "ListGroupsForEntityRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", + "ListGroupsForEntityResponse$NextToken": "

The token to use to retrieve the next page of results. This value is `null` when there are no more results to return.

", "ListGroupsRequest$NextToken": "

The token to use to retrieve the next page of results. The first call does not contain any tokens.

", "ListGroupsResponse$NextToken": "

The token to use to retrieve the next page of results. The value is \"null\" when there are no more results to return.

", "ListImpersonationRolesRequest$NextToken": "

The token used to retrieve the next page of results. The first call doesn't require a token.

", @@ -1559,6 +1681,7 @@ "DeregisterFromWorkMailRequest$OrganizationId": "

The identifier for the organization under which the WorkMail entity exists.

", "DeregisterMailDomainRequest$OrganizationId": "

The WorkMail organization for which the domain will be deregistered.

", "DescribeEmailMonitoringConfigurationRequest$OrganizationId": "

The ID of the organization for which the email monitoring configuration is described.

", + "DescribeEntityRequest$OrganizationId": "

The identifier for the organization under which the entity exists.

", "DescribeGroupRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", "DescribeInboundDmarcSettingsRequest$OrganizationId": "

Lists the ID of the given organization.

", "DescribeMailboxExportJobRequest$OrganizationId": "

The organization ID.

", @@ -1580,6 +1703,7 @@ "ListAliasesRequest$OrganizationId": "

The identifier for the organization under which the entity exists.

", "ListAvailabilityConfigurationsRequest$OrganizationId": "

The WorkMail organization for which the AvailabilityConfiguration's will be listed.

", "ListGroupMembersRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", + "ListGroupsForEntityRequest$OrganizationId": "

The identifier for the organization under which the entity exists.

", "ListGroupsRequest$OrganizationId": "

The identifier for the organization under which the groups exist.

", "ListImpersonationRolesRequest$OrganizationId": "

The WorkMail organization to which the listed impersonation roles belong.

", "ListMailDomainsRequest$OrganizationId": "

The WorkMail organization for which to list domains.

", @@ -1604,11 +1728,13 @@ "TestAvailabilityConfigurationRequest$OrganizationId": "

The WorkMail organization where the availability provider will be tested.

", "UpdateAvailabilityConfigurationRequest$OrganizationId": "

The WorkMail organization for which the AvailabilityConfiguration will be updated.

", "UpdateDefaultMailDomainRequest$OrganizationId": "

The WorkMail organization for which to list domains.

", + "UpdateGroupRequest$OrganizationId": "

The identifier for the organization under which the group exists.

", "UpdateImpersonationRoleRequest$OrganizationId": "

The WorkMail organization that contains the impersonation role to update.

", "UpdateMailboxQuotaRequest$OrganizationId": "

The identifier for the organization that contains the user for whom to update the mailbox quota.

", "UpdateMobileDeviceAccessRuleRequest$OrganizationId": "

The WorkMail organization under which the rule will be updated.

", "UpdatePrimaryEmailAddressRequest$OrganizationId": "

The organization that contains the user, group, or resource to update.

", - "UpdateResourceRequest$OrganizationId": "

The identifier associated with the organization for which the resource is updated.

" + "UpdateResourceRequest$OrganizationId": "

The identifier associated with the organization for which the resource is updated.

", + "UpdateUserRequest$OrganizationId": "

The identifier for the organization under which the user exists.

" } }, "OrganizationName": { @@ -1800,16 +1926,19 @@ "ListResourceDelegatesResponse$Delegates": "

One page of the resource's delegates.

" } }, + "ResourceDescription": { + "base": null, + "refs": { + "CreateResourceRequest$Description": "

Resource description.

", + "DescribeResourceResponse$Description": "

Description of the resource.

", + "Resource$Description": "

Resource description.

" + } + }, "ResourceId": { "base": null, "refs": { - "AssociateDelegateToResourceRequest$ResourceId": "

The resource for which members (users or groups) are associated.

", "CreateResourceResponse$ResourceId": "

The identifier of the new resource.

", - "DeleteResourceRequest$ResourceId": "

The identifier of the resource to be deleted.

", - "DescribeResourceRequest$ResourceId": "

The identifier of the resource to be described.

", - "DescribeResourceResponse$ResourceId": "

The identifier of the described resource.

", - "DisassociateDelegateFromResourceRequest$ResourceId": "

The identifier of the resource from which delegates' set members are removed.

", - "UpdateResourceRequest$ResourceId": "

The identifier of the resource to be updated.

" + "DescribeResourceResponse$ResourceId": "

The identifier of the described resource.

" } }, "ResourceName": { @@ -1831,7 +1960,8 @@ "refs": { "CreateResourceRequest$Type": "

The type of the new resource. The available types are equipment and room.

", "DescribeResourceResponse$Type": "

The type of the described resource.

", - "Resource$Type": "

The type of the resource: equipment or room.

" + "Resource$Type": "

The type of the resource: equipment or room.

", + "UpdateResourceRequest$Type": "

Updates the resource type.

" } }, "Resources": { @@ -1901,15 +2031,14 @@ "String": { "base": null, "refs": { - "CreateUserRequest$DisplayName": "

The display name for the new user.

", "Delegate$Id": "

The identifier for the user or group associated as the resource's delegate.

", "DeleteOrganizationResponse$State": "

The state of the organization.

", + "DescribeEntityResponse$Name": "

Username, GroupName, or ResourceName based on entity type.

", "DescribeOrganizationResponse$State": "

The state of an organization.

", "DescribeOrganizationResponse$DirectoryId": "

The identifier for the directory associated with an WorkMail organization.

", "DescribeOrganizationResponse$DirectoryType": "

The type of directory associated with the WorkMail organization.

", "DescribeOrganizationResponse$DefaultMailDomain": "

The default mail domain associated with the organization.

", "DescribeOrganizationResponse$ErrorMessage": "

(Optional) The error message indicating if unexpected behavior was encountered with regards to the organization.

", - "DescribeUserResponse$DisplayName": "

The display name of the user.

", "DirectoryInUseException$Message": null, "DirectoryServiceAuthenticationFailedException$Message": null, "DirectoryUnavailableException$Message": null, @@ -1926,6 +2055,13 @@ "InvalidParameterException$Message": null, "InvalidPasswordException$Message": null, "LimitExceededException$Message": null, + "ListGroupsFilters$NamePrefix": "

Filters only groups with the provided name prefix.

", + "ListGroupsFilters$PrimaryEmailPrefix": "

Filters only groups with the provided primary email prefix.

", + "ListGroupsForEntityFilters$GroupNamePrefix": "

Filters only group names that start with the provided name prefix.

", + "ListResourcesFilters$NamePrefix": "

Filters only resource that start with the entered name prefix .

", + "ListResourcesFilters$PrimaryEmailPrefix": "

Filters only resource with the provided primary email prefix.

", + "ListUsersFilters$UsernamePrefix": "

Filters only users with the provided username prefix.

", + "ListUsersFilters$PrimaryEmailPrefix": "

Filters only users with the provided email prefix.

", "MailDomainInUseException$Message": null, "MailDomainNotFoundException$Message": null, "MailDomainStateException$Message": null, @@ -2019,6 +2155,8 @@ "DescribeResourceResponse$DisabledDate": "

The date and time when a resource was disabled from WorkMail, in UNIX epoch time format.

", "DescribeUserResponse$EnabledDate": "

The date and time at which the user was enabled for WorkMailusage, in UNIX epoch time format.

", "DescribeUserResponse$DisabledDate": "

The date and time at which the user was disabled for WorkMail usage, in UNIX epoch time format.

", + "DescribeUserResponse$MailboxProvisionedDate": "

The date when the mailbox was created for the user.

", + "DescribeUserResponse$MailboxDeprovisionedDate": "

The date when the mailbox was removed for the user.

", "GetImpersonationRoleResponse$DateCreated": "

The date when the impersonation role was created.

", "GetImpersonationRoleResponse$DateModified": "

The date when the impersonation role was last modified.

", "GetMobileDeviceAccessOverrideResponse$DateCreated": "

The date the override was first created.

", @@ -2081,6 +2219,16 @@ "refs": { } }, + "UpdateGroupRequest": { + "base": null, + "refs": { + } + }, + "UpdateGroupResponse": { + "base": null, + "refs": { + } + }, "UpdateImpersonationRoleRequest": { "base": null, "refs": { @@ -2131,6 +2279,16 @@ "refs": { } }, + "UpdateUserRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserResponse": { + "base": null, + "refs": { + } + }, "Url": { "base": null, "refs": { @@ -2144,6 +2302,41 @@ "Users$member": null } }, + "UserAttribute": { + "base": null, + "refs": { + "CreateUserRequest$DisplayName": "

The display name for the new user.

", + "CreateUserRequest$FirstName": "

The first name of the new user.

", + "CreateUserRequest$LastName": "

The last name of the new user.

", + "DescribeUserResponse$DisplayName": "

The display name of the user.

", + "DescribeUserResponse$FirstName": "

First name of the user.

", + "DescribeUserResponse$LastName": "

Last name of the user.

", + "DescribeUserResponse$Initials": "

Initials of the user.

", + "DescribeUserResponse$Telephone": "

User's contact number.

", + "DescribeUserResponse$Street": "

Street where the user is located.

", + "DescribeUserResponse$JobTitle": "

Job title of the user.

", + "DescribeUserResponse$City": "

City where the user is located.

", + "DescribeUserResponse$Company": "

Company of the user.

", + "DescribeUserResponse$ZipCode": "

Zip code of the user.

", + "DescribeUserResponse$Department": "

Department of the user.

", + "DescribeUserResponse$Country": "

Country where the user is located.

", + "DescribeUserResponse$Office": "

Office where the user is located.

", + "ListUsersFilters$DisplayNamePrefix": "

Filters only users with the provided display name prefix.

", + "UpdateUserRequest$DisplayName": "

Updates the display name of the user.

", + "UpdateUserRequest$FirstName": "

Updates the user's first name.

", + "UpdateUserRequest$LastName": "

Updates the user's last name.

", + "UpdateUserRequest$Initials": "

Updates the user's initials.

", + "UpdateUserRequest$Telephone": "

Updates the user's contact details.

", + "UpdateUserRequest$Street": "

Updates the user's street address.

", + "UpdateUserRequest$JobTitle": "

Updates the user's job title.

", + "UpdateUserRequest$City": "

Updates the user's city.

", + "UpdateUserRequest$Company": "

Updates the user's company.

", + "UpdateUserRequest$ZipCode": "

Updates the user's zipcode.

", + "UpdateUserRequest$Department": "

Updates the user's department.

", + "UpdateUserRequest$Country": "

Updates the user's country.

", + "UpdateUserRequest$Office": "

Updates the user's office.

" + } + }, "UserIdList": { "base": null, "refs": { @@ -2164,7 +2357,9 @@ "UserRole": { "base": null, "refs": { - "DescribeUserResponse$UserRole": "

In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, and SYSTEM_USER.

", + "CreateUserRequest$Role": "

The role of the new user.

You cannot pass SYSTEM_USER or RESOURCE role in a single request. When a user role is not selected, the default role of USER is selected.

", + "DescribeUserResponse$UserRole": "

In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, SYSTEM_USER, and REMOTE_USER.

", + "UpdateUserRequest$Role": "

Updates the user role.

You cannot pass SYSTEM_USER or RESOURCE.

", "User$UserRole": "

The role of the user.

" } }, @@ -2186,45 +2381,25 @@ "WorkMailIdentifier": { "base": null, "refs": { - "AssociateDelegateToResourceRequest$EntityId": "

The member (user or group) to associate to the resource.

", - "AssociateMemberToGroupRequest$GroupId": "

The group to which the member (user or group) is associated.

", - "AssociateMemberToGroupRequest$MemberId": "

The member (user or group) to associate to the group.

", "CreateAliasRequest$EntityId": "

The member (user or group) to which this alias is added.

", "CreateGroupResponse$GroupId": "

The identifier of the group.

", "CreateUserResponse$UserId": "

The identifier for the new user.

", "DeleteAliasRequest$EntityId": "

The identifier for the member (user or group) from which to have the aliases removed.

", - "DeleteGroupRequest$GroupId": "

The identifier of the group to be deleted.

", - "DeleteMailboxPermissionsRequest$EntityId": "

The identifier of the member (user or group) that owns the mailbox.

", - "DeleteMailboxPermissionsRequest$GranteeId": "

The identifier of the member (user or group) for which to delete granted permissions.

", - "DeleteUserRequest$UserId": "

The identifier of the user to be deleted.

", - "DeregisterFromWorkMailRequest$EntityId": "

The identifier for the member (user or group) to be updated.

", - "DescribeGroupRequest$GroupId": "

The identifier for the group to be described.

", + "DescribeEntityResponse$EntityId": "

The entity ID under which the entity exists.

", "DescribeGroupResponse$GroupId": "

The identifier of the described group.

", "DescribeMailboxExportJobResponse$EntityId": "

The identifier of the user or resource associated with the mailbox.

", - "DescribeUserRequest$UserId": "

The identifier for the user to be described.

", + "DescribeOrganizationResponse$MigrationAdmin": "

The user ID of the migration admin if migration is enabled for the organization.

", "DescribeUserResponse$UserId": "

The identifier for the described user.

", - "DisassociateDelegateFromResourceRequest$EntityId": "

The identifier for the member (user, group) to be removed from the resource's delegates.

", - "DisassociateMemberFromGroupRequest$GroupId": "

The identifier for the group from which members are removed.

", - "DisassociateMemberFromGroupRequest$MemberId": "

The identifier for the member to be removed to the group.

", "GetAccessControlEffectRequest$UserId": "

The user ID.

", - "GetMailboxDetailsRequest$UserId": "

The identifier for the user whose mailbox details are being requested.

", "GetMobileDeviceAccessOverrideResponse$UserId": "

The WorkMail user to which the access override applies.

", "Group$Id": "

The identifier of the group.

", + "GroupIdentifier$GroupId": "

Group ID that matched the group.

", "ListAliasesRequest$EntityId": "

The identifier for the entity for which to list the aliases.

", - "ListGroupMembersRequest$GroupId": "

The identifier for the group to which the members (users or groups) are associated.

", - "ListMailboxPermissionsRequest$EntityId": "

The identifier of the user, group, or resource for which to list mailbox permissions.

", - "ListResourceDelegatesRequest$ResourceId": "

The identifier for the resource whose delegates are listed.

", "MailboxExportJob$EntityId": "

The identifier of the user or resource associated with the mailbox.

", "MobileDeviceAccessOverride$UserId": "

The WorkMail user to which the access override applies.

", "Permission$GranteeId": "

The identifier of the user, group, or resource to which the permissions are granted.

", - "PutMailboxPermissionsRequest$EntityId": "

The identifier of the user, group, or resource for which to update mailbox permissions.

", - "PutMailboxPermissionsRequest$GranteeId": "

The identifier of the user, group, or resource to which to grant the permissions.

", - "RegisterToWorkMailRequest$EntityId": "

The identifier for the user, group, or resource to be updated.

", "ResetPasswordRequest$UserId": "

The identifier of the user for whom the password is reset.

", "Resource$Id": "

The identifier of the resource.

", - "StartMailboxExportJobRequest$EntityId": "

The identifier of the user or resource associated with the mailbox.

", - "UpdateMailboxQuotaRequest$UserId": "

The identifer for the user for whom to update the mailbox quota.

", - "UpdatePrimaryEmailAddressRequest$EntityId": "

The user, group, or resource to update.

", "User$Id": "

The identifier of the user.

", "UserIdList$member": null } diff --git a/models/apis/workmail/2017-10-01/endpoint-rule-set-1.json b/models/apis/workmail/2017-10-01/endpoint-rule-set-1.json new file mode 100644 index 00000000000..a0b2c379c0d --- /dev/null +++ b/models/apis/workmail/2017-10-01/endpoint-rule-set-1.json @@ -0,0 +1,314 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workmail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workmail.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ] +} \ No newline at end of file diff --git a/models/apis/workmail/2017-10-01/endpoint-tests-1.json b/models/apis/workmail/2017-10-01/endpoint-tests-1.json new file mode 100644 index 00000000000..be70fbc3731 --- /dev/null +++ b/models/apis/workmail/2017-10-01/endpoint-tests-1.json @@ -0,0 +1,340 @@ +{ + "testCases": [ + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.eu-west-1.amazonaws.com" + } + }, + "params": { + "Region": "eu-west-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-west-2.amazonaws.com" + } + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workmail.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/workmail/2017-10-01/paginators-1.json b/models/apis/workmail/2017-10-01/paginators-1.json index 6b71db44dac..f4305ce7e13 100644 --- a/models/apis/workmail/2017-10-01/paginators-1.json +++ b/models/apis/workmail/2017-10-01/paginators-1.json @@ -21,6 +21,11 @@ "output_token": "NextToken", "limit_key": "MaxResults" }, + "ListGroupsForEntity": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" + }, "ListImpersonationRoles": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/service/applicationdiscoveryservice/api.go b/service/applicationdiscoveryservice/api.go index e3f30ff618f..1090911fe8e 100644 --- a/service/applicationdiscoveryservice/api.go +++ b/service/applicationdiscoveryservice/api.go @@ -2834,7 +2834,7 @@ func (s *AgentInfo) SetVersion(v string) *AgentInfo { // Network details about the host where the agent/collector resides. type AgentNetworkInfo struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // The IP address for the host where the agent/collector resides. IpAddress *string `locationName:"ipAddress" type:"string"` diff --git a/service/workmail/api.go b/service/workmail/api.go index 42a99457318..a5821f55d6c 100644 --- a/service/workmail/api.go +++ b/service/workmail/api.go @@ -87,6 +87,9 @@ func (c *WorkMail) AssociateDelegateToResourceRequest(input *AssociateDelegateTo // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateDelegateToResource func (c *WorkMail) AssociateDelegateToResource(input *AssociateDelegateToResourceInput) (*AssociateDelegateToResourceOutput, error) { req, out := c.AssociateDelegateToResourceRequest(input) @@ -1087,6 +1090,9 @@ func (c *WorkMail) CreateResourceRequest(input *CreateResourceInput) (req *reque // - ReservedNameException // This user, group, or resource name is not allowed in WorkMail. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateResource func (c *WorkMail) CreateResource(input *CreateResourceInput) (*CreateResourceOutput, error) { req, out := c.CreateResourceRequest(input) @@ -2210,6 +2216,9 @@ func (c *WorkMail) DeleteResourceRequest(input *DeleteResourceInput) (req *reque // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteResource func (c *WorkMail) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) { req, out := c.DeleteResourceRequest(input) @@ -2715,6 +2724,97 @@ func (c *WorkMail) DescribeEmailMonitoringConfigurationWithContext(ctx aws.Conte return out, req.Send() } +const opDescribeEntity = "DescribeEntity" + +// DescribeEntityRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEntity operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeEntity for more information on using the DescribeEntity +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the DescribeEntityRequest method. +// req, resp := client.DescribeEntityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeEntity +func (c *WorkMail) DescribeEntityRequest(input *DescribeEntityInput) (req *request.Request, output *DescribeEntityOutput) { + op := &request.Operation{ + Name: opDescribeEntity, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEntityInput{} + } + + output = &DescribeEntityOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEntity API operation for Amazon WorkMail. +// +// Returns basic details about an entity in WorkMail. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkMail's +// API operation DescribeEntity for usage and error information. +// +// Returned Error Types: +// +// - EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// - OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// - OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeEntity +func (c *WorkMail) DescribeEntity(input *DescribeEntityInput) (*DescribeEntityOutput, error) { + req, out := c.DescribeEntityRequest(input) + return out, req.Send() +} + +// DescribeEntityWithContext is the same as DescribeEntity with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEntity for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkMail) DescribeEntityWithContext(ctx aws.Context, input *DescribeEntityInput, opts ...request.Option) (*DescribeEntityOutput, error) { + req, out := c.DescribeEntityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeGroup = "DescribeGroup" // DescribeGroupRequest generates a "aws/request.Request" representing the @@ -3133,6 +3233,9 @@ func (c *WorkMail) DescribeResourceRequest(input *DescribeResourceInput) (req *r // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeResource func (c *WorkMail) DescribeResource(input *DescribeResourceInput) (*DescribeResourceOutput, error) { req, out := c.DescribeResourceRequest(input) @@ -3320,6 +3423,9 @@ func (c *WorkMail) DisassociateDelegateFromResourceRequest(input *DisassociateDe // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateDelegateFromResource func (c *WorkMail) DisassociateDelegateFromResource(input *DisassociateDelegateFromResourceInput) (*DisassociateDelegateFromResourceOutput, error) { req, out := c.DisassociateDelegateFromResourceRequest(input) @@ -3968,6 +4074,9 @@ func (c *WorkMail) GetMailboxDetailsRequest(input *GetMailboxDetailsInput) (req // // Returned Error Types: // +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// // - OrganizationNotFoundException // An operation received a valid organization identifier that either doesn't // belong or exist in the system. @@ -4865,6 +4974,158 @@ func (c *WorkMail) ListGroupsPagesWithContext(ctx aws.Context, input *ListGroups return p.Err() } +const opListGroupsForEntity = "ListGroupsForEntity" + +// ListGroupsForEntityRequest generates a "aws/request.Request" representing the +// client's request for the ListGroupsForEntity operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListGroupsForEntity for more information on using the ListGroupsForEntity +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the ListGroupsForEntityRequest method. +// req, resp := client.ListGroupsForEntityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroupsForEntity +func (c *WorkMail) ListGroupsForEntityRequest(input *ListGroupsForEntityInput) (req *request.Request, output *ListGroupsForEntityOutput) { + op := &request.Operation{ + Name: opListGroupsForEntity, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListGroupsForEntityInput{} + } + + output = &ListGroupsForEntityOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListGroupsForEntity API operation for Amazon WorkMail. +// +// Returns all the groups to which an entity belongs. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkMail's +// API operation ListGroupsForEntity for usage and error information. +// +// Returned Error Types: +// +// - EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// - EntityStateException +// You are performing an operation on a user, group, or resource that isn't +// in the expected state, such as trying to delete an active user. +// +// - OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// - OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroupsForEntity +func (c *WorkMail) ListGroupsForEntity(input *ListGroupsForEntityInput) (*ListGroupsForEntityOutput, error) { + req, out := c.ListGroupsForEntityRequest(input) + return out, req.Send() +} + +// ListGroupsForEntityWithContext is the same as ListGroupsForEntity with the addition of +// the ability to pass a context and additional request options. +// +// See ListGroupsForEntity for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkMail) ListGroupsForEntityWithContext(ctx aws.Context, input *ListGroupsForEntityInput, opts ...request.Option) (*ListGroupsForEntityOutput, error) { + req, out := c.ListGroupsForEntityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListGroupsForEntityPages iterates over the pages of a ListGroupsForEntity operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListGroupsForEntity method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListGroupsForEntity operation. +// pageNum := 0 +// err := client.ListGroupsForEntityPages(params, +// func(page *workmail.ListGroupsForEntityOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *WorkMail) ListGroupsForEntityPages(input *ListGroupsForEntityInput, fn func(*ListGroupsForEntityOutput, bool) bool) error { + return c.ListGroupsForEntityPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListGroupsForEntityPagesWithContext same as ListGroupsForEntityPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkMail) ListGroupsForEntityPagesWithContext(ctx aws.Context, input *ListGroupsForEntityInput, fn func(*ListGroupsForEntityOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListGroupsForEntityInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListGroupsForEntityRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListGroupsForEntityOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListImpersonationRoles = "ListImpersonationRoles" // ListImpersonationRolesRequest generates a "aws/request.Request" representing the @@ -5898,6 +6159,9 @@ func (c *WorkMail) ListResourceDelegatesRequest(input *ListResourceDelegatesInpu // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResourceDelegates func (c *WorkMail) ListResourceDelegates(input *ListResourceDelegatesInput) (*ListResourceDelegatesOutput, error) { req, out := c.ListResourceDelegatesRequest(input) @@ -6042,6 +6306,9 @@ func (c *WorkMail) ListResourcesRequest(input *ListResourcesInput) (req *request // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResources func (c *WorkMail) ListResources(input *ListResourcesInput) (*ListResourcesOutput, error) { req, out := c.ListResourcesRequest(input) @@ -7382,6 +7649,9 @@ func (c *WorkMail) TagResourceRequest(input *TagResourceInput) (req *request.Req // // Returned Error Types: // +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// // - ResourceNotFoundException // The resource cannot be found. // @@ -7781,63 +8051,68 @@ func (c *WorkMail) UpdateDefaultMailDomainWithContext(ctx aws.Context, input *Up return out, req.Send() } -const opUpdateImpersonationRole = "UpdateImpersonationRole" +const opUpdateGroup = "UpdateGroup" -// UpdateImpersonationRoleRequest generates a "aws/request.Request" representing the -// client's request for the UpdateImpersonationRole operation. The "output" return +// UpdateGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateGroup operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See UpdateImpersonationRole for more information on using the UpdateImpersonationRole +// See UpdateGroup for more information on using the UpdateGroup // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // -// // Example sending a request using the UpdateImpersonationRoleRequest method. -// req, resp := client.UpdateImpersonationRoleRequest(params) +// // Example sending a request using the UpdateGroupRequest method. +// req, resp := client.UpdateGroupRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateImpersonationRole -func (c *WorkMail) UpdateImpersonationRoleRequest(input *UpdateImpersonationRoleInput) (req *request.Request, output *UpdateImpersonationRoleOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateGroup +func (c *WorkMail) UpdateGroupRequest(input *UpdateGroupInput) (req *request.Request, output *UpdateGroupOutput) { op := &request.Operation{ - Name: opUpdateImpersonationRole, + Name: opUpdateGroup, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { - input = &UpdateImpersonationRoleInput{} + input = &UpdateGroupInput{} } - output = &UpdateImpersonationRoleOutput{} + output = &UpdateGroupOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// UpdateImpersonationRole API operation for Amazon WorkMail. +// UpdateGroup API operation for Amazon WorkMail. // -// Updates an impersonation role for the given WorkMail organization. +// Updates attibutes in a group. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon WorkMail's -// API operation UpdateImpersonationRole for usage and error information. +// API operation UpdateGroup for usage and error information. // // Returned Error Types: // -// - InvalidParameterException -// One or more of the input parameters don't match the service's restrictions. +// - EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// - EntityStateException +// You are performing an operation on a user, group, or resource that isn't +// in the expected state, such as trying to delete an active user. // // - OrganizationNotFoundException // An operation received a valid organization identifier that either doesn't @@ -7847,18 +8122,112 @@ func (c *WorkMail) UpdateImpersonationRoleRequest(input *UpdateImpersonationRole // The organization must have a valid state to perform certain operations on // the organization or its members. // -// - ResourceNotFoundException -// The resource cannot be found. +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. // -// - EntityNotFoundException -// The identifier supplied for the user, group, or resource does not exist in -// your organization. +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. // -// - EntityStateException -// You are performing an operation on a user, group, or resource that isn't -// in the expected state, such as trying to delete an active user. +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateGroup +func (c *WorkMail) UpdateGroup(input *UpdateGroupInput) (*UpdateGroupOutput, error) { + req, out := c.UpdateGroupRequest(input) + return out, req.Send() +} + +// UpdateGroupWithContext is the same as UpdateGroup with the addition of +// the ability to pass a context and additional request options. // -// - LimitExceededException +// See UpdateGroup for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkMail) UpdateGroupWithContext(ctx aws.Context, input *UpdateGroupInput, opts ...request.Option) (*UpdateGroupOutput, error) { + req, out := c.UpdateGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateImpersonationRole = "UpdateImpersonationRole" + +// UpdateImpersonationRoleRequest generates a "aws/request.Request" representing the +// client's request for the UpdateImpersonationRole operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateImpersonationRole for more information on using the UpdateImpersonationRole +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateImpersonationRoleRequest method. +// req, resp := client.UpdateImpersonationRoleRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateImpersonationRole +func (c *WorkMail) UpdateImpersonationRoleRequest(input *UpdateImpersonationRoleInput) (req *request.Request, output *UpdateImpersonationRoleOutput) { + op := &request.Operation{ + Name: opUpdateImpersonationRole, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateImpersonationRoleInput{} + } + + output = &UpdateImpersonationRoleOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateImpersonationRole API operation for Amazon WorkMail. +// +// Updates an impersonation role for the given WorkMail organization. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkMail's +// API operation UpdateImpersonationRole for usage and error information. +// +// Returned Error Types: +// +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// - OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// - OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// - EntityStateException +// You are performing an operation on a user, group, or resource that isn't +// in the expected state, such as trying to delete an active user. +// +// - LimitExceededException // The request exceeds the limit of the resource. // // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateImpersonationRole @@ -8288,6 +8657,12 @@ func (c *WorkMail) UpdateResourceRequest(input *UpdateResourceInput) (req *reque // The organization must have a valid state to perform certain operations on // the organization or its members. // +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateResource func (c *WorkMail) UpdateResource(input *UpdateResourceInput) (*UpdateResourceOutput, error) { req, out := c.UpdateResourceRequest(input) @@ -8310,6 +8685,113 @@ func (c *WorkMail) UpdateResourceWithContext(ctx aws.Context, input *UpdateResou return out, req.Send() } +const opUpdateUser = "UpdateUser" + +// UpdateUserRequest generates a "aws/request.Request" representing the +// client's request for the UpdateUser operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateUser for more information on using the UpdateUser +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the UpdateUserRequest method. +// req, resp := client.UpdateUserRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateUser +func (c *WorkMail) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) { + op := &request.Operation{ + Name: opUpdateUser, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateUserInput{} + } + + output = &UpdateUserOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateUser API operation for Amazon WorkMail. +// +// Updates data for the user. To have the latest information, it must be preceded +// by a DescribeUser call. The dataset in the request should be the one expected +// when performing another DescribeUser call. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon WorkMail's +// API operation UpdateUser for usage and error information. +// +// Returned Error Types: +// +// - DirectoryServiceAuthenticationFailedException +// The directory service doesn't recognize the credentials supplied by WorkMail. +// +// - DirectoryUnavailableException +// The directory is unavailable. It might be located in another Region or deleted. +// +// - EntityNotFoundException +// The identifier supplied for the user, group, or resource does not exist in +// your organization. +// +// - InvalidParameterException +// One or more of the input parameters don't match the service's restrictions. +// +// - OrganizationNotFoundException +// An operation received a valid organization identifier that either doesn't +// belong or exist in the system. +// +// - OrganizationStateException +// The organization must have a valid state to perform certain operations on +// the organization or its members. +// +// - UnsupportedOperationException +// You can't perform a write operation against a read-only directory. +// +// - EntityStateException +// You are performing an operation on a user, group, or resource that isn't +// in the expected state, such as trying to delete an active user. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateUser +func (c *WorkMail) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) { + req, out := c.UpdateUserRequest(input) + return out, req.Send() +} + +// UpdateUserWithContext is the same as UpdateUser with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateUser for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *WorkMail) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) { + req, out := c.UpdateUserRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // A rule that controls access to an WorkMail organization. type AccessControlRule struct { _ struct{} `type:"structure"` @@ -8457,8 +8939,16 @@ type AssociateDelegateToResourceInput struct { // The member (user or group) to associate to the resource. // + // The entity ID can accept UserId or GroupID, Username or Groupname, or email. + // + // * Entity: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity: entity + // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The organization under which the resource exists. // @@ -8467,8 +8957,17 @@ type AssociateDelegateToResourceInput struct { // The resource for which members (users or groups) are associated. // + // The identifier can accept ResourceId, Resourcename, or email. The following + // identity formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Email address: resource@domain.tld + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"34" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -8495,8 +8994,8 @@ func (s *AssociateDelegateToResourceInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -8507,8 +9006,8 @@ func (s *AssociateDelegateToResourceInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 34 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -8562,13 +9061,30 @@ type AssociateMemberToGroupInput struct { // The group to which the member (user or group) is associated. // + // The identifier can accept GroupId, Groupname, or email. The following identity + // formats are available: + // + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: group@domain.tld + // + // * Group name: group + // // GroupId is a required field - GroupId *string `min:"12" type:"string" required:"true"` + GroupId *string `min:"1" type:"string" required:"true"` // The member (user or group) to associate to the group. // + // The member ID can accept UserID or GroupId, Username or Groupname, or email. + // + // * Member: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: member@domain.tld + // + // * Member name: member + // // MemberId is a required field - MemberId *string `min:"12" type:"string" required:"true"` + MemberId *string `min:"1" type:"string" required:"true"` // The organization under which the group exists. // @@ -8600,14 +9116,14 @@ func (s *AssociateMemberToGroupInput) Validate() error { if s.GroupId == nil { invalidParams.Add(request.NewErrParamRequired("GroupId")) } - if s.GroupId != nil && len(*s.GroupId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GroupId", 12)) + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) } if s.MemberId == nil { invalidParams.Add(request.NewErrParamRequired("MemberId")) } - if s.MemberId != nil && len(*s.MemberId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("MemberId", 12)) + if s.MemberId != nil && len(*s.MemberId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MemberId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -9238,6 +9754,9 @@ func (s CreateAvailabilityConfigurationOutput) GoString() string { type CreateGroupInput struct { _ struct{} `type:"structure"` + // If this parameter is enabled, the group will be hidden from the address book. + HiddenFromGlobalAddressList *bool `type:"boolean"` + // The name of the group. // // Name is a required field @@ -9289,6 +9808,12 @@ func (s *CreateGroupInput) Validate() error { return nil } +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *CreateGroupInput) SetHiddenFromGlobalAddressList(v bool) *CreateGroupInput { + s.HiddenFromGlobalAddressList = &v + return s +} + // SetName sets the Name field's value. func (s *CreateGroupInput) SetName(v string) *CreateGroupInput { s.Name = &v @@ -9874,6 +10399,13 @@ func (s *CreateOrganizationOutput) SetOrganizationId(v string) *CreateOrganizati type CreateResourceInput struct { _ struct{} `type:"structure"` + // Resource description. + Description *string `min:"1" type:"string"` + + // If this parameter is enabled, the resource will be hidden from the address + // book. + HiddenFromGlobalAddressList *bool `type:"boolean"` + // The name of the new resource. // // Name is a required field @@ -9912,6 +10444,9 @@ func (s CreateResourceInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateResourceInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } @@ -9934,6 +10469,18 @@ func (s *CreateResourceInput) Validate() error { return nil } +// SetDescription sets the Description field's value. +func (s *CreateResourceInput) SetDescription(v string) *CreateResourceInput { + s.Description = &v + return s +} + +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *CreateResourceInput) SetHiddenFromGlobalAddressList(v bool) *CreateResourceInput { + s.HiddenFromGlobalAddressList = &v + return s +} + // SetName sets the Name field's value. func (s *CreateResourceInput) SetName(v string) *CreateResourceInput { s.Name = &v @@ -9988,8 +10535,29 @@ type CreateUserInput struct { // The display name for the new user. // + // DisplayName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateUserInput's + // String and GoString methods. + // // DisplayName is a required field - DisplayName *string `type:"string" required:"true"` + DisplayName *string `type:"string" required:"true" sensitive:"true"` + + // The first name of the new user. + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateUserInput's + // String and GoString methods. + FirstName *string `type:"string" sensitive:"true"` + + // If this parameter is enabled, the user will be hidden from the address book. + HiddenFromGlobalAddressList *bool `type:"boolean"` + + // The last name of the new user. + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by CreateUserInput's + // String and GoString methods. + LastName *string `type:"string" sensitive:"true"` // The name for the new user. WorkMail directory user names have a maximum length // of 64. All others have a maximum length of 20. @@ -10007,9 +10575,13 @@ type CreateUserInput struct { // Password is a sensitive parameter and its value will be // replaced with "sensitive" in string returned by CreateUserInput's // String and GoString methods. + Password *string `type:"string" sensitive:"true"` + + // The role of the new user. // - // Password is a required field - Password *string `type:"string" required:"true" sensitive:"true"` + // You cannot pass SYSTEM_USER or RESOURCE role in a single request. When a + // user role is not selected, the default role of USER is selected. + Role *string `type:"string" enum:"UserRole"` } // String returns the string representation. @@ -10048,9 +10620,6 @@ func (s *CreateUserInput) Validate() error { if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) } - if s.Password == nil { - invalidParams.Add(request.NewErrParamRequired("Password")) - } if invalidParams.Len() > 0 { return invalidParams @@ -10064,6 +10633,24 @@ func (s *CreateUserInput) SetDisplayName(v string) *CreateUserInput { return s } +// SetFirstName sets the FirstName field's value. +func (s *CreateUserInput) SetFirstName(v string) *CreateUserInput { + s.FirstName = &v + return s +} + +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *CreateUserInput) SetHiddenFromGlobalAddressList(v bool) *CreateUserInput { + s.HiddenFromGlobalAddressList = &v + return s +} + +// SetLastName sets the LastName field's value. +func (s *CreateUserInput) SetLastName(v string) *CreateUserInput { + s.LastName = &v + return s +} + // SetName sets the Name field's value. func (s *CreateUserInput) SetName(v string) *CreateUserInput { s.Name = &v @@ -10082,6 +10669,12 @@ func (s *CreateUserInput) SetPassword(v string) *CreateUserInput { return s } +// SetRole sets the Role field's value. +func (s *CreateUserInput) SetRole(v string) *CreateUserInput { + s.Role = &v + return s +} + type CreateUserOutput struct { _ struct{} `type:"structure"` @@ -10521,8 +11114,15 @@ type DeleteGroupInput struct { // The identifier of the group to be deleted. // + // The identifier can be the GroupId, or Groupname. The following identity formats + // are available: + // + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Group name: group + // // GroupId is a required field - GroupId *string `min:"12" type:"string" required:"true"` + GroupId *string `min:"1" type:"string" required:"true"` // The organization that contains the group. // @@ -10554,8 +11154,8 @@ func (s *DeleteGroupInput) Validate() error { if s.GroupId == nil { invalidParams.Add(request.NewErrParamRequired("GroupId")) } - if s.GroupId != nil && len(*s.GroupId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GroupId", 12)) + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -10695,17 +11295,35 @@ func (s DeleteImpersonationRoleOutput) GoString() string { type DeleteMailboxPermissionsInput struct { _ struct{} `type:"structure"` - // The identifier of the member (user or group) that owns the mailbox. + // The identifier of the entity that owns the mailbox. + // + // The identifier can be UserId or Group Id, Username or Groupname, or email. + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` - // The identifier of the member (user or group) for which to delete granted - // permissions. + // The identifier of the entity for which to delete granted permissions. // - // GranteeId is a required field - GranteeId *string `min:"12" type:"string" required:"true"` - + // The identifier can be UserId, ResourceID, or Group Id, Username or Groupname, + // or email. + // + // * Grantee ID: 12345678-1234-1234-1234-123456789012,r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: grantee@domain.tld + // + // * Grantee name: grantee + // + // GranteeId is a required field + GranteeId *string `min:"1" type:"string" required:"true"` + // The identifier of the organization under which the member (user or group) // exists. // @@ -10737,14 +11355,14 @@ func (s *DeleteMailboxPermissionsInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.GranteeId == nil { invalidParams.Add(request.NewErrParamRequired("GranteeId")) } - if s.GranteeId != nil && len(*s.GranteeId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GranteeId", 12)) + if s.GranteeId != nil && len(*s.GranteeId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GranteeId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -11011,6 +11629,9 @@ type DeleteOrganizationInput struct { // DeleteDirectory is a required field DeleteDirectory *bool `type:"boolean" required:"true"` + // Deletes a WorkMail organization even if the organization has enabled users. + ForceDelete *bool `type:"boolean"` + // The organization ID. // // OrganizationId is a required field @@ -11069,6 +11690,12 @@ func (s *DeleteOrganizationInput) SetDeleteDirectory(v bool) *DeleteOrganization return s } +// SetForceDelete sets the ForceDelete field's value. +func (s *DeleteOrganizationInput) SetForceDelete(v bool) *DeleteOrganizationInput { + s.ForceDelete = &v + return s +} + // SetOrganizationId sets the OrganizationId field's value. func (s *DeleteOrganizationInput) SetOrganizationId(v string) *DeleteOrganizationInput { s.OrganizationId = &v @@ -11126,8 +11753,15 @@ type DeleteResourceInput struct { // The identifier of the resource to be deleted. // + // The identifier can accept ResourceId, or Resourcename. The following identity + // formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"34" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -11160,8 +11794,8 @@ func (s *DeleteResourceInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 34 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -11302,8 +11936,15 @@ type DeleteUserInput struct { // The identifier of the user to be deleted. // + // The identifier can be the UserId or Username. The following identity formats + // are available: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * User name: user + // // UserId is a required field - UserId *string `min:"12" type:"string" required:"true"` + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -11336,8 +11977,8 @@ func (s *DeleteUserInput) Validate() error { if s.UserId == nil { invalidParams.Add(request.NewErrParamRequired("UserId")) } - if s.UserId != nil && len(*s.UserId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("UserId", 12)) + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) } if invalidParams.Len() > 0 { @@ -11383,10 +12024,20 @@ func (s DeleteUserOutput) GoString() string { type DeregisterFromWorkMailInput struct { _ struct{} `type:"structure"` - // The identifier for the member (user or group) to be updated. + // The identifier for the member to be updated. + // + // The identifier can be UserId, ResourceId, or Group Id, Username, Resourcename, + // or Groupname, or email. + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The identifier for the organization under which the WorkMail entity exists. // @@ -11418,8 +12069,8 @@ func (s *DeregisterFromWorkMailInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -11648,13 +12299,137 @@ func (s *DescribeEmailMonitoringConfigurationOutput) SetRoleArn(v string) *Descr return s } +type DescribeEntityInput struct { + _ struct{} `type:"structure"` + + // The email under which the entity exists. + // + // Email is a required field + Email *string `min:"1" type:"string" required:"true"` + + // The identifier for the organization under which the entity exists. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEntityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeEntityInput"} + if s.Email == nil { + invalidParams.Add(request.NewErrParamRequired("Email")) + } + if s.Email != nil && len(*s.Email) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Email", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEmail sets the Email field's value. +func (s *DescribeEntityInput) SetEmail(v string) *DescribeEntityInput { + s.Email = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *DescribeEntityInput) SetOrganizationId(v string) *DescribeEntityInput { + s.OrganizationId = &v + return s +} + +type DescribeEntityOutput struct { + _ struct{} `type:"structure"` + + // The entity ID under which the entity exists. + EntityId *string `min:"12" type:"string"` + + // Username, GroupName, or ResourceName based on entity type. + Name *string `type:"string"` + + // Entity type. + Type *string `type:"string" enum:"EntityType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeEntityOutput) GoString() string { + return s.String() +} + +// SetEntityId sets the EntityId field's value. +func (s *DescribeEntityOutput) SetEntityId(v string) *DescribeEntityOutput { + s.EntityId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DescribeEntityOutput) SetName(v string) *DescribeEntityOutput { + s.Name = &v + return s +} + +// SetType sets the Type field's value. +func (s *DescribeEntityOutput) SetType(v string) *DescribeEntityOutput { + s.Type = &v + return s +} + type DescribeGroupInput struct { _ struct{} `type:"structure"` // The identifier for the group to be described. // + // The identifier can accept GroupId, Groupname, or email. The following identity + // formats are available: + // + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: group@domain.tld + // + // * Group name: group + // // GroupId is a required field - GroupId *string `min:"12" type:"string" required:"true"` + GroupId *string `min:"1" type:"string" required:"true"` // The identifier for the organization under which the group exists. // @@ -11686,8 +12461,8 @@ func (s *DescribeGroupInput) Validate() error { if s.GroupId == nil { invalidParams.Add(request.NewErrParamRequired("GroupId")) } - if s.GroupId != nil && len(*s.GroupId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GroupId", 12)) + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -11731,6 +12506,9 @@ type DescribeGroupOutput struct { // The identifier of the described group. GroupId *string `min:"12" type:"string"` + // If the value is set to true, the group is hidden from the address book. + HiddenFromGlobalAddressList *bool `type:"boolean"` + // The name of the described group. Name *string `min:"1" type:"string"` @@ -11781,6 +12559,12 @@ func (s *DescribeGroupOutput) SetGroupId(v string) *DescribeGroupOutput { return s } +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *DescribeGroupOutput) SetHiddenFromGlobalAddressList(v bool) *DescribeGroupOutput { + s.HiddenFromGlobalAddressList = &v + return s +} + // SetName sets the Name field's value. func (s *DescribeGroupOutput) SetName(v string) *DescribeGroupOutput { s.Name = &v @@ -12147,6 +12931,12 @@ type DescribeOrganizationOutput struct { // with regards to the organization. ErrorMessage *string `type:"string"` + // Indicates if interoperability is enabled for this organization. + InteroperabilityEnabled *bool `type:"boolean"` + + // The user ID of the migration admin if migration is enabled for the organization. + MigrationAdmin *string `min:"12" type:"string"` + // The identifier of an organization. OrganizationId *string `min:"34" type:"string"` @@ -12214,6 +13004,18 @@ func (s *DescribeOrganizationOutput) SetErrorMessage(v string) *DescribeOrganiza return s } +// SetInteroperabilityEnabled sets the InteroperabilityEnabled field's value. +func (s *DescribeOrganizationOutput) SetInteroperabilityEnabled(v bool) *DescribeOrganizationOutput { + s.InteroperabilityEnabled = &v + return s +} + +// SetMigrationAdmin sets the MigrationAdmin field's value. +func (s *DescribeOrganizationOutput) SetMigrationAdmin(v string) *DescribeOrganizationOutput { + s.MigrationAdmin = &v + return s +} + // SetOrganizationId sets the OrganizationId field's value. func (s *DescribeOrganizationOutput) SetOrganizationId(v string) *DescribeOrganizationOutput { s.OrganizationId = &v @@ -12237,8 +13039,17 @@ type DescribeResourceInput struct { // The identifier of the resource to be described. // + // The identifier can accept ResourceId, Resourcename, or email. The following + // identity formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Email address: resource@domain.tld + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"34" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -12271,8 +13082,8 @@ func (s *DescribeResourceInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 34 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -12299,6 +13110,9 @@ type DescribeResourceOutput struct { // The booking options for the described resource. BookingOptions *BookingOptions `type:"structure"` + // Description of the resource. + Description *string `min:"1" type:"string"` + // The date and time when a resource was disabled from WorkMail, in UNIX epoch // time format. DisabledDate *time.Time `type:"timestamp"` @@ -12310,6 +13124,9 @@ type DescribeResourceOutput struct { // time format. EnabledDate *time.Time `type:"timestamp"` + // If enabled, the resource is hidden from the global address list. + HiddenFromGlobalAddressList *bool `type:"boolean"` + // The name of the described resource. Name *string `min:"1" type:"string"` @@ -12348,6 +13165,12 @@ func (s *DescribeResourceOutput) SetBookingOptions(v *BookingOptions) *DescribeR return s } +// SetDescription sets the Description field's value. +func (s *DescribeResourceOutput) SetDescription(v string) *DescribeResourceOutput { + s.Description = &v + return s +} + // SetDisabledDate sets the DisabledDate field's value. func (s *DescribeResourceOutput) SetDisabledDate(v time.Time) *DescribeResourceOutput { s.DisabledDate = &v @@ -12366,6 +13189,12 @@ func (s *DescribeResourceOutput) SetEnabledDate(v time.Time) *DescribeResourceOu return s } +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *DescribeResourceOutput) SetHiddenFromGlobalAddressList(v bool) *DescribeResourceOutput { + s.HiddenFromGlobalAddressList = &v + return s +} + // SetName sets the Name field's value. func (s *DescribeResourceOutput) SetName(v string) *DescribeResourceOutput { s.Name = &v @@ -12400,8 +13229,17 @@ type DescribeUserInput struct { // The identifier for the user to be described. // + // The identifier can be the UserId, Username, or email. The following identity + // formats are available: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // // UserId is a required field - UserId *string `min:"12" type:"string" required:"true"` + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -12434,8 +13272,8 @@ func (s *DescribeUserInput) Validate() error { if s.UserId == nil { invalidParams.Add(request.NewErrParamRequired("UserId")) } - if s.UserId != nil && len(*s.UserId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("UserId", 12)) + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) } if invalidParams.Len() > 0 { @@ -12459,12 +13297,44 @@ func (s *DescribeUserInput) SetUserId(v string) *DescribeUserInput { type DescribeUserOutput struct { _ struct{} `type:"structure"` + // City where the user is located. + // + // City is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + City *string `type:"string" sensitive:"true"` + + // Company of the user. + // + // Company is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Company *string `type:"string" sensitive:"true"` + + // Country where the user is located. + // + // Country is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Country *string `type:"string" sensitive:"true"` + + // Department of the user. + // + // Department is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Department *string `type:"string" sensitive:"true"` + // The date and time at which the user was disabled for WorkMail usage, in UNIX // epoch time format. DisabledDate *time.Time `type:"timestamp"` // The display name of the user. - DisplayName *string `type:"string"` + // + // DisplayName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + DisplayName *string `type:"string" sensitive:"true"` // The email of the user. Email *string `min:"1" type:"string"` @@ -12473,13 +13343,71 @@ type DescribeUserOutput struct { // epoch time format. EnabledDate *time.Time `type:"timestamp"` + // First name of the user. + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + FirstName *string `type:"string" sensitive:"true"` + + // If enabled, the user is hidden from the global address list. + HiddenFromGlobalAddressList *bool `type:"boolean"` + + // Initials of the user. + // + // Initials is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Initials *string `type:"string" sensitive:"true"` + + // Job title of the user. + // + // JobTitle is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + JobTitle *string `type:"string" sensitive:"true"` + + // Last name of the user. + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + LastName *string `type:"string" sensitive:"true"` + + // The date when the mailbox was removed for the user. + MailboxDeprovisionedDate *time.Time `type:"timestamp"` + + // The date when the mailbox was created for the user. + MailboxProvisionedDate *time.Time `type:"timestamp"` + // The name for the user. Name *string `min:"1" type:"string"` + // Office where the user is located. + // + // Office is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Office *string `type:"string" sensitive:"true"` + // The state of a user: enabled (registered to WorkMail) or disabled (deregistered // or never registered to WorkMail). State *string `type:"string" enum:"EntityState"` + // Street where the user is located. + // + // Street is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Street *string `type:"string" sensitive:"true"` + + // User's contact number. + // + // Telephone is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + Telephone *string `type:"string" sensitive:"true"` + // The identifier for the described user. UserId *string `min:"12" type:"string"` @@ -12488,8 +13416,15 @@ type DescribeUserOutput struct { // WorkMail organizations rely on different directory types, administrators // can distinguish between an unregistered user (account is disabled and has // a user role) and the directory administrators. The values are USER, RESOURCE, - // and SYSTEM_USER. + // SYSTEM_USER, and REMOTE_USER. UserRole *string `type:"string" enum:"UserRole"` + + // Zip code of the user. + // + // ZipCode is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by DescribeUserOutput's + // String and GoString methods. + ZipCode *string `type:"string" sensitive:"true"` } // String returns the string representation. @@ -12510,6 +13445,30 @@ func (s DescribeUserOutput) GoString() string { return s.String() } +// SetCity sets the City field's value. +func (s *DescribeUserOutput) SetCity(v string) *DescribeUserOutput { + s.City = &v + return s +} + +// SetCompany sets the Company field's value. +func (s *DescribeUserOutput) SetCompany(v string) *DescribeUserOutput { + s.Company = &v + return s +} + +// SetCountry sets the Country field's value. +func (s *DescribeUserOutput) SetCountry(v string) *DescribeUserOutput { + s.Country = &v + return s +} + +// SetDepartment sets the Department field's value. +func (s *DescribeUserOutput) SetDepartment(v string) *DescribeUserOutput { + s.Department = &v + return s +} + // SetDisabledDate sets the DisabledDate field's value. func (s *DescribeUserOutput) SetDisabledDate(v time.Time) *DescribeUserOutput { s.DisabledDate = &v @@ -12534,46 +13493,112 @@ func (s *DescribeUserOutput) SetEnabledDate(v time.Time) *DescribeUserOutput { return s } -// SetName sets the Name field's value. -func (s *DescribeUserOutput) SetName(v string) *DescribeUserOutput { - s.Name = &v +// SetFirstName sets the FirstName field's value. +func (s *DescribeUserOutput) SetFirstName(v string) *DescribeUserOutput { + s.FirstName = &v return s } -// SetState sets the State field's value. -func (s *DescribeUserOutput) SetState(v string) *DescribeUserOutput { - s.State = &v +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *DescribeUserOutput) SetHiddenFromGlobalAddressList(v bool) *DescribeUserOutput { + s.HiddenFromGlobalAddressList = &v return s } -// SetUserId sets the UserId field's value. -func (s *DescribeUserOutput) SetUserId(v string) *DescribeUserOutput { - s.UserId = &v +// SetInitials sets the Initials field's value. +func (s *DescribeUserOutput) SetInitials(v string) *DescribeUserOutput { + s.Initials = &v return s } -// SetUserRole sets the UserRole field's value. -func (s *DescribeUserOutput) SetUserRole(v string) *DescribeUserOutput { - s.UserRole = &v +// SetJobTitle sets the JobTitle field's value. +func (s *DescribeUserOutput) SetJobTitle(v string) *DescribeUserOutput { + s.JobTitle = &v return s } -// The directory is already in use by another WorkMail organization in the same -// account and Region. -type DirectoryInUseException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` - - Message_ *string `locationName:"Message" type:"string"` +// SetLastName sets the LastName field's value. +func (s *DescribeUserOutput) SetLastName(v string) *DescribeUserOutput { + s.LastName = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s DirectoryInUseException) String() string { - return awsutil.Prettify(s) +// SetMailboxDeprovisionedDate sets the MailboxDeprovisionedDate field's value. +func (s *DescribeUserOutput) SetMailboxDeprovisionedDate(v time.Time) *DescribeUserOutput { + s.MailboxDeprovisionedDate = &v + return s +} + +// SetMailboxProvisionedDate sets the MailboxProvisionedDate field's value. +func (s *DescribeUserOutput) SetMailboxProvisionedDate(v time.Time) *DescribeUserOutput { + s.MailboxProvisionedDate = &v + return s +} + +// SetName sets the Name field's value. +func (s *DescribeUserOutput) SetName(v string) *DescribeUserOutput { + s.Name = &v + return s +} + +// SetOffice sets the Office field's value. +func (s *DescribeUserOutput) SetOffice(v string) *DescribeUserOutput { + s.Office = &v + return s +} + +// SetState sets the State field's value. +func (s *DescribeUserOutput) SetState(v string) *DescribeUserOutput { + s.State = &v + return s +} + +// SetStreet sets the Street field's value. +func (s *DescribeUserOutput) SetStreet(v string) *DescribeUserOutput { + s.Street = &v + return s +} + +// SetTelephone sets the Telephone field's value. +func (s *DescribeUserOutput) SetTelephone(v string) *DescribeUserOutput { + s.Telephone = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *DescribeUserOutput) SetUserId(v string) *DescribeUserOutput { + s.UserId = &v + return s +} + +// SetUserRole sets the UserRole field's value. +func (s *DescribeUserOutput) SetUserRole(v string) *DescribeUserOutput { + s.UserRole = &v + return s +} + +// SetZipCode sets the ZipCode field's value. +func (s *DescribeUserOutput) SetZipCode(v string) *DescribeUserOutput { + s.ZipCode = &v + return s +} + +// The directory is already in use by another WorkMail organization in the same +// account and Region. +type DirectoryInUseException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DirectoryInUseException) String() string { + return awsutil.Prettify(s) } // GoString returns the string representation. @@ -12757,8 +13782,16 @@ type DisassociateDelegateFromResourceInput struct { // The identifier for the member (user, group) to be removed from the resource's // delegates. // + // The entity ID can accept UserId or GroupID, Username or Groupname, or email. + // + // * Entity: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity: entity + // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The identifier for the organization under which the resource exists. // @@ -12767,8 +13800,17 @@ type DisassociateDelegateFromResourceInput struct { // The identifier of the resource from which delegates' set members are removed. // + // The identifier can accept ResourceId, Resourcename, or email. The following + // identity formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Email address: resource@domain.tld + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"34" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -12795,8 +13837,8 @@ func (s *DisassociateDelegateFromResourceInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -12807,8 +13849,8 @@ func (s *DisassociateDelegateFromResourceInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 34 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -12862,13 +13904,30 @@ type DisassociateMemberFromGroupInput struct { // The identifier for the group from which members are removed. // + // The identifier can accept GroupId, Groupname, or email. The following identity + // formats are available: + // + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: group@domain.tld + // + // * Group name: group + // // GroupId is a required field - GroupId *string `min:"12" type:"string" required:"true"` + GroupId *string `min:"1" type:"string" required:"true"` - // The identifier for the member to be removed to the group. + // The identifier for the member to be removed from the group. + // + // The member ID can accept UserID or GroupId, Username or Groupname, or email. + // + // * Member ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: member@domain.tld + // + // * Member name: member // // MemberId is a required field - MemberId *string `min:"12" type:"string" required:"true"` + MemberId *string `min:"1" type:"string" required:"true"` // The identifier for the organization under which the group exists. // @@ -12900,14 +13959,14 @@ func (s *DisassociateMemberFromGroupInput) Validate() error { if s.GroupId == nil { invalidParams.Add(request.NewErrParamRequired("GroupId")) } - if s.GroupId != nil && len(*s.GroupId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GroupId", 12)) + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) } if s.MemberId == nil { invalidParams.Add(request.NewErrParamRequired("MemberId")) } - if s.MemberId != nil && len(*s.MemberId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("MemberId", 12)) + if s.MemberId != nil && len(*s.MemberId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("MemberId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -13022,7 +14081,9 @@ type Domain struct { _ struct{} `type:"structure"` // The fully qualified domain name. - DomainName *string `min:"3" type:"string"` + // + // DomainName is a required field + DomainName *string `min:"3" type:"string" required:"true"` // The hosted zone ID for a domain hosted in Route 53. Required when configuring // a domain hosted in Route 53. @@ -13050,6 +14111,9 @@ func (s Domain) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *Domain) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Domain"} + if s.DomainName == nil { + invalidParams.Add(request.NewErrParamRequired("DomainName")) + } if s.DomainName != nil && len(*s.DomainName) < 3 { invalidParams.Add(request.NewErrParamMinLen("DomainName", 3)) } @@ -14182,8 +15246,17 @@ type GetMailboxDetailsInput struct { // The identifier for the user whose mailbox details are being requested. // + // The identifier can be the UserId, Username, or email. The following identity + // formats are available: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // // UserId is a required field - UserId *string `min:"12" type:"string" required:"true"` + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -14216,8 +15289,8 @@ func (s *GetMailboxDetailsInput) Validate() error { if s.UserId == nil { invalidParams.Add(request.NewErrParamRequired("UserId")) } - if s.UserId != nil && len(*s.UserId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("UserId", 12)) + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) } if invalidParams.Len() > 0 { @@ -14660,6 +15733,47 @@ func (s *Group) SetState(v string) *Group { return s } +// The identifier that contains the Group ID and name of a group. +type GroupIdentifier struct { + _ struct{} `type:"structure"` + + // Group ID that matched the group. + GroupId *string `min:"12" type:"string"` + + // Group name that matched the group. + GroupName *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GroupIdentifier) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GroupIdentifier) GoString() string { + return s.String() +} + +// SetGroupId sets the GroupId field's value. +func (s *GroupIdentifier) SetGroupId(v string) *GroupIdentifier { + s.GroupId = &v + return s +} + +// SetGroupName sets the GroupName field's value. +func (s *GroupIdentifier) SetGroupName(v string) *GroupIdentifier { + s.GroupName = &v + return s +} + // The impersonation rule that matched the input. type ImpersonationMatchedRule struct { _ struct{} `type:"structure"` @@ -15592,8 +16706,17 @@ type ListGroupMembersInput struct { // The identifier for the group to which the members (users or groups) are associated. // + // The identifier can accept GroupId, Groupname, or email. The following identity + // formats are available: + // + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: group@domain.tld + // + // * Group name: group + // // GroupId is a required field - GroupId *string `min:"12" type:"string" required:"true"` + GroupId *string `min:"1" type:"string" required:"true"` // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` @@ -15632,8 +16755,8 @@ func (s *ListGroupMembersInput) Validate() error { if s.GroupId == nil { invalidParams.Add(request.NewErrParamRequired("GroupId")) } - if s.GroupId != nil && len(*s.GroupId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GroupId", 12)) + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) @@ -15719,9 +16842,109 @@ func (s *ListGroupMembersOutput) SetNextToken(v string) *ListGroupMembersOutput return s } -type ListGroupsInput struct { +// Filtering options for ListGroups operation. This is only used as input to +// Operation. +type ListGroupsFilters struct { + _ struct{} `type:"structure"` + + // Filters only groups with the provided name prefix. + NamePrefix *string `type:"string"` + + // Filters only groups with the provided primary email prefix. + PrimaryEmailPrefix *string `type:"string"` + + // Filters only groups with the provided state. + State *string `type:"string" enum:"EntityState"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsFilters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsFilters) GoString() string { + return s.String() +} + +// SetNamePrefix sets the NamePrefix field's value. +func (s *ListGroupsFilters) SetNamePrefix(v string) *ListGroupsFilters { + s.NamePrefix = &v + return s +} + +// SetPrimaryEmailPrefix sets the PrimaryEmailPrefix field's value. +func (s *ListGroupsFilters) SetPrimaryEmailPrefix(v string) *ListGroupsFilters { + s.PrimaryEmailPrefix = &v + return s +} + +// SetState sets the State field's value. +func (s *ListGroupsFilters) SetState(v string) *ListGroupsFilters { + s.State = &v + return s +} + +// Filtering options for ListGroupsForEntity operation. This is only used as +// input to Operation. +type ListGroupsForEntityFilters struct { + _ struct{} `type:"structure"` + + // Filters only group names that start with the provided name prefix. + GroupNamePrefix *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsForEntityFilters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsForEntityFilters) GoString() string { + return s.String() +} + +// SetGroupNamePrefix sets the GroupNamePrefix field's value. +func (s *ListGroupsForEntityFilters) SetGroupNamePrefix(v string) *ListGroupsForEntityFilters { + s.GroupNamePrefix = &v + return s +} + +type ListGroupsForEntityInput struct { _ struct{} `type:"structure"` + // The identifier for the entity. + // + // The entity ID can accept UserId or GroupID, Username or Groupname, or email. + // + // * Entity ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity + // + // EntityId is a required field + EntityId *string `min:"1" type:"string" required:"true"` + + // Limit the search results based on the filter criteria. + Filters *ListGroupsForEntityFilters `type:"structure"` + // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` @@ -15729,7 +16952,7 @@ type ListGroupsInput struct { // not contain any tokens. NextToken *string `min:"1" type:"string"` - // The identifier for the organization under which the groups exist. + // The identifier for the organization under which the entity exists. // // OrganizationId is a required field OrganizationId *string `min:"34" type:"string" required:"true"` @@ -15740,7 +16963,7 @@ type ListGroupsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGroupsInput) String() string { +func (s ListGroupsForEntityInput) String() string { return awsutil.Prettify(s) } @@ -15749,13 +16972,19 @@ func (s ListGroupsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGroupsInput) GoString() string { +func (s ListGroupsForEntityInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListGroupsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"} +func (s *ListGroupsForEntityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListGroupsForEntityInput"} + if s.EntityId == nil { + invalidParams.Add(request.NewErrParamRequired("EntityId")) + } + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) + } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } @@ -15775,31 +17004,43 @@ func (s *ListGroupsInput) Validate() error { return nil } +// SetEntityId sets the EntityId field's value. +func (s *ListGroupsForEntityInput) SetEntityId(v string) *ListGroupsForEntityInput { + s.EntityId = &v + return s +} + +// SetFilters sets the Filters field's value. +func (s *ListGroupsForEntityInput) SetFilters(v *ListGroupsForEntityFilters) *ListGroupsForEntityInput { + s.Filters = v + return s +} + // SetMaxResults sets the MaxResults field's value. -func (s *ListGroupsInput) SetMaxResults(v int64) *ListGroupsInput { +func (s *ListGroupsForEntityInput) SetMaxResults(v int64) *ListGroupsForEntityInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListGroupsInput) SetNextToken(v string) *ListGroupsInput { +func (s *ListGroupsForEntityInput) SetNextToken(v string) *ListGroupsForEntityInput { s.NextToken = &v return s } // SetOrganizationId sets the OrganizationId field's value. -func (s *ListGroupsInput) SetOrganizationId(v string) *ListGroupsInput { +func (s *ListGroupsForEntityInput) SetOrganizationId(v string) *ListGroupsForEntityInput { s.OrganizationId = &v return s } -type ListGroupsOutput struct { +type ListGroupsForEntityOutput struct { _ struct{} `type:"structure"` - // The overview of groups for an organization. - Groups []*Group `type:"list"` + // The overview of groups in an organization. + Groups []*GroupIdentifier `type:"list"` - // The token to use to retrieve the next page of results. The value is "null" + // The token to use to retrieve the next page of results. This value is `null` // when there are no more results to return. NextToken *string `min:"1" type:"string"` } @@ -15809,7 +17050,7 @@ type ListGroupsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGroupsOutput) String() string { +func (s ListGroupsForEntityOutput) String() string { return awsutil.Prettify(s) } @@ -15818,33 +17059,37 @@ func (s ListGroupsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListGroupsOutput) GoString() string { +func (s ListGroupsForEntityOutput) GoString() string { return s.String() } // SetGroups sets the Groups field's value. -func (s *ListGroupsOutput) SetGroups(v []*Group) *ListGroupsOutput { +func (s *ListGroupsForEntityOutput) SetGroups(v []*GroupIdentifier) *ListGroupsForEntityOutput { s.Groups = v return s } // SetNextToken sets the NextToken field's value. -func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput { +func (s *ListGroupsForEntityOutput) SetNextToken(v string) *ListGroupsForEntityOutput { s.NextToken = &v return s } -type ListImpersonationRolesInput struct { +type ListGroupsInput struct { _ struct{} `type:"structure"` - // The maximum number of results returned in a single call. + // Limit the search results based on the filter criteria. Only one filter per + // request is supported. + Filters *ListGroupsFilters `type:"structure"` + + // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` - // The token used to retrieve the next page of results. The first call doesn't - // require a token. + // The token to use to retrieve the next page of results. The first call does + // not contain any tokens. NextToken *string `min:"1" type:"string"` - // The WorkMail organization to which the listed impersonation roles belong. + // The identifier for the organization under which the groups exist. // // OrganizationId is a required field OrganizationId *string `min:"34" type:"string" required:"true"` @@ -15855,7 +17100,7 @@ type ListImpersonationRolesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListImpersonationRolesInput) String() string { +func (s ListGroupsInput) String() string { return awsutil.Prettify(s) } @@ -15864,13 +17109,13 @@ func (s ListImpersonationRolesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListImpersonationRolesInput) GoString() string { +func (s ListGroupsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListImpersonationRolesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListImpersonationRolesInput"} +func (s *ListGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } @@ -15890,25 +17135,146 @@ func (s *ListImpersonationRolesInput) Validate() error { return nil } +// SetFilters sets the Filters field's value. +func (s *ListGroupsInput) SetFilters(v *ListGroupsFilters) *ListGroupsInput { + s.Filters = v + return s +} + // SetMaxResults sets the MaxResults field's value. -func (s *ListImpersonationRolesInput) SetMaxResults(v int64) *ListImpersonationRolesInput { +func (s *ListGroupsInput) SetMaxResults(v int64) *ListGroupsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListImpersonationRolesInput) SetNextToken(v string) *ListImpersonationRolesInput { +func (s *ListGroupsInput) SetNextToken(v string) *ListGroupsInput { s.NextToken = &v return s } // SetOrganizationId sets the OrganizationId field's value. -func (s *ListImpersonationRolesInput) SetOrganizationId(v string) *ListImpersonationRolesInput { +func (s *ListGroupsInput) SetOrganizationId(v string) *ListGroupsInput { s.OrganizationId = &v return s } -type ListImpersonationRolesOutput struct { +type ListGroupsOutput struct { + _ struct{} `type:"structure"` + + // The overview of groups for an organization. + Groups []*Group `type:"list"` + + // The token to use to retrieve the next page of results. The value is "null" + // when there are no more results to return. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListGroupsOutput) GoString() string { + return s.String() +} + +// SetGroups sets the Groups field's value. +func (s *ListGroupsOutput) SetGroups(v []*Group) *ListGroupsOutput { + s.Groups = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput { + s.NextToken = &v + return s +} + +type ListImpersonationRolesInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results returned in a single call. + MaxResults *int64 `min:"1" type:"integer"` + + // The token used to retrieve the next page of results. The first call doesn't + // require a token. + NextToken *string `min:"1" type:"string"` + + // The WorkMail organization to which the listed impersonation roles belong. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListImpersonationRolesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListImpersonationRolesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListImpersonationRolesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListImpersonationRolesInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListImpersonationRolesInput) SetMaxResults(v int64) *ListImpersonationRolesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListImpersonationRolesInput) SetNextToken(v string) *ListImpersonationRolesInput { + s.NextToken = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *ListImpersonationRolesInput) SetOrganizationId(v string) *ListImpersonationRolesInput { + s.OrganizationId = &v + return s +} + +type ListImpersonationRolesOutput struct { _ struct{} `type:"structure"` // The token to retrieve the next page of results. The value is null when there @@ -16182,11 +17548,19 @@ func (s *ListMailboxExportJobsOutput) SetNextToken(v string) *ListMailboxExportJ type ListMailboxPermissionsInput struct { _ struct{} `type:"structure"` - // The identifier of the user, group, or resource for which to list mailbox - // permissions. + // The identifier of the user, or resource for which to list mailbox permissions. + // + // The entity ID can accept UserId or ResourceId, Username or Resourcename, + // or email. + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, or r-0123456789a0123456789b0123456789 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` @@ -16226,8 +17600,8 @@ func (s *ListMailboxPermissionsInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) @@ -16656,8 +18030,17 @@ type ListResourceDelegatesInput struct { // The identifier for the resource whose delegates are listed. // + // The identifier can accept ResourceId, Resourcename, or email. The following + // identity formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Email address: resource@domain.tld + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"12" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -16696,8 +18079,8 @@ func (s *ListResourceDelegatesInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 12)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -16772,9 +18155,64 @@ func (s *ListResourceDelegatesOutput) SetNextToken(v string) *ListResourceDelega return s } +// Filtering options for ListResources operation. This is only used as input +// to Operation. +type ListResourcesFilters struct { + _ struct{} `type:"structure"` + + // Filters only resource that start with the entered name prefix . + NamePrefix *string `type:"string"` + + // Filters only resource with the provided primary email prefix. + PrimaryEmailPrefix *string `type:"string"` + + // Filters only resource with the provided state. + State *string `type:"string" enum:"EntityState"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesFilters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListResourcesFilters) GoString() string { + return s.String() +} + +// SetNamePrefix sets the NamePrefix field's value. +func (s *ListResourcesFilters) SetNamePrefix(v string) *ListResourcesFilters { + s.NamePrefix = &v + return s +} + +// SetPrimaryEmailPrefix sets the PrimaryEmailPrefix field's value. +func (s *ListResourcesFilters) SetPrimaryEmailPrefix(v string) *ListResourcesFilters { + s.PrimaryEmailPrefix = &v + return s +} + +// SetState sets the State field's value. +func (s *ListResourcesFilters) SetState(v string) *ListResourcesFilters { + s.State = &v + return s +} + type ListResourcesInput struct { _ struct{} `type:"structure"` + // Limit the resource search results based on the filter criteria. You can only + // use one filter per request. + Filters *ListResourcesFilters `type:"structure"` + // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` @@ -16828,6 +18266,12 @@ func (s *ListResourcesInput) Validate() error { return nil } +// SetFilters sets the Filters field's value. +func (s *ListResourcesInput) SetFilters(v *ListResourcesFilters) *ListResourcesInput { + s.Filters = v + return s +} + // SetMaxResults sets the MaxResults field's value. func (s *ListResourcesInput) SetMaxResults(v int64) *ListResourcesInput { s.MaxResults = &v @@ -16968,9 +18412,77 @@ func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput return s } +// Filtering options for ListUsers operation. This is only used as input to +// Operation. +type ListUsersFilters struct { + _ struct{} `type:"structure"` + + // Filters only users with the provided display name prefix. + // + // DisplayNamePrefix is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ListUsersFilters's + // String and GoString methods. + DisplayNamePrefix *string `type:"string" sensitive:"true"` + + // Filters only users with the provided email prefix. + PrimaryEmailPrefix *string `type:"string"` + + // Filters only users with the provided state. + State *string `type:"string" enum:"EntityState"` + + // Filters only users with the provided username prefix. + UsernamePrefix *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUsersFilters) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUsersFilters) GoString() string { + return s.String() +} + +// SetDisplayNamePrefix sets the DisplayNamePrefix field's value. +func (s *ListUsersFilters) SetDisplayNamePrefix(v string) *ListUsersFilters { + s.DisplayNamePrefix = &v + return s +} + +// SetPrimaryEmailPrefix sets the PrimaryEmailPrefix field's value. +func (s *ListUsersFilters) SetPrimaryEmailPrefix(v string) *ListUsersFilters { + s.PrimaryEmailPrefix = &v + return s +} + +// SetState sets the State field's value. +func (s *ListUsersFilters) SetState(v string) *ListUsersFilters { + s.State = &v + return s +} + +// SetUsernamePrefix sets the UsernamePrefix field's value. +func (s *ListUsersFilters) SetUsernamePrefix(v string) *ListUsersFilters { + s.UsernamePrefix = &v + return s +} + type ListUsersInput struct { _ struct{} `type:"structure"` + // Limit the user search results based on the filter criteria. You can only + // use one filter per request. + Filters *ListUsersFilters `type:"structure"` + // The maximum number of results to return in a single call. MaxResults *int64 `min:"1" type:"integer"` @@ -17024,6 +18536,12 @@ func (s *ListUsersInput) Validate() error { return nil } +// SetFilters sets the Filters field's value. +func (s *ListUsersInput) SetFilters(v *ListUsersFilters) *ListUsersInput { + s.Filters = v + return s +} + // SetMaxResults sets the MaxResults field's value. func (s *ListUsersInput) SetMaxResults(v int64) *ListUsersInput { s.MaxResults = &v @@ -18483,16 +20001,35 @@ func (s PutInboundDmarcSettingsOutput) GoString() string { type PutMailboxPermissionsInput struct { _ struct{} `type:"structure"` - // The identifier of the user, group, or resource for which to update mailbox - // permissions. + // The identifier of the user or resource for which to update mailbox permissions. + // + // The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, + // or Groupname, or email. + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The identifier of the user, group, or resource to which to grant the permissions. // + // The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, + // or Groupname, or email. + // + // * Grantee ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: grantee@domain.tld + // + // * Grantee name: grantee + // // GranteeId is a required field - GranteeId *string `min:"12" type:"string" required:"true"` + GranteeId *string `min:"1" type:"string" required:"true"` // The identifier of the organization under which the user, group, or resource // exists. @@ -18535,14 +20072,14 @@ func (s *PutMailboxPermissionsInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.GranteeId == nil { invalidParams.Add(request.NewErrParamRequired("GranteeId")) } - if s.GranteeId != nil && len(*s.GranteeId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("GranteeId", 12)) + if s.GranteeId != nil && len(*s.GranteeId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GranteeId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -19033,8 +20570,16 @@ type RegisterToWorkMailInput struct { // The identifier for the user, group, or resource to be updated. // + // The identifier can accept UserId, ResourceId, or GroupId, or Username, Resourcename, + // or Groupname. The following identity formats are available: + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Entity name: entity + // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The identifier for the organization under which the user, group, or resource // exists. @@ -19073,8 +20618,8 @@ func (s *RegisterToWorkMailInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -19304,6 +20849,9 @@ func (s ResetPasswordOutput) GoString() string { type Resource struct { _ struct{} `type:"structure"` + // Resource description. + Description *string `min:"1" type:"string"` + // The date indicating when the resource was disabled from WorkMail use. DisabledDate *time.Time `type:"timestamp"` @@ -19344,6 +20892,12 @@ func (s Resource) GoString() string { return s.String() } +// SetDescription sets the Description field's value. +func (s *Resource) SetDescription(v string) *Resource { + s.Description = &v + return s +} + // SetDisabledDate sets the DisabledDate field's value. func (s *Resource) SetDisabledDate(v time.Time) *Resource { s.DisabledDate = &v @@ -19461,8 +21015,18 @@ type StartMailboxExportJobInput struct { // The identifier of the user or resource associated with the mailbox. // + // The identifier can accept UserId or ResourceId, Username or Resourcename, + // or email. The following identity formats are available: + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789 + // , or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity + // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service // (AWS KMS) key that encrypts the exported mailbox content. @@ -19519,8 +21083,8 @@ func (s *StartMailboxExportJobInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.KmsKeyArn == nil { invalidParams.Add(request.NewErrParamRequired("KmsKeyArn")) @@ -20350,27 +21914,133 @@ func (s UpdateDefaultMailDomainOutput) GoString() string { return s.String() } -type UpdateImpersonationRoleInput struct { +type UpdateGroupInput struct { _ struct{} `type:"structure"` - // The updated impersonation role description. - Description *string `min:"1" type:"string"` - - // The ID of the impersonation role to update. + // The identifier for the group to be updated. // - // ImpersonationRoleId is a required field - ImpersonationRoleId *string `min:"1" type:"string" required:"true"` - - // The updated impersonation role name. + // The identifier can accept GroupId, Groupname, or email. The following identity + // formats are available: // - // Name is a required field - Name *string `min:"1" type:"string" required:"true"` - - // The WorkMail organization that contains the impersonation role to update. + // * Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 // - // OrganizationId is a required field - OrganizationId *string `min:"34" type:"string" required:"true"` - + // * Email address: group@domain.tld + // + // * Group name: group + // + // GroupId is a required field + GroupId *string `min:"1" type:"string" required:"true"` + + // If enabled, the group is hidden from the global address list. + HiddenFromGlobalAddressList *bool `type:"boolean"` + + // The identifier for the organization under which the group exists. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateGroupInput"} + if s.GroupId == nil { + invalidParams.Add(request.NewErrParamRequired("GroupId")) + } + if s.GroupId != nil && len(*s.GroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GroupId", 1)) + } + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGroupId sets the GroupId field's value. +func (s *UpdateGroupInput) SetGroupId(v string) *UpdateGroupInput { + s.GroupId = &v + return s +} + +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *UpdateGroupInput) SetHiddenFromGlobalAddressList(v bool) *UpdateGroupInput { + s.HiddenFromGlobalAddressList = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *UpdateGroupInput) SetOrganizationId(v string) *UpdateGroupInput { + s.OrganizationId = &v + return s +} + +type UpdateGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateGroupOutput) GoString() string { + return s.String() +} + +type UpdateImpersonationRoleInput struct { + _ struct{} `type:"structure"` + + // The updated impersonation role description. + Description *string `min:"1" type:"string"` + + // The ID of the impersonation role to update. + // + // ImpersonationRoleId is a required field + ImpersonationRoleId *string `min:"1" type:"string" required:"true"` + + // The updated impersonation role name. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The WorkMail organization that contains the impersonation role to update. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` + // The updated list of rules. // // Rules is a required field @@ -20521,8 +22191,17 @@ type UpdateMailboxQuotaInput struct { // The identifer for the user for whom to update the mailbox quota. // + // The identifier can be the UserId, Username, or email. The following identity + // formats are available: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // // UserId is a required field - UserId *string `min:"12" type:"string" required:"true"` + UserId *string `min:"1" type:"string" required:"true"` } // String returns the string representation. @@ -20561,8 +22240,8 @@ func (s *UpdateMailboxQuotaInput) Validate() error { if s.UserId == nil { invalidParams.Add(request.NewErrParamRequired("UserId")) } - if s.UserId != nil && len(*s.UserId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("UserId", 12)) + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) } if invalidParams.Len() > 0 { @@ -20852,8 +22531,18 @@ type UpdatePrimaryEmailAddressInput struct { // The user, group, or resource to update. // + // The identifier can accept UseriD, ResourceId, or GroupId, Username, Resourcename, + // or Groupname, or email. The following identity formats are available: + // + // * Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, + // or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: entity@domain.tld + // + // * Entity name: entity + // // EntityId is a required field - EntityId *string `min:"12" type:"string" required:"true"` + EntityId *string `min:"1" type:"string" required:"true"` // The organization that contains the user, group, or resource to update. // @@ -20891,8 +22580,8 @@ func (s *UpdatePrimaryEmailAddressInput) Validate() error { if s.EntityId == nil { invalidParams.Add(request.NewErrParamRequired("EntityId")) } - if s.EntityId != nil && len(*s.EntityId) < 12 { - invalidParams.Add(request.NewErrParamMinLen("EntityId", 12)) + if s.EntityId != nil && len(*s.EntityId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EntityId", 1)) } if s.OrganizationId == nil { invalidParams.Add(request.NewErrParamRequired("OrganizationId")) @@ -20953,6 +22642,12 @@ type UpdateResourceInput struct { // The resource's booking options to be updated. BookingOptions *BookingOptions `type:"structure"` + // Updates the resource description. + Description *string `type:"string"` + + // If enabled, the resource is hidden from the global address list. + HiddenFromGlobalAddressList *bool `type:"boolean"` + // The name of the resource to be updated. Name *string `min:"1" type:"string"` @@ -20964,8 +22659,20 @@ type UpdateResourceInput struct { // The identifier of the resource to be updated. // + // The identifier can accept ResourceId, Resourcename, or email. The following + // identity formats are available: + // + // * Resource ID: r-0123456789a0123456789b0123456789 + // + // * Email address: resource@domain.tld + // + // * Resource name: resource + // // ResourceId is a required field - ResourceId *string `min:"34" type:"string" required:"true"` + ResourceId *string `min:"1" type:"string" required:"true"` + + // Updates the resource type. + Type *string `type:"string" enum:"ResourceType"` } // String returns the string representation. @@ -21001,8 +22708,8 @@ func (s *UpdateResourceInput) Validate() error { if s.ResourceId == nil { invalidParams.Add(request.NewErrParamRequired("ResourceId")) } - if s.ResourceId != nil && len(*s.ResourceId) < 34 { - invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34)) + if s.ResourceId != nil && len(*s.ResourceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1)) } if invalidParams.Len() > 0 { @@ -21017,6 +22724,18 @@ func (s *UpdateResourceInput) SetBookingOptions(v *BookingOptions) *UpdateResour return s } +// SetDescription sets the Description field's value. +func (s *UpdateResourceInput) SetDescription(v string) *UpdateResourceInput { + s.Description = &v + return s +} + +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *UpdateResourceInput) SetHiddenFromGlobalAddressList(v bool) *UpdateResourceInput { + s.HiddenFromGlobalAddressList = &v + return s +} + // SetName sets the Name field's value. func (s *UpdateResourceInput) SetName(v string) *UpdateResourceInput { s.Name = &v @@ -21035,6 +22754,12 @@ func (s *UpdateResourceInput) SetResourceId(v string) *UpdateResourceInput { return s } +// SetType sets the Type field's value. +func (s *UpdateResourceInput) SetType(v string) *UpdateResourceInput { + s.Type = &v + return s +} + type UpdateResourceOutput struct { _ struct{} `type:"structure"` } @@ -21057,6 +22782,292 @@ func (s UpdateResourceOutput) GoString() string { return s.String() } +type UpdateUserInput struct { + _ struct{} `type:"structure"` + + // Updates the user's city. + // + // City is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + City *string `type:"string" sensitive:"true"` + + // Updates the user's company. + // + // Company is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Company *string `type:"string" sensitive:"true"` + + // Updates the user's country. + // + // Country is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Country *string `type:"string" sensitive:"true"` + + // Updates the user's department. + // + // Department is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Department *string `type:"string" sensitive:"true"` + + // Updates the display name of the user. + // + // DisplayName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + DisplayName *string `type:"string" sensitive:"true"` + + // Updates the user's first name. + // + // FirstName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + FirstName *string `type:"string" sensitive:"true"` + + // If enabled, the user is hidden from the global address list. + HiddenFromGlobalAddressList *bool `type:"boolean"` + + // Updates the user's initials. + // + // Initials is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Initials *string `type:"string" sensitive:"true"` + + // Updates the user's job title. + // + // JobTitle is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + JobTitle *string `type:"string" sensitive:"true"` + + // Updates the user's last name. + // + // LastName is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + LastName *string `type:"string" sensitive:"true"` + + // Updates the user's office. + // + // Office is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Office *string `type:"string" sensitive:"true"` + + // The identifier for the organization under which the user exists. + // + // OrganizationId is a required field + OrganizationId *string `min:"34" type:"string" required:"true"` + + // Updates the user role. + // + // You cannot pass SYSTEM_USER or RESOURCE. + Role *string `type:"string" enum:"UserRole"` + + // Updates the user's street address. + // + // Street is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Street *string `type:"string" sensitive:"true"` + + // Updates the user's contact details. + // + // Telephone is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + Telephone *string `type:"string" sensitive:"true"` + + // The identifier for the user to be updated. + // + // The identifier can be the UserId, Username, or email. The following identity + // formats are available: + // + // * User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 + // + // * Email address: user@domain.tld + // + // * User name: user + // + // UserId is a required field + UserId *string `min:"1" type:"string" required:"true"` + + // Updates the user's zipcode. + // + // ZipCode is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by UpdateUserInput's + // String and GoString methods. + ZipCode *string `type:"string" sensitive:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateUserInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"} + if s.OrganizationId == nil { + invalidParams.Add(request.NewErrParamRequired("OrganizationId")) + } + if s.OrganizationId != nil && len(*s.OrganizationId) < 34 { + invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34)) + } + if s.UserId == nil { + invalidParams.Add(request.NewErrParamRequired("UserId")) + } + if s.UserId != nil && len(*s.UserId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCity sets the City field's value. +func (s *UpdateUserInput) SetCity(v string) *UpdateUserInput { + s.City = &v + return s +} + +// SetCompany sets the Company field's value. +func (s *UpdateUserInput) SetCompany(v string) *UpdateUserInput { + s.Company = &v + return s +} + +// SetCountry sets the Country field's value. +func (s *UpdateUserInput) SetCountry(v string) *UpdateUserInput { + s.Country = &v + return s +} + +// SetDepartment sets the Department field's value. +func (s *UpdateUserInput) SetDepartment(v string) *UpdateUserInput { + s.Department = &v + return s +} + +// SetDisplayName sets the DisplayName field's value. +func (s *UpdateUserInput) SetDisplayName(v string) *UpdateUserInput { + s.DisplayName = &v + return s +} + +// SetFirstName sets the FirstName field's value. +func (s *UpdateUserInput) SetFirstName(v string) *UpdateUserInput { + s.FirstName = &v + return s +} + +// SetHiddenFromGlobalAddressList sets the HiddenFromGlobalAddressList field's value. +func (s *UpdateUserInput) SetHiddenFromGlobalAddressList(v bool) *UpdateUserInput { + s.HiddenFromGlobalAddressList = &v + return s +} + +// SetInitials sets the Initials field's value. +func (s *UpdateUserInput) SetInitials(v string) *UpdateUserInput { + s.Initials = &v + return s +} + +// SetJobTitle sets the JobTitle field's value. +func (s *UpdateUserInput) SetJobTitle(v string) *UpdateUserInput { + s.JobTitle = &v + return s +} + +// SetLastName sets the LastName field's value. +func (s *UpdateUserInput) SetLastName(v string) *UpdateUserInput { + s.LastName = &v + return s +} + +// SetOffice sets the Office field's value. +func (s *UpdateUserInput) SetOffice(v string) *UpdateUserInput { + s.Office = &v + return s +} + +// SetOrganizationId sets the OrganizationId field's value. +func (s *UpdateUserInput) SetOrganizationId(v string) *UpdateUserInput { + s.OrganizationId = &v + return s +} + +// SetRole sets the Role field's value. +func (s *UpdateUserInput) SetRole(v string) *UpdateUserInput { + s.Role = &v + return s +} + +// SetStreet sets the Street field's value. +func (s *UpdateUserInput) SetStreet(v string) *UpdateUserInput { + s.Street = &v + return s +} + +// SetTelephone sets the Telephone field's value. +func (s *UpdateUserInput) SetTelephone(v string) *UpdateUserInput { + s.Telephone = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *UpdateUserInput) SetUserId(v string) *UpdateUserInput { + s.UserId = &v + return s +} + +// SetZipCode sets the ZipCode field's value. +func (s *UpdateUserInput) SetZipCode(v string) *UpdateUserInput { + s.ZipCode = &v + return s +} + +type UpdateUserOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserOutput) GoString() string { + return s.String() +} + // The representation of an WorkMail user. type User struct { _ struct{} `type:"structure"` @@ -21240,6 +23251,26 @@ func EntityState_Values() []string { } } +const ( + // EntityTypeGroup is a EntityType enum value + EntityTypeGroup = "GROUP" + + // EntityTypeUser is a EntityType enum value + EntityTypeUser = "USER" + + // EntityTypeResource is a EntityType enum value + EntityTypeResource = "RESOURCE" +) + +// EntityType_Values returns all elements of the EntityType enum +func EntityType_Values() []string { + return []string{ + EntityTypeGroup, + EntityTypeUser, + EntityTypeResource, + } +} + const ( // FolderNameInbox is a FolderName enum value FolderNameInbox = "INBOX" @@ -21405,6 +23436,9 @@ const ( // UserRoleSystemUser is a UserRole enum value UserRoleSystemUser = "SYSTEM_USER" + + // UserRoleRemoteUser is a UserRole enum value + UserRoleRemoteUser = "REMOTE_USER" ) // UserRole_Values returns all elements of the UserRole enum @@ -21413,5 +23447,6 @@ func UserRole_Values() []string { UserRoleUser, UserRoleResource, UserRoleSystemUser, + UserRoleRemoteUser, } } diff --git a/service/workmail/workmailiface/interface.go b/service/workmail/workmailiface/interface.go index 297f8d74cb4..c426dff600a 100644 --- a/service/workmail/workmailiface/interface.go +++ b/service/workmail/workmailiface/interface.go @@ -172,6 +172,10 @@ type WorkMailAPI interface { DescribeEmailMonitoringConfigurationWithContext(aws.Context, *workmail.DescribeEmailMonitoringConfigurationInput, ...request.Option) (*workmail.DescribeEmailMonitoringConfigurationOutput, error) DescribeEmailMonitoringConfigurationRequest(*workmail.DescribeEmailMonitoringConfigurationInput) (*request.Request, *workmail.DescribeEmailMonitoringConfigurationOutput) + DescribeEntity(*workmail.DescribeEntityInput) (*workmail.DescribeEntityOutput, error) + DescribeEntityWithContext(aws.Context, *workmail.DescribeEntityInput, ...request.Option) (*workmail.DescribeEntityOutput, error) + DescribeEntityRequest(*workmail.DescribeEntityInput) (*request.Request, *workmail.DescribeEntityOutput) + DescribeGroup(*workmail.DescribeGroupInput) (*workmail.DescribeGroupOutput, error) DescribeGroupWithContext(aws.Context, *workmail.DescribeGroupInput, ...request.Option) (*workmail.DescribeGroupOutput, error) DescribeGroupRequest(*workmail.DescribeGroupInput) (*request.Request, *workmail.DescribeGroupOutput) @@ -268,6 +272,13 @@ type WorkMailAPI interface { ListGroupsPages(*workmail.ListGroupsInput, func(*workmail.ListGroupsOutput, bool) bool) error ListGroupsPagesWithContext(aws.Context, *workmail.ListGroupsInput, func(*workmail.ListGroupsOutput, bool) bool, ...request.Option) error + ListGroupsForEntity(*workmail.ListGroupsForEntityInput) (*workmail.ListGroupsForEntityOutput, error) + ListGroupsForEntityWithContext(aws.Context, *workmail.ListGroupsForEntityInput, ...request.Option) (*workmail.ListGroupsForEntityOutput, error) + ListGroupsForEntityRequest(*workmail.ListGroupsForEntityInput) (*request.Request, *workmail.ListGroupsForEntityOutput) + + ListGroupsForEntityPages(*workmail.ListGroupsForEntityInput, func(*workmail.ListGroupsForEntityOutput, bool) bool) error + ListGroupsForEntityPagesWithContext(aws.Context, *workmail.ListGroupsForEntityInput, func(*workmail.ListGroupsForEntityOutput, bool) bool, ...request.Option) error + ListImpersonationRoles(*workmail.ListImpersonationRolesInput) (*workmail.ListImpersonationRolesOutput, error) ListImpersonationRolesWithContext(aws.Context, *workmail.ListImpersonationRolesInput, ...request.Option) (*workmail.ListImpersonationRolesOutput, error) ListImpersonationRolesRequest(*workmail.ListImpersonationRolesInput) (*request.Request, *workmail.ListImpersonationRolesOutput) @@ -399,6 +410,10 @@ type WorkMailAPI interface { UpdateDefaultMailDomainWithContext(aws.Context, *workmail.UpdateDefaultMailDomainInput, ...request.Option) (*workmail.UpdateDefaultMailDomainOutput, error) UpdateDefaultMailDomainRequest(*workmail.UpdateDefaultMailDomainInput) (*request.Request, *workmail.UpdateDefaultMailDomainOutput) + UpdateGroup(*workmail.UpdateGroupInput) (*workmail.UpdateGroupOutput, error) + UpdateGroupWithContext(aws.Context, *workmail.UpdateGroupInput, ...request.Option) (*workmail.UpdateGroupOutput, error) + UpdateGroupRequest(*workmail.UpdateGroupInput) (*request.Request, *workmail.UpdateGroupOutput) + UpdateImpersonationRole(*workmail.UpdateImpersonationRoleInput) (*workmail.UpdateImpersonationRoleOutput, error) UpdateImpersonationRoleWithContext(aws.Context, *workmail.UpdateImpersonationRoleInput, ...request.Option) (*workmail.UpdateImpersonationRoleOutput, error) UpdateImpersonationRoleRequest(*workmail.UpdateImpersonationRoleInput) (*request.Request, *workmail.UpdateImpersonationRoleOutput) @@ -418,6 +433,10 @@ type WorkMailAPI interface { UpdateResource(*workmail.UpdateResourceInput) (*workmail.UpdateResourceOutput, error) UpdateResourceWithContext(aws.Context, *workmail.UpdateResourceInput, ...request.Option) (*workmail.UpdateResourceOutput, error) UpdateResourceRequest(*workmail.UpdateResourceInput) (*request.Request, *workmail.UpdateResourceOutput) + + UpdateUser(*workmail.UpdateUserInput) (*workmail.UpdateUserOutput, error) + UpdateUserWithContext(aws.Context, *workmail.UpdateUserInput, ...request.Option) (*workmail.UpdateUserOutput, error) + UpdateUserRequest(*workmail.UpdateUserInput) (*request.Request, *workmail.UpdateUserOutput) } var _ WorkMailAPI = (*workmail.WorkMail)(nil)