@@ -102,7 +102,9 @@ async def main():
102102 )
103103 print (code )
104104 # [developer-docs.sdk.python.resolve-totp-code]-end
105-
105+ await resolve_all_secrets (
106+ client , created_item .vault_id , created_item .id , "username" , "password"
107+ )
106108 # [developer-docs.sdk.python.get-totp-item-crud]-start
107109 # Fetch a totp code from the item
108110 for f in created_item .fields :
@@ -229,6 +231,7 @@ async def share_item(client: Client, vault_id: str, item_id: str):
229231
230232
231233async def create_ssh_key_item (client : Client ):
234+ # [developer-docs.sdk.python.create-sshkey-item]-start
232235 # Generate a 2048-bit RSA private key
233236 private_key = rsa .generate_private_key (
234237 public_exponent = 65537 ,
@@ -242,7 +245,6 @@ async def create_ssh_key_item(client: Client):
242245 encryption_algorithm = serialization .NoEncryption (),
243246 )
244247
245- # [developer-docs.sdk.python.create-sshkey-item]-start
246248 # Create an Item containing SSH Key and add it to your vault.
247249 to_create = ItemCreateParams (
248250 title = "SSH Key Item Created With Python SDK" ,
@@ -347,6 +349,14 @@ async def create_attach_and_delete_file_field_item(client: Client):
347349 created_item = await client .items .create (to_create )
348350 # [developer-docs.sdk.python.create-item-with-file-field]-end
349351
352+ # [developer-docs.sdk.python.read-file-field]-start
353+ # Read the file field from an item
354+ content = await client .items .files .read (
355+ created_item .vault_id , created_item .id , created_item .files [0 ].attributes
356+ )
357+ # [developer-docs.sdk.python.read-file-field]-end
358+ print (content .decode ())
359+
350360 # [developer-docs.sdk.python.attach-file-field-item]-start
351361 # Attach a file field to the item
352362 attached_item = await client .items .files .attach (
@@ -374,5 +384,85 @@ async def create_attach_and_delete_file_field_item(client: Client):
374384 await client .items .delete (deleted_file_item .vault_id , deleted_file_item .id )
375385
376386
387+ async def resolve_all_secrets (
388+ client : Client , vault_id : str , item_id : str , field_id : str , field_id2 : str
389+ ):
390+ # [developer-docs.sdk.python.resolve-bulk-secret]-start
391+ # Retrieves multiple secret from 1Password.
392+ secrets = await client .secrets .resolve_all (
393+ [
394+ f"op://{ vault_id } //{ item_id } /{ field_id } " ,
395+ f"op://{ vault_id } /{ item_id } /{ field_id2 } " ,
396+ ]
397+ )
398+ for secret in secrets .individual_responses .values ():
399+ if secret .error is not None :
400+ print (str (secret .error ))
401+ else :
402+ print (secret .content .secret )
403+ # [developer-docs.sdk.python.resolve-bulk-secret]-end
404+
405+
406+ def generate_special_item_fields ():
407+ fields = (
408+ [
409+ # [developer-docs.sdk.python.address-field-type]-start
410+ ItemField (
411+ id = "address" ,
412+ title = "Address" ,
413+ sectionId = "" ,
414+ field_type = ItemFieldType .ADDRESS ,
415+ value = "" ,
416+ details = ItemFieldDetailsAddress (
417+ content = AddressFieldDetails (
418+ street = "1234 Main St" ,
419+ city = "San Francisco" ,
420+ state = "CA" ,
421+ zip = "94111" ,
422+ country = "USA" ,
423+ ),
424+ ),
425+ ),
426+ # [developer-docs.sdk.python.address-field-type]-end
427+ # [developer-docs.sdk.python.date-field-type]-start
428+ ItemField (
429+ id = "date" ,
430+ title = "Date" ,
431+ section_id = "" ,
432+ field_type = ItemFieldType .DATE ,
433+ value = "1998-03-15" ,
434+ ),
435+ # [developer-docs.sdk.python.date-field-type]-end
436+ # [developer-docs.sdk.python.month-year-field-type]-start
437+ ItemField (
438+ id = "month_year" ,
439+ title = "Month Year" ,
440+ section_id = "" ,
441+ field_type = ItemFieldType .MONTHYEAR ,
442+ value = "03/1998" ,
443+ ),
444+ # [developer-docs.sdk.python.month-year-field-type]-end
445+ # [developer-docs.sdk.python.reference-field-type]-start
446+ ItemField (
447+ id = "Reference" ,
448+ title = "Reference" ,
449+ sectionId = "" ,
450+ field_type = ItemFieldType .REFERENCE ,
451+ value = "f43hnkatjllm5fsfsmgaqdhv7a" ,
452+ ),
453+ # [developer-docs.sdk.python.reference-field-type]-end
454+ # [developer-docs.sdk.python.totp-field-type]-start
455+ ItemField (
456+ id = "onetimepassword" ,
457+ title = "one-time-password" ,
458+ section_id = "" ,
459+ field_type = ItemFieldType .TOTP ,
460+ value = "otpauth://totp/my-example-otp?secret=jncrjgbdjnrncbjsr&issuer=1Password" ,
461+ ),
462+ # [developer-docs.sdk.python.totp-field-type]-end
463+ ],
464+ )
465+
466+
377467if __name__ == "__main__" :
378468 asyncio .run (main ())
0 commit comments