{"openapi":"3.0.3","info":{"description":"Experimental : HCL Domino REST API CardDAV APIs","title":"HCL Domino REST API CardDAV extension APIs","version":"1.0.0","x-experimental":true},"servers":[{"description":"Actual Server","url":"https://frascati.projectkeep.io/api/carddav/v1"},{"description":"CardDAV API server","url":"/api/carddav/v1"}],"paths":{"/addressbooks/personal/{unid}.vcf":{"delete":{"deprecated":false,"description":"Delete the specified vCard from the authenticated user's personal address book","operationId":"deletePersonalVCard","responses":{"204":{"description":"vCard deleted"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"412":{"description":"Precondition Failed — If-Match condition was not met (RFC 7232)"},"500":{"$ref":"#/components/responses/500InternalServerError"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Delete a vCard from the personal address book","tags":["carddav"],"x-keep-version":1},"description":"One specific person in the specified address book.","get":{"deprecated":false,"description":"Retrieve VCard information from a shared or user address book","operationId":"getPersonalVCard","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}},"application/xml":{"examples":{"dxlSimple":{"value":"<?xml version='1.0' encoding='UTF-8'?>\r\n<vcards xmlns='urn:ietf:params:xml:ns:vcard-4.0'>\r\n   <vcard>\r\n      <description>VCard XML for person with UNID 6CE712DE9C7EC92D85258AB400797BE7</description>\r\n      <fn>\r\n         <text>[CN=John Ya Ya/O=hcllabs, John Ya Ya]</text>\r\n      </fn>\r\n   </vcard>\r\n</vcards>"}},"schema":{"type":"string"}},"text/vcard":{"schema":{"type":"string"}}},"description":"Successful query","headers":{"ETag":{"description":"ETag of the returned vCard resource","schema":{"type":"string"}}}},"304":{"description":"Not Modified — client's cached copy is still current (RFC 7232)"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Retrieve a person's VCard from a specified address book","tags":["carddav"],"x-keep-version":1},"parameters":[{"description":"Optional, when omitted the default mailbox of the authenticated user is addressed. Only used in delegation access when owner and user are different.\nCould be: replicaid, filepath or owner shortname or email","in":"query","name":"mailboxid","schema":{"type":"string"}},{"description":"Unique ID of the person in the address book","in":"path","name":"unid","required":true,"schema":{"type":"string"}}],"put":{"deprecated":false,"description":"Create a new vCard (201) or update an existing one (204) in the authenticated user's personal address book","operationId":"putPersonalVCard","requestBody":{"content":{"text/vcard":{"schema":{"type":"string"}}},"required":true},"responses":{"201":{"description":"vCard created","headers":{"ETag":{"description":"ETag of the created resource","schema":{"type":"string"}},"Location":{"description":"URI of the newly created vCard","schema":{"type":"string"}}}},"204":{"description":"vCard updated","headers":{"ETag":{"description":"ETag of the updated resource","schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"412":{"description":"Precondition Failed — If-Match or If-None-Match condition was not met (RFC 7232)"},"500":{"$ref":"#/components/responses/500InternalServerError"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Create or update a vCard in the personal address book","tags":["carddav"],"x-keep-version":1},"summary":"One specific person in the specified address book."},"/addressbooks/public/{unid}.vcf":{"delete":{"deprecated":false,"description":"Delete the specified vCard from the public address book","operationId":"deletePublicVCard","responses":{"204":{"description":"vCard deleted"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"412":{"description":"Precondition Failed — If-Match condition was not met (RFC 7232)"},"500":{"$ref":"#/components/responses/500InternalServerError"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Delete a vCard from the public address book","tags":["carddav"],"x-keep-version":1},"description":"One specific person in the public address book.","get":{"deprecated":false,"description":"Retrieve VCard information from a public address book","operationId":"getPublicVCard","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}},"application/xml":{"examples":{"dxlSimple":{"value":"<?xml version='1.0' encoding='UTF-8'?>\r\n<vcards xmlns='urn:ietf:params:xml:ns:vcard-4.0'>\r\n   <vcard>\r\n      <description>VCard XML for person with UNID 6CE712DE9C7EC92D85258AB400797BE7</description>\r\n      <fn>\r\n         <text>[CN=John Ya Ya/O=hcllabs, John Ya Ya]</text>\r\n      </fn>\r\n   </vcard>\r\n</vcards>"}},"schema":{"type":"string"}},"text/vcard":{"schema":{"type":"string"}}},"description":"Successful query","headers":{"ETag":{"description":"ETag of the returned vCard resource","schema":{"type":"string"}}}},"304":{"description":"Not Modified — client's cached copy is still current (RFC 7232)"},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"500":{"$ref":"#/components/responses/500InternalServerError"},"501":{"$ref":"#/components/responses/501NotImplemented"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Retrieve a person's VCard from a public address book","tags":["carddav"],"x-keep-version":1},"parameters":[{"description":"Unique ID of the person document","in":"path","name":"unid","required":true,"schema":{"type":"string"}}],"put":{"deprecated":false,"description":"Create a new vCard (201) or update an existing one (204) in the public address book","operationId":"putPublicVCard","requestBody":{"content":{"text/vcard":{"schema":{"type":"string"}}},"required":true},"responses":{"201":{"description":"vCard created","headers":{"ETag":{"description":"ETag of the created resource","schema":{"type":"string"}},"Location":{"description":"URI of the newly created vCard","schema":{"type":"string"}}}},"204":{"description":"vCard updated","headers":{"ETag":{"description":"ETag of the updated resource","schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"412":{"description":"Precondition Failed — If-Match or If-None-Match condition was not met (RFC 7232)"},"500":{"$ref":"#/components/responses/500InternalServerError"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Create or update a vCard in the public address book","tags":["carddav"],"x-keep-version":1},"summary":"One specific person in the public address book."},"/whoami":{"get":{"deprecated":false,"description":"Returns the abbreviated distinguished name of the currently authenticated user","operationId":"getWhoami","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"message":{"description":"Abbreviated distinguished name of the authenticated user","type":"string"}},"type":"object"}}},"description":"Authenticated user identity"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"500":{"$ref":"#/components/responses/500InternalServerError"}},"security":[{"basic":[]},{"jwt":[]}],"summary":"Return the identity of the authenticated user","tags":["carddav"],"x-keep-version":1}}},"components":{"responses":{"400BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Invalid request. Shows up when submission is flaky:\n- Wrong authentication\n- Wrong content-type\n- Missing or wrong parameter types"},"401Unauthorized":{"content":{"application/json":{"examples":{"Unauthorized":{"value":{"message":"Invalid credentials or account locked","status":401}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"401 Unauthorized"},"403Forbidden":{"content":{"application/json":{"examples":{"Forbidden":{"value":{"message":"Nice try chap, ask before next time","status":403}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Forbidden"},"404NotFound":{"content":{"application/json":{"examples":{"NotFound":{"value":{"message":"This is not the data you seek!","status":404}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Content not found"},"405MethodNotAllowed":{"description":"Method not allowed"},"406NotAcceptable":{"content":{"application/json":{"examples":{"GenericRejection":{"value":{"details":"The haferlup needs left turning shrufti","message":"This is not a supported operation. Try again","status":406}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Invalid operation - something got requested that isn't supported"},"500InternalServerError":{"content":{"application/json":{"examples":{"GenericError":{"value":{"details":"Dreaded pirate NullPointer","message":"Sorry pal, we screwed up","status":500}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"The server screwed up"},"501NotImplemented":{"content":{"application/json":{"examples":{"NextVersion":{"value":{"details":"We do sprints, not marathons","message":"Not now, maybe tomorrow","status":501}}},"schema":{"$ref":"#/components/schemas/ErrorMessage"}}},"description":"Working on it, just not yet"}},"schemas":{"ErrorMessage":{"description":"Detailed error message, might contain stacktrace","example":{"details":"Long list of details","message":"We screwed up","status":500},"properties":{"details":{"type":"string"},"message":{"type":"string"},"status":{"format":"int32","type":"integer"}},"title":"Root Type for ErrorMessage","type":"object"},"accessUserResponse":{"description":"This is the response definition for GET access user","example":{"$Revisions":["2022-10-26T12:45:24.85+08:00","2022-10-26T23:04:27.82+08:00"],"$UpdatedBy":["CN=John Doe/O=PNP"],"@meta":{"addedtofile":"2022-10-26T12:45:24.85+08:00","created":"2022-10-26T12:45:24.83+08:00","lastaccessed":"2022-10-26T23:04:46.7+08:00","lastmodified":"2022-10-26T23:04:46.7+08:00","lastmodifiedinfile":"2022-10-26T23:04:46.71+08:00","noteclass":["DATA","DOCUMENT"],"noteid":7642,"revision":"000000030052D5BE482588E7","unid":"77EC5BE972137D30482588E7001A2163","unread":false},"CellPhoneNumber":"123123123-11","CompanyName":"HCL-update-11-12","FirstName":"Agents0-11-12","Form":"Person","FullName":"CN=Agents0 Admin0/O=Agents","LastName":"Admin0-11","MailAddress":"test@update.com-11","MailDomain":"HCLPNP","MailServer":"CN=Manticore/O=Agents","OfficePhoneNumber":"update123456789-11","PhoneNumber":"987654321-11","Type":"Person"},"properties":{"$Revisions":{"description":"This field records the current revision version of document. It's a 32-character hex-encoded string of date. ","example":"[\r\n        \"2022-10-26T12:45:24.85+08:00\",\r\n        \"2022-10-26T23:04:27.82+08:00\"\r\n    ]","items":{"type":"string"},"type":"array"},"$UpdatedBy":{"description":"The user who update the doc.","example":"[\r\n    \"CN=John Doe/O=ProjectKeep\"\r\n]","items":{"type":"string"},"type":"array"},"@meta":{"description":"Document meta data.","properties":{"addedtofile":{"type":"string"},"created":{"type":"string"},"lastaccessed":{"type":"string"},"lastmodified":{"type":"string"},"lastmodifiedinfile":{"type":"string"},"noteclass":{"items":{"type":"string"},"type":"array"},"noteid":{"format":"int32","type":"integer"},"revision":{"type":"string"},"unid":{"type":"string"},"unread":{"type":"boolean"}},"type":"object"},"CompanyName":{"type":"string"},"FirstName":{"type":"string"},"Form":{"description":"The form for a user","example":"Person","type":"string"},"FullName":{"type":"string"},"LastName":{"type":"string"},"MailAddress":{"type":"string"},"MailDomain":{"type":"string"},"MailServer":{"type":"string"},"MiddleInitial":{"type":"string"},"OfficePhoneNumber":{"type":"string"},"PhoneNumber":{"type":"string"},"Type":{"description":"The type for a user document","example":"Person","type":"string"}},"title":"Root Type for accessUserGetResponse","type":"object"}},"securitySchemes":{"basic":{"description":"Basic authentication","scheme":"basic","type":"http"},"jwt":{"description":"Token based auth","scheme":"bearer","type":"http"}}},"security":[{"basic":[]},{"jwt":[]},{}],"tags":[{"description":"CardDAV APIs","name":"carddav"}]}