action exavault_add_sshkey { label: "Create a new SSH Key" description: "Create a new SSH Key for a user. Provide the Public Key as formatted from the ssh-keygen command (openssh format or RFC-4716 format).\n\nIf you'd prefer to let us generate your key automatically, you can log in to your account via the web portal and set up new keys via the SSH Keys page. " provider: exavault method: POST path: "/ssh-keys" encoding: json input: { type: "object" required: ["publicKey", "userId"] properties: { publicKey: { type: "string" description: "Public Key to provide ExaVault. You can provide the Public Key as formatted from the ssh-keygen command or a standard rfc-4716 format. " } userId: { type: "integer" description: "ID of the user to assign the new key to. " } } } output: { type: "object" properties: { data: { type: "object" description: "Object representing an SSH Key associated with a user." properties: { attributes: { type: "object" properties: { created: { type: "string" format: "date-time" description: "The date-time the SSH Key was created." } fingerprint: { type: "string" description: "The Key Fingerprint. The fingerprint can be used to identify and keep track of the key without exposing the actual credential. " } lastLogin: { type: "string" format: "date-time" description: "The date-time the SSH Key was last used to access ExaVault. " } } } id: { type: "integer" format: "int32" description: "ID of the key." } relationships: { type: "object" properties: { ownerUser: { type: "object" properties: { data: { type: "object" properties: { id: { type: "integer" } type: { type: "string" } } } } } } } type: { type: "string" description: "Type of the object. " enum: ["sshKey"] } } } included: { type: "array" items: { type: "object" description: "Object contains user properties." properties: { attributes: { type: "object" description: "Attributes of the user including expiration, home directory, and permissions. " required: ["status", "created", "modified", "accountName", "username", "nickname", "homeResource", "permissions", "role", "timeZone", "onboarding"] properties: { accessTimestamp: { type: "string" description: "Timestamp of most recent successful user login." } accountName: { type: "string" description: "Name of the account this user belongs to." } created: { type: "string" format: "date-time" description: "Timestamp of user creation." } email: { type: "string" description: "Email address of the user." } expiration: { type: "string" description: "Timestamp of user expiration." } firstLogin: { type: "boolean" description: "`true` if the user has logged into the system." } homePath: { type: "string" description: "Path to the user's home folder." } locked: { type: "boolean" description: "`true` if the user is locked and cannot log in." } modified: { type: "string" format: "date-time" description: "Timestamp of user modification." } nickname: { type: "string" description: "Nickname of the user." } onboarding: { type: "boolean" description: "Whether the onboarding help system is enabled for this user. `true` means that additional help popups are displayed in the web application for this user." } permissions: { type: "object" required: ["download", "upload", "modify", "delete", "list", "changePassword", "share", "notification", "viewFormData", "deleteFormData"] properties: { changePassword: { type: "boolean" description: "Change (own) password permission flag" } delete: { type: "boolean" description: "Delete permission flag" } deleteFormData: { type: "boolean" description: "Delete form data permission flag. If true, user can remove data that was submitted for a receive folder. This applies only to data submitted in the receive folder form, not the actual files uploaded." } download: { type: "boolean" description: "Download permission flag" } list: { type: "boolean" description: "View folder contents permission flag" } modify: { type: "boolean" description: "Modify permission flag" } notification: { type: "boolean" description: "Notifications permission flag" } share: { type: "boolean" description: "Sharing permission flag" } upload: { type: "boolean" description: "Upload permission flag" } viewFormData: { type: "boolean" description: "Access Form Data permission flag. If true, user can view submissions that have been stored for a receive folder. This includes any data submitted in the receive folder form." } } } role: { type: "string" description: "User's access level" enum: ["user", "admin", "master"] } status: { type: "integer" format: "int32" description: "Indicates user activity status. `0` means the user is locked and cannot log in. `1` means the user is active and can log in." enum: [0, 1] } timeZone: { type: "string" description: "User's timezone. See this page for allowed values." } username: { type: "string" description: "Username of the user." } } } id: { type: "integer" format: "int32" description: "ID of the user." } relationships: { type: "object" description: "Home resource and owner account relationship data for the user. " required: ["ownerAccount"] properties: { homeResource: { type: "object" properties: { data: { type: "object" properties: { id: { type: "integer" format: "int64" description: "ID of home directory resource." } type: { type: "string" description: "Type is resource." enum: ["resource"] } } } } } ownerAccount: { type: "object" properties: { data: { type: "object" properties: { id: { type: "integer" format: "int32" description: "ID of the account." } type: { type: "string" description: "Type is account." enum: ["account"] } } } } } } } type: { type: "string" description: "Type of object being returned. Always \"user\"" } } } } responseStatus: { type: "integer" description: "Http status code of the response." } } } }