{
  "status": 200,
  "value": {
    "description": "NcBlock class descriptor",
    "classId": [1, 1],
    "name": "NcBlock",
    "fixedRole": null,
    "properties": [
      {
        "description": "TRUE if block is functional",
        "id": {"level": 2, "index": 1},
        "name": "enabled",
        "typeName": "NcBoolean",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Descriptors of this block's members",
        "id": {"level": 2, "index": 2},
        "name": "members",
        "typeName": "NcBlockMemberDescriptor",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": true,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Static value. All instances of the same class will have the same identity value",
        "id": {"level": 1, "index": 1},
        "name": "classId",
        "typeName": "NcClassId",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Object identifier",
        "id": {"level": 1, "index": 2},
        "name": "oid",
        "typeName": "NcOid",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "TRUE iff OID is hardwired into device",
        "id": {"level": 1, "index": 3},
        "name": "constantOid",
        "typeName": "NcBoolean",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "OID of containing block. Can only ever be null for the root block",
        "id": {"level": 1, "index": 4},
        "name": "owner",
        "typeName": "NcOid",
        "isReadOnly": true,
        "isNullable": true,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "role of obj in containing block",
        "id": {"level": 1, "index": 5},
        "name": "role",
        "typeName": "NcString",
        "isReadOnly": true,
        "isNullable": false,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Scribble strip",
        "id": {"level": 1, "index": 6},
        "name": "userLabel",
        "typeName": "NcString",
        "isReadOnly": false,
        "isNullable": true,
        "isSequence": false,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Touchpoints to other contexts",
        "id": {"level": 1, "index": 7},
        "name": "touchpoints",
        "typeName": "NcTouchpoint",
        "isReadOnly": true,
        "isNullable": true,
        "isSequence": true,
        "constraints": null,
        "isDeprecated": false
      },
      {
        "description": "Runtime property constraints",
        "id": {"level": 1, "index": 8},
        "name": "runtimePropertyConstraints",
        "typeName": "NcPropertyConstraints",
        "isReadOnly": true,
        "isNullable": true,
        "isSequence": true,
        "constraints": null,
        "isDeprecated": false
      }
    ],
    "methods": [
      {
        "description": "Gets descriptors of members of the block",
        "id": {"level": 2, "index": 1},
        "name": "GetMemberDescriptors",
        "resultDatatype": "NcMethodResultBlockMemberDescriptors",
        "parameters": [
          {
            "description": "If recurse is set to true, nested members can be retrieved",
            "name": "recurse",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Finds member(s) by path",
        "id": {"level": 2, "index": 2},
        "name": "FindMembersByPath",
        "resultDatatype": "NcMethodResultBlockMemberDescriptors",
        "parameters": [
          {
            "description": "Relative path to search for (MUST not include the role of the block targeted by oid)",
            "name": "path",
            "typeName": "NcRolePath",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Finds members with given role name or fragment",
        "id": {"level": 2, "index": 3},
        "name": "FindMembersByRole",
        "resultDatatype": "NcMethodResultBlockMemberDescriptors",
        "parameters": [
          {
            "description": "Role text to search for",
            "name": "role",
            "typeName": "NcString",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Signals if the comparison should be case sensitive",
            "name": "caseSensitive",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "TRUE to only return exact matches",
            "name": "matchWholeString",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "TRUE to search nested blocks",
            "name": "recurse",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Finds members with given class id",
        "id": {"level": 2, "index": 4},
        "name": "FindMembersByClassId",
        "resultDatatype": "NcMethodResultBlockMemberDescriptors",
        "parameters": [
          {
            "description": "Class id to search for",
            "name": "classId",
            "typeName": "NcClassId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "If TRUE it will also include derived class descriptors",
            "name": "includeDerived",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "TRUE to search nested blocks",
            "name": "recurse",
            "typeName": "NcBoolean",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Get property value",
        "id": {"level": 1, "index": 1},
        "name": "Get",
        "resultDatatype": "NcMethodResultPropertyValue",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Set property value",
        "id": {"level": 1, "index": 2},
        "name": "Set",
        "resultDatatype": "NcMethodResult",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Property value",
            "name": "value",
            "typeName": null,
            "isNullable": true,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Get sequence item",
        "id": {"level": 1, "index": 3},
        "name": "GetSequenceItem",
        "resultDatatype": "NcMethodResultPropertyValue",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Index of item in the sequence",
            "name": "index",
            "typeName": "NcId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Set sequence item value",
        "id": {"level": 1, "index": 4},
        "name": "SetSequenceItem",
        "resultDatatype": "NcMethodResult",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Index of item in the sequence",
            "name": "index",
            "typeName": "NcId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Value",
            "name": "value",
            "typeName": null,
            "isNullable": true,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Add item to sequence",
        "id": {"level": 1, "index": 5},
        "name": "AddSequenceItem",
        "resultDatatype": "NcMethodResultId",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Value",
            "name": "value",
            "typeName": null,
            "isNullable": true,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Delete sequence item",
        "id": {"level": 1, "index": 6},
        "name": "RemoveSequenceItem",
        "resultDatatype": "NcMethodResult",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          },
          {
            "description": "Index of item in the sequence",
            "name": "index",
            "typeName": "NcId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      },
      {
        "description": "Get sequence length",
        "id": {"level": 1, "index": 7},
        "name": "GetSequenceLength",
        "resultDatatype": "NcMethodResultLength",
        "parameters": [
          {
            "description": "Property id",
            "name": "id",
            "typeName": "NcPropertyId",
            "isNullable": false,
            "isSequence": false,
            "constraints": null
          }
        ],
        "isDeprecated": false
      }
    ],
    "events": [
      {
        "description": "Property changed event",
        "id": {"level": 1, "index": 1},
        "name": "PropertyChanged",
        "eventDatatype": "NcPropertyChangedEventData",
        "isDeprecated": false
      }
    ]
  }
}
