shareDirectory method
Shares a specified directory (DirectoryId
) in your AWS
account (directory owner) with another AWS account (directory consumer).
With this operation you can use your directory from any AWS account and
from any Amazon VPC within an AWS Region.
When you share your AWS Managed Microsoft AD directory, AWS Directory Service creates a shared directory in the directory consumer account. This shared directory contains the metadata to provide access to the directory within the directory owner account. The shared directory is visible in all VPCs in the directory consumer account.
The ShareMethod
parameter determines whether the specified
directory can be shared between AWS accounts inside the same AWS
organization (ORGANIZATIONS
). It also determines whether you
can share the directory with any other AWS account either inside or
outside of the organization (HANDSHAKE
).
The ShareNotes
parameter is only used when
HANDSHAKE
is called, which sends a directory sharing request
to the directory consumer.
May throw DirectoryAlreadySharedException. May throw EntityDoesNotExistException. May throw InvalidTargetException. May throw InvalidParameterException. May throw ClientException. May throw ShareLimitExceededException. May throw OrganizationsException. May throw AccessDeniedException. May throw UnsupportedOperationException. May throw ServiceException.
Parameter directoryId
:
Identifier of the AWS Managed Microsoft AD directory that you want to
share with other AWS accounts.
Parameter shareMethod
:
The method used when sharing a directory to determine whether the
directory should be shared within your AWS organization
(ORGANIZATIONS
) or with any AWS account by sending a
directory sharing request (HANDSHAKE
).
Parameter shareTarget
:
Identifier for the directory consumer account with whom the directory is
to be shared.
Parameter shareNotes
:
A directory share request that is sent by the directory owner to the
directory consumer. The request includes a typed message to help the
directory consumer administrator determine whether to approve or reject
the share invitation.
Implementation
Future<ShareDirectoryResult> shareDirectory({
required String directoryId,
required ShareMethod shareMethod,
required ShareTarget shareTarget,
String? shareNotes,
}) async {
ArgumentError.checkNotNull(directoryId, 'directoryId');
ArgumentError.checkNotNull(shareMethod, 'shareMethod');
ArgumentError.checkNotNull(shareTarget, 'shareTarget');
_s.validateStringLength(
'shareNotes',
shareNotes,
0,
1024,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'DirectoryService_20150416.ShareDirectory'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'DirectoryId': directoryId,
'ShareMethod': shareMethod.toValue(),
'ShareTarget': shareTarget,
if (shareNotes != null) 'ShareNotes': shareNotes,
},
);
return ShareDirectoryResult.fromJson(jsonResponse.body);
}