All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.larksuite.oapi.service.contact.v3.ContactService Maven / Gradle / Ivy

Go to download

Larksuite open platform facilitates the integration of enterprise applications and larksuite, making collaboration and management more efficient

There is a newer version: 1.0.18-rc8
Show newest version
// Code generated by lark suite oapi sdk gen
package com.larksuite.oapi.service.contact.v3;

import com.larksuite.oapi.core.api.AccessTokenType;
import com.larksuite.oapi.core.api.Api;
import com.larksuite.oapi.core.api.ReqCaller;
import com.larksuite.oapi.core.api.request.*;
import com.larksuite.oapi.core.api.response.*;
import com.larksuite.oapi.core.Config;
import com.larksuite.oapi.core.event.Event;
import com.larksuite.oapi.core.event.IHandler;
import com.larksuite.oapi.service.contact.v3.model.*;
import java.util.Map;
import java.util.HashMap;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

public class ContactService {

    private final Config config;
    private final DepartmentUnits departmentUnits;
    private final Users users;
    private final UserGroups userGroups;
    private final UserGroupMembers userGroupMembers;
    private final Departments departments;
    private final Scopes scopes;
    private final CustomAttrEvents customAttrEvents;
    private final EmployeeTypeEnums employeeTypeEnums;

    public ContactService(Config config) {
        this.config = config;
        this.departmentUnits = new DepartmentUnits(this);
        this.users = new Users(this);
        this.userGroups = new UserGroups(this);
        this.userGroupMembers = new UserGroupMembers(this);
        this.departments = new Departments(this);
        this.scopes = new Scopes(this);
        this.customAttrEvents = new CustomAttrEvents(this);
        this.employeeTypeEnums = new EmployeeTypeEnums(this);
    }

    public DepartmentUnits getDepartmentUnits() {
        return departmentUnits;
    }

    public static class DepartmentUnits {

        private final ContactService service;

        public DepartmentUnits(ContactService service) {
            this.service = service;
        }
    
        public DepartmentUnitDeleteReqCall delete(RequestOptFn... optFns) {
            return new DepartmentUnitDeleteReqCall(this, optFns);
        }
    
        public DepartmentUnitPatchReqCall patch(DepartmentUnitPatchReqBody body, RequestOptFn... optFns) {
            return new DepartmentUnitPatchReqCall(this, body, optFns);
        }
    
        public DepartmentUnitCreateReqCall create(DepartmentUnit body, RequestOptFn... optFns) {
            return new DepartmentUnitCreateReqCall(this, body, optFns);
        }
    
    }
    public static class DepartmentUnitDeleteReqCall extends ReqCaller {
        private final DepartmentUnits departmentUnits;
        
        private final Map pathParams;
        private final List optFns;
        private EmptyData result;
        
        private DepartmentUnitDeleteReqCall(DepartmentUnits departmentUnits, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.departmentUnits = departmentUnits;
        }
        
        public DepartmentUnitDeleteReqCall setUnitId(String unitId){
            this.pathParams.put("unit_id", unitId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/department_units/:unit_id", "DELETE",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departmentUnits.service.config, request);
        }
    }
    public static class DepartmentUnitPatchReqCall extends ReqCaller {
        private final DepartmentUnits departmentUnits;
        
        private final DepartmentUnitPatchReqBody body;
        private final Map pathParams;
        private final List optFns;
        private DepartmentUnitPatchResult result;
        
        private DepartmentUnitPatchReqCall(DepartmentUnits departmentUnits, DepartmentUnitPatchReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentUnitPatchResult();
            this.departmentUnits = departmentUnits;
        }
        
        public DepartmentUnitPatchReqCall setUnitId(String unitId){
            this.pathParams.put("unit_id", unitId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/department_units/:unit_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departmentUnits.service.config, request);
        }
    }
    public static class DepartmentUnitCreateReqCall extends ReqCaller {
        private final DepartmentUnits departmentUnits;
        
        private final DepartmentUnit body;
        private final List optFns;
        private DepartmentUnitCreateResult result;
        
        private DepartmentUnitCreateReqCall(DepartmentUnits departmentUnits, DepartmentUnit body, RequestOptFn... optFns) {
        
            this.body = body;
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentUnitCreateResult();
            this.departmentUnits = departmentUnits;
        }
        

        @Override
        public Response execute() throws Exception {
            Request request = Request.newRequest("contact/v3/department_units", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departmentUnits.service.config, request);
        }
    }

    public Users getUsers() {
        return users;
    }

    public static class Users {

        private final ContactService service;

        public Users(ContactService service) {
            this.service = service;
        }
    
        public UserDeleteReqCall delete(UserDeleteReqBody body, RequestOptFn... optFns) {
            return new UserDeleteReqCall(this, body, optFns);
        }
    
        public UserUpdateReqCall update(User body, RequestOptFn... optFns) {
            return new UserUpdateReqCall(this, body, optFns);
        }
    
        public UserCreateReqCall create(User body, RequestOptFn... optFns) {
            return new UserCreateReqCall(this, body, optFns);
        }
    
        public UserPatchReqCall patch(User body, RequestOptFn... optFns) {
            return new UserPatchReqCall(this, body, optFns);
        }
    
        public UserUpdateUserIdReqCall updateUserId(UserUpdateUserIdReqBody body, RequestOptFn... optFns) {
            return new UserUpdateUserIdReqCall(this, body, optFns);
        }
    
        public UserGetReqCall get(RequestOptFn... optFns) {
            return new UserGetReqCall(this, optFns);
        }
    
        public UserListReqCall list(RequestOptFn... optFns) {
            return new UserListReqCall(this, optFns);
        }
    
    }
    public static class UserDeleteReqCall extends ReqCaller {
        private final Users users;
        
        private final UserDeleteReqBody body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private UserDeleteReqCall(Users users, UserDeleteReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.users = users;
        }
        
        public UserDeleteReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserDeleteReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users/:user_id", "DELETE",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserUpdateReqCall extends ReqCaller {
        private final Users users;
        
        private final User body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private UserUpdateResult result;
        
        private UserUpdateReqCall(Users users, User body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserUpdateResult();
            this.users = users;
        }
        
        public UserUpdateReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserUpdateReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserUpdateReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users/:user_id", "PUT",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserCreateReqCall extends ReqCaller {
        private final Users users;
        
        private final User body;
        private final Map queryParams;
        private final List optFns;
        private UserCreateResult result;
        
        private UserCreateReqCall(Users users, User body, RequestOptFn... optFns) {
        
            this.body = body;
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserCreateResult();
            this.users = users;
        }
        
        
        public UserCreateReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserCreateReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public UserCreateReqCall setClientToken(String clientToken){
            this.queryParams.put("client_token", clientToken);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserPatchReqCall extends ReqCaller {
        private final Users users;
        
        private final User body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private UserPatchResult result;
        
        private UserPatchReqCall(Users users, User body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserPatchResult();
            this.users = users;
        }
        
        public UserPatchReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserPatchReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserPatchReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users/:user_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserUpdateUserIdReqCall extends ReqCaller {
        private final Users users;
        
        private final UserUpdateUserIdReqBody body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private UserUpdateUserIdReqCall(Users users, UserUpdateUserIdReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.users = users;
        }
        
        public UserUpdateUserIdReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserUpdateUserIdReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users/:user_id/update_user_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserGetReqCall extends ReqCaller {
        private final Users users;
        
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private UserGetResult result;
        
        private UserGetReqCall(Users users, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGetResult();
            this.users = users;
        }
        
        public UserGetReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserGetReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserGetReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users/:user_id", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }
    public static class UserListReqCall extends ReqCaller {
        private final Users users;
        
        private final Map queryParams;
        private final List optFns;
        private UserListResult result;
        
        private UserListReqCall(Users users, RequestOptFn... optFns) {
        
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserListResult();
            this.users = users;
        }
        
        
        public UserListReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserListReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public UserListReqCall setDepartmentId(String departmentId){
            this.queryParams.put("department_id", departmentId);
            return this;
        }
        public UserListReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public UserListReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/users", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.users.service.config, request);
        }
    }

    public UserGroups getUserGroups() {
        return userGroups;
    }

    public static class UserGroups {

        private final ContactService service;

        public UserGroups(ContactService service) {
            this.service = service;
        }
    
        public UserGroupUpdateUserGroupIdReqCall updateUserGroupId(UserGroupUpdateUserGroupIdReqBody body, RequestOptFn... optFns) {
            return new UserGroupUpdateUserGroupIdReqCall(this, body, optFns);
        }
    
        public UserGroupDeleteReqCall delete(RequestOptFn... optFns) {
            return new UserGroupDeleteReqCall(this, optFns);
        }
    
        public UserGroupPatchReqCall patch(UserGroup body, RequestOptFn... optFns) {
            return new UserGroupPatchReqCall(this, body, optFns);
        }
    
        public UserGroupCreateReqCall create(UserGroup body, RequestOptFn... optFns) {
            return new UserGroupCreateReqCall(this, body, optFns);
        }
    
        public UserGroupListReqCall list(RequestOptFn... optFns) {
            return new UserGroupListReqCall(this, optFns);
        }
    
        public UserGroupGetReqCall get(RequestOptFn... optFns) {
            return new UserGroupGetReqCall(this, optFns);
        }
    
    }
    public static class UserGroupUpdateUserGroupIdReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final UserGroupUpdateUserGroupIdReqBody body;
        private final Map pathParams;
        private final List optFns;
        private EmptyData result;
        
        private UserGroupUpdateUserGroupIdReqCall(UserGroups userGroups, UserGroupUpdateUserGroupIdReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.userGroups = userGroups;
        }
        
        public UserGroupUpdateUserGroupIdReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id/update_user_group_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }
    public static class UserGroupDeleteReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final Map pathParams;
        private final List optFns;
        private EmptyData result;
        
        private UserGroupDeleteReqCall(UserGroups userGroups, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.userGroups = userGroups;
        }
        
        public UserGroupDeleteReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id", "DELETE",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }
    public static class UserGroupPatchReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final UserGroup body;
        private final Map pathParams;
        private final List optFns;
        private UserGroupPatchResult result;
        
        private UserGroupPatchReqCall(UserGroups userGroups, UserGroup body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGroupPatchResult();
            this.userGroups = userGroups;
        }
        
        public UserGroupPatchReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }
    public static class UserGroupCreateReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final UserGroup body;
        private final List optFns;
        private UserGroupCreateResult result;
        
        private UserGroupCreateReqCall(UserGroups userGroups, UserGroup body, RequestOptFn... optFns) {
        
            this.body = body;
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGroupCreateResult();
            this.userGroups = userGroups;
        }
        

        @Override
        public Response execute() throws Exception {
            Request request = Request.newRequest("contact/v3/user_groups", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }
    public static class UserGroupListReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final Map queryParams;
        private final List optFns;
        private UserGroupListResult result;
        
        private UserGroupListReqCall(UserGroups userGroups, RequestOptFn... optFns) {
        
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGroupListResult();
            this.userGroups = userGroups;
        }
        
        
        public UserGroupListReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }
        public UserGroupListReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/user_groups", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }
    public static class UserGroupGetReqCall extends ReqCaller {
        private final UserGroups userGroups;
        
        private final Map pathParams;
        private final List optFns;
        private UserGroupGetResult result;
        
        private UserGroupGetReqCall(UserGroups userGroups, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGroupGetResult();
            this.userGroups = userGroups;
        }
        
        public UserGroupGetReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroups.service.config, request);
        }
    }

    public UserGroupMembers getUserGroupMembers() {
        return userGroupMembers;
    }

    public static class UserGroupMembers {

        private final ContactService service;

        public UserGroupMembers(ContactService service) {
            this.service = service;
        }
    
        public UserGroupMemberCreateReqCall create(UserGroupMemberCreateReqBody body, RequestOptFn... optFns) {
            return new UserGroupMemberCreateReqCall(this, body, optFns);
        }
    
        public UserGroupMemberListReqCall list(RequestOptFn... optFns) {
            return new UserGroupMemberListReqCall(this, optFns);
        }
    
        public UserGroupMemberDeleteReqCall delete(RequestOptFn... optFns) {
            return new UserGroupMemberDeleteReqCall(this, optFns);
        }
    
    }
    public static class UserGroupMemberCreateReqCall extends ReqCaller {
        private final UserGroupMembers userGroupMembers;
        
        private final UserGroupMemberCreateReqBody body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private UserGroupMemberCreateReqCall(UserGroupMembers userGroupMembers, UserGroupMemberCreateReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.userGroupMembers = userGroupMembers;
        }
        
        public UserGroupMemberCreateReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }
        
        public UserGroupMemberCreateReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id/members", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroupMembers.service.config, request);
        }
    }
    public static class UserGroupMemberListReqCall extends ReqCaller {
        private final UserGroupMembers userGroupMembers;
        
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private UserGroupMemberListResult result;
        
        private UserGroupMemberListReqCall(UserGroupMembers userGroupMembers, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new UserGroupMemberListResult();
            this.userGroupMembers = userGroupMembers;
        }
        
        public UserGroupMemberListReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }
        
        public UserGroupMemberListReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public UserGroupMemberListReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public UserGroupMemberListReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public UserGroupMemberListReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id/members", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroupMembers.service.config, request);
        }
    }
    public static class UserGroupMemberDeleteReqCall extends ReqCaller {
        private final UserGroupMembers userGroupMembers;
        
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private UserGroupMemberDeleteReqCall(UserGroupMembers userGroupMembers, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.userGroupMembers = userGroupMembers;
        }
        
        public UserGroupMemberDeleteReqCall setUserGroupId(String userGroupId){
            this.pathParams.put("user_group_id", userGroupId);
            return this;
        }
        public UserGroupMemberDeleteReqCall setUserId(String userId){
            this.pathParams.put("user_id", userId);
            return this;
        }
        
        public UserGroupMemberDeleteReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/user_groups/:user_group_id/members/:user_id", "DELETE",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.userGroupMembers.service.config, request);
        }
    }

    public Departments getDepartments() {
        return departments;
    }

    public static class Departments {

        private final ContactService service;

        public Departments(ContactService service) {
            this.service = service;
        }
    
        public DepartmentGetReqCall get(RequestOptFn... optFns) {
            return new DepartmentGetReqCall(this, optFns);
        }
    
        public DepartmentListReqCall list(RequestOptFn... optFns) {
            return new DepartmentListReqCall(this, optFns);
        }
    
        public DepartmentPatchReqCall patch(Department body, RequestOptFn... optFns) {
            return new DepartmentPatchReqCall(this, body, optFns);
        }
    
        public DepartmentCreateReqCall create(Department body, RequestOptFn... optFns) {
            return new DepartmentCreateReqCall(this, body, optFns);
        }
    
        public DepartmentDeleteReqCall delete(RequestOptFn... optFns) {
            return new DepartmentDeleteReqCall(this, optFns);
        }
    
        public DepartmentUpdateReqCall update(Department body, RequestOptFn... optFns) {
            return new DepartmentUpdateReqCall(this, body, optFns);
        }
    
        public DepartmentParentReqCall parent(RequestOptFn... optFns) {
            return new DepartmentParentReqCall(this, optFns);
        }
    
        public DepartmentUpdateDepartmentIdReqCall updateDepartmentId(DepartmentUpdateDepartmentIdReqBody body, RequestOptFn... optFns) {
            return new DepartmentUpdateDepartmentIdReqCall(this, body, optFns);
        }
    
        public DepartmentUnbindDepartmentChatReqCall unbindDepartmentChat(DepartmentUnbindDepartmentChatReqBody body, RequestOptFn... optFns) {
            return new DepartmentUnbindDepartmentChatReqCall(this, body, optFns);
        }
    
        public DepartmentSearchReqCall search(DepartmentSearchReqBody body, RequestOptFn... optFns) {
            return new DepartmentSearchReqCall(this, body, optFns);
        }
    
    }
    public static class DepartmentGetReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private DepartmentGetResult result;
        
        private DepartmentGetReqCall(Departments departments, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentGetResult();
            this.departments = departments;
        }
        
        public DepartmentGetReqCall setDepartmentId(String departmentId){
            this.pathParams.put("department_id", departmentId);
            return this;
        }
        
        public DepartmentGetReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentGetReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/:department_id", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentListReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Map queryParams;
        private final List optFns;
        private DepartmentListResult result;
        
        private DepartmentListReqCall(Departments departments, RequestOptFn... optFns) {
        
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentListResult();
            this.departments = departments;
        }
        
        
        public DepartmentListReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentListReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public DepartmentListReqCall setParentDepartmentId(String parentDepartmentId){
            this.queryParams.put("parent_department_id", parentDepartmentId);
            return this;
        }
        public DepartmentListReqCall setFetchChild(Boolean fetchChild){
            this.queryParams.put("fetch_child", fetchChild);
            return this;
        }
        public DepartmentListReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public DepartmentListReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentPatchReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Department body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private DepartmentPatchResult result;
        
        private DepartmentPatchReqCall(Departments departments, Department body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentPatchResult();
            this.departments = departments;
        }
        
        public DepartmentPatchReqCall setDepartmentId(String departmentId){
            this.pathParams.put("department_id", departmentId);
            return this;
        }
        
        public DepartmentPatchReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentPatchReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/:department_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentCreateReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Department body;
        private final Map queryParams;
        private final List optFns;
        private DepartmentCreateResult result;
        
        private DepartmentCreateReqCall(Departments departments, Department body, RequestOptFn... optFns) {
        
            this.body = body;
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentCreateResult();
            this.departments = departments;
        }
        
        
        public DepartmentCreateReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentCreateReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public DepartmentCreateReqCall setClientToken(String clientToken){
            this.queryParams.put("client_token", clientToken);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentDeleteReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private DepartmentDeleteReqCall(Departments departments, RequestOptFn... optFns) {
        
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.departments = departments;
        }
        
        public DepartmentDeleteReqCall setDepartmentId(String departmentId){
            this.pathParams.put("department_id", departmentId);
            return this;
        }
        
        public DepartmentDeleteReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentDeleteReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/:department_id", "DELETE",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentUpdateReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Department body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private DepartmentUpdateResult result;
        
        private DepartmentUpdateReqCall(Departments departments, Department body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentUpdateResult();
            this.departments = departments;
        }
        
        public DepartmentUpdateReqCall setDepartmentId(String departmentId){
            this.pathParams.put("department_id", departmentId);
            return this;
        }
        
        public DepartmentUpdateReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentUpdateReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/:department_id", "PUT",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentParentReqCall extends ReqCaller {
        private final Departments departments;
        
        private final Map queryParams;
        private final List optFns;
        private DepartmentParentResult result;
        
        private DepartmentParentReqCall(Departments departments, RequestOptFn... optFns) {
        
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentParentResult();
            this.departments = departments;
        }
        
        
        public DepartmentParentReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentParentReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public DepartmentParentReqCall setDepartmentId(String departmentId){
            this.queryParams.put("department_id", departmentId);
            return this;
        }
        public DepartmentParentReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public DepartmentParentReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/parent", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant, AccessTokenType.User},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentUpdateDepartmentIdReqCall extends ReqCaller {
        private final Departments departments;
        
        private final DepartmentUpdateDepartmentIdReqBody body;
        private final Map pathParams;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private DepartmentUpdateDepartmentIdReqCall(Departments departments, DepartmentUpdateDepartmentIdReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.pathParams = new HashMap<>();
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.departments = departments;
        }
        
        public DepartmentUpdateDepartmentIdReqCall setDepartmentId(String departmentId){
            this.pathParams.put("department_id", departmentId);
            return this;
        }
        
        public DepartmentUpdateDepartmentIdReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setPathParams(this.pathParams));
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/:department_id/update_department_id", "PATCH",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentUnbindDepartmentChatReqCall extends ReqCaller {
        private final Departments departments;
        
        private final DepartmentUnbindDepartmentChatReqBody body;
        private final Map queryParams;
        private final List optFns;
        private EmptyData result;
        
        private DepartmentUnbindDepartmentChatReqCall(Departments departments, DepartmentUnbindDepartmentChatReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmptyData();
            this.departments = departments;
        }
        
        
        public DepartmentUnbindDepartmentChatReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/unbind_department_chat", "POST",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }
    public static class DepartmentSearchReqCall extends ReqCaller {
        private final Departments departments;
        
        private final DepartmentSearchReqBody body;
        private final Map queryParams;
        private final List optFns;
        private DepartmentSearchResult result;
        
        private DepartmentSearchReqCall(Departments departments, DepartmentSearchReqBody body, RequestOptFn... optFns) {
        
            this.body = body;
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new DepartmentSearchResult();
            this.departments = departments;
        }
        
        
        public DepartmentSearchReqCall setUserIdType(String userIdType){
            this.queryParams.put("user_id_type", userIdType);
            return this;
        }
        public DepartmentSearchReqCall setDepartmentIdType(String departmentIdType){
            this.queryParams.put("department_id_type", departmentIdType);
            return this;
        }
        public DepartmentSearchReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public DepartmentSearchReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/departments/search", "POST",
                    new AccessTokenType[]{AccessTokenType.User},
                    this.body, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.departments.service.config, request);
        }
    }

    public Scopes getScopes() {
        return scopes;
    }

    public static class Scopes {

        private final ContactService service;

        public Scopes(ContactService service) {
            this.service = service;
        }
    
    }

    public CustomAttrEvents getCustomAttrEvents() {
        return customAttrEvents;
    }

    public static class CustomAttrEvents {

        private final ContactService service;

        public CustomAttrEvents(ContactService service) {
            this.service = service;
        }
    
    }

    public EmployeeTypeEnums getEmployeeTypeEnums() {
        return employeeTypeEnums;
    }

    public static class EmployeeTypeEnums {

        private final ContactService service;

        public EmployeeTypeEnums(ContactService service) {
            this.service = service;
        }
    
        public EmployeeTypeEnumListReqCall list(RequestOptFn... optFns) {
            return new EmployeeTypeEnumListReqCall(this, optFns);
        }
    
    }
    public static class EmployeeTypeEnumListReqCall extends ReqCaller {
        private final EmployeeTypeEnums employeeTypeEnums;
        
        private final Map queryParams;
        private final List optFns;
        private EmployeeTypeEnumListResult result;
        
        private EmployeeTypeEnumListReqCall(EmployeeTypeEnums employeeTypeEnums, RequestOptFn... optFns) {
        
            this.queryParams = new HashMap<>();
            this.optFns = new ArrayList<>();
            this.optFns.addAll(Arrays.asList(optFns));
            this.result = new EmployeeTypeEnumListResult();
            this.employeeTypeEnums = employeeTypeEnums;
        }
        
        
        public EmployeeTypeEnumListReqCall setPageToken(String pageToken){
            this.queryParams.put("page_token", pageToken);
            return this;
        }
        public EmployeeTypeEnumListReqCall setPageSize(Integer pageSize){
            this.queryParams.put("page_size", pageSize);
            return this;
        }

        @Override
        public Response execute() throws Exception {
            this.optFns.add(Request.setQueryParams(this.queryParams));
            Request request = Request.newRequest("contact/v3/employee_type_enums", "GET",
                    new AccessTokenType[]{AccessTokenType.Tenant},
                    null, this.result, this.optFns.toArray(new RequestOptFn[]{}));
            return Api.send(this.employeeTypeEnums.service.config, request);
        }
    }
    public void setDepartmentCreatedEventHandler(DepartmentCreatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.department.created_v3", handler);
    }

    public abstract static class DepartmentCreatedEventHandler implements IHandler {
        @Override
        public DepartmentCreatedEvent getEvent() {
            return new DepartmentCreatedEvent();
        }
    }
    public void setDepartmentDeletedEventHandler(DepartmentDeletedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.department.deleted_v3", handler);
    }

    public abstract static class DepartmentDeletedEventHandler implements IHandler {
        @Override
        public DepartmentDeletedEvent getEvent() {
            return new DepartmentDeletedEvent();
        }
    }
    public void setDepartmentUpdatedEventHandler(DepartmentUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.department.updated_v3", handler);
    }

    public abstract static class DepartmentUpdatedEventHandler implements IHandler {
        @Override
        public DepartmentUpdatedEvent getEvent() {
            return new DepartmentUpdatedEvent();
        }
    }
    public void setUserCreatedEventHandler(UserCreatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user.created_v3", handler);
    }

    public abstract static class UserCreatedEventHandler implements IHandler {
        @Override
        public UserCreatedEvent getEvent() {
            return new UserCreatedEvent();
        }
    }
    public void setUserDeletedEventHandler(UserDeletedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user.deleted_v3", handler);
    }

    public abstract static class UserDeletedEventHandler implements IHandler {
        @Override
        public UserDeletedEvent getEvent() {
            return new UserDeletedEvent();
        }
    }
    public void setUserUpdatedEventHandler(UserUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user.updated_v3", handler);
    }

    public abstract static class UserUpdatedEventHandler implements IHandler {
        @Override
        public UserUpdatedEvent getEvent() {
            return new UserUpdatedEvent();
        }
    }
    public void setUserGroupCreatedEventHandler(UserGroupCreatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user_group.created_v3", handler);
    }

    public abstract static class UserGroupCreatedEventHandler implements IHandler {
        @Override
        public UserGroupCreatedEvent getEvent() {
            return new UserGroupCreatedEvent();
        }
    }
    public void setUserGroupDeletedEventHandler(UserGroupDeletedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user_group.deleted_v3", handler);
    }

    public abstract static class UserGroupDeletedEventHandler implements IHandler {
        @Override
        public UserGroupDeletedEvent getEvent() {
            return new UserGroupDeletedEvent();
        }
    }
    public void setUserGroupUpdatedEventHandler(UserGroupUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user_group.updated_v3", handler);
    }

    public abstract static class UserGroupUpdatedEventHandler implements IHandler {
        @Override
        public UserGroupUpdatedEvent getEvent() {
            return new UserGroupUpdatedEvent();
        }
    }
    public void setScopeUpdatedEventHandler(ScopeUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.scope.updated_v3", handler);
    }

    public abstract static class ScopeUpdatedEventHandler implements IHandler {
        @Override
        public ScopeUpdatedEvent getEvent() {
            return new ScopeUpdatedEvent();
        }
    }
    public void setUserGroupMemberChangedEventHandler(UserGroupMemberChangedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.user_group.member.changed_v3", handler);
    }

    public abstract static class UserGroupMemberChangedEventHandler implements IHandler {
        @Override
        public UserGroupMemberChangedEvent getEvent() {
            return new UserGroupMemberChangedEvent();
        }
    }
    public void setCustomAttrEventUpdatedEventHandler(CustomAttrEventUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.custom_attr_event.updated_v3", handler);
    }

    public abstract static class CustomAttrEventUpdatedEventHandler implements IHandler {
        @Override
        public CustomAttrEventUpdatedEvent getEvent() {
            return new CustomAttrEventUpdatedEvent();
        }
    }
    public void setEmployeeTypeEnumActivedEventHandler(EmployeeTypeEnumActivedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.employee_type_enum.actived_v3", handler);
    }

    public abstract static class EmployeeTypeEnumActivedEventHandler implements IHandler {
        @Override
        public EmployeeTypeEnumActivedEvent getEvent() {
            return new EmployeeTypeEnumActivedEvent();
        }
    }
    public void setEmployeeTypeEnumCreatedEventHandler(EmployeeTypeEnumCreatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.employee_type_enum.created_v3", handler);
    }

    public abstract static class EmployeeTypeEnumCreatedEventHandler implements IHandler {
        @Override
        public EmployeeTypeEnumCreatedEvent getEvent() {
            return new EmployeeTypeEnumCreatedEvent();
        }
    }
    public void setEmployeeTypeEnumDeactivatedEventHandler(EmployeeTypeEnumDeactivatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.employee_type_enum.deactivated_v3", handler);
    }

    public abstract static class EmployeeTypeEnumDeactivatedEventHandler implements IHandler {
        @Override
        public EmployeeTypeEnumDeactivatedEvent getEvent() {
            return new EmployeeTypeEnumDeactivatedEvent();
        }
    }
    public void setEmployeeTypeEnumDeletedEventHandler(EmployeeTypeEnumDeletedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.employee_type_enum.deleted_v3", handler);
    }

    public abstract static class EmployeeTypeEnumDeletedEventHandler implements IHandler {
        @Override
        public EmployeeTypeEnumDeletedEvent getEvent() {
            return new EmployeeTypeEnumDeletedEvent();
        }
    }
    public void setEmployeeTypeEnumUpdatedEventHandler(EmployeeTypeEnumUpdatedEventHandler handler) {
        Event.setTypeHandler(this.config, "contact.employee_type_enum.updated_v3", handler);
    }

    public abstract static class EmployeeTypeEnumUpdatedEventHandler implements IHandler {
        @Override
        public EmployeeTypeEnumUpdatedEvent getEvent() {
            return new EmployeeTypeEnumUpdatedEvent();
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy