11# Code generated by op-codegen - DO NO EDIT MANUALLY
22
3- from typing import Optional , List
3+ from .core import Core
4+ from typing import List
45from pydantic import TypeAdapter
56from .items_shares import ItemsShares
67from .items_files import ItemsFiles
7- 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+ )
817
918
1019class Items :
1120 """
1221 The Items API holds all operations the SDK client can perform on 1Password items.
1322 """
1423
15- def __init__ (self , client_id , core ):
24+ def __init__ (self , client_id , core : Core ):
1625 self .client_id = client_id
1726 self .core = core
1827 self .shares = ItemsShares (client_id , core )
@@ -37,6 +46,30 @@ async def create(self, params: ItemCreateParams) -> Item:
3746 response = TypeAdapter (Item ).validate_json (response )
3847 return response
3948
49+ async def create_all (
50+ self , vault_id : str , params : List [ItemCreateParams ]
51+ ) -> ItemsUpdateAllResponse :
52+ """
53+ Create items in batch, within a single vault.
54+ """
55+ response = await self .core .invoke (
56+ {
57+ "invocation" : {
58+ "clientId" : self .client_id ,
59+ "parameters" : {
60+ "name" : "ItemsCreateAll" ,
61+ "parameters" : {
62+ "vault_id" : vault_id ,
63+ "params" : [o .model_dump (by_alias = True ) for o in params ],
64+ },
65+ },
66+ }
67+ }
68+ )
69+
70+ response = TypeAdapter (ItemsUpdateAllResponse ).validate_json (response )
71+ return response
72+
4073 async def get (self , vault_id : str , item_id : str ) -> Item :
4174 """
4275 Get an item by vault and item ID
@@ -56,6 +89,25 @@ async def get(self, vault_id: str, item_id: str) -> Item:
5689 response = TypeAdapter (Item ).validate_json (response )
5790 return response
5891
92+ async def get_all (self , vault_id : str , item_ids : List [str ]) -> ItemsGetAllResponse :
93+ """
94+ Get items by vault and their item IDs.
95+ """
96+ response = await self .core .invoke (
97+ {
98+ "invocation" : {
99+ "clientId" : self .client_id ,
100+ "parameters" : {
101+ "name" : "ItemsGetAll" ,
102+ "parameters" : {"vault_id" : vault_id , "item_ids" : item_ids },
103+ },
104+ }
105+ }
106+ )
107+
108+ response = TypeAdapter (ItemsGetAllResponse ).validate_json (response )
109+ return response
110+
59111 async def put (self , item : Item ) -> Item :
60112 """
61113 Update an existing item.
@@ -93,6 +145,27 @@ async def delete(self, vault_id: str, item_id: str) -> None:
93145
94146 return None
95147
148+ async def delete_all (
149+ self , vault_id : str , item_ids : List [str ]
150+ ) -> ItemsDeleteAllResponse :
151+ """
152+ Create items in batch, within a single vault.
153+ """
154+ response = await self .core .invoke (
155+ {
156+ "invocation" : {
157+ "clientId" : self .client_id ,
158+ "parameters" : {
159+ "name" : "ItemsDeleteAll" ,
160+ "parameters" : {"vault_id" : vault_id , "item_ids" : item_ids },
161+ },
162+ }
163+ }
164+ )
165+
166+ response = TypeAdapter (ItemsDeleteAllResponse ).validate_json (response )
167+ return response
168+
96169 async def archive (self , vault_id : str , item_id : str ) -> None :
97170 """
98171 Archive an item.
0 commit comments