Skip to content

Commit 43fa04c

Browse files
feat: FIT-471: Bulk project assignment/unassignment (#551)
Co-authored-by: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
1 parent f0e224b commit 43fa04c

File tree

12 files changed

+687
-0
lines changed

12 files changed

+687
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
types:
2+
BulkPostResponse:
3+
properties:
4+
assignments: optional<integer>
5+
source:
6+
openapi: openapi/openapi.yaml
7+
BulkDeleteResponse:
8+
properties:
9+
unassignments: optional<integer>
10+
source:
11+
openapi: openapi/openapi.yaml
12+
service:
13+
auth: false
14+
base-path: ''
15+
endpoints:
16+
post:
17+
path: /api/projects/{id}/members/bulk/
18+
method: POST
19+
auth: true
20+
docs: Assign project members in bulk.
21+
source:
22+
openapi: openapi/openapi.yaml
23+
path-parameters:
24+
id: integer
25+
display-name: Bulk assign project members
26+
request:
27+
name: ProjectMemberBulkAssignRequest
28+
body:
29+
properties:
30+
all: boolean
31+
excluded: optional<list<integer>>
32+
included: optional<list<integer>>
33+
content-type: application/json
34+
response:
35+
docs: ''
36+
type: BulkPostResponse
37+
examples:
38+
- path-parameters:
39+
id: 1
40+
request:
41+
all: true
42+
response:
43+
body:
44+
assignments: 1
45+
audiences:
46+
- public
47+
delete:
48+
path: /api/projects/{id}/members/bulk/
49+
method: DELETE
50+
auth: true
51+
docs: >-
52+
Unassign project members in bulk. Allows the same request body as bulk
53+
assign.
54+
source:
55+
openapi: openapi/openapi.yaml
56+
path-parameters:
57+
id: integer
58+
display-name: Bulk unassign project members
59+
response:
60+
docs: ''
61+
type: BulkDeleteResponse
62+
examples:
63+
- path-parameters:
64+
id: 1
65+
response:
66+
body:
67+
unassignments: 1
68+
audiences:
69+
- public
70+
source:
71+
openapi: openapi/openapi.yaml

.mock/openapi/openapi.yaml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7172,6 +7172,81 @@ paths:
71727172
summary: Add project member
71737173
tags:
71747174
- Projects
7175+
/api/projects/{id}/members/bulk/:
7176+
delete:
7177+
description: Unassign project members in bulk. Allows the same request body as bulk assign.
7178+
operationId: api_projects_members_bulk_destroy
7179+
parameters:
7180+
- in: path
7181+
name: id
7182+
required: true
7183+
schema:
7184+
type: integer
7185+
responses:
7186+
'200':
7187+
content:
7188+
application/json:
7189+
schema:
7190+
properties:
7191+
unassignments:
7192+
type: integer
7193+
type: object
7194+
description: ''
7195+
security:
7196+
- Token: []
7197+
summary: Bulk unassign project members
7198+
tags:
7199+
- Projects
7200+
x-fern-audiences:
7201+
- public
7202+
x-fern-sdk-group-name:
7203+
- projects
7204+
- members
7205+
- bulk
7206+
x-fern-sdk-method-name: delete
7207+
post:
7208+
description: Assign project members in bulk.
7209+
operationId: api_projects_members_bulk_create
7210+
parameters:
7211+
- in: path
7212+
name: id
7213+
required: true
7214+
schema:
7215+
type: integer
7216+
requestBody:
7217+
content:
7218+
application/json:
7219+
schema:
7220+
$ref: '#/components/schemas/ProjectMemberBulkAssignRequest'
7221+
application/x-www-form-urlencoded:
7222+
schema:
7223+
$ref: '#/components/schemas/ProjectMemberBulkAssignRequest'
7224+
multipart/form-data:
7225+
schema:
7226+
$ref: '#/components/schemas/ProjectMemberBulkAssignRequest'
7227+
required: true
7228+
responses:
7229+
'200':
7230+
content:
7231+
application/json:
7232+
schema:
7233+
properties:
7234+
assignments:
7235+
type: integer
7236+
type: object
7237+
description: ''
7238+
security:
7239+
- Token: []
7240+
summary: Bulk assign project members
7241+
tags:
7242+
- Projects
7243+
x-fern-audiences:
7244+
- public
7245+
x-fern-sdk-group-name:
7246+
- projects
7247+
- members
7248+
- bulk
7249+
x-fern-sdk-method-name: post
71757250
/api/projects/{id}/members/paginated/:
71767251
get:
71777252
description: Retrieve the members for a specific project.
@@ -25189,6 +25264,23 @@ components:
2518925264
required:
2519025265
- user
2519125266
type: object
25267+
ProjectMemberBulkAssignRequest:
25268+
properties:
25269+
all:
25270+
type: boolean
25271+
excluded:
25272+
items:
25273+
minimum: 1
25274+
type: integer
25275+
type: array
25276+
included:
25277+
items:
25278+
minimum: 1
25279+
type: integer
25280+
type: array
25281+
required:
25282+
- all
25283+
type: object
2519225284
ProjectMemberRequest:
2519325285
properties:
2519425286
user:

reference.md

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21414,6 +21414,172 @@ Reason for pausing
2141421414
</dl>
2141521415

2141621416

21417+
</dd>
21418+
</dl>
21419+
</details>
21420+
21421+
## Projects Members Bulk
21422+
<details><summary><code>client.projects.members.bulk.<a href="src/label_studio_sdk/projects/members/bulk/client.py">post</a>(...)</code></summary>
21423+
<dl>
21424+
<dd>
21425+
21426+
#### 📝 Description
21427+
21428+
<dl>
21429+
<dd>
21430+
21431+
<dl>
21432+
<dd>
21433+
21434+
Assign project members in bulk.
21435+
</dd>
21436+
</dl>
21437+
</dd>
21438+
</dl>
21439+
21440+
#### 🔌 Usage
21441+
21442+
<dl>
21443+
<dd>
21444+
21445+
<dl>
21446+
<dd>
21447+
21448+
```python
21449+
from label_studio_sdk import LabelStudio
21450+
21451+
client = LabelStudio(
21452+
api_key="YOUR_API_KEY",
21453+
)
21454+
client.projects.members.bulk.post(
21455+
id=1,
21456+
all_=True,
21457+
)
21458+
21459+
```
21460+
</dd>
21461+
</dl>
21462+
</dd>
21463+
</dl>
21464+
21465+
#### ⚙️ Parameters
21466+
21467+
<dl>
21468+
<dd>
21469+
21470+
<dl>
21471+
<dd>
21472+
21473+
**id:** `int`
21474+
21475+
</dd>
21476+
</dl>
21477+
21478+
<dl>
21479+
<dd>
21480+
21481+
**all_:** `bool`
21482+
21483+
</dd>
21484+
</dl>
21485+
21486+
<dl>
21487+
<dd>
21488+
21489+
**excluded:** `typing.Optional[typing.Sequence[int]]`
21490+
21491+
</dd>
21492+
</dl>
21493+
21494+
<dl>
21495+
<dd>
21496+
21497+
**included:** `typing.Optional[typing.Sequence[int]]`
21498+
21499+
</dd>
21500+
</dl>
21501+
21502+
<dl>
21503+
<dd>
21504+
21505+
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
21506+
21507+
</dd>
21508+
</dl>
21509+
</dd>
21510+
</dl>
21511+
21512+
21513+
</dd>
21514+
</dl>
21515+
</details>
21516+
21517+
<details><summary><code>client.projects.members.bulk.<a href="src/label_studio_sdk/projects/members/bulk/client.py">delete</a>(...)</code></summary>
21518+
<dl>
21519+
<dd>
21520+
21521+
#### 📝 Description
21522+
21523+
<dl>
21524+
<dd>
21525+
21526+
<dl>
21527+
<dd>
21528+
21529+
Unassign project members in bulk. Allows the same request body as bulk assign.
21530+
</dd>
21531+
</dl>
21532+
</dd>
21533+
</dl>
21534+
21535+
#### 🔌 Usage
21536+
21537+
<dl>
21538+
<dd>
21539+
21540+
<dl>
21541+
<dd>
21542+
21543+
```python
21544+
from label_studio_sdk import LabelStudio
21545+
21546+
client = LabelStudio(
21547+
api_key="YOUR_API_KEY",
21548+
)
21549+
client.projects.members.bulk.delete(
21550+
id=1,
21551+
)
21552+
21553+
```
21554+
</dd>
21555+
</dl>
21556+
</dd>
21557+
</dl>
21558+
21559+
#### ⚙️ Parameters
21560+
21561+
<dl>
21562+
<dd>
21563+
21564+
<dl>
21565+
<dd>
21566+
21567+
**id:** `int`
21568+
21569+
</dd>
21570+
</dl>
21571+
21572+
<dl>
21573+
<dd>
21574+
21575+
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
21576+
21577+
</dd>
21578+
</dl>
21579+
</dd>
21580+
</dl>
21581+
21582+
2141721583
</dd>
2141821584
</dl>
2141921585
</details>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
# This file was auto-generated by Fern from our API Definition.
22

3+
from . import bulk
4+
from .bulk import BulkDeleteResponse, BulkPostResponse
5+
6+
__all__ = ["BulkDeleteResponse", "BulkPostResponse", "bulk"]
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# This file was auto-generated by Fern from our API Definition.
2+
3+
from .types import BulkDeleteResponse, BulkPostResponse
4+
5+
__all__ = ["BulkDeleteResponse", "BulkPostResponse"]

0 commit comments

Comments
 (0)