11# Code generated by op-codegen - DO NO EDIT MANUALLY
22
3- from .core import _invoke , _invoke_sync
4- from typing import Optional , List
3+ from .core import InnerClient
4+ from typing import List
55from pydantic import TypeAdapter
66from .items_shares import ItemsShares
77from .items_files import ItemsFiles
8- from .types import Item , ItemCreateParams , ItemListFilter , ItemOverview
8+ from .types import (
9+ Item ,
10+ ItemCreateParams ,
11+ ItemListFilter ,
12+ ItemOverview ,
13+ ItemsDeleteAllResponse ,
14+ ItemsGetAllResponse ,
15+ ItemsUpdateAllResponse ,
16+ )
917
1018
1119class Items :
1220 """
1321 The Items API holds all operations the SDK client can perform on 1Password items.
1422 """
1523
16- def __init__ (self , client_id ):
17- self .client_id = client_id
18- self .shares = ItemsShares (client_id )
19-
20- self .files = ItemsFiles (client_id )
24+ def __init__ (self , inner_client : InnerClient ):
25+ self .inner_client = inner_client
26+ self .shares = ItemsShares (inner_client )
27+ self .files = ItemsFiles (inner_client )
2128
2229 async def create (self , params : ItemCreateParams ) -> Item :
2330 """
2431 Create a new item.
2532 """
26- response = await _invoke (
33+ response = await self . inner_client . invoke (
2734 {
2835 "invocation" : {
29- "clientId" : self .client_id ,
36+ "clientId" : self .inner_client . client_id ,
3037 "parameters" : {
3138 "name" : "ItemsCreate" ,
3239 "parameters" : {"params" : params .model_dump (by_alias = True )},
@@ -38,14 +45,38 @@ async def create(self, params: ItemCreateParams) -> Item:
3845 response = TypeAdapter (Item ).validate_json (response )
3946 return response
4047
48+ async def create_all (
49+ self , vault_id : str , params : List [ItemCreateParams ]
50+ ) -> ItemsUpdateAllResponse :
51+ """
52+ Create items in batch, within a single vault.
53+ """
54+ response = await self .inner_client .invoke (
55+ {
56+ "invocation" : {
57+ "clientId" : self .inner_client .client_id ,
58+ "parameters" : {
59+ "name" : "ItemsCreateAll" ,
60+ "parameters" : {
61+ "vault_id" : vault_id ,
62+ "params" : [o .model_dump (by_alias = True ) for o in params ],
63+ },
64+ },
65+ }
66+ }
67+ )
68+
69+ response = TypeAdapter (ItemsUpdateAllResponse ).validate_json (response )
70+ return response
71+
4172 async def get (self , vault_id : str , item_id : str ) -> Item :
4273 """
43- Get an item by vault and item ID
74+ Get an item by vault and item ID.
4475 """
45- response = await _invoke (
76+ response = await self . inner_client . invoke (
4677 {
4778 "invocation" : {
48- "clientId" : self .client_id ,
79+ "clientId" : self .inner_client . client_id ,
4980 "parameters" : {
5081 "name" : "ItemsGet" ,
5182 "parameters" : {"vault_id" : vault_id , "item_id" : item_id },
@@ -57,14 +88,33 @@ async def get(self, vault_id: str, item_id: str) -> Item:
5788 response = TypeAdapter (Item ).validate_json (response )
5889 return response
5990
91+ async def get_all (self , vault_id : str , item_ids : List [str ]) -> ItemsGetAllResponse :
92+ """
93+ Get items by vault and their item IDs.
94+ """
95+ response = await self .inner_client .invoke (
96+ {
97+ "invocation" : {
98+ "clientId" : self .inner_client .client_id ,
99+ "parameters" : {
100+ "name" : "ItemsGetAll" ,
101+ "parameters" : {"vault_id" : vault_id , "item_ids" : item_ids },
102+ },
103+ }
104+ }
105+ )
106+
107+ response = TypeAdapter (ItemsGetAllResponse ).validate_json (response )
108+ return response
109+
60110 async def put (self , item : Item ) -> Item :
61111 """
62112 Update an existing item.
63113 """
64- response = await _invoke (
114+ response = await self . inner_client . invoke (
65115 {
66116 "invocation" : {
67- "clientId" : self .client_id ,
117+ "clientId" : self .inner_client . client_id ,
68118 "parameters" : {
69119 "name" : "ItemsPut" ,
70120 "parameters" : {"item" : item .model_dump (by_alias = True )},
@@ -80,10 +130,10 @@ async def delete(self, vault_id: str, item_id: str) -> None:
80130 """
81131 Delete an item.
82132 """
83- response = await _invoke (
133+ response = await self . inner_client . invoke (
84134 {
85135 "invocation" : {
86- "clientId" : self .client_id ,
136+ "clientId" : self .inner_client . client_id ,
87137 "parameters" : {
88138 "name" : "ItemsDelete" ,
89139 "parameters" : {"vault_id" : vault_id , "item_id" : item_id },
@@ -94,14 +144,35 @@ async def delete(self, vault_id: str, item_id: str) -> None:
94144
95145 return None
96146
147+ async def delete_all (
148+ self , vault_id : str , item_ids : List [str ]
149+ ) -> ItemsDeleteAllResponse :
150+ """
151+ Delete items in batch, within a single vault.
152+ """
153+ response = await self .inner_client .invoke (
154+ {
155+ "invocation" : {
156+ "clientId" : self .inner_client .client_id ,
157+ "parameters" : {
158+ "name" : "ItemsDeleteAll" ,
159+ "parameters" : {"vault_id" : vault_id , "item_ids" : item_ids },
160+ },
161+ }
162+ }
163+ )
164+
165+ response = TypeAdapter (ItemsDeleteAllResponse ).validate_json (response )
166+ return response
167+
97168 async def archive (self , vault_id : str , item_id : str ) -> None :
98169 """
99170 Archive an item.
100171 """
101- response = await _invoke (
172+ response = await self . inner_client . invoke (
102173 {
103174 "invocation" : {
104- "clientId" : self .client_id ,
175+ "clientId" : self .inner_client . client_id ,
105176 "parameters" : {
106177 "name" : "ItemsArchive" ,
107178 "parameters" : {"vault_id" : vault_id , "item_id" : item_id },
@@ -116,10 +187,10 @@ async def list(self, vault_id: str, *filters: ItemListFilter) -> List[ItemOvervi
116187 """
117188 List items based on filters.
118189 """
119- response = await _invoke (
190+ response = await self . inner_client . invoke (
120191 {
121192 "invocation" : {
122- "clientId" : self .client_id ,
193+ "clientId" : self .inner_client . client_id ,
123194 "parameters" : {
124195 "name" : "ItemsList" ,
125196 "parameters" : {
0 commit comments