API Schema
The GraphQL schema for the Sudo Platform Cloud Agent admin API
#
# Data types for Connection Exchanges / Invitations
#
"""
Aries Interop Profile (AIP) Connection Exchange record data type
"""
type AIPConnectionExchange {
"The unique identifier for the connection exchange."
id: ID!
"The role of this agent in the connection exchange."
myRole: AIPConnExRole!
"The current state of the connection exchange."
state: AIPConnExState!
"The locally assigned alias for the connection."
alias: String!
"The label provided by the connection's peer."
theirLabel: String
"""
The invitation associated with the connection exchange.
If myRole=INVITER, then the invitation was created by this agent.
If myRole=INVITEE, then the invitation was received by this agent.
"""
invitation: AIPConnectionInvitation
"The datetime when the connection exchange was created, in ISO 8601 format."
createdTimestamp: String!
"The datetime when the connection exchange was last updated, in ISO 8601 format."
modifiedTimestamp: String!
}
"""
The role of an agent in an AIP connection exchange.
"""
enum AIPConnExRole {
INVITER
INVITEE
}
"""
The state of an AIP connection exchange.
"""
enum AIPConnExState {
INVITATION
REQUEST
RESPONSE
"""
Terminal state for a successful, "complete" connection exchange.
"""
DONE
"""
Terminal state for an unsuccessful connection exchange.
"""
ABANDONED
}
"""
A connection invitation either created by this agent, or received by this agent. If created by this agent,
the invitation must be shared out-of-band.
"""
type AIPConnectionInvitation {
"An ID for the connection invitation."
messageId: ID!
"""
A label provided by the inviter, to help the invitee recognize them. Note that this is not trusted data.
If the encapsulating AIPConnectionExchange object has myRole=INVITER, then label represents 'myLabel'.
If the encapsulating AIPConnectionExchange object has myRole=INVITEE, then label represents 'theirLabel'.
"""
label: String!
"The endpoint where the invitee can establish contact with the inviter."
serviceEndpoint: String!
"""
The raw invitation which contains all the details on how to contact the inviter.
This must be delivered to the invitee out-of-band.
"""
invitationUrl: String!
}
"""
Optional filters for the 'aipConnectionExchanges' query. The filters are AND'd together
"""
input AIPConnectionExchangesFilter {
"Filter connection exchanges by ID."
connExIds: [ID!]
"Filter by the alias of the connection associated with the exchange. Returns exact substring matches."
alias: String
"""
Filter by the alias of the connection associated with the exchange.
Returns all connection exchanges in order of similarity to the search value, with the best matches listed first.
"""
aliasFuzzySearch: String
"Filter by the role this agent plays in the connection exchange."
myConnExRole: AIPConnExRole
"Filter by the current state of the connection exchange."
connExStates: [AIPConnExState!]
"""
Sort the results of this query by the 'modifiedTimestamp' of the connection exchanges.
Default is 'DESCENDING' so that the latest update will appear first.
"""
sortOrder: SortOrder
}
"""
Paged result container of the 'aipConnectionExchanges' query
"""
type AIPConnectionExchangesResult {
"The result items"
items: [AIPConnectionExchange!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
"""
Input for the 'createAipConnectionInvitation' mutation.
"""
input CreateAipConnectionInvitationInput {
"The locally assigned alias for the connection."
alias: String!
"""
The label to put in the created invitation, to help the invitee recognize this agent.
If not provided, the system default will be used.
"""
myLabel: String
}
"""
Input for the 'acceptAipConnectionInvitation' mutation.
"""
input AcceptAipConnectionInvitationInput {
"The raw invitation which contains all the details on how to contact the inviter."
invitationUrl: String!
"""
The locally assigned alias for the connection.
If not provided, the label inside the invitation will be used as the connection alias.
"""
alias: String
"""
The label to pass back to the inviter, to help the inviter recognize this agent.
If not provided, the system default will be used.
"""
myLabel: String
}
#
# Data types for Connections
#
"""
Connection record data type
"""
type Connection {
"Unique identifier of the connection"
id: ID!
"The locally assigned alias for the connection"
alias: String!
"The label provided by the connection's peer"
theirLabel: String!
"The datetime when this connection was created, in ISO 8601 format"
createdTimestamp: String!
"The datetime when this connection was last updated, in ISO 8601 format"
modifiedTimestamp: String!
"Basic messages associated with the connection"
basicMessages(page: Page!): BasicMessagesResult!
}
"""
Optional filters for the 'connections' query. The filters are AND'd together
"""
input ConnectionsFilter {
"Filter connections by ID."
connectionIds: [ID!]
"Filter by the alias of the connection. Returns exact substring matches."
alias: String
"""
Filter by the alias of the connection.
Returns all connections in order of similarity to the search value, with the best matches listed first.
"""
aliasFuzzySearch: String
"""
Filter connections by their basic messages count
- If true, only include connections that have >= 1 message
- If false, only include connections that have 0 messages
- If null or not supplied (default), include all connections
"""
hasBasicMessages: Boolean = null
"""
Sort the results of this query by the 'modifiedTimestamp' of the connections.
Default is 'DESCENDING' so that the latest update will appear first.
"""
sortOrder: SortOrder
}
"""
Result type of the 'connections' query
"""
type ConnectionsResult {
"The result items"
items: [Connection!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
#
# Data types for Basic Messages
#
"""
Basic message record data type
"""
type BasicMessage {
"Unique ID of the message"
id: ID!
"ID of the connection this message is associated with"
connectionId: ID!
"The message content"
content: String!
"""
Aggregated time stamp of the message in ISO 8601 format.
The semantics of this timestamp relate to the message direction.
- For incoming messages this is the time the service receives the message
- For outgoing messages this is the time the service sends the message
"""
timestamp: String
"Direction of the message"
direction: BasicMessageDirection!
}
"""
Send direction of a basic message
"""
enum BasicMessageDirection {
INBOUND
OUTBOUND
}
"""
Include filter for the basic messages query
"""
input BasicMessagesFilter {
"Filter on a specific connection ID"
connectionId: ID!
}
"""
Paged result container of the 'basicMessages' query
"""
type BasicMessagesResult {
"The result items"
items: [BasicMessage!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
"""
Paged result container of the 'broadcastBasicMessage' mutation
"""
type BroadcastBasicMessageResult {
"The connection IDs of all peers that the message was successfully sent to"
connectionIds: [ID!]!
}
"""
Result from the delete basic message mutation
"""
type DeleteBasicMessagesResult {
"The message IDs of all items that were deleted"
messageIds: [ID!]!
}
#
# Data types for Anoncreds Schemas
#
"""
Anoncreds Schema record data type
"""
type AnoncredsSchema {
"Unique identifier of the schema, as found on the ledger"
id: ID!
"""
The name of the schema. An endorser/issuer can only publish one schema
with this unique 'name' and 'version' combination
"""
name: String!
"""
The version of the schema, using the industry-standard 'semantic versioning' format.
An endorser/issuer can only publish one schema with this unique 'name' and 'version' combination
"""
version: String!
"""
Names of the attributes defined by this schema.
Credentials issued from this schema will be assigned a value for each of these attributes
"""
attributeNames: [String!]!
}
"""
Optional filters for the 'anoncredsSchemas' query. The filters are AND'd together
"""
input AnoncredsSchemasFilter {
"Filter schemas by ID. Must be an exact match"
schemaId: ID
"Filter schemas by name. Returns exact substring matches."
schemaName: String
"Filter schemas by version. Returns exact substring matches."
schemaVersion: String
"""
Filter schemas by name and version.
Returns all schemas in order of similarity to the search value, with the best matches listed first.
"""
schemaNameAndVersionFuzzySearch: String
}
"""
Paged result container of the 'anoncredsSchemas' query
"""
type AnoncredsSchemasResult {
"The result items"
items: [AnoncredsSchema!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
"""
Input parameters for the 'createAnoncredsSchema' mutation.
"""
input CreateAnoncredsSchemaArgs {
"""
The name of the schema. An endorser/issuer can only publish one schema
with this unique 'name' and 'version' combination
"""
name: String!
"""
The version of the schema, using the industry-standard 'semantic versioning' format.
An endorser/issuer can only publish one schema with this unique 'name' and 'version' combination
"""
version: String!
"""
Names of the attributes defined by this schema.
Credentials issued from this schema will be assigned a value for each of these attributes
"""
attributeNames: [String!]!
}
#
# Data types for Anoncreds Credential Definitions (CredDefs)
#
"""
Anoncreds Credential Definition ("credDef") record data type.
A credDef associates a schema with an issuer, allowing the issuer
to create credentials from that schema.
"""
type AnoncredsCredDef {
"Unique identifier of the credDef, as found on the ledger"
id: ID!
"Unique identifier of the schema associated with this credDef"
schemaId: ID!
"""
The schema resolved by 'schemaId'.
Returns null if the schema could not be resolved on the ledger.
"""
schema: AnoncredsSchema
"""
An arbitrary string assigned to this credDef, which allows the issuer
to publish multiple credDefs using the same schema.
"""
tag: String!
"If true, then credentials created from this credDef can be revoked"
isRevocable: Boolean!
}
"""
Optional filters for the 'anoncredsCredDefs' query. The filters are AND'd together
"""
input AnoncredsCredDefsFilter {
"Filter credDefs by ID. Must be an exact match"
credDefId: ID
"Filter credDefs by schema ID. Must be an exact match"
schemaId: ID
"Filter credDefs by schema name. Returns exact substring matches."
schemaName: String
"Filter credDefs by schema version. Returns exact substring matches."
schemaVersion: String
"Filter credDefs by tag. Returns exact substring matches."
credDefTag: String
"""
Filter credDefs by tag.
Returns all credDefs in order of similarity to the search value, with the best matches listed first.
"""
credDefTagFuzzySearch: String
}
"""
Paged result container of the 'anoncredsCredDefs' query
"""
type AnoncredsCredDefsResult {
"The result items"
items: [AnoncredsCredDef!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
"""
Input parameters for the 'createAnoncredsCredDef' mutation.
"""
input CreateAnoncredsCredDefArgs {
"Unique identifier of the schema associated with the credDef"
schemaId: ID!
"""
An arbitrary string assigned to the credDef, which allows the issuer
to publish multiple credDefs using the same schema.
"""
tag: String!
"If true, then credentials created from the credDef can be revoked"
isRevocable: Boolean!
}
#
# Data types for Credentials
#
union Credential = AnoncredsCredential | W3CCredential
"""
An Anoncreds Verifiable Credential held by this agent.
"""
type AnoncredsCredential {
"Unique identifier for the held Anoncreds credential."
id: ID!
"Attributes in the credential."
attributes: [AnoncredsCredAttribute!]!
"If null, the credential is not revocable."
revocationInfo: AnoncredsRevocationInfo
"The ID of the credential definition which defines the credential."
credDefId: ID!
"""
For convenience.
Resolves the credential definition referred to by 'credDefId'.
The schema for the credential can optionally be resolved within this credential definition.
Returns null if the credential definition could not be resolved on the ledger.
"""
credDef: AnoncredsCredDef
"The datetime when this credential was received, in ISO 8601 format."
issuanceTimestamp: String!
}
"Details of an attribute in an Anoncreds credential."
type AnoncredsCredAttribute {
"The name of the credential attribute."
name: String!
"The value held by the credential attribute."
value: String!
}
"Details used to revoke a revocable Anoncreds credential."
type AnoncredsRevocationInfo {
"The ID of the revocation registry where revocation status of the credential is recorded."
revRegId: ID!
"The ID for the credential in the revocation registry."
credRevId: ID!
}
"""
A W3C Verifiable Credential held by this agent.
"""
type W3CCredential {
"Unique identifier for the held W3C credential."
id: ID!
"The W3C Verifiable Credential, encoded as a stringified JSON."
credentialJson: String!
"""
A public identifier for the credential.
If null, the credential has no public identifier.
"""
publicId: ID
"The JSON-LD documents which define the contents of the credential."
contexts: [String!]!
"The JSON-LD types found in 'contexts' which define the contents of the credential."
types: [String!]!
"The DID of the issuer of the credential."
issuerId: ID!
"The datetime from which the credential is valid, in ISO 8601 format."
issuanceTimestamp: String!
"The datetime from which the credential is invalid, in ISO 8601 format."
expirationTimestamp: String
"""
Each element in this array is a stringified JSON which contains the attributes for a single credential subject.
A W3C credential may have more than one subject.
"""
subjectJsons: [String!]!
"Additional features which the credential supports."
supportedFeatures: W3CSupportedFeatures!
}
"Specifies which features are supported by a W3C credential."
type W3CSupportedFeatures {
"""
If true, then it is possible to present to a verifier a subset of the attributes found within the credential,
without revealing all the attributes.
"""
selectiveDisclosure: Boolean!
}
"""
Optional filters for the 'credentials' query. The filters are AND'd together
"""
input CredentialsFilter {
"Filter by the format of the credential."
credentialFormats: [CredentialFormat!]
"""
Sort the results of this query by the 'issuanceTimestamp' of the credential.
Default is 'DESCENDING' so that the latest received credential will appear first.
"""
sortOrder: SortOrder
}
"""
Paged result container of the 'credentials' query
"""
type CredentialsResult {
"The result items"
items: [Credential!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
#
# Data types for Credential Exchanges
#
"""
Aries Interop Profile (AIP) Credential Exchange record data type
"""
type AIPCredentialExchange {
"The unique identifier for the credential exchange."
id: ID!
"The version of AIP used for the credential exchange."
aipVersion: AIPVersion!
"The role of this agent in the credential exchange."
myRole: AIPCredExRole!
"The current state of the credential exchange."
state: AIPCredExState!
"Messages which have been sent or received during the exchange."
messages: AIPCredExMessages!
"The datetime when the credential exchange was created, in ISO 8601 format."
createdTimestamp: String!
"The datetime when the credential exchange was last updated, in ISO 8601 format."
modifiedTimestamp: String!
"The ID of the connection with whom this agent is performing the exchange."
connectionId: ID!
"""
The connection resolved by 'connectionId'.
Returns null if the connection cannot be found, such as when the connection is deleted.
"""
connection: Connection
}
"""
The role of an agent in an AIP credential exchange.
"""
enum AIPCredExRole {
ISSUER
HOLDER
}
"""
The state of an AIP credential exchange.
"""
enum AIPCredExState {
PROPOSAL
OFFER
REQUEST
"""
If the credential exchange is waiting for a final 'ack', then it will wait in this
state, otherwise it may transition immediately into the 'DONE' state.
"""
ISSUED
"""
Terminal state for a successful, "complete" credential exchange. This means
that a verifiable credential has been exchanged.
"""
DONE
"Terminal state for an unsuccessful credential exchange."
ABANDONED
}
"Messages sent between the holder and issuer within a credential exchange."
type AIPCredExMessages {
"The latest 'proposal' message sent by the holder during the credential exchange."
proposal: AIPCredProposal
"The latest 'offer' message sent by the issuer during the credential exchange."
offer: AIPCredOffer
"The latest 'request' message sent by the holder during the credential exchange."
request: AIPCredRequest
"The latest 'issue' message sent by the issuer during the credential exchange."
issued: AIPCredIssued
}
"""
AIP Credential Proposal record data type.
This is a 'proposal' message within an AIP Credential Exchange.
"""
type AIPCredProposal {
"A comment associated with the message."
comment: String
"Further contents of the message, which depends on the format of the credential being proposed."
format: AIPCredProposalFormat!
}
union AIPCredProposalFormat = AnoncredsCredProposal | W3CCredNegotiation
"""
Anoncreds Credential Proposal record data type.
"""
type AnoncredsCredProposal {
"The credential should be based on the specific credential definition referenced by this ID."
credDefId: ID
"""
For convenience.
Returns the credential definition which 'credDefId' resolves to.
This will return null if 'credDefId' is not set.
"""
credDef: AnoncredsCredDef
"The credential should be based on any credential definition which is written by the issuer with this ID."
credDefIssuerId: ID
"The credential should be based on the specific schema referenced by this ID."
schemaId: ID
"""
For convenience.
Returns the schema which 'schemaId' resolves to.
This will return null if 'schemaId' is not set.
"""
schema: AnoncredsSchema
"The credential should be based on any schema which has this name."
schemaName: String
"The credential should be based on any schema which has this version."
schemaVersion: String
"The credential should be based on any schema which is written by the issuer with this ID."
schemaIssuerId: ID
"""
The set of attribute names and values the holder wants in the credential.
If empty array, then the holder may be proposing a credential with no attributes.
If null, then the holder is leaving the attribute values open-ended for the issuer to decide.
"""
attributeValues: [AnoncredsCredNegotiationAttribute!]
}
type AnoncredsCredNegotiationAttribute {
"The name of the attribute."
name: String!
"""
The value assigned to the attribute.
If 'mimeType' is set, then this value will be base64 encoded.
"""
value: String!
"The MIME type of 'value'."
mimeType: String
}
"""
The details of a W3C credential which has not yet been issued.
This data type can represent a W3C Credential Proposal, Offer or Request.
"""
type W3CCredNegotiation {
"The W3C Verifiable Credential, encoded as a stringified JSON."
credentialJson: String!
"""
A public identifier for the credential.
If null, the credential has no public identifier.
"""
publicId: ID
"The JSON-LD documents which define the contents of the credential."
contexts: [String!]!
"The JSON-LD types found in 'contexts' which define the contents of the credential."
types: [String!]!
"The DID of the issuer who will issue the credential."
issuerId: ID!
"The datetime from which the credential is to be valid, in ISO 8601 format."
issuanceTimestamp: String!
"The datetime from which the credential is to be invalid, in ISO 8601 format."
expirationTimestamp: String
"""
Each element in this array is a stringified JSON which contains the attributes for a single credential subject.
A W3C credential may have more than one subject.
"""
subjectJsons: [String!]!
"Additional features which the credential will support."
supportedFeatures: W3CSupportedFeatures!
}
"""
AIP Credential Offer record data type.
This is an 'offer' message within an AIP Credential Exchange.
"""
type AIPCredOffer {
"A comment associated with the message."
comment: String
"If not null, the replacement ID used to replace an existing credential."
replacementId: ID
"Further contents of the message, which depends on the format of the credential being offered."
format: AIPCredOfferFormat!
}
union AIPCredOfferFormat = AnoncredsCredOffer | W3CCredNegotiation
"""
Anoncreds Credential Offer record data type.
"""
type AnoncredsCredOffer {
"The credential will be based on the credential definition with this ID."
credDefId: ID!
"""
For convenience.
Returns the credential definition which 'credDefId' resolves to.
Returns null if the credential definition could not be resolved on the ledger.
"""
credDef: AnoncredsCredDef
"The credential will be based on the schema with this ID."
schemaId: ID!
"""
For convenience.
Returns the schema which 'schemaId' resolves to.
Returns null if the schema could not be resolved on the ledger.
"""
schema: AnoncredsSchema
"The credential will contain these attributes and values."
attributeValues: [AnoncredsCredNegotiationAttribute!]!
}
"""
AIP Credential Request record data type.
This is a 'request' message within an AIP Credential Exchange.
"""
type AIPCredRequest {
"A comment associated with the message."
comment: String
"Further contents of the message, which depends on the format of the credential being requested."
format: AIPCredRequestFormat!
}
union AIPCredRequestFormat = AnoncredsCredRequest | W3CCredNegotiation
"""
Anoncreds Credential Request record data type.
"""
type AnoncredsCredRequest {
"""
Ignore this property - it will always return null.
This type is intended to be an empty placeholder object.
This type can potentially be used to determine the format of the credential being requested.
"""
_: Boolean
}
"""
AIP Credential Issued record data type.
This is an 'issue' message within an AIP Credential Exchange.
"""
type AIPCredIssued {
"A comment associated with this message."
comment: String
"If not null, the replacement ID used to replace an existing credential."
replacementId: ID
"Further contents of the message, which depends on the format of the credential which is issued."
format: AIPCredIssuedFormat!
}
union AIPCredIssuedFormat =
AnoncredsCredentialIssuanceRecord
| W3CCredentialIssuanceRecord
"""
Records the details of an issued Anoncreds verifiable credential.
This credential may have been either issued by this agent or issued to this agent.
"""
type AnoncredsCredentialIssuanceRecord {
"""
If 'myRole' is 'HOLDER', then this is the internal ID of the held credential.
If 'myRole' is 'ISSUER', then this will be null because the credential is not held by this agent.
"""
credentialId: ID
"Attributes in the credential."
attributes: [AnoncredsCredAttribute!]!
"If null, the issued credential is not revocable."
revocationInfo: AnoncredsRevocationInfo
"The ID of the credential definition which defines the credential."
credDefId: ID!
"""
For convenience.
Resolves the credential definition referred to by 'credDefId'.
The schema for the credential can optionally be resolved within this credential definition.
Returns null if the credential definition could not be resolved on the ledger.
"""
credDef: AnoncredsCredDef
"The datetime when the credential was issued, in ISO 8601 format."
issuanceTimestamp: String!
}
"""
Records the details of an issued W3C Verifiable Credential.
This credential may have been either issued by this agent or issued to this agent.
"""
type W3CCredentialIssuanceRecord {
"""
If 'myRole' is 'HOLDER', then this is the internal ID of the held credential.
If 'myRole' is 'ISSUER', then this will be null because the credential is not held by this agent.
"""
credentialId: ID
"The W3C Verifiable Credential, encoded as a stringified JSON."
credentialJson: String!
"""
A public identifier for the credential.
If null, the credential has no public identifier.
"""
publicId: ID
"The JSON-LD documents which define the contents of the credential."
contexts: [String!]!
"The JSON-LD types found in 'contexts' which define the contents of the credential."
types: [String!]!
"The DID of the issuer of the credential."
issuerId: ID!
"The datetime from which the credential is valid, in ISO 8601 format."
issuanceTimestamp: String!
"The datetime from which the credential is invalid, in ISO 8601 format."
expirationTimestamp: String
"""
Each element in this array is a stringified JSON which contains the attributes for a single credential subject.
A W3C credential may have more than one subject.
"""
subjectJsons: [String!]!
"Additional features which the credential supports."
supportedFeatures: W3CSupportedFeatures!
}
"""
Optional filters for the 'aipCredentialExchanges' query. The filters are AND'd together
"""
input AIPCredentialExchangesFilter {
"Filter by the AIP version of the credential exchange protocol."
aipVersions: [AIPVersion!]
"Filter by the role this agent plays in the credential exchange."
myCredExRole: AIPCredExRole
"Filter by the current state of the credential exchange."
credExStates: [AIPCredExState!]
"Filter by the ID of the connection associated with the credential exchange. Must be an exact match."
connectionIds: [ID!]
"Filter by the format of the credential being exchanged."
credentialFormats: [CredentialFormat!]
"""
Filter by the ID of the credential which the credential exchange resulted in. Must be an exact match.
Only credential exchanges where myRole=HOLDER and state=DONE will be associated with a stored credential ID.
"""
storedCredentialIds: [ID!]
"""
Sort the results of this query by the 'modifiedTimestamp' of the credential exchanges.
Default is 'DESCENDING' so that the latest update will appear first.
"""
sortOrder: SortOrder
}
"""
Paged result container of the 'aipCredentialExchanges' query
"""
type AIPCredentialExchangesResult {
"The result items"
items: [AIPCredentialExchange!]!
"The next page token, or null if no more pages exist"
nextToken: String
}
"""
Input parameters for the 'sendAipCredentialOffer' mutation.
"""
input AIPCredOfferInput {
"A comment associated with the offer."
comment: String
"Parameters specific to the format of the credential being offered."
format: AIPCredOfferFormatInput!
"""
If true, then the 'acceptAipCredentialRequest' mutation will be executed automatically
if the receiver of the credential offer accepts the offer.
If null, defaults to false.
"""
autoAcceptRequest: Boolean
}
"""
A value must be provided for either the 'anoncreds' param or the 'w3c' param, but not both.
"""
input AIPCredOfferFormatInput {
"Parameters available when offering an Anoncreds Verifiable Credential."
anoncreds: AnoncredsCredOfferInput
"Parameters available when offering a W3C Verifiable Credential."
w3c: W3CCredOfferInput
}
"""
Parameters for sending an offer of an Anoncreds Verifiable Credential.
"""
input AnoncredsCredOfferInput {
"The ID of the AnoncredsCredDef to use as a base for the issued credential."
credDefId: ID!
"The attributes to place in the issued credential."
attributeValues: [AnoncredsCredNegotiationAttributeInput!]!
}
input AnoncredsCredNegotiationAttributeInput {
"Name of the attribute."
name: String!
"Value of the attribute."
value: String!
"Optional MIME type of the attribute."
mimeType: String
}
"""
Parameters for sending an offer of a W3C Verifiable Credential.
"""
input W3CCredOfferInput {
"The W3C Verifiable Credential, encoded as a stringified JSON."
credentialJson: String!
"""
Set to true if the issued credential should support selective disclosure presentation features.
This affects the cryptographic signature used to sign the issued credential.
If null, defaults to false.
"""
supportSelectiveDisclosure: Boolean
}
"""
Input parameters for the 'acceptAipCredentialOffer' mutation.
"""
input AcceptAipCredOfferInput {
"Parameters specific to the format of the credential in the offer."
format: AcceptAipCredOfferFormatInput
}
"""
If an Anoncreds Verifiable Credential is offered, then omit the 'w3c' param.
"""
input AcceptAipCredOfferFormatInput {
"Parameters available when accepting an offer for a W3C Verifiable Credential."
w3c: AcceptW3CCredOfferInput
}
"""
Parameters for accepting an offer for a W3C Verifiable Credential.
"""
input AcceptW3CCredOfferInput {
"""
Optionally inject a subject DID in the offered credential. Doing so will associate the credential with the subject.
Usually, the subject DID is expected to reference this agent (when acting as the HOLDER).
"""
subjectId: String
}
"""
Input parameters for the 'acceptAipCredentialRequest' mutation.
"""
input AcceptAipCredRequestInput {
"A comment associated with the request."
comment: String
}
#
# Data types for Proof Exchanges
#
"""
Aries Interop Profile (AIP) Proof Exchange record data type
"""
type AIPProofExchange {
"The unique identifier for the proof exchange."
id: ID!
"The version of AIP used for the proof exchange."
aipVersion: AIPVersion!
"The role of this agent in the proof exchange."
myRole: AIPProofExRole!
"The current state of the proof exchange."
state: AIPProofExState!
"Messages which have been sent or received during the exchange."
messages: AIPProofExMessages!
"The datetime when the proof exchange was created, in ISO 8601 format."
createdTimestamp: String!
"The datetime when the proof exchange was last updated, in ISO 8601 format."
modifiedTimestamp: String!
"The ID of the connection with whom this agent is performing the exchange."
connectionId: ID!
"""
The connection resolved by 'connectionId'.
Returns null if the connection cannot be found, such as when the connection is deleted.
"""
connection: Connection
}
"""
The role of an agent in an AIP proof exchange.
"""
enum AIPProofExRole {
VERIFIER
PROVER
}
"""
The state of an AIP proof exchange.
"""
enum AIPProofExState {
PROPOSAL
REQUEST
"""
If the exchange is waiting for a final 'ack', then it will wait in this
state, otherwise it may transition immediately into the 'DONE' state.
"""
PRESENTED
"""
Terminal state for a successful, "complete" proof exchange. This means that
a verifiable proof presentation has been exchanged.
If the exchange is in this state and 'myRole' is 'VERIFIER',
then the received proof presentation has undergone verification.
Note that this state does not indicate the result of the verification.
To check the verification result, see 'verificationResult' on the attached
AIPProofPresentation.
"""
DONE
"""
Terminal state for an unsuccessful proof exchange.
"""
ABANDONED
}
"Messages sent between the prover and verifier within a proof exchange."
type AIPProofExMessages {
"The latest 'proposal' message sent by the prover during the proof exchange."