github.com/aiven/aiven-go-client@v1.36.0/organization_user_group_members.go (about)

     1  // Package aiven provides a client for using the Aiven API.
     2  package aiven
     3  
     4  type (
     5  	// OrganizationUserGroupMembersHandler is the client which interacts with the Organization Users Group Members API on Aiven.
     6  	OrganizationUserGroupMembersHandler struct {
     7  		// client is the API client to use.
     8  		client *Client
     9  	}
    10  
    11  	// OrganizationUserGroupMemberRequest is request structure for the Organization Users Group Member API on Aiven.
    12  	OrganizationUserGroupMemberRequest struct {
    13  		// Operation to perform on the group:
    14  		Operation string `json:"operation"`
    15  
    16  		// List of user ids to apply with the operation with
    17  		MemberIDs []string `json:"member_ids"`
    18  	}
    19  
    20  	// OrganizationUserGroupMember is response element for the Organization Users Group Member List API on Aiven.
    21  	OrganizationUserGroupMember struct {
    22  		UserID           string                              `json:"user_id"`
    23  		LastActivityTime string                              `json:"last_activity_time"`
    24  		UserInfo         OrganizationUserGroupMemberUserInfo `json:"user_info"`
    25  	}
    26  
    27  	// OrganizationUserGroupMemberUserInfo is
    28  	OrganizationUserGroupMemberUserInfo struct {
    29  		UserEmail  string `json:"user_email"`
    30  		RealName   string `json:"real_name"`
    31  		State      string `json:"state"`
    32  		JobTitle   string `json:"job_title"`
    33  		Country    string `json:"country"`
    34  		City       string `json:"city"`
    35  		Department string `json:"department"`
    36  		CreateTime string `json:"create_time"`
    37  	}
    38  
    39  	// OrganizationUserGroupListResponse is response structure for the Organization Users Groups Members List API on Aiven.
    40  	OrganizationUserGroupMembersListResponse struct {
    41  		APIResponse
    42  
    43  		Members []OrganizationUserGroupMember `json:"members"`
    44  	}
    45  )
    46  
    47  // Modify modify's a user group's members.
    48  func (h *OrganizationUserGroupMembersHandler) Modify(orgID, userGroupID string, req OrganizationUserGroupMemberRequest) error {
    49  	path := buildPath("organization", orgID, "user-groups", userGroupID, "members")
    50  	bts, err := h.client.doPatchRequest(path, req)
    51  	if err != nil {
    52  		return err
    53  	}
    54  
    55  	return checkAPIResponse(bts, nil)
    56  }
    57  
    58  // List retrieves a list of Organization User Groups.
    59  func (h *OrganizationUserGroupMembersHandler) List(orgID, userGroupID string) (*OrganizationUserGroupMembersListResponse, error) {
    60  	path := buildPath("organization", orgID, "user-groups", userGroupID, "members")
    61  	bts, err := h.client.doGetRequest(path, nil)
    62  	if err != nil {
    63  		return nil, err
    64  	}
    65  
    66  	var r OrganizationUserGroupMembersListResponse
    67  
    68  	return &r, checkAPIResponse(bts, &r)
    69  }