@startuml hide empty members skinparam groupInheritance 2 skinparam linetype polyline abstract IdNameLookup { + get(id: str = None, name: str = None) : **IdNameLookup** {static} } together { class Organization { - id - key + name } abstract Cipher { - id - key + name + organization + attachments + fields + notes } } class Login { + username + password + uri + uris } class SecureNote class Card { + cardholder_name + number + brand + expiration_month + expiration_year + code } class Identity { + title + first_name + middle_name + last_name + username + company + ssn + passport_number + license_number + email + phone + address1 + address2 + address3 + city + state + postal_code + country } class SshKey { + private_key + public_key + key_fingerprint } IdNameLookup <|-- Cipher IdNameLookup <|-- Organization Cipher <|-- Card Cipher <|-- Identity Cipher <|-- Login Cipher <|-- SecureNote Cipher <|-- SshKey Organization "1" -[#blue]r- "0..n" Cipher : \t\t\t @enduml