Skip to content

add_group_member

add_group_member(
    directory_id: DirectoryId,
    group_name: GroupName,
    member_name: MemberName,
    *,
    config_overrides: Optional[DirectoryServiceDataClientConfig] = None,
    member_realm: Optional[Realm] = None,
    client_token: Optional[ClientToken] = None,
) -> AddGroupMemberResult

Adds an existing user, group, or computer as a group member.

Parameters:

  • directory_id (DirectoryId) –

    The identifier (ID) of the directory that's associated with the group.

  • group_name (GroupName) –

    The name of the group.

  • member_name (MemberName) –

    The SAMAccountName of the user, group, or computer to add as a group member.

  • member_realm (Optional[Realm], default: None ) –

    The domain name that's associated with the group member. This parameter is required only when adding a member outside of your Managed Microsoft AD domain to a group inside of your Managed Microsoft AD domain. This parameter defaults to the Managed Microsoft AD domain.

    This parameter is case insensitive.

  • client_token (Optional[ClientToken], default: None ) –

    A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call.

    A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours.

    If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an ConflictException.

    This parameter is optional when using the CLI or SDK.

Raises:

  • AccessDeniedException –

    You don't have permission to perform the request or access the directory. It can also occur when the DirectoryId doesn't exist or the user, member, or group might be outside of your organizational unit (OU).

    Make sure that you have the authentication and authorization to perform the action. Review the directory information in the request, and make sure that the object isn't outside of your OU.

  • ConflictException –

    This error will occur when you try to create a resource that conflicts with an existing object. It can also occur when adding a member to a group that the member is already in.

    This error can be caused by a request sent within the 8-hour idempotency window with the same client token but different input parameters. Client tokens should not be re-used across different requests. After 8 hours, any request with the same client token is treated as a new request.

  • DirectoryUnavailableException –

    The request could not be completed due to a problem in the configuration or current state of the specified directory.

  • InternalServerException –

    The operation didn't succeed because an internal error occurred. Try again later.

  • ResourceNotFoundException –

    The resource couldn't be found.

  • ThrottlingException –

    The limit on the number of requests per second has been exceeded.

  • ValidationException –

    The request isn't valid. Review the details in the error message to update the invalid parameters or values in your request.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Examples:

To add a member to the Marketing group The following command adds an existing user to the Marketing group in the europe.example.com domain.

>>> client.add_group_member(client_token='550e8400-e29b-41d4-a716-446655440000', directory_id='d-12233abcde', group_name='Marketing', member_name='Pat Candella', member_realm='europe.example.com')
Source code in docs_src/capo_directory_service_data/_services/directory_service_data.py
def add_group_member(
    self,
    directory_id: "capo_directory_service_data.types.directory_id.DirectoryId",
    group_name: "capo_directory_service_data.types.group_name.GroupName",
    member_name: "capo_directory_service_data.types.member_name.MemberName",
    *,
    config_overrides: Optional[DirectoryServiceDataClientConfig] = None,
    member_realm: Optional["capo_directory_service_data.types.realm.Realm"] = None,
    client_token: Optional[
        "capo_directory_service_data.types.client_token.ClientToken"
    ] = None,
) -> (
    "capo_directory_service_data.types.add_group_member_result.AddGroupMemberResult"
):
    """<p>Adds an existing user, group, or computer as a group member.</p>

    Args:
        directory_id: <p> The identifier (ID) of the directory that's associated with the group. </p>
        group_name: <p> The name of the group. </p>
        member_name: <p> The <code>SAMAccountName</code> of the user, group, or computer to add as a group member. </p>
        member_realm: <p> The domain name that's associated with the group member. This parameter is required only when adding a member outside of your Managed Microsoft AD domain to a group inside of your Managed Microsoft AD domain. This parameter defaults to the Managed Microsoft AD domain. </p> <note> <p> This parameter is case insensitive. </p> </note>
        client_token: <p> A unique and case-sensitive identifier that you provide to make sure the idempotency of the request, so multiple identical calls have the same effect as one single call. </p> <p> A client token is valid for 8 hours after the first request that uses it completes. After 8 hours, any request with the same client token is treated as a new request. If the request succeeds, any future uses of that token will be idempotent for another 8 hours. </p> <p> If you submit a request with the same client token but change one of the other parameters within the 8-hour idempotency window, Directory Service Data returns an <code>ConflictException</code>. </p> <note> <p> This parameter is optional when using the CLI or SDK. </p> </note>

    Raises:
        capo_directory_service_data.errors.access_denied_exception.AccessDeniedException: <p> You don't have permission to perform the request or access the directory. It can also occur when the <code>DirectoryId</code> doesn't exist or the user, member, or group might be outside of your organizational unit (OU). </p> <p> Make sure that you have the authentication and authorization to perform the action. Review the directory information in the request, and make sure that the object isn't outside of your OU. </p>
        capo_directory_service_data.errors.conflict_exception.ConflictException: <p> This error will occur when you try to create a resource that conflicts with an existing object. It can also occur when adding a member to a group that the member is already in.</p> <p> This error can be caused by a request sent within the 8-hour idempotency window with the same client token but different input parameters. Client tokens should not be re-used across different requests. After 8 hours, any request with the same client token is treated as a new request. </p>
        capo_directory_service_data.errors.directory_unavailable_exception.DirectoryUnavailableException: <p> The request could not be completed due to a problem in the configuration or current state of the specified directory. </p>
        capo_directory_service_data.errors.internal_server_exception.InternalServerException: <p> The operation didn't succeed because an internal error occurred. Try again later. </p>
        capo_directory_service_data.errors.resource_not_found_exception.ResourceNotFoundException: <p> The resource couldn't be found. </p>
        capo_directory_service_data.errors.throttling_exception.ThrottlingException: <p> The limit on the number of requests per second has been exceeded. </p>
        capo_directory_service_data.errors.validation_exception.ValidationException: <p> The request isn't valid. Review the details in the error message to update the invalid parameters or values in your request. </p>
        capo_directory_service_data.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        To add a member to the Marketing group
        The following command adds an existing user to the Marketing group in the europe.example.com domain.

        >>> client.add_group_member(client_token='550e8400-e29b-41d4-a716-446655440000', directory_id='d-12233abcde', group_name='Marketing', member_name='Pat Candella', member_realm='europe.example.com')
    """

    def _handler(
        req: "OperationRequest[capo_directory_service_data.types.add_group_member_request.AddGroupMemberRequest]",
    ) -> OperationResponse[
        "capo_directory_service_data.types.add_group_member_result.AddGroupMemberResult"
    ]:
        import capo_directory_service_data._operations.directory_service_data.add_group_member

        output, http_response = (
            capo_directory_service_data._operations.directory_service_data.add_group_member.add_group_member(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("AddGroupMember")
    )
    input_: capo_directory_service_data.types.add_group_member_request.AddGroupMemberRequest = {
        "directory_id": directory_id,
        "group_name": group_name,
        "member_name": member_name,
    }
    if member_realm is not None:
        input_["member_realm"] = member_realm
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output