@@ -32,189 +32,107 @@ async def main():
3232 print (overview .title )
3333 # [developer-docs.sdk.python.list-items]-end
3434
35- await showcase_vault_operations (client )
36-
37- await showcase_batch_item_operations (client , vault_id )
38-
39- group_id = os .environ .get ("OP_GROUP_ID" )
40- if group_id is None :
41- raise Exception ("OP_GROUP_ID is required" )
42-
43- await showcase_group_permission_operations (client , vault_id , group_id )
44-
45- async def showcase_vault_operations (client : Client ):
46- # [developer-docs.sdk.python.create-vault]-start
47- # Create Vault
48- vault_create_params = VaultCreateParams (
49- title = "Python SDK Vault" ,
50- description = "A description" ,
51- allow_admins_access = False ,
52- )
53- created_vault = await client .vaults .create (vault_create_params )
54- print (f"Created vault: { created_vault .id } - { created_vault .title } " )
55- # [developer-docs.sdk.python.create-vault]-end
56-
57- # [developer-docs.sdk.python.vault-overview]-start
58- vault_overview = await client .vaults .get_overview (created_vault .id )
59- print (vault_overview )
60- # [developer-docs.sdk.python.vault-overview]-end
61-
62- # [developer-docs.sdk.python.update-vault]-start
63- # Update Vault
64- update_params = VaultUpdateParams (
65- title = "Python SDK Updated Name" ,
66- description = "Updated description" ,
67- )
68-
69- await client .vaults .update (created_vault .id , update_params )
70- # [developer-docs.sdk.python.update-vault]-end
35+ # [developer-docs.sdk.python.get-vault-overview]-start
36+ # Get vault overview
37+ vaultOverview = await client .vaults .get_overview (vault_id )
38+ print (vaultOverview )
39+ # [developer-docs.sdk.python.get-vault-overview]-end
7140
7241 # [developer-docs.sdk.python.get-vault-details]-start
73- # Get Vault
74- get_params = VaultGetParams (
75- accessors = True ,
76- )
77-
78- updated_vault = await client .vaults .get (created_vault .id , get_params )
79- print (f"Updated vault: { updated_vault .id } - { updated_vault .title } " )
42+ # Get vault details
43+ vault = await client .vaults .get (vaultOverview .id , VaultGetParams (accessors = False ))
44+ print (vault )
8045 # [developer-docs.sdk.python.get-vault-details]-end
8146
82- # [developer-docs.sdk.python.delete-vault]-start
83- # Delete Vault
84- await client .vaults .delete (created_vault .id )
85- # [developer-docs.sdk.python.delete-vault]-end
86-
87- # [developer-docs.sdk.python.list-vault]-start
88- # List Vaults
89- vaults = await client .vaults .list ()
90- for vault in vaults :
91- print (vault .title )
92- # [developer-docs.sdk.python.list-vault]-end
93-
94- async def showcase_group_permission_operations (client : Client , vault_id : str , group_id : str ):
95-
96- # [developer-docs.sdk.python.grant-group-permissions]-start
97- # Grant Group Permissions
98- await client .vaults .grant_group_permissions (
99- vault_id = vault_id ,
100- group_permissions_list = [
101- GroupAccess (
102- group_id = group_id ,
103- permissions = READ_ITEMS ,
104- )
105- ],
106- )
107- print (f"Granted group { group_id } permissions to vault { vault_id } " )
108- # [developer-docs.sdk.python.grant-group-permissions]-end
109-
110- # [developer-docs.sdk.python.update-group-permissions]-start
111- # Update Group Permissions
112- await client .vaults .update_group_permissions (
113- group_permissions_list = [
114- GroupVaultAccess (
115- vault_id = vault_id ,
116- group_id = group_id ,
117- permissions = MANAGE_VAULT ,
118- )
119- ],
120- )
121- print (f"Updated group { group_id } permissions to vault { vault_id } " )
122- # [developer-docs.sdk.python.update-group-permissions]-start
123-
124- # [developer-docs.sdk.python.revoke-group-permissions]-start
125- # Revoke Group Permissions
126- await client .vaults .revoke_group_permissions (
127- vault_id = vault_id ,
128- group_id = group_id ,
129- )
130- # [developer-docs.sdk.python.update-group-permissions]-end
131-
132- # [developer-docs.sdk.python.get-group]-start
133- # Get a group
134- group = await client .groups .get (group_id , GroupGetParams (vaultPermissions = False ))
135- print (group )
136- # [developer-docs.sdk.python.get-group]-end
137-
138- # Delete temporary vault
139- await client .vaults .delete (vault_id )
140-
141- async def showcase_batch_item_operations (client : Client , vault_id : str ):
142- # [developer-docs.sdk.python.batch-create-items]-start
47+ # [developer-docs.sdk.python.batch-create-items]-start
14348 items_to_create = []
14449 for i in range (1 , 4 ):
145- items_to_create .append (
146- ItemCreateParams (
147- title = "My Login Item {}" .format (i ),
148- category = ItemCategory .LOGIN ,
149- vault_id = vault_id ,
150- fields = [
151- ItemField (
152- id = "username" ,
153- title = "username" ,
154- field_type = ItemFieldType .TEXT ,
155- value = "mynameisjeff" ,
156- ),
157- ItemField (
158- id = "password" ,
159- title = "password" ,
160- field_type = ItemFieldType .CONCEALED ,
161- value = "jeff" ,
162- ),
163- ItemField (
164- id = "onetimepassword" ,
165- title = "one-time-password" ,
166- field_type = ItemFieldType .TOTP ,
167- section_id = "totpsection" ,
168- value = "otpauth://totp/my-example-otp?secret=jncrjgbdjnrncbjsr&issuer=1Password" ,
169- ),
170- ],
171- sections = [
172- ItemSection (id = "" , title = "" ),
173- ItemSection (id = "totpsection" , title = "" ),
174- ],
175- tags = ["test tag 1" , "test tag 2" ],
176- websites = [
177- Website (
178- label = "my custom website" ,
179- url = "https://example.com" ,
180- autofill_behavior = AutofillBehavior .NEVER ,
181- )
182- ],
183- )
184- )
185-
186- # Create all items in the same vault in a single batch
187- batchCreateResponse = await client .items .create_all (vault_id , items_to_create )
50+ items_to_create .append (ItemCreateParams (
51+ title = "My Login Item {}" .format (i ),
52+ category = ItemCategory .LOGIN ,
53+ vault_id = vault .id ,
54+ fields = [
55+ ItemField (
56+ id = "username" ,
57+ title = "username" ,
58+ field_type = ItemFieldType .TEXT ,
59+ value = "mynameisjeff" ,
60+ ),
61+ ItemField (
62+ id = "password" ,
63+ title = "password" ,
64+ field_type = ItemFieldType .CONCEALED ,
65+ value = "jeff" ,
66+ ),
67+ ItemField (
68+ id = "onetimepassword" ,
69+ title = "one-time-password" ,
70+ field_type = ItemFieldType .TOTP ,
71+ section_id = "totpsection" ,
72+ value = "otpauth://totp/my-example-otp?secret=jncrjgbdjnrncbjsr&issuer=1Password" ,
73+ ),
74+ ],
75+ sections = [
76+ ItemSection (
77+ id = "" , title = "" ),
78+ ItemSection (
79+ id = "totpsection" , title = "" ),
80+ ],
81+ tags = [
82+ "test tag 1" , "test tag 2" ],
83+ websites = [
84+ Website (
85+ label = "my custom website" ,
86+ url = "https://example.com" ,
87+ autofill_behavior = AutofillBehavior .NEVER ,
88+ )
89+ ],
90+ ))
91+
92+ # Create all items in the same vault in a single batch
93+ batchCreateResponse = await client .items .create_all (vault .id , items_to_create )
18894
18995 item_ids = []
19096 for res in batchCreateResponse .individual_responses :
19197 if res .content is not None :
192- print ('Created item "{}" ({})' .format (res .content .title , res .content .id ))
98+ print ('Created item "{}" ({})' .format (
99+ res .content .title , res .content .id ))
193100 item_ids .append (res .content .id )
194101 elif res .error is not None :
195102 print ("[Batch create] Something went wrong: {}" .format (res .error ))
196103 # [developer-docs.sdk.python.batch-create-items]-end
197104
198105 # [developer-docs.sdk.python.batch-get-items]-start
199- # Get multiple items form the same vault in a single batch
200- batchGetReponse = await client .items .get_all (vault_id , item_ids )
106+ # Get multiple items form the same vault in a single batch
107+ batchGetReponse = await client .items .get_all (vault . id , item_ids )
201108 for res in batchGetReponse .individual_responses :
202109 if res .content is not None :
203- print ('Obtained item "{}" ({})' .format (res .content .title , res .content .id ))
110+ print ('Obtained item "{}" ({})' .format (
111+ res .content .title , res .content .id ))
204112 elif res .error is not None :
205113 print ("[Batch get] Something went wrong: {}" .format (res .error ))
206114 # [developer-docs.sdk.python.batch-get-items]-end
207115
208116 # [developer-docs.sdk.python.batch-delete-items]-start
209- # Delete multiple items from the same vault in a single batch
210- batchDeleteResponse = await client .items .delete_all (vault_id , item_ids )
117+ # Delete multiple items from the same vault in a single batch
118+ batchDeleteResponse = await client .items .delete_all (vault . id , item_ids )
211119 for id , res in batchDeleteResponse .individual_responses .items ():
212120 if res .error is not None :
213121 print ("[Batch delete] Something went wrong: {}" .format (res .error ))
214122 else :
215123 print ("Deleted item {}" .format (id ))
216124 # [developer-docs.sdk.python.batch-delete-items]-end
217125
126+ group_id = os .environ .get ("OP_GROUP_ID" )
127+ if group_id is None :
128+ raise Exception ("OP_GROUP_ID is required" )
129+
130+ # [developer-docs.sdk.python.get-group]-start
131+ # Get a group
132+ group = await client .groups .get (group_id , GroupGetParams (vaultPermissions = False ))
133+ print (group )
134+ # [developer-docs.sdk.python.get-group]-end
135+
218136
219137if __name__ == "__main__" :
220138 asyncio .run (main ())
0 commit comments