-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTeamManagement.php
More file actions
86 lines (76 loc) · 2.15 KB
/
Copy pathTeamManagement.php
File metadata and controls
86 lines (76 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?php
declare(strict_types=1);
namespace TestingBot\Resource;
use TestingBot\Http\Request;
/**
* Team / sub-account management for the team admin.
*/
final class TeamManagement extends AbstractResource
{
/**
* Get the team's concurrency snapshot (allowed vs current).
*
* @return array<mixed>
*/
public function get(): array
{
return $this->request(new Request('GET', 'team-management'));
}
/**
* List team members.
*
* @return array<mixed>
*/
public function listUsers(int $offset = 0, int $count = 10): array
{
return $this->request(new Request('GET', 'team-management/users', query: $this->paginationQuery($offset, $count)));
}
/**
* Get a single team member.
*
* @return array<mixed>
*/
public function getUser(int $id): array
{
return $this->request(new Request('GET', 'team-management/users/' . $id));
}
/**
* Get a team member's API client key.
*
* @return array<mixed>
*/
public function getUserClientKey(int $id): array
{
return $this->request(new Request('GET', 'team-management/users/' . $id . '/client-key'));
}
/**
* Rotate a team member's API credentials.
*
* @return array<mixed>
*/
public function resetUserKeys(int $id): array
{
return $this->request(new Request('POST', 'team-management/users/' . $id . '/reset-keys'));
}
/**
* Create a new sub-account.
*
* @param array<string, mixed> $details Fields: `email`, `password`,
* `first_name`, `last_name`, `concurrency`, `concurrencyPhysical`.
* @return array<mixed>
*/
public function createUser(array $details): array
{
return $this->request(new Request('POST', 'team-management/users', body: $details));
}
/**
* Update a team member's profile and credit allocation.
*
* @param array<string, mixed> $details
* @return array<mixed>
*/
public function updateUser(int $id, array $details): array
{
return $this->request(new Request('PUT', 'team-management/users/' . $id, body: $details));
}
}