License Right to Use Editor User Guide

The Right To Use (RTU) editor allows supplier and subscriber to create, review and restrict asset usage agreements for using the models.

Steps:

1. The right to use flag in the license profile indicates that a right to use agreement must be setup in license usage manager. The creator of the software will always be able to use the software. No agreement is required for the creator.

2. A Supplier

  • Defines an agreement
    • for a target asset or asset collection (one ML model at a specific version to a larger collection of models)
    • with specific permitted actions
    • with specific prohibited actions (optional)
  • Downloads the agreement.
  • Sends the agreement to subscriber.

3. Subscriber reviews and saves the agreement into License Usage manager (LUM)

4. Subscriber can optionally add restrictions on top of the agreement (such which user names are allowed to use the software)

The most basic Open Digital Rights Language (ODRL) agreement looks like this:

  • Company A allows Company B to use “face-detect-model” at revision id “edc76757-cd54-4256-9c3d-f865d88db1ff” (no constraints)

    {
      "@context": {
        "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
        "vcard": "http://www.w3.org/2006/vcard/ns#"
      },
      "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
      "@type": "Agreement",
      "uid": "acumos://software-licensor/Company%25252520A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70",
      "assignee": {
        "@type": [
          "Party",
          "vcard:Organization"
        ],
        "vcard:hasUrl": "companyb.com/team",
        "vcard:fn": "Company B",
        "vcard:hasEmail": "team@companyb.com"
      },
      "assigner": {
        "@type": [
          "Party",
          "vcard:Organization"
        ],
        "vcard:hasUrl": "companya.com",
        "vcard:fn": "Company A",
        "vcard:hasEmail": "sales@companya.com"
      },
      "target": {
        "refinement": [
          {
            "@type": "Constraint",
            "leftOperand": "lum:swProductName",
            "operator": "lum:in",
            "rightOperand": [
              "face-detect-model"
            ]
          },
          {
            "@type": "Constraint",
            "leftOperand": "lum:swTagId",
            "operator": "lum:in",
            "rightOperand": [
              "edc76757-cd54-4256-9c3d-f865d88db1ff"
            ]
          }
        ],
        "@type": "Target"
      },
      "permission": [
        {
          "uid": "acumos://software-licensor/Company%25252520A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c",
          "@type": "Rule",
          "action": [
            "use"
          ]
        }
      ]
    }
    
    language:json
  • Agreement ready to be submitted to License Usage Manager PUT /api​/v1​/asset-usage-agreement

    {
      "assetUsageAgreement": {
        "softwareLicensorId": "Company A",
        "assetUsageAgreementId": "acumos://software-licensor/Company%20A/agreement/af3912bd-ecb7-48a3-9e9d-d0c2c4da1843",
        "agreement": {
          "@context": {
            "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
            "vcard": "http://www.w3.org/2006/vcard/ns#"
          },
          "@type": "Agreement",
          "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
          "uid": "acumos://software-licensor/Company%20A/agreement/af3912bd-ecb7-48a3-9e9d-d0c2c4da1843",
          "assignee": {
            "@type": [
              "Party",
              "vcard:Organization"
            ],
            "vcard:hasUrl": "companyb.com/team",
            "vcard:fn": "Company B",
            "vcard:hasEmail": "team@companyb.com"
          },
          "assigner": {
            "@type": [
              "Party",
              "vcard:Organization"
            ],
            "vcard:hasUrl": "companya.com",
            "vcard:fn": "Company A",
            "vcard:hasEmail": "sales@companya.com"
          },
          "target": {
            "refinement": [
              {
                "@type": "Constraint",
                "leftOperand": "lum:swProductName",
                "operator": "lum:in",
                "rightOperand": [
                  "face-detect-model"
                ]
              }
            ],
            "@type": "Target"
          },
          "permission": [
            {
              "uid": "acumos://software-licensor/Company%20A/permission/52acd203-ea02-43ac-b418-223bf75f1b55",
              "@type": "Rule",
              "action": [
                "use"
              ]
            }
          ]
        }
      }
    }
    
    language:json

Acumos Right to Use Actions

The Acumos platform is integrated with the license usage manager to deny usage if agreed usage is out of bounds.

In the Clio release, the following actions can provide a denial:

  • acumos:download
  • acumos:deploy

Other actions that can be described in right to use but are not being denied are:

  • transfer (such as allowing solution to be federated again)
  • aggregate (allowing model to be added to a composition model)
  • modelrunner:predict (calling the machine learning model methods api)
  • modelrunner:train (allowing retraining the machine learning models in a subscription)

Enabling License Right to Use (RTU) in license profile

When you publish a model with a license profile that indicates right to use required. An agreement / right to use agreement for the software must be setup using the right to use editor and license usage manager (LUM) service.

License Profile indicating right to use required:

../../../_images/license-profile-rtu-required.png

Sample field in license.json:

"rtuRequired": true

Here is a License Profile for fictitious Company B for square model:

../../../_images/license-profile-rtu-required-full.png

Step 1: Supplier Defines an agreement

Target software:

  • To target all versions of a model, use Acumos solution ID as the software persistent ID (lum:swPersistentId)
  • To target specific version of a model, use Acumos revision ID as the software tag ID (lum:swTagId)
  • To target specific version of a Catalog, use Acumos catalog ID as the catalog ID (lum:swCatalogId) - you can the ID find in the url when filtering on catalog in portal
  • To target set of model solutions by name, use the lum:swProductName (this will match any solution by name)
  • The lum:swCatalogType currently is for the public (PB) or restricted catalog (RS) - you just need to enter RS or PB.

Supplier:

  • The Supplier Company name must match what is in the license profile company name.
  • Please also enter the url of the company and email address.

Subscriber:

  • The Subscriber name, url and email are required but are informational.

Permitted Actions:

  • Please select actions that are allowed.
    • If you choose the “use” option then all sub actions will be allowed.
  • Each action can have constraints by count or by date.
  • If using date, the format is YYYY-MM-DD or 2019-10-31 for October 31, 2019
  • When using download action it will count any artifact download for a solution as a download action.

Prohibited Actions:

  • Any actions you do not allow, for example, “transfer” the software to another party.

Download the file and send to the subscriber.

In our example, we can create an agreement for square model (solution id: b11dadf9-db03-43a8-94f4-e9f8155b8f42, revision id: 9f603957-b720-45f4-8b8e-512d081e9a5f) which we received from the URL parameters: https://<ACUMOS_PORTAL_URL>#/marketSolutions?solutionId=b11dadf9-db03-43a8-94f4-e9f8155b8f42&revisionId=9f603957-b720-45f4-8b8e-512d081e9a5f&parentUrl=marketplace using the RTU editor:

../../../_images/rtu-editor-agreement-companyb-companyz.png

Step 2: Supplier shares an agreement with Subscriber

  • Once the Open Digital Rights Language (ODRL) agreement is defined using the RTU Editor, Supplier can click the download button to save the ODRL RTU agreement.
  • Supplier shall share the ODRL RTU agreement with Subscriber.

Step 3: A subscriber reviews and saves agreement

Once Subscriber receives the ODRL RTU agreement from Supplier, The Subscriber can review the agreement by looking at the JSON or by use the RTU editor to import the ODRL RTU agreement and review.

If you have LUM service available under the same domain as the RTU editor then you can submit the agreement directly from the RTU editor.

../../../_images/rtu-editor-review.png

Add the user name in the last field and if RTU editor has been configured to work with LUM you can directly save to LUM.

Step 4: A subscriber add restrictions to an existing agreement

This step is optional. A subscriber can use this step if they want to assign team member’s user names to the agreement or further narrow the agreement’s permissions and prohibitions.

You must know the Supplier’s company name and the agreement Unique ID (or UID).

../../../_images/rtu-editor-restrictions.png

In above example, we are adding 2 users “consumer1” and “consumer2” and adding prohibitions of “transfer” and “aggregation”.

Troubleshooting Denial Messages

Did the software get registered with LUM during publishing?

you may see this denial if software was published before license usage manager was installed.

../../../_images/denial-message-no-swid-tag.png

– ie is there a SwidTag? yes or no?

If no republish the software or resubscribe to catalog. If yes you may need an agreement.

If you don’t have an agreement for the software you must get one from the supplier.

This is the denial message you will see if there is no agreement for the software:

../../../_images/denial-message-no-agreement.png

Do I need to create a new agreement with a software licensor?

There is no agreement in the agreement inventory that matches this SwTagId or asset collections (SwPersistentId/SolutionId, SwCatalogId, SwCatalogType, SwProductName, SwCategory).

Example agreement to resolve error:

{
  "assetUsageAgreement": {
    "softwareLicensorId": "Company B",
    "assetUsageAgreementId": "acumos://software-licensor/Company%20B/agreement/6653aab1-aca1-41c7-a246-d91a92693082",
    "agreement": {
      "@context": {
        "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
        "vcard": "http://www.w3.org/2006/vcard/ns#"
      },
      "@type": "Agreement",
      "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
      "assignee": {
        "@type": [
          "Party",
          "vcard:Organization"
        ],
        "vcard:hasUrl": "companyz.com",
        "vcard:fn": "Company Z",
        "vcard:hasEmail": "team@companyz.com"
      },
      "assigner": {
        "@type": [
          "Party",
          "vcard:Organization"
        ],
        "vcard:hasUrl": "companyb.com",
        "vcard:fn": "Company B",
        "vcard:hasEmail": "sales@companyb.com"
      },
      "target": {
        "refinement": [
          {
            "@type": "Constraint",
            "leftOperand": "lum:swTagId",
            "operator": "lum:in",
            "rightOperand": [
              "9f603957-b720-45f4-8b8e-512d081e9a5f)"
            ]
          }
        ],
        "@type": "Target"
      },
      "permission": [
        {
          "@type": "Rule",
          "action": [
            "acumos:deploy",
            "acumos:download"
          ],
          "constraint": [
            {
              "rightOperand": {
                "@value": "2019-12-31",
                "@type": "xsd:date"
              },
              "@type": "Constraint",
              "leftOperand": "date",
              "operator": "lt"
            }
          ],
          "uid": "acumos://software-licensor/Company%20B/permission/274f9e90-d1f9-41f8-ae2b-201a62769957"
        }
      ],
      "prohibition": [
        {
          "@type": "Rule",
          "action": [
            "transfer"
          ],
          "uid": "acumos://software-licensor/Company%20B/prohibition/f7785dea-7279-4207-9edc-09221b87d949"
        }
      ],
      "uid": "acumos://software-licensor/Company%20B/agreement/6653aab1-aca1-41c7-a246-d91a92693082"
    }
  }
}
../../../_images/supplier-company-b-agreement-in-editor.png

Do I need to have an amended agreement to include additional rights?

– Is there a close match such as there was an agreement
for a revision id but now I need a new agreement for new revision.

Are there restricted rights that need to be amended?

Was the target restricted by the restrictions vs supplier agreement?

Right to Use Open Digital Rights Language (ODRL) agreement examples

We have 7 different examples of license agreements:

  • Use solution all versions no transfer, aggregate
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com",
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:countUniqueUsers",
        "operator": "lteq",
        "rightOperand": {
          "@value": "10",
          "@type": "xsd:integer"
        }
      }
    ]
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swProductName",
        "operator": "lum:in",
        "rightOperand": [
          "face-detect"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "@type": "Rule",
      "action": [
        "acumos:deploy",
        "acumos:download",
        "modelrunner:predict",
        "modelrunner:train"
      ],
      "constraint": [
        {
          "@type": "Constraint",
          "leftOperand": "count",
          "operator": "lt",
          "rightOperand": {
            "@value": "100",
            "@type": "xsd:integer"
          }
        }
      ],
      "uid": "acumos://software-licensor/Company%20A/permission/98378924-84ff-41f5-87ac-02fd2012c727"
    }
  ],
  "prohibition": [
    {
      "@type": "Rule",
      "action": [
        "transfer",
        "aggregate"
      ],
      "uid": "acumos://software-licensor/Company%20A/prohibition/cb32d403-3d34-4468-9b41-1c1beaf4aba7"
    }
  ],
  "uid": "acumos://software-licensor/Company%20A/agreement/3eb8c43a-bf19-46ab-8392-99c7efdf4106"
}
  • Allow all software from a company
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com"
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "@type": "Rule",
      "action": [
        "use"
      ],
      "uid": "acumos://software-licensor/Company%20A/permission/715dc5af-4829-4457-98a3-37bde9ffdd17"
    }
  ],
  "uid": "acumos://software-licensor/Company%20A/agreement/eff30856-0695-4083-a832-59be5267a192"
}
  • Allow all software from a catalog
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com"
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swCatalogId",
        "operator": "lum:in",
        "rightOperand": [
          "6eb3ce3e-c4b6-46cd-b8a8-0991abf0413e",
          "10945603-2e8f-45a1-8912-7bdd0d4a6361"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "@type": "Rule",
      "action": [
        "use"
      ],
      "uid": "acumos://software-licensor/Company%20A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c"
    }
  ],
  "uid": "acumos://software-licensor/Company%20A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70"
}
  • Allow all software from public catalogs
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "uid": "acumos://software-licensor/Company%2520A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com"
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swCatalogType",
        "operator": "lum:in",
        "rightOperand": [
          "PB"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "uid": "acumos://software-licensor/Company%2520A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c",
      "@type": "Rule",
      "action": [
        "use"
      ]
    }
  ]
}
  • Face Detect Model - any usage
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "uid": "acumos://software-licensor/Company%252520A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com"
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swProductName",
        "operator": "lum:in",
        "rightOperand": [
          "face-detect-model"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "uid": "acumos://software-licensor/Company%252520A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c",
      "@type": "Rule",
      "action": [
        "use"
      ]
    }
  ]
}
  • Face Detect Model - specific version can be used
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "uid": "acumos://software-licensor/Company%25252520A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com"
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swProductName",
        "operator": "lum:in",
        "rightOperand": [
          "face-detect-model"
        ]
      },
      {
        "@type": "Constraint",
        "leftOperand": "lum:swTagId",
        "operator": "lum:in",
        "rightOperand": [
          "edc76757-cd54-4256-9c3d-f865d88db1ff"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "uid": "acumos://software-licensor/Company%25252520A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c",
      "@type": "Rule",
      "action": [
        "use"
      ]
    }
  ]
}
  • Face Detect Model - specific version, 10 users, expires, constrained actions, some prohibited actions.
{
  "@context": {
    "@vocab": "https://www.w3.org/ns/odrl.jsonld#",
    "vcard": "http://www.w3.org/2006/vcard/ns#"
  },
  "$schema": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.1/rtu-agreement.json",
  "@type": "Agreement",
  "uid": "acumos://software-licensor/Company%2525252520A/agreement/487b1c01-b017-4516-85bc-9ad9610dfa70",
  "assignee": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companyb.com/team",
    "vcard:fn": "Company B",
    "vcard:hasEmail": "team@companyb.com",
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:countUniqueUsers",
        "operator": "lteq",
        "rightOperand": {
          "@value": "10",
          "@type": "xsd:integer"
        }
      }
    ]
  },
  "assigner": {
    "@type": [
      "Party",
      "vcard:Organization"
    ],
    "vcard:hasUrl": "companya.com",
    "vcard:fn": "Company A",
    "vcard:hasEmail": "sales@companya.com"
  },
  "target": {
    "refinement": [
      {
        "@type": "Constraint",
        "leftOperand": "lum:swProductName",
        "operator": "lum:in",
        "rightOperand": [
          "face-detect-model"
        ]
      },
      {
        "@type": "Constraint",
        "leftOperand": "lum:swTagId",
        "operator": "lum:in",
        "rightOperand": [
          "edc76757-cd54-4256-9c3d-f865d88db1ff"
        ]
      }
    ],
    "@type": "Target"
  },
  "permission": [
    {
      "uid": "acumos://software-licensor/Company%2525252520A/permission/1a21e418-ecd5-41b6-936f-78c707105b3c",
      "@type": "Rule",
      "action": [
        "acumos:deploy",
        "acumos:download"
      ],
      "constraint": [
        {
          "@type": "Constraint",
          "leftOperand": "count",
          "operator": "lt",
          "rightOperand": {
            "@value": "10",
            "@type": "xsd:integer"
          }
        },
        {
          "@type": "Constraint",
          "leftOperand": "date",
          "operator": "lt",
          "rightOperand": {
            "@value": "01-01-2020",
            "@type": "xsd:date"
          }
        }
      ]
    },
    {
      "@type": "Rule",
      "action": [
        "modelrunner:predict",
        "modelrunner:train"
      ],
      "constraint": [
        {
          "@type": "Constraint",
          "leftOperand": "date",
          "operator": "lt",
          "rightOperand": {
            "@value": "01-01-2020",
            "@type": "xsd:date"
          }
        }
      ],
      "uid": "acumos://software-licensor/Company%20A/permission/c7cb9a72-86d1-4fe3-87e6-0c275fcd2a29"
    }
  ],
  "prohibition": [
    {
      "@type": "Rule",
      "action": [
        "transfer",
        "aggregate"
      ],
      "uid": "acumos://software-licensor/Company%20A/prohibition/85d7767c-f9db-4b95-a395-1c94bd23c1be"
    }
  ]
}

These should be customized for your licensing agreements. The license rtu editor has a shortcut where you can click on the example button to auto fill with these examples.

License RTU agreement Json Schema 1.0.1

The schema for the license rtu agreement - the supplier creates:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "schemaType": "rtu",
  "version": "1.0.1",
  "required": [
    "@context",
    "@type",
    "$schema",
    "target",
    "assignee",
    "assigner",
    "permission"
  ],
  "properties": {
    "@context": {
      "$id": "#/properties/@context",
      "type": "object",
      "title": "The @context Schema",
      "required": [
        "@vocab",
        "vcard"
      ],
      "properties": {
        "@vocab": {
          "$id": "#/properties/@context/properties/@vocab",
          "type": "string",
          "title": "The @vocab Schema",
          "default": "https://www.w3.org/ns/odrl.jsonld#",
          "examples": [
            "https://www.w3.org/ns/odrl.jsonld"
          ],
          "pattern": "^(.*)$"
        },
        "vcard": {
          "$id": "#/properties/@context/properties/vcard",
          "type": "string",
          "title": "The Vcard Schema",
          "default": "http://www.w3.org/2006/vcard/ns#",
          "examples": [
            "http://www.w3.org/2006/vcard/ns#"
          ],
          "pattern": "^(.*)$"
        }
      }
    },
    "@type": {
      "$id": "#/properties/@type",
      "type": "string",
      "title": "The @type Schema",
      "default": "Agreement",
      "examples": [
        ""
      ],
      "pattern": "^(.*)$"
    },
    "$schema": {
      "type": "string",
      "default": "https://raw.githubusercontent.com/acumos/license-manager/master/license-rtu-editor/src/assets/schema/1.0.0/rtu-agreement.json"
    },
    "uid": {
      "$id": "#/properties/uid",
      "type": "string",
      "title": "Agreement UID",
      "default": "",
      "examples": [
        "acumos://software-licensor/CompanyB/agreement/<target-uuid>"
      ],
      "pattern": "^(.*)$"
    },
    "assignee": {
      "$id": "#/properties/assignee",
      "type": "object",
      "title": "Subscriber",
      "required": [
        "@type",
        "vcard:fn",
        "vcard:hasEmail",
        "vcard:hasUrl"
      ],
      "properties": {
        "@type": {
          "$id": "#/properties/assignee/properties/@type",
          "type": "array",
          "title": "The @type Schema",
          "default": ["Party","vcard:Organization"],
          "items": {
            "$id": "#/properties/assignee/properties/@type/items",
            "type": "string",
            "title": "The Items Schema",
            "default": "Party",
            "examples": [
              "Party",
              "vcard:Organization"
            ],
            "pattern": "^(.*)$"
          }
        },
        "vcard:hasUrl": {
          "$id": "#/properties/assignee/properties/vcard:hasUrl",
          "type": "string",
          "title": "Company/Team URL",
          "default": "",
          "examples": [
            "http://example.com/team/A"
          ],
          "pattern": "^(.*)$"
        },
        "vcard:fn": {
          "$id": "#/properties/assignee/properties/vcard:fn",
          "type": "string",
          "title": "Company / Team Name",
          "default": "",
          "examples": [
            "Team A"
          ],
          "pattern": "^(.*)$"
        },
        "vcard:hasEmail": {
          "$id": "#/properties/assignee/properties/vcard:hasEmail",
          "type": "string",
          "title": "Email",
          "default": "",
          "examples": [
            "teamA@example.com"
          ],
          "pattern": "^(.*)$"
        },
        "refinement": {
          "$id": "#/properties/assignee/properties/refinement",
          "type": "array",
          "title": "Assignee Refinement(s)",
          "items": {
            "$id": "#/properties/assignee/properties/refinement/items",
            "type": "object",
            "title": "The Items Schema",
            "required": [
              "@type",
              "leftOperand",
              "operator",
              "rightOperand"
            ],
            "properties": {
              "@type": {
                "$id": "#/properties/assignee/properties/refinement/items/properties/@type",
                "type": "string",
                "title": "The @type Schema",
                "default": "Constraint",
                "examples": [
                  "Constraint"
                ],
                "pattern": "^(.*)$"
              },
              "leftOperand": {
                "$id": "#/properties/assignee/properties/refinement/items/properties/leftOperand",
                "type": "string",
                "title": "Refine Assignee by",
                "default":  "lum:countUniqueUsers",
                "enum": [
                  "lum:countUniqueUsers"
                ],
                "examples": [
                  "lum:countUniqueUsers"
                ],
                "pattern": "^(.*)$"
              },
              "operator": {
                "$id": "#/properties/assignee/properties/refinement/items/properties/operator",
                "type": "string",
                "title": "Operator",
                "default": "lteq",
                "enum": [
                  "lteq"
                ],
                "pattern": "^(.*)$"
              },
              "rightOperand": {
                "$id": "#/properties/assignee/properties/refinement/items/properties/rightOperand",
                "type": "object",
                "title": "Limited to value",
                "required": [
                  "@value"
                ],
                "properties": {
                  "@value": {
                    "$id": "#/properties/assignee/properties/refinement/items/properties/rightOperand/properties/@value",
                    "type": "string",
                    "title": "Limited to",
                    "default": "",
                    "examples": [
                      "1"
                    ],
                    "pattern": "^(.*)$"
                  },
                  "@type": {
                    "$id": "#/properties/assignee/properties/refinement/items/properties/rightOperand/properties/@type",
                    "type": "string",
                    "title": "Data format",
                    "default": "xsd:integer",
                    "examples": [
                      "xsd:integer"
                    ],
                    "pattern": "^(.*)$"
                  }
                }
              }
            }
          }
        }
      }
    },
    "assigner": {
      "$id": "#/properties/assigner",
      "type": "object",
      "title": "Supplier",
      "required": [
        "@type",
        "vcard:fn",
        "vcard:hasEmail",
        "vcard:hasUrl"

      ],
      "properties": {
        "@type": {
          "$id": "#/properties/assigner/properties/@type",
          "type": "array",
          "default": ["Party","vcard:Organization"],
          "title": "The @type Schema",
          "items": {
            "$id": "#/properties/assigner/properties/@type/items",
            "type": "string",
            "title": "The Items Schema",
            "default": "Party",
            "examples": [
              "Party",
              "vcard:Organization"
            ],
            "pattern": "^(.*)$"
          }
        },

        "uid": {
          "$id": "#/properties/assigner/properties/uid",
          "type": "string",
          "title": "Assignee UID",
          "default": "",
          "examples": [
            "acumos://software-licensor/CompanyB/assigner/<target-uuid>"
          ],
          "pattern": "^(.*)$"
        },
        "vcard:hasUrl": {
          "$id": "#/properties/assigner/properties/vcard:hasUrl",
          "type": "string",
          "title": "Company/Team URL",
          "default": "",
          "examples": [
            "http://example.com/team/A"
          ],
          "pattern": "^(.*)$"
        },
        "vcard:fn": {
          "$id": "#/properties/assigner/properties/vcard:fn",
          "type": "string",
          "title": "Company name",
          "default": "",
          "examples": [
            "Company A"
          ],
          "pattern": "^(.*)$"
        },
        "vcard:hasEmail": {
          "$id": "#/properties/assigner/properties/vcard:hasEmail",
          "type": "string",
          "title": "Email ",
          "default": "",
          "examples": [
            "sales@companya.com"
          ],
          "pattern": "^(.*)$"
        }
      }
    },
    "target": {
      "$id": "#/properties/target",
      "type": "object",
      "title": "Target Asset(s) or Asset Collection(s) ",
      "required": [
        "@type",
        "refinement"
      ],
      "properties": {
        "@type": {
          "$id": "#/properties/target/properties/@type",
          "type": "string",
          "title": "Target",
          "default": "Target",
          "examples": [
            ""
          ],
          "pattern": "^(.*)$"
        },
        "refinement": {
          "$id": "#/properties/target/items/properties/refinement",
          "type": "array",
          "title": "",
          "items": {
            "$id": "#/properties/target/items/properties/refinement/items",
            "type": "object",
            "title": "The Items Schema",
            "required": [
              "@type",
              "leftOperand",
              "operator",
              "rightOperand"
            ],
            "properties": {
              "@type": {
                "$id": "#/properties/target/items/properties/refinement/items/properties/@type",
                "type": "string",
                "title": "The @type Schema",
                "default": "Constraint",
                "examples": [
                  "refinement"
                ],
                "pattern": "^(.*)$"
              },
              "leftOperand": {
                "$id": "#/properties/target/items/properties/refinement/items/properties/leftOperand",
                "type": "string",
                "title": "Refine Target by",
                "default": "lum:swPersistentId",
                "enum": [
                  "lum:swPersistentId",
                  "lum:swTagId",
                  "lum:swProductName",
                  "lum:swCategory",
                  "lum:swCatalogId",
                  "lum:swCatalogType"
                ],
                "examples": [
                  "lum:swPersistentId"
                ],
                "pattern": "^(.*)$"
              },
              "operator": {
                "$id": "#/properties/target/items/properties/refinement/items/properties/operator",
                "type": "string",
                "title": "Operator",
                "default": "lum:in",
                "enum": [
                  "lum:in"
                ],
                "examples": [
                  "lum:in"
                ],
                "pattern": "^(.*)$"
              },
              "rightOperand": {
                "$id": "#/properties/target/items/properties/refinement/items/properties/rightOperand",
                "type": "array",
                "title": "Target Identifier(s) *",
                "items": {
                  "$id": "#/properties/target/items/properties/refinement/items/properties/rightOperand/items",
                  "type": "string",
                  "title": "Target Identifier"
                }
              }
            }
          }
        }
      }
    },
    "permission": {
      "$id": "#/properties/permission",
      "type": "array",
      "title": "Permitted Usage",
      "items": {
        "$id": "#/properties/permission/items",
        "type": "object",
        "title": "The Items Schema",
        "required": [
          "@type",
          "action"
        ],
        "properties": {
          "uid": {
            "type": "string",
            "examples": ["acumos://software-licensor/CompanyB/permission/<target-uuid>"
            ]
          },
          "@type": {
            "$id": "#/properties/permission/items/properties/@type",
            "type": "string",
            "title": "The @type Schema",
            "default": "Rule",
            
            "examples": [
              "Rule"
            ],
            "pattern": "^(.*)$"
          },
          "action": {
            "$id": "#/properties/permission/items/properties/action",
            "type": "array",
            "title": "Actions",
            "default": ["acumos:download"],
            "items": {
              "$id": "#/properties/permission/items/properties/action/items",
              "type": "string",
              "title": "Actions",
              "default": "acumos:download",
              "enum": [
                "use",
                "transfer",
                "aggregate",
                "acumos:deploy",
                "acumos:download",
                "modelrunner:predict",
                "modelrunner:train"
              ]
            }
          },
          "constraint": {
            "$id": "#/properties/permission/items/properties/constraint",
            "type": "array",
            "title": "Action(s) Constraints",
            "items": {
              "$id": "#/properties/permission/items/properties/constraint/items",
              "type": "object",
              "title": "The Items Schema",
              "required": [
                "@type",
                "leftOperand",
                "operator",
                "rightOperand"
              ],
              "properties": {
                "uid": {
                  "type": "string",
                  "examples": ["acumos://software-licensor/CompanyB/constraint/<target-uuid>"
                  ]
                },
                "@type": {
                  "$id": "#/properties/permission/items/properties/constraint/items/properties/@type",
                  "type": "string",
                  "title": "The @type Schema",
                  "default": "Constraint",
                  "examples": [
                    "Constraint"
                  ],
                  "pattern": "^(.*)$"
                },
                "leftOperand": {
                  "$id": "#/properties/permission/items/properties/constraint/items/properties/leftOperand",
                  "type": "string",
                  "title": "Limit use by",
                  "default": "count",
                  "enum": [
                    "count",
                    "date"
                  ],
                  "examples": [
                    "date"
                  ],
                  "pattern": "^(.*)$"
                },
                "operator": {
                  "$id": "#/properties/permission/items/properties/constraint/items/properties/operator",
                  "type": "string",
                  "title": "Operator",
                  "default": "lt",
                  "enum": [
                    "eq",
                    "gt",
                    "gteq",
                    "lt",
                    "lteq",
                    "lum:in"
                  ],
                  "examples": [
                    "lt"
                  ],
                  "pattern": "^(.*)$"
                },
                "rightOperand": {
                  "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand",
                  "type": "object",
                  "title": "Limited to value",
                  "required": [
                    "@value"
                  ],
                  "properties": {
                    "@value": {
                      "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand/properties/@value",
                      "type": "string",
                      "title": "Limited to",
                      "default": "",
                      "examples": [
                        "2019-12-31"
                      ],
                      "pattern": "^(.*)$"
                    },
                    "@type": {
                      "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand/properties/@type",
                      "type": "string",
                      "title": "Data format",
                      "default": "xsd:integer",
                      "enum": [
                        "xsd:integer",
                        "xsd:date"
                      ],
                      "examples": [
                        "xsd:date"
                      ],
                      "pattern": "^(.*)$"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "prohibition": {
      "$id": "#/properties/prohibition",
      "type": "array",
      "title": "Prohibited Usage",
      "items": {
        "$id": "#/properties/prohibition/items",
        "type": "object",
        "title": "The Items Schema",
        "required": [
          "@type",
          "action"
        ],
        "properties": {
          "@type": {
            "$id": "#/properties/prohibition/items/properties/@type",
            "type": "string",
            "title": "The @type Schema",
            "default": "Rule",
            "examples": [
              "Rule"
            ],
            "pattern": "^(.*)$"
          },
          "action": {
            "$id": "#/properties/prohibition/items/properties/action",
            "type": "array",
            "title": "Prohibited Actions",
            "default": ["transfer"],
            "items": {
              "$id": "#/properties/prohibition/items/properties/action/items",
              "type": "string",
              "title": "Prohibited Actions",
              "default": "transfer",
              "enum": [
                "use",
                "transfer",
                "aggregate",
                "acumos:deploy",
                "acumos:download",
                "modelrunner:predict",
                "modelrunner:train"
              ]
            }
          }
        }
      }
    }
  }
}

License RTU agreement restrictions Json Schema 1.0.1

The schema for the license rtu agreement restrictions - the subscriber creates:

{
    "definitions": {},
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "http://example.com/root.json",
    "type": "object",
    "title": "The Root Schema",
    "schemaType": "restrictions",
    "version": "1.0.1",
    "required": [
      "@context",
      "@type",
      "$schema"
    ],
    "properties": {
      "@context": {
        "$id": "#/properties/@context",
        "type": "object",
        "title": "The @context Schema",
        "required": [
          "@vocab",
          "vcard"
        ],
        "properties": {
          "@vocab": {
            "$id": "#/properties/@context/properties/@vocab",
            "type": "string",
            "title": "The @vocab Schema",
            "default": "https://www.w3.org/ns/odrl.jsonld#",
            "examples": [
              "https://www.w3.org/ns/odrl.jsonld"
            ],
            "pattern": "^(.*)$"
          },
          "vcard": {
            "$id": "#/properties/@context/properties/vcard",
            "type": "string",
            "title": "The Vcard Schema",
            "default": "http://www.w3.org/2006/vcard/ns#",
            "examples": [
              "http://www.w3.org/2006/vcard/ns#"
            ],
            "pattern": "^(.*)$"
          }
        }
      },
      "@type": {
        "$id": "#/properties/@type",
        "type": "string",
        "title": "The @type Schema",
        "default": "AgreementRestriction",
        "examples": [
          ""
        ],
        "pattern": "^(.*)$"
      },
      "$schema": {
        "type": "string",
        "default": "assets/schema/1.0.0/rtu-restrictions.json"
      },
      "uid": {
        "$id": "#/properties/uid",
        "type": "string",
        "title": "Agreement UID",
        "default": "",
        "examples": [
          "acumos://software-licensor/CompanyB/agreement/<target-uuid>"
        ],
        "pattern": "^(.*)$"
      },
      "assignee": {
        "$id": "#/properties/assignee",
        "type": "object",
        "title": "Subscriber",
        "required": [
          "@type"
        ],
        "properties": {
          "@type": {
            "$id": "#/properties/assignee/properties/@type",
            "type": "array",
            "title": "The @type Schema",
            "default": ["Party","vcard:Organization"],
            "items": {
              "$id": "#/properties/assignee/properties/@type/items",
              "type": "string",
              "title": "The Items Schema",
              "default": "Party",
              "examples": [
                "Party",
                "vcard:Organization"
              ],
              "pattern": "^(.*)$"
            }
          },
          "refinement": {
            "$id": "#/properties/assignee/properties/refinement",
            "type": "array",
            "title": "Assignee Refinement(s)",
            "items": {
              "$id": "#/properties/assignee/properties/refinement/items",
              "type": "object",
              "title": "The Items Schema",
              "required": [
                "@type",
                "leftOperand",
                "operator",
                "rightOperand"
              ],
              "properties": {
                "@type": {
                  "$id": "#/properties/assignee/properties/refinement/items/properties/@type",
                  "type": "string",
                  "title": "The @type Schema",
                  "default": "Constraint",
                  "examples": [
                    "Constraint"
                  ],
                  "pattern": "^(.*)$"
                },
                "leftOperand": {
                  "$id": "#/properties/assignee/properties/refinement/items/properties/leftOperand",
                  "type": "string",
                  "title": "Refine Assignee by",
                  "default":  "lum:users",
                  "enum": [
                    "lum:users"
                  ],
                  "examples": [
                    "lum:users"
                  ],
                  "pattern": "^(.*)$"
                },
                "operator": {
                  "$id": "#/properties/assignee/properties/refinement/items/properties/operator",
                  "type": "string",
                  "title": "Operator",
                  "default": "lum:in",
                  "enum": [
                    "lum:in"
                  ],
                  "pattern": "^(.*)$"
                },
                "rightOperand": {
                  "$id": "#/properties/assignee/properties/refinement/items/properties/rightOperand",
                  "type": "array",
                  "title": "Target Identifier(s) *",
                  "items": {
                    "$id": "#/properties/assignee/properties/refinement/items/properties/rightOperand/items",
                    "type": "string",
                    "title": "Target Identifier"
                  }
                }
              }
            }
          }
        }
      },
      "target": {
        "$id": "#/properties/target",
        "type": "object",
        "title": "Target Asset(s) or Asset Collection(s) ",
        "required": [
          "@type"
        ],
        "properties": {
          "@type": {
            "$id": "#/properties/target/properties/@type",
            "type": "string",
            "title": "Target",
            "default": "Target",
            "examples": [
              ""
            ],
            "pattern": "^(.*)$"
          },
          "refinement": {
            "$id": "#/properties/target/items/properties/refinement",
            "type": "array",
            "title": "",
            "items": {
              "$id": "#/properties/target/items/properties/refinement/items",
              "type": "object",
              "title": "The Items Schema",
              "required": [
                "@type",
                "leftOperand",
                "operator",
                "rightOperand"
              ],
              "properties": {
                "@type": {
                  "$id": "#/properties/target/items/properties/refinement/items/properties/@type",
                  "type": "string",
                  "title": "The @type Schema",
                  "default": "Constraint",
                  "examples": [
                    "refinement"
                  ],
                  "pattern": "^(.*)$"
                },
                "leftOperand": {
                  "$id": "#/properties/target/items/properties/refinement/items/properties/leftOperand",
                  "type": "string",
                  "title": "Refine Target by",
                  "default": "lum:swPersistentId",
                  "enum": [
                    "lum:swPersistentId",
                    "lum:swTagId",
                    "lum:swProductName",
                    "lum:swCategory",
                    "lum:swCatalogId",
                    "lum:swCatalogType"
                  ],
                  "examples": [
                    "lum:swPersistentId"
                  ],
                  "pattern": "^(.*)$"
                },
                "operator": {
                  "$id": "#/properties/target/items/properties/refinement/items/properties/operator",
                  "type": "string",
                  "title": "Operator",
                  "default": "lum:in",
                  "enum": [
                    "lum:in"
                  ],
                  "examples": [
                    "lum:in"
                  ],
                  "pattern": "^(.*)$"
                },
                "rightOperand": {
                  "$id": "#/properties/target/items/properties/refinement/items/properties/rightOperand",
                  "type": "array",
                  "title": "Target Identifier(s) *",
                  "items": {
                    "$id": "#/properties/target/items/properties/refinement/items/properties/rightOperand/items",
                    "type": "string",
                    "title": "Target Identifier"
                  }
                }
              }
            }
          }
        }
      },
      "permission": {
        "$id": "#/properties/permission",
        "type": "array",
        "title": "Permitted Usage",
        "items": {
          "$id": "#/properties/permission/items",
          "type": "object",
          "title": "The Items Schema",
          "required": [
            "@type"
          ],
          "properties": {
            "uid": {
              "type": "string",
              "examples": ["acumos://software-licensor/CompanyB/permission/<target-uuid>"
              ]
            },
            "@type": {
              "$id": "#/properties/permission/items/properties/@type",
              "type": "string",
              "title": "The @type Schema",
              "default": "Rule",
              
              "examples": [
                "Rule"
              ],
              "pattern": "^(.*)$"
            },
            "action": {
              "$id": "#/properties/permission/items/properties/action",
              "type": "array",
              "title": "Actions",
              "default": [],
              "items": {
                "$id": "#/properties/permission/items/properties/action/items",
                "type": "string",
                "title": "Actions",
                "default": "",
                "enum": [
                  "use",
                  "transfer",
                  "aggregate",
                  "acumos:deploy",
                  "acumos:download",
                  "modelrunner:predict",
                  "modelrunner:train"
                ]
              }
            },
            "constraint": {
              "$id": "#/properties/permission/items/properties/constraint",
              "type": "array",
              "title": "Action(s) Constraints",
              "items": {
                "$id": "#/properties/permission/items/properties/constraint/items",
                "type": "object",
                "title": "The Items Schema",
                "required": [
                  "@type",
                  "leftOperand",
                  "operator",
                  "rightOperand"
                ],
                "properties": {
                  "uid": {
                    "type": "string",
                    "examples": ["acumos://software-licensor/CompanyB/constraint/<target-uuid>"
                    ]
                  },
                  "@type": {
                    "$id": "#/properties/permission/items/properties/constraint/items/properties/@type",
                    "type": "string",
                    "title": "The @type Schema",
                    "default": "Constraint",
                    "examples": [
                      "Constraint"
                    ],
                    "pattern": "^(.*)$"
                  },
                  "leftOperand": {
                    "$id": "#/properties/permission/items/properties/constraint/items/properties/leftOperand",
                    "type": "string",
                    "title": "Limit use by",
                    "default": "count",
                    "enum": [
                      "count",
                      "date"
                    ],
                    "examples": [
                      "date"
                    ],
                    "pattern": "^(.*)$"
                  },
                  "operator": {
                    "$id": "#/properties/permission/items/properties/constraint/items/properties/operator",
                    "type": "string",
                    "title": "Operator",
                    "default": "lt",
                    "enum": [
                      "eq",
                      "gt",
                      "gteq",
                      "lt",
                      "lteq",
                      "lum:in"
                    ],
                    "examples": [
                      "lt"
                    ],
                    "pattern": "^(.*)$"
                  },
                  "rightOperand": {
                    "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand",
                    "type": "object",
                    "title": "Limited to value",
                    "required": [
                      "@value"
                    ],
                    "properties": {
                      "@value": {
                        "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand/properties/@value",
                        "type": "string",
                        "title": "Limited to",
                        "default": "",
                        "examples": [
                          "2019-12-31"
                        ],
                        "pattern": "^(.*)$"
                      },
                      "@type": {
                        "$id": "#/properties/permission/items/properties/constraint/items/properties/rightOperand/properties/@type",
                        "type": "string",
                        "title": "Data format",
                        "default": "xsd:integer",
                        "enum": [
                          "xsd:integer",
                          "xsd:date"
                        ],
                        "examples": [
                          "xsd:date"
                        ],
                        "pattern": "^(.*)$"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "prohibition": {
        "$id": "#/properties/prohibition",
        "type": "array",
        "title": "Prohibited Usage",
        "items": {
          "$id": "#/properties/prohibition/items",
          "type": "object",
          "title": "The Items Schema",
          "required": [
            "@type",
            "action"
          ],
          "properties": {
            "@type": {
              "$id": "#/properties/prohibition/items/properties/@type",
              "type": "string",
              "title": "The @type Schema",
              "default": "Rule",
              "examples": [
                "Rule"
              ],
              "pattern": "^(.*)$"
            },
            "action": {
              "$id": "#/properties/prohibition/items/properties/action",
              "type": "array",
              "title": "Prohibited Actions",
              "default": ["transfer"],
              "items": {
                "$id": "#/properties/prohibition/items/properties/action/items",
                "type": "string",
                "title": "Prohibited Actions",
                "default": "transfer",
                "enum": [
                  "use",
                  "transfer",
                  "aggregate",
                  "acumos:deploy",
                  "acumos:download",
                  "modelrunner:predict",
                  "modelrunner:train"
                ]
              }
            }
          }
        }
      }
    }
  }