{
    "swagger": "2.0",
    "info": {
        "version": "v1",
        "title": "Azure Blockchain Workbench REST API",
        "description": "The Azure Blockchain Workbench REST API is a Workbench extensibility point, which allows developers to create and manage blockchain applications, manage users and organizations within a consortium, integrate blockchain applications into services and platforms, perform transactions on a blockchain, and retrieve transactional and contract data from a blockchain."
    },
    "host": "marcdemo-py6c-api.azurewebsites.net",
    "schemes": [
        "https"
    ],
     "basePath": "/",
    "paths": {
        "/api/v1/applications": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Lists all blockchain applications to which a user has access in Workbench. Users who are Workbench administrators get\n             all blockchain applications. Non-Workbench administrators get all blockchain applications for which they have at least one\n             associated application role or an associated smart contract instance role.",
                "operationId": "ApplicationsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of entries to return in the result set.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of entries to skip in the result set.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "enabled",
                        "in": "query",
                        "description": "A Boolean for whether to filter the result set to only enabled applications.",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "sortBy",
                        "in": "query",
                        "description": "The field to sort.",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/ApplicationList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Creates a new blockchain application. This method can only be performed by users who are\n             Workbench administrators.",
                "operationId": "ApplicationsPost",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "appFile",
                        "in": "formData",
                        "description": "Upload Application File",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Gets the blockchain application matching a specific application ID. Users who are Workbench administrators get\n             the blockchain application. Non-Workbench administrators get the blockchain application if they have at least one associated\n             application role or is associated with a smart contract instance role.",
                "operationId": "ApplicationGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Application"
                        }
                    }
                },
                "deprecated": false
            },
            "delete": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Deletes the specified blockchain application. This method can only be performed by users who are\n             Workbench administrators. NOTE: Currently not implemented.",
                "operationId": "ApplicationDelete",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application.",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/enable": {
            "patch": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Enables the specified blockchain application. This method can only be performed by users who are\n             Workbench administrators.",
                "operationId": "ApplicationEnable",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/disable": {
            "patch": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Disables the specified blockchain application. This method can only be performed by users who are\n             Workbench administrators.",
                "operationId": "ApplicationDisable",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/roleAssignments": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "List all role assignments of the specified blockchain application. Users who are Workbench administrators\n             get all role assignments. Non-Workbench administrators get all their role assignments. Roles are specified\n             in the Workbench application configuration and can be retrieved from GET /applications/{applicationID}.\n             Also, user information can be retrieved from GET /users/{userID}.",
                "operationId": "RoleAssignmentsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the configuration",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "applicationRoleId",
                        "in": "query",
                        "description": "The id of the application role",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of entries to return in the result set.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of entries to skip in the result set.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "sortBy",
                        "in": "query",
                        "description": "The field to sort",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/RoleAssignmentList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Creates a user-to-role mapping in the specified blockchain application. This method can only be performed by\n             users who are Workbench administrators.",
                "operationId": "RoleAssignmentsPost",
                "consumes": [
                    "application/json-patch+json",
                    "application/json",
                    "text/json",
                    "application/*+json"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the configuration.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "roleAssignment",
                        "in": "body",
                        "description": "New user-to-role mapping.",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/RoleAssignmentInput"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/roleAssignments/{roleAssignmentId}": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Get a role assignment of the specified blockchain application matching a specific user role assignment ID.\n             Users who are Workbench administrators get the role assignment. Non-Workbench administrators get the role assignment\n             if they are associated in the application.",
                "operationId": "RoleAssignmentGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the configuration",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "roleAssignmentId",
                        "in": "path",
                        "description": "The id of the role assignment",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/RoleAssignment"
                        }
                    }
                },
                "deprecated": false
            },
            "put": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Updates the specified role assignment. This method can only be performed by users who are Workbench administrators.",
                "operationId": "RoleAssignmentPut",
                "consumes": [
                    "application/json-patch+json",
                    "application/json",
                    "text/json",
                    "application/*+json"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "roleAssignmentId",
                        "in": "path",
                        "description": "The id of the user-to-role mapping",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "roleAssignment",
                        "in": "body",
                        "description": "New user-to-role mapping parameters",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/RoleAssignmentInput"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            },
            "delete": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Deletes the specified role assignment. This method can only be performed by users who are\n             Workbench administrators.",
                "operationId": "RoleAssignmentDelete",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "roleAssignmentId",
                        "in": "path",
                        "description": "The id of the role assignment",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "NoContent"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/workflows": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "List all workflows of the specified blockchain application. Users who are Workbench administrators get all\n             workflows. Non-Workbench administrators get all workflows for which they have at least one associated application role\n             or are associated with a smart contract instance role.",
                "operationId": "WorkflowsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/WorkflowList"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/workflows/{workflowId}": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Get a workflow matching a specific workflow ID.\n             Users who are Workbench administrators get the workflow. Non-Workbench administrators get the workflow if they\n             have at least one associated application role or is associated with a smart contract instance role.",
                "operationId": "WorkflowGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "workflowId",
                        "in": "path",
                        "description": "The id of the workflow",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Workflow"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/{applicationId}/contractCode": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "List all blockchain smart contract implementations of the specified blockchain application.\n             Users who are Workbench administrators get all smart contract implementations. Non-Workbench administrators get all\n             smart contract implementations for which they have at least one associated application role or is associated with a\n             smart contract instance role.",
                "operationId": "ContractCodesGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "ledgerId",
                        "in": "query",
                        "description": "The index of the chain type",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/ContractCodeList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Uploads one or more smart contracts (ex. .sol or .zip), representing the implementation of the specified blockchain\n             application. This method can only be performed by users who are Workbench administrators.",
                "operationId": "ContractCodePost",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "applicationId",
                        "in": "path",
                        "description": "The id of the application",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "ledgerId",
                        "in": "query",
                        "description": "The index of the ledger",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "contractFile",
                        "in": "formData",
                        "description": "Upload ContractCode File",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/applications/contractCode/{contractCodeId}": {
            "get": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Get the blockchain smart contract implementation matching a specific\n             contract code id. Users who are Workbench administrators get the specified smart contract implementation.\n             Non-Workbench administrators get the smart contract implementation if they have at least one associated application\n             role or is associated with a smart contract instance role.",
                "operationId": "ContractCodeGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractCodeId",
                        "in": "path",
                        "description": "The id of the contract code",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/FileStreamResult"
                        }
                    }
                },
                "deprecated": false
            },
            "delete": {
                "tags": [
                    "Applications"
                ],
                "summary": "",
                "description": "Deletes the specified blockchain smart contract implementation of a specific blockchain application.\n             This method can only be performed by users who are Workbench administrators.\n             NOTE: not currently implemented",
                "operationId": "ContractCodeDelete",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractCodeId",
                        "in": "path",
                        "description": "The id of the contract code",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/capabilities": {
            "get": {
                "tags": [
                    "Capabilities"
                ],
                "summary": "",
                "description": "List all capabilities the user can perform within Workbench.\n             Checked capabilities include ability to add blockchain applications, add smart contract implementations,\n             add or edit user role assignments, and add new users.",
                "operationId": "CapabilitiesGet",
                "consumes": [],
                "produces": [],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Capabilities"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/capabilities/canCreateContract/{workflowId}": {
            "get": {
                "tags": [
                    "Capabilities"
                ],
                "summary": "",
                "description": "Checks if user has capability to create new smart contract instance for a specific workflow ID.",
                "operationId": "CanCreateContract",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "workflowId",
                        "in": "path",
                        "description": "The id of the workflow.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/checkers/checkApplication": {
            "post": {
                "tags": [
                    "Checkers"
                ],
                "summary": "",
                "description": "Checks if the supplied application configuration file is valid for Workbench.",
                "operationId": "CheckApplicationPost",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "appFile",
                        "in": "formData",
                        "description": "Upload Application File",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/checkers/checkContractCode": {
            "post": {
                "tags": [
                    "Checkers"
                ],
                "summary": "",
                "description": "Check if the application smart contract implementation file is valid for Workbench.",
                "operationId": "CheckContractCodePost",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "ledgerId",
                        "in": "query",
                        "description": "The index of the chain type.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "contractFile",
                        "in": "formData",
                        "description": "Upload Contract Code File",
                        "required": true,
                        "type": "file"
                    },
                    {
                        "name": "appFile",
                        "in": "formData",
                        "description": "Upload Application File",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Lists the connected blockchain networks.",
                "operationId": "ConnectionsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/ConnectionList"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections/{connectionId}": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Gets the connected blockchain network matching a specific connection ID.",
                "operationId": "ConnectionGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "connectionId",
                        "in": "path",
                        "description": "The id of the connection.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Connection"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections/{connectionId}/blocks": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Lists the blocks for a connected blockchain network.",
                "operationId": "BlocksGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "connectionId",
                        "in": "path",
                        "description": "The id of the connection.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/BlockList"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections/{connectionId}/blocks/{blockId}": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Gets the block matching a specific block ID.",
                "operationId": "BlockGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "connectionId",
                        "in": "path",
                        "description": "The connectionId of the block.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "blockId",
                        "in": "path",
                        "description": "The id of the block.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Block"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections/{connectionId}/transactions": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Lists the transactions for a connected blockchain network.",
                "operationId": "TransactionsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "connectionId",
                        "in": "path",
                        "description": "The id of the connection.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/TransactionList"
                            }
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers/connections/{connectionId}/transactions/{transactionId}": {
            "get": {
                "tags": [
                    "Connections"
                ],
                "summary": "",
                "description": "Gets the transaction matching a specific transaction ID.",
                "operationId": "TransactionGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "connectionId",
                        "in": "path",
                        "description": "The connectionId of the transaction.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "transactionId",
                        "in": "path",
                        "description": "The id of the transaction.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Transaction"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/contracts": {
            "get": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Lists the smart contract instances of the specified workflow. Users who are Workbench administrators get all\n             smart contract instances. Non-Workbench administrators get all smart contract instances for which they have at least\n             one associated application role or is associated with a smart contract instance role.",
                "operationId": "ContractsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "workflowId",
                        "in": "query",
                        "description": "The ID of the associated workflow.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "sortBy",
                        "in": "query",
                        "description": "The field to sort",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/ContractList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Creates a new smart contract instance for the specified workflow ID.\n             Users are only able to create a new smart contract instance if the user is associated with an application role,\n             which can initiate a smart contract instance for the workflow.",
                "operationId": "ContractPost",
                "consumes": [
                    "application/json"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "workflowActionInput",
                        "in": "body",
                        "description": "The set of all contract action parameters.",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/WorkflowActionInput"
                        }
                    },
                    {
                        "name": "workflowId",
                        "in": "query",
                        "description": "The id of the workflow.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "contractCodeId",
                        "in": "query",
                        "description": "The id of the smart contract implementation.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "connectionId",
                        "in": "query",
                        "description": "The id of the blockchain connection.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/WorkflowActionInput"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/contracts/{contractId}": {
            "get": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Gets the smart contract instance matching a specific contract ID. Users who are Workbench\n             administrators get the smart contract instance. Non-Workbench administrators get the smart contract instance\n             if they have at least one associated application role or is associated with the smart contract instance.",
                "operationId": "ContractGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractId",
                        "in": "path",
                        "description": "The id of the contract",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Contract"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/contracts/{contractId}/actions": {
            "get": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Lists all actions, which can be taken by the given user and current state of the specified smart contract\n             instance. Users get all applicable actions if the user has an associated application role or is associated with a smart\n             contract instance role for the current state of the specified smart contract instance.",
                "operationId": "ContractActionsGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractId",
                        "in": "path",
                        "description": "The id of the contract.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/WorkflowStateTransitionList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Executes an action for the specified smart contract instance and action ID. Users are only able to execute\n             the action given the current state of the specified smart contract instance and the user's associated application role\n             or smart contract instance role.",
                "operationId": "ContractActionPost",
                "consumes": [
                    "application/json"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractId",
                        "in": "path",
                        "description": "The id of the contract.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "actionInformation",
                        "in": "body",
                        "description": "Parameters for a particular action.",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/WorkflowActionInput"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/LedgerActionOutput"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/contracts/{contractId}/actions/{actionId}": {
            "get": {
                "tags": [
                    "Contracts"
                ],
                "summary": "",
                "description": "Gets the action matching the specified action ID. Users get the action if the user can take the action\n             given the current state of the specified smart contract instance and the user's associated application role or smart\n             contract instance role.",
                "operationId": "ContractActionGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "contractId",
                        "in": "path",
                        "description": "The id of the contract.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "actionId",
                        "in": "path",
                        "description": "The id of the action.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/WorkflowStateTransition"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/graphProxy/{version}/users": {
            "get": {
                "tags": [
                    "GraphProxy"
                ],
                "summary": "",
                "description": "Represents a proxy method to the Azure Active Directory Graph API for users.\n             See https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_list for more details.",
                "operationId": "GraphProxy-UsersGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "version",
                        "in": "path",
                        "description": "The version for the graph api endpoint",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/ContentResult"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/health": {
            "get": {
                "tags": [
                    "Health"
                ],
                "summary": "",
                "description": "Returns the health of the system. See https://docs.microsoft.com/en-us/azure/architecture/patterns/health-endpoint-monitoring\n             for more details.",
                "operationId": "Health",
                "consumes": [],
                "produces": [],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/ledgers": {
            "get": {
                "tags": [
                    "Ledgers"
                ],
                "summary": "",
                "description": "Lists the supported blockchain types, such as Ethereum or Hyperledger Fabric.",
                "operationId": "LedgersGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/LedgerList"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/users": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Get Users",
                "description": "Lists all users within the connected blockchain consortium.",
                "operationId": "UsersGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "top",
                        "in": "query",
                        "description": "The maximum number of items to return.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "skip",
                        "in": "query",
                        "description": "The number of items to skip before returning.",
                        "required": false,
                        "type": "integer",
                        "format": "int32"
                    },
                    {
                        "name": "externalId",
                        "in": "query",
                        "description": "The external ID of the user to query for.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "userChainIdentifier",
                        "in": "query",
                        "description": "The on-chain address of the user to query for.",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "sortBy",
                        "in": "query",
                        "description": "The field to sort",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/UserList"
                        }
                    }
                },
                "deprecated": false
            },
            "post": {
                "tags": [
                    "Users"
                ],
                "summary": "",
                "description": "Adds a user to the blockchain consortium. This method can only be performed by users who are\n             Workbench administrators.",
                "operationId": "UsersPost",
                "consumes": [
                    "application/json-patch+json",
                    "application/json",
                    "text/json",
                    "application/*+json"
                ],
                "produces": [],
                "parameters": [
                    {
                        "name": "userInput",
                        "in": "body",
                        "description": "New user to add.",
                        "required": false,
                        "schema": {
                            "$ref": "#/definitions/UserInput"
                        }
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "format": "int32",
                            "type": "integer"
                        }
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/users/{userId}": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "",
                "description": "Gets the user matching a specific user ID.",
                "operationId": "UserGet",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "The id of the user.",
                        "required": true,
                        "type": "integer",
                        "format": "int32"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/User"
                        }
                    }
                },
                "deprecated": false
            },
            "delete": {
                "tags": [
                    "Users"
                ],
                "summary": "",
                "description": "Deletes the specified user. This method can only be performed by users who are Workbench administrators.\n             NOTE: Not currently implemented.",
                "operationId": "UserDelete",
                "consumes": [],
                "produces": [],
                "parameters": [
                    {
                        "name": "userId",
                        "in": "path",
                        "description": "The id of the user",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "204": {
                        "description": "No Content"
                    }
                },
                "deprecated": false
            }
        },
        "/api/v1/users/me": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "",
                "description": "Returns the current user.",
                "operationId": "MeGet",
                "consumes": [],
                "produces": [],
                "responses": {
                    "204": {
                        "description": "No Content"
                    },
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/Me"
                        }
                    }
                },
                "deprecated": false
            }
        }
    },
    "definitions": {
        "IFormFile": {
            "type": "object",
            "properties": {
                "contentType": {
                    "type": "string",
                    "readOnly": true
                },
                "contentDisposition": {
                    "type": "string",
                    "readOnly": true
                },
                "headers": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "readOnly": true
                },
                "length": {
                    "format": "int64",
                    "type": "integer",
                    "readOnly": true
                },
                "name": {
                    "type": "string",
                    "readOnly": true
                },
                "fileName": {
                    "type": "string",
                    "readOnly": true
                }
            }
        },
        "ApplicationList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "applications": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Application"
                    }
                }
            }
        },
        "Application": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "createdByUserId": {
                    "format": "int32",
                    "type": "integer"
                },
                "createdDtTm": {
                    "format": "date-time",
                    "type": "string"
                },
                "enabled": {
                    "type": "boolean"
                },
                "blobStorageURL": {
                    "type": "string"
                },
                "applicationRoles": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ApplicationRole"
                    }
                }
            }
        },
        "ApplicationRole": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                }
            }
        },
        "RoleAssignmentList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "roleAssignments": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/RoleAssignment"
                    }
                }
            }
        },
        "RoleAssignment": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "applicationRoleId": {
                    "format": "int32",
                    "type": "integer"
                },
                "user": {
                    "$ref": "#/definitions/User"
                }
            }
        },
        "User": {
            "type": "object",
            "properties": {
                "userID": {
                    "format": "int32",
                    "type": "integer"
                },
                "externalID": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "emailAddress": {
                    "type": "string"
                },
                "userChainMappings": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/UserChainMapping"
                    }
                }
            }
        },
        "UserChainMapping": {
            "type": "object",
            "properties": {
                "userChainMappingID": {
                    "format": "int32",
                    "type": "integer"
                },
                "userID": {
                    "format": "int32",
                    "type": "integer"
                },
                "connectionID": {
                    "format": "int32",
                    "type": "integer"
                },
                "chainIdentifier": {
                    "type": "string"
                },
                "chainBalance": {
                    "format": "double",
                    "type": "number"
                }
            }
        },
        "RoleAssignmentInput": {
            "type": "object",
            "properties": {
                "userId": {
                    "format": "int32",
                    "type": "integer"
                },
                "applicationRoleId": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "WorkflowList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "workflows": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Workflow"
                    }
                }
            }
        },
        "Workflow": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "applicationId": {
                    "format": "int32",
                    "type": "integer"
                },
                "constructorId": {
                    "format": "int32",
                    "type": "integer"
                },
                "startStateId": {
                    "format": "int32",
                    "type": "integer"
                },
                "initiators": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "properties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowProperty"
                    }
                },
                "constructor": {
                    "$ref": "#/definitions/WorkflowFunction"
                },
                "functions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowFunction"
                    }
                },
                "startState": {
                    "$ref": "#/definitions/WorkflowState"
                },
                "states": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowState"
                    }
                }
            }
        },
        "WorkflowProperty": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/WorkflowDataType"
                }
            }
        },
        "WorkflowFunction": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowFunctionParameter"
                    }
                },
                "workflowId": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "WorkflowState": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "percentComplete": {
                    "format": "int32",
                    "type": "integer"
                },
                "value": {
                    "format": "int32",
                    "type": "integer"
                },
                "style": {
                    "type": "string"
                },
                "workflowStateTransitions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowStateTransition"
                    }
                }
            }
        },
        "WorkflowDataType": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "elementType": {
                    "$ref": "#/definitions/WorkflowDataType"
                },
                "elementTypeId": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "WorkflowFunctionParameter": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/WorkflowDataType"
                }
            }
        },
        "WorkflowStateTransition": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "workflowFunctionId": {
                    "format": "int32",
                    "type": "integer"
                },
                "currStateId": {
                    "format": "int32",
                    "type": "integer"
                },
                "allowedRoles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "allowedInstanceRoles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "description": {
                    "type": "string"
                },
                "function": {
                    "type": "string"
                },
                "currentState": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                }
            }
        },
        "ContractCodeList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "contractCodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ContractCode"
                    }
                }
            }
        },
        "ContractCode": {
            "type": "object",
            "properties": {
                "contractCodeID": {
                    "format": "int32",
                    "type": "integer"
                },
                "ledgerID": {
                    "format": "int32",
                    "type": "integer"
                },
                "createdByUserId": {
                    "format": "int32",
                    "type": "integer"
                },
                "createdDtTm": {
                    "format": "date-time",
                    "type": "string"
                }
            }
        },
        "FileStreamResult": {
            "type": "object",
            "properties": {
                "fileStream": {
                    "$ref": "#/definitions/Stream"
                },
                "contentType": {
                    "type": "string",
                    "readOnly": true
                },
                "fileDownloadName": {
                    "type": "string"
                },
                "lastModified": {
                    "format": "date-time",
                    "type": "string"
                },
                "entityTag": {
                    "$ref": "#/definitions/EntityTagHeaderValue"
                }
            }
        },
        "Stream": {
            "type": "object",
            "properties": {
                "canRead": {
                    "type": "boolean",
                    "readOnly": true
                },
                "canSeek": {
                    "type": "boolean",
                    "readOnly": true
                },
                "canTimeout": {
                    "type": "boolean",
                    "readOnly": true
                },
                "canWrite": {
                    "type": "boolean",
                    "readOnly": true
                },
                "length": {
                    "format": "int64",
                    "type": "integer",
                    "readOnly": true
                },
                "position": {
                    "format": "int64",
                    "type": "integer"
                },
                "readTimeout": {
                    "format": "int32",
                    "type": "integer"
                },
                "writeTimeout": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "EntityTagHeaderValue": {
            "type": "object",
            "properties": {
                "tag": {
                    "$ref": "#/definitions/StringSegment",
                    "readOnly": true
                },
                "isWeak": {
                    "type": "boolean",
                    "readOnly": true
                }
            }
        },
        "StringSegment": {
            "type": "object",
            "properties": {
                "buffer": {
                    "type": "string",
                    "readOnly": true
                },
                "offset": {
                    "format": "int32",
                    "type": "integer",
                    "readOnly": true
                },
                "length": {
                    "format": "int32",
                    "type": "integer",
                    "readOnly": true
                },
                "value": {
                    "type": "string",
                    "readOnly": true
                },
                "hasValue": {
                    "type": "boolean",
                    "readOnly": true
                }
            }
        },
        "Capabilities": {
            "type": "object",
            "properties": {
                "canUploadApplication": {
                    "type": "boolean"
                },
                "canUploadContractCode": {
                    "type": "boolean"
                },
                "canModifyRoleAssignments": {
                    "type": "boolean"
                },
                "canProvisionUser": {
                    "type": "boolean"
                }
            }
        },
        "ConnectionList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "connection": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Connection"
                    }
                }
            }
        },
        "Connection": {
            "type": "object",
            "properties": {
                "connectionID": {
                    "format": "int32",
                    "type": "integer"
                },
                "ledgerID": {
                    "format": "int32",
                    "type": "integer"
                },
                "endpointURL": {
                    "type": "string"
                },
                "fundingAccount": {
                    "type": "string"
                }
            }
        },
        "BlockList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "blocks": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Block"
                    }
                }
            }
        },
        "Block": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "connectionId": {
                    "format": "int32",
                    "type": "integer"
                },
                "timestamp": {
                    "format": "date-time",
                    "type": "string"
                },
                "blockNumber": {
                    "format": "int32",
                    "type": "integer"
                },
                "blockHash": {
                    "type": "string"
                }
            }
        },
        "TransactionList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "transactions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Transaction"
                    }
                }
            }
        },
        "Transaction": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "connectionId": {
                    "format": "int32",
                    "type": "integer"
                },
                "transactionHash": {
                    "type": "string"
                },
                "blockID": {
                    "format": "int32",
                    "type": "integer"
                },
                "from": {
                    "type": "string"
                },
                "to": {
                    "type": "string"
                },
                "value": {
                    "format": "double",
                    "type": "number"
                },
                "isAppBuilderTx": {
                    "type": "boolean"
                }
            }
        },
        "ContractList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "contracts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Contract"
                    }
                }
            }
        },
        "Contract": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "provisioningStatus": {
                    "format": "int32",
                    "type": "integer"
                },
                "timestamp": {
                    "format": "date-time",
                    "type": "string"
                },
                "connectionID": {
                    "format": "int32",
                    "type": "integer"
                },
                "ledgerIdentifier": {
                    "type": "string"
                },
                "deployedByUserId": {
                    "format": "int32",
                    "type": "integer"
                },
                "workflowId": {
                    "format": "int32",
                    "type": "integer"
                },
                "contractCodeId": {
                    "format": "int32",
                    "type": "integer"
                },
                "contractProperties": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ContractProperty"
                    }
                },
                "transactions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Transaction"
                    }
                },
                "contractActions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ContractAction"
                    }
                }
            }
        },
        "ContractProperty": {
            "type": "object",
            "properties": {
                "workflowPropertyId": {
                    "format": "int32",
                    "type": "integer"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "ContractAction": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "userId": {
                    "format": "int32",
                    "type": "integer"
                },
                "provisioningStatus": {
                    "format": "int32",
                    "type": "integer"
                },
                "timestamp": {
                    "format": "date-time",
                    "type": "string"
                },
                "parameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ContractActionParameter"
                    }
                },
                "workflowFunctionId": {
                    "format": "int32",
                    "type": "integer"
                },
                "transactionId": {
                    "format": "int32",
                    "type": "integer"
                },
                "workflowStateId": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "ContractActionParameter": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "value": {
                    "type": "string"
                }
            }
        },
        "WorkflowActionInput": {
            "type": "object",
            "properties": {
                "workflowFunctionID": {
                    "format": "int32",
                    "type": "integer"
                },
                "workflowActionParameters": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/ContractActionParameter"
                    }
                }
            }
        },
        "WorkflowStateTransitionList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "workflowStateTransitions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/WorkflowStateTransition"
                    }
                }
            }
        },
        "LedgerActionOutput": {
            "type": "object",
            "properties": {
                "transactionID": {
                    "type": "string"
                }
            }
        },
        "ContentResult": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "contentType": {
                    "type": "string"
                },
                "statusCode": {
                    "format": "int32",
                    "type": "integer"
                }
            }
        },
        "LedgerList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "ledgers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Ledger"
                    }
                }
            }
        },
        "Ledger": {
            "type": "object",
            "properties": {
                "id": {
                    "format": "int32",
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                }
            }
        },
        "UserList": {
            "type": "object",
            "properties": {
                "nextLink": {
                    "type": "string"
                },
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/User"
                    }
                }
            }
        },
        "UserInput": {
            "type": "object",
            "properties": {
                "externalID": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "emailAddress": {
                    "type": "string"
                }
            }
        },
        "Me": {
            "type": "object",
            "properties": {
                "currentUser": {
                    "$ref": "#/definitions/User"
                },
                "capabilities": {
                    "$ref": "#/definitions/Capabilities"
                }
            }
        }
    },
    "securityDefinitions": {
        "AAD": {
            "type": "oauth2",
            "flow": "accessCode",
            "authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
            "tokenUrl": "https://login.windows.net/common/oauth2/token",
            "scopes": {}
        }
    
    }
}