All Downloads are FREE. Search and download functionalities are using the official Maven repository.

canon.fundamental.json Maven / Gradle / Ivy

{
	"canon": "0.0.1",
	"info": {
		"title": "Symphony 2.0 Object Model Fundamental Types",
		"license": {
			"name": "Apache 2.0",
			"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
		}
	},
	"id": "com.symphony.s2.model.fundamental",
	"version": "1.0",
	"basePath": "/object/fundamental/v1",
	"model": {
		"javaGenPackage": "com.symphony.oss.models.fundmental.canon",
		"javaFacadePackage": "com.symphony.oss.models.fundamental.canon.facade"
	},
	"methods": {
    "/sequences/{sequenceHash}": {
      "parameters": {
        "sequenceHash": {
          "in": "path",
          "description": "ID of the Sequence to read",
          "required": true,
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        },
        "limit": {
          "in": "query",
          "description": "How many items to return at one time (max 100)",
          "required": false,
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "get": {
        "summary": "List the contents of a Sequence",
        "operationId": "readSequence",
        "response": {
          "required": false,
          "multiple": true,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      }
    },
    "/sequences/{sequenceHash}/page": {
      "parameters": {
        "sequenceHash": {
          "in": "path",
          "description": "ID of the Sequence to read",
          "required": true,
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        },
        "limit": {
          "in": "query",
          "description": "How many items to return at one time (max 100)",
          "required": false,
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        },
        "after": {
          "in": "query",
          "description": "after cursor from a previous query",
          "required": false,
          "schema": {
            "type": "string"
          }
        },
        "scanForwards": {
          "in": "query",
          "description": "if true then scan in chronological order, else reverse",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        }
      },
      "get": {
        "summary": "List the contents of a Sequence",
        "operationId": "readSequence",
        "response": {
          "required": false,
          "schema": {
            "$ref": "#/components/schemas/PageOfFundamentalObject"
          }
        }
      }
    },
    "/objects/transaction": {
      "parameters": {
        "traceContextHash": {
          "in": "query",
          "required": false,
          "description": "The id of the trace context of which this operation is a part",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
      "post": {
        "summary": "Transactionally create a collection of objects",
        "operationId": "createTransaction",
        "tags": [
          "objects"
        ],
        "payload": {
          "required": true,
          "multiple": true,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      }
    },
    "/objects/{objectHash}": {
      "parameters": {
        "objectHash": {
          "in": "path",
          "required": true,
          "description": "The id of the object to retrieve",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        },
        "traceContextHash": {
          "in": "query",
          "required": false,
          "description": "The id of the trace context of which this operation is a part",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
      "get": {
        "summary": "Read an object",
        "operationId": "getObject",
        "tags": [
          "objects"
        ],
        "parameters": {
          "currentVersion": {
            "in": "query",
            "required": false,
            "description": "If true then the hash is a baseHash and we return the current version, otherwise the hash is an absoluteHash and we return that absolute version.",
            "schema": {
              "type": "boolean"
            }
          }
        },
        "response": {
          "required": false,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      },
      "put": {
        "summary": "Create an object",
        "operationId": "createObjects",
        "tags": [
          "objects"
        ],
        "payload": {
          "required": true,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      }
    },
    
    
    
    
    
    "/objects/batch": {
      "parameters": {
        "traceContextHash": {
          "in": "query",
          "required": false,
          "description": "The id of the trace context of which this operation is a part",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
      
      "post": {
        "summary": "Read a batch of objects",
        "operationId": "getObjects",
        "tags": [
          "objects"
        ],
        "payload": {
          "required": true,
          "multiple": false,
          "schema": {
            "$ref": "#/components/schemas/ObjectBatchRequest"
          }
        },
        "response": {
          "required": false,
          "multiple": true,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      }
    },
      
      
      
      
      
    "/objects/{objectHash}/versions": {
      "parameters": {
        "objectHash": {
          "in": "path",
          "required": true,
          "description": "The id of the object to retrieve",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        },
        "limit": {
          "in": "query",
          "description": "How many items to return at one time (max 100)",
          "required": false,
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        },
        "after": {
          "in": "query",
          "description": "after cursor from a previous query",
          "required": false,
          "schema": {
            "type": "string"
          }
        },
        "scanForwards": {
          "in": "query",
          "description": "if true then scan in chronological order, else reverse",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        }
      },
      "get": {
        "summary": "List the versions of an object",
        "operationId": "readVersions",
        "response": {
          "required": true,
          "schema": {
            "$ref": "#/components/schemas/PageOfFundamentalObject"
          }
        }
      }
    },
    "/objects/id/{idObjectHash}": {
      "parameters": {
        "idObjectHash": {
          "in": "path",
          "required": true,
          "description": "The hash of the ID object which points to the object to retrieve",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        },
        "traceContextHash": {
          "in": "query",
          "required": false,
          "description": "The id of the trace context of which this operation is a part",
          "schema": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
      "get": {
        "summary": "Read the current version of an object indirectly via an ID object.",
        "operationId": "getObjectById",
        "tags": [
          "objects"
        ],
        "response": {
          "required": false,
          "schema": {
            "$ref": "#/components/schemas/FundamentalObject"
          }
        }
      }
    },
    "/podSigningInfo": {
      "get": {
        "summary": "DEPRECATED: user podfundamental instead. Read the pod Security Context, signing key and podId",
        "operationId": "getPodSigningInfo",
        "tags": [
          "pod"
        ],
        "response": {
          "required": false,
          "schema": {
            "$ref": "#/components/schemas/PodSigningInfo"
          }
        }
      }
    },
    "/sessionInfo": {
      "get": {
        "summary": "Return info about the authenticated session.",
        "operationId": "getSessionInfo",
        "tags": [
          "session"
        ],
        "response": {
          "required": true,
          "schema": {
            "$ref": "#/components/schemas/SessionInfo"
          }
        }
      }
    }
  },
	"components": {
		"schemas": {
			"DisplayName": {
				"description": "The default display name for an entity",
				"type": "string"
			},
			
      "#Transaction": {
        "description": "An ID object and additional objects to be created in a single transaction.",
        "type": "object",
        "required": [
          "idObject"
        ],
        "properties": {
          "idObject": {
            "$ref": "#/components/schemas/FundamentalObject"
          },
          "additionalObjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FundamentalObject"
            }
          }
        }
      },
      
      "ObjectBatchRequest": {
        "description": "A request for a batch of objects.",
        "type": "object",
        "required": [
          "hashes"
        ],
        "properties": {
          "currentVersion": {
              "type": "boolean"
          },
          "hashes": {
            "type": "array",
            "x-canon-cardinality": "SET",
            "items": {
              "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
            }
          }
        }
      },
      "UserIdObject": {
        "description": "The ID object for an SBE user. Points to a Principal.",
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "extends": "#/components/schemas/PodFundamentalId",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/UserId"
          }
        }
      },
			"ContentIdType": {
        "type": "string",
        "description": "The type of a content id object.",
        "enum": [
          "ABSOLUTE_SEQUENCE",
          "CURRENT_SEQUENCE",
          "ATTRIBUTE"
        ]
      },
      "ContentIdObject": {
        "description": "The ID object for the content sequence for some object. subjectHash is the hash of the subject, subjectType is the (fully qualified) TYPE_ID for the subject type, contentType is optionally the TYPE_ID of the contents of the sequence.",
        "type": "object",
        "extends": "#/components/schemas/FundamentalId",
        "required": [
          "subjectHash",
          "subjectType",
          "contentType",
          "idType"
        ],
        "properties": {
          "subjectHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "subjectType": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "idType": {
            "$ref": "#/components/schemas/ContentIdType"
          }
        }
      },
      "PodContentIdObject": {
        "description": "The ID object for the view of some object from another pod.",
        "type": "object",
        "extends": "#/components/schemas/ContentIdObject",
        "required": [
          "podId"
        ],
        "properties": {
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          }
        }
      },
      "MemberIdObject": {
        "description": "The ID object for the content sequence for some object. subjectHash is the hash of the subject, subjectType is the (fully qualified) TYPE_ID for the subject type, contentType is optionally the TYPE_ID of the contents of the sequence.",
        "type": "object",
        "extends": "#/components/schemas/ContentIdObject",
        "required": [
          "contentHash"
        ],
        "properties": {
          "contentHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
			
      "FundamentalObject": {
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "properties": {
          "hashType": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/HashType"
          },
          "signature": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/EncodedSignature"
          },
          "payload": {
            "$ref": "#/components/schemas/FundamentalPayload"
          }
        }
      },
      "ObjectBatch": {
        "description": "An ordered list of objects to be written in order.",
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "properties": {
          "objects": {
            "type": "array",
            "x-canon-cardinality": "LIST",
            "items": {
              "$ref": "#/components/schemas/FundamentalObject"
            }
          }
        }
      },
      "ObjectTransaction": {
        "description": "An ordered list of objects to be written transactionally (all or nothing), in order.",
        "type": "object",
        "extends": "#/components/schemas/ObjectBatch",
        "properties": {
        }
      },
      "FundamentalPayload": {
        "description": "The payload for any FundamentalObject",
        "type": "object",
        "facade": true,
        "builderFacade": false,
        "properties": {
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          },
          "createdDate": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "purgeDate": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "payloadType": {
            "type": "string"
          }
        }
      },
      "IdPayloadContainer": {
        "description": "The payload for an ID FundamentalObject",
        "type": "object",
        "extends": "#/components/schemas/FundamentalPayload",
        "facade": true,
        "builderFacade": false,
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/FundamentalId"
          }
        }
      },
      "FundamentalId": {
        "description": "An ID object, applications define IDs as a sub-type of this. The absolute hash of an ID Fundamental Object is calculated from this object only.",
        "type": "object",
        "facade": true,
        "required": [
          "hashType"
        ],
        "properties": {
          "hashType": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/HashType"
          },
          "sortKey": {
            "type": "string"
          }
        }
      },
      "PodFundamentalId": {
        "description": "An ID object, applications define IDs as a sub-type of this. The absolute hash of an ID Fundamental Object is calculated from this object only.",
        "type": "object",
        "extends": "#/components/schemas/FundamentalId",
        "facade": false,
        "required": [
          "podId"
        ],
        "properties": {
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          }
        }
      },
      "DistinguishedValueType": {
        "type": "string",
        "description": "The type of a distinguished value.",
        "enum": [
          "USER_CONTENT_SEQUENCE",
          "USER_MENTION_SEQUENCE"
        ]
      },
      "DistinguishedValue": {
        "description": "Special values which can be used where a hash is required to have special meaning.",
        "type": "object",
        "extends": "#/components/schemas/FundamentalId",
        "facade": true,
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/DistinguishedValueType"
          }
        }
      },
      "SequenceHashes": {
        "type": "object",
        "properties": {
          "absolute": {
            "type": "array",
            "items": {
              "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
            }
          },
          "current": {
            "type": "array",
            "items": {
              "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
            }
          },
          "hashCurrent": {
            "type": "array",
            "items": {
              "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
            }
          }
        }
      },
      "ObjectPayload": {
        "description": "The payload for an Object (normal) FundamentalObject",
        "type": "object",
        "extends": "#/components/schemas/FundamentalPayload",
        "facade": true,
        "builderFacade": true,
        "properties": {
          "signingKeyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "sequences": {
            "$ref": "#/components/schemas/SequenceHashes"
          }
        }
      },
      "VersionedObject": {
				"facade": true,
				"builderFacade": true,
				"type": "object",
				"extends": "#/components/schemas/ObjectPayload",
				"properties": {
					"prevHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					},
					"baseHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					}
				}
			},
			"ApplicationObject": {
				"type": "object",
        "extends": "https://models.oss.symphony.com/core.json#/components/schemas/ApplicationPayload",
				"facade": true,
				"description": "The encrypted payload of a Blob",
        "properties": {
          
				}
			},
      "SignedPayload": {
        "description": "The payload for a SignedObject",
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "properties": {
          "signingKeyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "createdDate": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "payload": {
            "$ref": "#/components/schemas/ApplicationObject"
          }
        }
      },
      "SignedApplicationObject": {
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "extends": "#/components/schemas/ApplicationObject",
        "description": "An unencrypted but signed payload. Sometimes we need to have a client sign a request which the sever may need to read, this might then be encrypted by an operating principal and become the payload of an encrypted blob.",
        "properties": {
          "signature": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/EncodedSignature"
          },
          "payload": {
            "$ref": "#/components/schemas/SignedPayload"
          }
        }
      },
      "Blob": {
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "extends": "#/components/schemas/VersionedObject",
        "description": "An encrypted payload",
        "required": [
          "securityContextHash",
          "encryptedPayload"
        ],
        "properties": {
          "securityContextHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "encryptedPayload": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/EncryptedData"
          }
        }
      },
      "Clob": {
        "type": "object",
        "facade": true,
        "builderFacade": true,
        "extends": "#/components/schemas/VersionedObject",
        "description": "An unencrypted JSON payload",
        "properties": {
        }
      },
      "DeletionType": {
        "type": "string",
        "enum": [
          "LOGICAL",
          "INDEX"
        ]
      },
      "DeletedObject": {
        "type": "object",
        "extends": "#/components/schemas/VersionedObject",
        "description": "A tombstone marker for an object which was deleted.",
        "properties": {
          "deletionType": {
              "$ref": "#/components/schemas/DeletionType"
          }
        }
      },
			"Notification": {
				"type": "object",
				"facade": true,
				"builderFacade": false,
				"extends": "#/components/schemas/ObjectPayload",
				"description": "This is not a persisted object it exists only on a pub sub topic.",
				"required": [
					"payloadHash"
				],
				"properties": {
					"distributionList": {
						"type": "array",
						"x-canon-cardinality": "SET",
						"items": {
							"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
						}
					},
          "expirationDate": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "broadcast": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/BroadcastType"
          },
          "conflationId": {
              "type": "string"
          },
					"contextHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					},
					"traceContextHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "notificationDate": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "payloadBaseHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "payloadPrevHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "payloadHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "payloadId": {
            "$ref": "#/components/schemas/FundamentalId"
          },
					"payload": {
						"$ref": "#/components/schemas/FundamentalObject"
					},
          "legacyIdHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "referencedLegacyIdHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "sequence": {
            "type": "integer",
            "format": "int32"
          },
          "final": {
              "type": "boolean"
          },
          "subscriptionHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "initialVersion": {
              "type": "boolean"
          }
				}
			},
			"PageOfFundamentalObject":  {
        "type": "object",
        "facade": false,
        "builderFacade": false,
        "required": [
          "pagination",
          "data"
        ],
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          },
          "data": {
            "type": "array",
            "x-canon-cardinality": "LIST",
            "items": {
              "$ref": "#/components/schemas/FundamentalObject"
            }
          }
        }
      },
      "Pagination":  {
        "type": "object",
        "facade": false,
        "builderFacade": false,
        "properties": {
          "cursors": {
            "$ref": "#/components/schemas/Cursors"
          },
          "previous": {
            "type": "string"
          },
          "next": {
            "type": "string"
          }
        }
      },
      "Cursors":  {
        "type": "object",
        "facade": false,
        "builderFacade": false,
        "properties": {
          "before": {
            "type": "string"
          },
          "after": {
            "type": "string"
          }
        }
      },
			"SimpleSecurityContext": {
        "type": "object",
        "description": "If rotationId and parentHash are missing this is a base security context and membership records go against the absoluteHash of this object, otherwise it is a rotation of the parent security context and the membership records go against the parentHash",
        "facade": true,
        "builderFacade": false,
        "extends": "#/components/schemas/VersionedObject",
        "required": [
          "cipherSuiteId",
          "rotationId"
        ],
        "properties": {
          "cipherSuiteId": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/CipherSuiteId"
          },
          "parentHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "rotationId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/RotationId"
          }
        }
      },
			"SecurityContext": {
				"type": "object",
				"facade": true,
				"builderFacade": true,
				"extends": "#/components/schemas/SimpleSecurityContext",
				"required": [
					"encodedExchangeKey",
					"encryptedPrivateKey"
				],
				"properties": {
					"encodedExchangeKey": {
						"$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPublicKey"
					},
					"encryptedPrivateKey": {
						"$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/WrappedKey"
					}
				}
			},
      "SecurityContextRotationIdType": {
        "type": "string",
        "enum": [
          "SECURITY_CONTEXT",
          "MEMBER_KEYS"
        ]
      },
      "SecurityContextRotationId": {
        "description": "ID Object for a rotation of a security context. Points to a SimpleSecurityContext",
        "type": "object",
        "extends": "#/components/schemas/FundamentalId",
        "facade": false,
        "required": [
          "type",
          "securityContextBaseHash",
          "rotationId"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SecurityContextRotationIdType"
          },
          "securityContextBaseHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "rotationId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/RotationId"
          }
        }
      },
      "OpenSecurityContextInfo": {
        "type": "object",
        "facade": false,
        "builderFacade": false,
        "extends": "#/components/schemas/SecurityContext",
        "required": [
          "encodedSecretKey",
          "securityContextHash"
        ],
        "properties": {
          "encodedPrivateKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPrivateKey"
          },
          "encodedSecretKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/Base64SecretKey"
          },
          "securityContextHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          }
        }
      },
      "SessionInfo": {
        "type": "object",
        "facade": false,
        "builderFacade": false,
        "required": [
          "podId",
          "principalBaseHash"
        ],
        "properties": {
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          },
          "principalBaseHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      },
      "PodSigningInfo": {
        "description": "DEPRECATED: user podfundamental instead.",
        "type": "object",
        "facade": true,
        "builderFacade": false,
        "required": [
          "encodedPrivateContextKey",
          "securityContext",
          "encodedPrivateSigningKey",
          "signingKey",
          "podId"
        ],
        "properties": {
          "encodedPrivateContextKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPrivateKey"
          },
          "encodedSecretContextKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/Base64SecretKey"
          },
          "securityContext": {
            "type": "string",
            "format": "byte"
          },
          "encodedPrivateSigningKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPrivateKey"
          },
          "signingKey": {
            "type": "string",
            "format": "byte"
          },
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          }
        }
      },
      "MembershipStatus": {
				"type": "string",
				"description": "The NONE status is required so that if a member is removed we can revoke their permissions without deleting the previous record which acts as an audi trail.",
				"enum": [
					"NONE",
					"MEMBER"
				]
			},
			"Member": {
				"type": "object",
				"extends": "#/components/schemas/VersionedObject",
        "facade": true,
        "builderFacade": true,
				"description": "A generic membership record.",
				"required": [
					"groupBaseHash",
					"memberBaseHash",
					"membershipStatus"
				],
				"properties": {
					"groupBaseHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					},
					"memberBaseHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					},
					"membershipStatus": {
						"$ref": "#/components/schemas/MembershipStatus"
					}
				}
			},
			"SecurityContextPermission": {
				"type": "string",
				"enum": [
					"MEMBER",
					"OWNER"
				]
			},
			"SecurityContextMember": {
				"type": "object",
				"extends": "#/components/schemas/Member",
        "facade": true,
        "builderFacade": true,
				"description": "wrappedKey is the SecurityContext SecretKey wrapped by the member's Public ExchangeKey. encryptedKey is the SecurityContext SecretKey encrypted with the member's AccountSecretKey. This may be added as an update by the member as a performance optimization.",
				"required": [
					"permission"
				],
				"properties": {
					"permission": {
						"$ref": "#/components/schemas/SecurityContextPermission"
					}
				}
			},
      "SecurityContextMemberKeys": {
        "type": "object",
        "extends": "#/components/schemas/VersionedObject",
        "description": "wrappedKey is the SecurityContext SecretKey wrapped by the member's Public ExchangeKey. encryptedKey is the SecurityContext SecretKey encrypted with the member's AccountSecretKey. This may be added as an update by the member as a performance optimization.",
        "properties": {
          "securityContextHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "memberExchangeKeyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "wrappedKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/WrappedKey"
          },
          "encryptedKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/WrappedKey"
          },
          "kdfVersion": {
              "type": "integer",
              "format": "int32"
          },
          "keyId": {
              "type": "string",
              "format": "byte"
          },
          "relaySignature": {
              "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/EncodedSignature"
          },
          "version": {
              "type": "integer",
              "format": "int32"
          }
        }
      },
			"TraceTransaction": {
				"facade": true,
				"type": "object",
				"required": [
          "hashType",
          "timestamp"
        ],
				"properties": {
          "hashType": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/HashType"
          },
					"timestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "parentHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "parentTimestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "rootHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "rootTimestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "subjectType": {
						"type": "string"
					},
					"subjectId": {
						"type": "string"
					},
					"instanceId": {
						"type": "string"
					},
          "threadId": {
            "type": "string"
          },
          "tenantId": {
            "type": "string"
          }
				}
			},
      "TraceNotificationEvent": {
        "facade": false,
        "type": "object",
        "required": [
          "operation",
          "timestamp"
        ],
        "properties": {
          "operation": {
            "type": "string"
          },
          "timestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "subjectType": {
            "type": "string"
          },
          "subjectId": {
            "type": "string"
          },
          "instanceId": {
            "type": "string"
          },
          "threadId": {
            "type": "string"
          }
        }
      },
      "TraceEvent": {
        "facade": true,
        "type": "object",
        "extends": "#/components/schemas/TraceNotificationEvent",
        "required": [
          "transactionHash",
          "transactionTimestamp"
        ],
        "properties": {
          "transactionHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "transactionTimestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "transactionParentHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "transactionParentTimestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "transactionRootHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "transactionRootTimestamp": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "tenantId": {
            "type": "string"
          }
        }
      },
      "TraceNotificationTransaction": {
        "facade": false,
        "type": "object",
        "required": [
          "transaction",
          "events"
        ],
        "properties": {
          "transaction": {
            "$ref": "#/components/schemas/TraceTransaction"
          },
          "events": {
            "type": "array",
            "x-canon-cardinality": "LIST",
            "items": {
              "$ref": "#/components/schemas/TraceNotificationEvent"
            }
          },
          "counter": {
              "type": "integer",
              "format": "int32"
          }
        }
      },
      "TraceNotification": {
        "facade": true,
        "type": "object",
        "required": [
          "rootTransaction"
        ],
        "properties": {
          "rootTransaction": {
            "$ref": "#/components/schemas/TraceNotificationTransaction"
          },
          "childTransactions": {
            "type": "array",
            "x-canon-cardinality": "LIST",
            "items": {
              "$ref": "#/components/schemas/TraceNotificationTransaction"
            }
          }
        }
      },
			"Error": {
				"required": [
					"code",
					"message"
				],
				"properties": {
					"code": {
						"type": "integer",
						"format": "int32"
					},
					"message": {
						"type": "string"
					}
				}
			},
      "PublicKeyStatus": {
        "type": "object",
        "extends": "#/components/schemas/VersionedObject",
        "required": [
          "keyHash"
        ],
        "properties": {
          "keyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "expiredAt": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          },
          "revokedAt": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Instant"
          }
        }
      },
			"AbstractPublicKey": {
				"type": "object",
				"extends": "#/components/schemas/VersionedObject",
        "facade": true,
        "builderFacade": false,
				"required": [
					"principalBaseHash",
					"cipherSuiteId",
					"encodedPublicKey"
				],
				"properties": {
					"principalBaseHash": {
						"$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
					},
					"cipherSuiteId": {
						"$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/CipherSuiteId"
					},
          "encodedPublicKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPublicKey"
          },
          "status": {
            "$ref": "#/components/schemas/PublicKeyStatus"
          }
				}
			},
      "AbstractPublicKeyIdObject": {
        "description": "The ID object for principal's public key. Subclases point to a subclass of AbstractPublicKey",
        "type": "object",
        "extends": "#/components/schemas/PodFundamentalId",
        "required": [
          "userId",
          "certId"
        ],
        "properties": {
          "userId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/UserId"
          },
          "certId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/CertificateId"
          }
        }
      },
      "SigningKeyIdObject": {
        "description": "The ID object for principal's public key. Points to a SigningKey.",
        "type": "object",
        "extends": "#/components/schemas/AbstractPublicKeyIdObject",
        "properties": {
        }
      },
      "ExchangeKeyIdObject": {
        "description": "The ID object for principal's public key. Points to a ExchangeKey.",
        "type": "object",
        "extends": "#/components/schemas/AbstractPublicKeyIdObject",
        "properties": {
        }
      },
			"SigningKey": {
				"type": "object",
				"extends": "#/components/schemas/AbstractPublicKey",
				"facade": true,
				"properties": {
					
				}
			},
			"ExchangeKey": {
				"type": "object",
				"extends": "#/components/schemas/AbstractPublicKey",
				"facade": true,
				"properties": {
					
				}
			},
      "PrincipalCredential": {
        "type": "object",
        "facade": true,
        "description": "A secret credential which a system principal needs to bootstrap.",
        "required": [
          "principalBaseHash",
          "exchangeKeyHash",
          "encodedExchangeKey",
          "signingKeyHash",
          "encodedSigningKey",
          "environmentId"
        ],
        "properties": {
          "principalBaseHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "exchangeKeyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "encodedExchangeKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPrivateKey"
          },
          "signingKeyHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          },
          "encodedSigningKey": {
            "$ref": "https://models.oss.symphony.com/crypto.json#/components/schemas/PemPrivateKey"
          },
          "environmentId": {
            "type": "string"
          },
          "podId": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/PodId"
          }
        }
      },
      "SequenceType": {
        "description": "The type of a sequence",
        "type": "string",
        "enum": [
          "ABSOLUTE",
          "CURRENT",
          "HASH_CURRENT"
        ]
      },
      "Sequence": {
        "type": "object",
        "extends": "#/components/schemas/VersionedObject",
        "facade": false,
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SequenceType"
          },
          "securityContextHash": {
            "$ref": "https://models.oss.symphony.com/core.json#/components/schemas/Hash"
          }
        }
      }
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy