PluginRegistrationSchema.json

{
  "$id": "https://github.com/WaelHamze/xrm-ci-framework/blob/master/MSDYNV9/Xrm.Framework.CI/Xrm.Framework.CI.PowerShell.Cmdlets/PluginRegistration/PluginRegistrationSchema.json",
  "type": "object",
  "properties": {
    "Id": {
      "$id": "/properties/Id",
      "type": "string",
      "title": "The Guid of the assembly",
      "description": "The Guid of the assembly we want to register",
      "default": "",
      "examples": [
        "{7FA750EC-5AB6-48C0-ACD0-1F6AD9625953}"
      ]
    },
    "Name": {
      "$id": "/properties/Name",
      "type": "string",
      "title": "The Assembly Name",
      "description": "The name of assembly which we want to register",
      "default": "",
      "examples": [
        "CrmVSSolution.plugin.dll"
      ]
    },
    "IsolationMode": {
      "$id": "/properties/IsolationMode",
      "type": "string",
      "title": "The Isolation Mode Assembly",
      "default": "Sandbox",
      "enum": [
        "None",
        "Sandbox",
        "External"
      ]
    },
    "SourceType": {
      "$id": "/properties/SourceType",
      "type": "string",
      "title": "The Source Type of Assembly",
      "description": "",
      "default": "Database",
      "examples": [
        "Database"
      ],
      "enum": [
        "Database",
        "Disk",
        "Normal",
        "AzureWebApp"
      ]
    },
    "PluginTypes": {
      "$id": "/properties/PluginTypes",
      "type": "array",
      "items": {
        "$id": "/properties/PluginTypes/items",
        "type": "object",
        "properties": {
          "Description": {
            "$id": "/properties/PluginTypes/items/properties/Description",
            "type": [
              "string",
              "null"
            ],
            "title": "The Description of Plugin/Workflow Type",
            "default": null,
            "examples": [
              null
            ]
          },
          "Id": {
            "$id": "/properties/PluginTypes/items/properties/Id",
            "type": "string",
            "title": "The Guid of the Plugin/Workflow type",
            "description": "The Guid of the Plugin/Workflow type we want to register",
            "default": "",
            "examples": [
              "{7FA750EC-5AB6-48C0-ACD0-1F6AD9625954}"
            ]
          },
          "Name": {
            "$id": "/properties/PluginTypes/items/properties/Name",
            "type": "string",
            "title": "The Name of Plugin/Workflow Type",
            "default": "",
            "examples": [
              "CrmVSSolution.plugin.AccountNumberPlugin"
            ]
          },
          "FriendlyName": {
            "$id": "/properties/PluginTypes/items/properties/FriendlyName",
            "type": "string",
            "title": "The Friendly name of Plugin/Workflow Type",
            "default": "",
            "examples": [
              "d2b579ca-0adf-4291-a069-b167687c39c8"
            ]
          },
          "TypeName": {
            "$id": "/properties/PluginTypes/items/properties/TypeName",
            "type": "string",
            "title": "The Typename of Plugin/Workflow Type",
            "default": "",
            "examples": [
              "CrmVSSolution.plugin.AccountNumberPlugin"
            ]
          },
          "WorkflowActivityGroupName": {
            "$id": "/properties/PluginTypes/items/properties/WorkflowActivityGroupName",
            "type": [ "string", "null" ],
            "title": "The Workflow activity group name used only for workflow registration",
            "default": "",
            "examples": [
              "ActivityGroup"
            ]
          },
          "Steps": {
            "$id": "/properties/PluginTypes/items/properties/Steps",
            "type": "array",
            "items": {
              "$id": "/properties/PluginTypes/items/properties/Steps/items",
              "type": "object",
              "properties": {
                "Id": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Id",
                  "type": "string",
                  "title": "The Id of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "{7FA750EC-5AB6-48C0-ACD0-1F6AD9625955}"
                  ]
                },
                "Name": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Name",
                  "type": "string",
                  "title": "The Name of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "Update of account"
                  ]
                },
                "MessageName": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/MessageName",
                  "type": "string",
                  "title": "The Message name of Plugin step to register",
                  "description": "Please refer message names from https://msdn.microsoft.com/en-us/library/gg328576.aspx",
                  "default": "",
                  "examples": [
                    "Update"
                  ]
                },
                "Description": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Description",
                  "type": "string",
                  "title": "The Description of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "Update of account"
                  ]
                },
                "CustomConfiguration": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/CustomConfiguration",
                  "type": [
                    "string",
                    "null"
                  ],
                  "title": "The Unsecure custom configuration of Plugin step to register",
                  "default": null,
                  "examples": [
                    null
                  ]
                },
                "FilteringAttributes": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/FilteringAttributes",
                  "type": [
                    "string",
                    "null"
                  ],
                  "title": "The Filtering attributes of Plugin step to register ",
                  "default": null,
                  "examples": [
                    null
                  ]
                },
                "ImpersonatingUserFullname": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/ImpersonatingUserFullname",
                  "type": [
                    "string",
                    "null"
                  ],
                  "title": "The Impersonating user fullname of Plugin step to register ",
                  "default": null,
                  "examples": [
                    null
                  ]
                },
                "Mode": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Mode",
                  "type": "string",
                  "title": "The Mode of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "Synchronous"
                  ],
                  "enum": [
                    "Synchronous",
                    "Asynchronous"
                  ]
                },
                "PrimaryEntityName": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/PrimaryEntityName",
                  "type": "string",
                  "title": "The Primary entity name of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "account"
                  ]
                },
                "Rank": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Rank",
                  "type": "integer",
                  "title": "The Rank of Plugin step to register ",
                  "default": 0,
                  "examples": [
                    1
                  ]
                },
                "Stage": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Stage",
                  "type": "string",
                  "title": "The Stage of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "Preoperation"
                  ],
                  "enum": [
                    "Prevalidation",
                    "Preoperation",
                    "Postoperation",
                    "Postoperation_Deprecate"
                  ]
                },
                "SupportedDeployment": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/SupportedDeployment",
                  "type": "string",
                  "title": "The Supported deployment of Plugin step to register ",
                  "default": "ServerOnly",
                  "examples": [
                    "ServerOnly"
                  ],
                  "enum": [
                    "ServerOnly",
                    "MicrosoftDynamics365Clien",
                    "Both"
                  ]
                },
                "StateCode": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/StateCode",
                  "type": "string",
                  "title": "The State Code of Plugin step to register ",
                  "default": "",
                  "examples": [
                    "Enabled"
                  ],
                  "enum": [
                    "Enabled",
                    "Disabled"
                  ]
                },
                "AsyncAutoDelete": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/AsyncAutoDelete",
                  "type": "boolean",
                  "title": "The AsyncAutoDelete of Plugin step to register ",
                  "default": "",
                  "examples": [
                    false
                  ]
                },
                "Images": {
                  "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images",
                  "type": "array",
                  "items": {
                    "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items",
                    "type": "object",
                    "properties": {
                      "Id": {
                        "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items/properties/Id",
                        "type": "string",
                        "title": "The Id of plugin image to register",
                        "default": "",
                        "examples": [
                          "{0D4644A0-FA6E-485F-B191-780912A48BA7}"
                        ]
                      },
                      "Attributes": {
                        "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items/properties/Attributes",
                        "type": "string",
                        "title": "The Attributes of plugin image to register",
                        "default": "",
                        "examples": [
                          "accountnumber,accountratingcode"
                        ]
                      },
                      "EntityAlias": {
                        "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items/properties/EntityAlias",
                        "type": "string",
                        "title": "The Entity alias of plugin image to register",
                        "default": "",
                        "examples": [
                          "PostImage"
                        ]
                      },
                      "MessagePropertyName": {
                        "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items/properties/MessagePropertyName",
                        "type": "string",
                        "title": "The Message property name of plugin image to register",
                        "default": "Target",
                        "examples": [
                          "Target"
                        ]
                      },
                      "ImageType": {
                        "$id": "/properties/PluginTypes/items/properties/Steps/items/properties/Images/items/properties/ImageType",
                        "type": "string",
                        "title": "The Image type of plugin image to register",
                        "default": "",
                        "examples": [
                          "PreImage"
                        ],
                        "enum": [
                          "PreImage",
                          "PostImage",
                          "Both"
                        ]
                      }
                    },
                    "required": [
                      "Attributes",
                      "EntityAlias",
                      "ImageType"
                    ]
                  }
                }
              },
              "required": [
                "Name",
                "MessageName",
                "Mode",
                "PrimaryEntityName",
                "Stage",
                "SupportedDeployment"
              ]
            }
          }
        },
        "required": [
          "Name",
          "TypeName"
        ]
      }
    }
  }
}