301 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			JSON
		
	
	
	
			
		
		
	
	
			301 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			JSON
		
	
	
	
{
 | 
						|
  "$schema": "https://json-schema.org/draft/2020-12/schema",
 | 
						|
  "$id": "https://github.com/dapr/components-contrib/build-tools/pkg/metadataschema/component-metadata",
 | 
						|
  "$defs": {
 | 
						|
    "AuthenticationProfile": {
 | 
						|
      "properties": {
 | 
						|
        "title": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Title of the authentication profile."
 | 
						|
        },
 | 
						|
        "description": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Additional description for the authentication profile, optional."
 | 
						|
        },
 | 
						|
        "metadata": {
 | 
						|
          "items": {
 | 
						|
            "$ref": "#/$defs/Metadata"
 | 
						|
          },
 | 
						|
          "type": "array",
 | 
						|
          "description": "Metadata options applicable when using this authentication profile."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "title",
 | 
						|
        "description"
 | 
						|
      ],
 | 
						|
      "description": "AuthenticationProfile is the type for an authentication profile."
 | 
						|
    },
 | 
						|
    "Binding": {
 | 
						|
      "properties": {
 | 
						|
        "input": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the binding can be used as input binding."
 | 
						|
        },
 | 
						|
        "output": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the binding can be used as output binding."
 | 
						|
        },
 | 
						|
        "operations": {
 | 
						|
          "items": {
 | 
						|
            "$ref": "#/$defs/BindingOperation"
 | 
						|
          },
 | 
						|
          "type": "array",
 | 
						|
          "description": "List of operations that the output binding support.\nRequired in output bindings, and not allowed in input-only bindings."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "operations"
 | 
						|
      ],
 | 
						|
      "description": "Binding represents properties that are specific to bindings"
 | 
						|
    },
 | 
						|
    "BindingOperation": {
 | 
						|
      "properties": {
 | 
						|
        "name": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Name of the operation, such as \"create\", \"post\", \"delete\", etc."
 | 
						|
        },
 | 
						|
        "description": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Descrption of the operation."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "name",
 | 
						|
        "description"
 | 
						|
      ],
 | 
						|
      "description": "BindingOperation represents an operation offered by an output binding."
 | 
						|
    },
 | 
						|
    "BuiltinAuthenticationProfile": {
 | 
						|
      "properties": {
 | 
						|
        "name": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Name of the built-in authentication profile."
 | 
						|
        },
 | 
						|
        "metadata": {
 | 
						|
          "items": {
 | 
						|
            "$ref": "#/$defs/Metadata"
 | 
						|
          },
 | 
						|
          "type": "array",
 | 
						|
          "description": "Additional metadata options applicable when using this authentication profile."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "name"
 | 
						|
      ],
 | 
						|
      "description": "BuiltinAuthenticationProfile is a reference to a built-in authentication profile."
 | 
						|
    },
 | 
						|
    "Metadata": {
 | 
						|
      "properties": {
 | 
						|
        "name": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Name of the metadata property."
 | 
						|
        },
 | 
						|
        "description": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Description of the property."
 | 
						|
        },
 | 
						|
        "required": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the property is required"
 | 
						|
        },
 | 
						|
        "sensitive": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the property represents a sensitive value such as a password."
 | 
						|
        },
 | 
						|
        "type": {
 | 
						|
          "type": "string",
 | 
						|
          "enum": [
 | 
						|
            "string",
 | 
						|
            "number",
 | 
						|
            "bool",
 | 
						|
            "duration",
 | 
						|
            "bytesize"
 | 
						|
          ],
 | 
						|
          "description": "Type of the property.\nIf this is empty, it's interpreted as \"string\"."
 | 
						|
        },
 | 
						|
        "default": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Default value for the property.\nIf it's a string, don't forget to add quotes."
 | 
						|
        },
 | 
						|
        "example": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Example value."
 | 
						|
        },
 | 
						|
        "allowedValues": {
 | 
						|
          "items": {
 | 
						|
            "type": "string"
 | 
						|
          },
 | 
						|
          "type": "array",
 | 
						|
          "description": "If set, forces the value to be one of those specified in this allowlist."
 | 
						|
        },
 | 
						|
        "binding": {
 | 
						|
          "$ref": "#/$defs/MetadataBinding",
 | 
						|
          "description": "If set, specifies that the property is only applicable to bindings of the type specified below.\nAt least one of \"input\" and \"output\" must be \"true\"."
 | 
						|
        },
 | 
						|
        "url": {
 | 
						|
          "$ref": "#/$defs/URL",
 | 
						|
          "description": "URL with additional information, such as docs."
 | 
						|
        },
 | 
						|
        "deprecated": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If set, specifies that the property is deprecated and should not be used in new configurations."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "name",
 | 
						|
        "description",
 | 
						|
        "example"
 | 
						|
      ],
 | 
						|
      "description": "Metadata property."
 | 
						|
    },
 | 
						|
    "MetadataBinding": {
 | 
						|
      "properties": {
 | 
						|
        "input": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the property can be used with the binding as input binding only."
 | 
						|
        },
 | 
						|
        "output": {
 | 
						|
          "type": "boolean",
 | 
						|
          "description": "If \"true\", the property can be used with the binding as output binding only."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "description": "MetadataBinding is the type for the \"binding\" property in the \"metadata\" object."
 | 
						|
    },
 | 
						|
    "URL": {
 | 
						|
      "properties": {
 | 
						|
        "title": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "Title of the URL."
 | 
						|
        },
 | 
						|
        "url": {
 | 
						|
          "type": "string",
 | 
						|
          "description": "URL."
 | 
						|
        }
 | 
						|
      },
 | 
						|
      "additionalProperties": false,
 | 
						|
      "type": "object",
 | 
						|
      "required": [
 | 
						|
        "title",
 | 
						|
        "url"
 | 
						|
      ],
 | 
						|
      "description": "URL represents one URL with additional resources."
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "properties": {
 | 
						|
    "schemaVersion": {
 | 
						|
      "type": "string",
 | 
						|
      "enum": [
 | 
						|
        "v1"
 | 
						|
      ],
 | 
						|
      "description": "Version of the component metadata schema."
 | 
						|
    },
 | 
						|
    "type": {
 | 
						|
      "type": "string",
 | 
						|
      "enum": [
 | 
						|
        "bindings",
 | 
						|
        "state",
 | 
						|
        "secretstores",
 | 
						|
        "pubsub",
 | 
						|
        "workflows",
 | 
						|
        "configuration",
 | 
						|
        "lock",
 | 
						|
        "middleware",
 | 
						|
        "crypto",
 | 
						|
        "conversation"
 | 
						|
      ],
 | 
						|
      "description": "Component type, of one of the allowed values."
 | 
						|
    },
 | 
						|
    "name": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Name of the component (without the inital type, e.g. \"http\" instead of \"bindings.http\")."
 | 
						|
    },
 | 
						|
    "version": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Version of the component, with the leading \"v\", e.g. \"v1\"."
 | 
						|
    },
 | 
						|
    "status": {
 | 
						|
      "type": "string",
 | 
						|
      "enum": [
 | 
						|
        "stable",
 | 
						|
        "beta",
 | 
						|
        "alpha",
 | 
						|
        "development-only"
 | 
						|
      ],
 | 
						|
      "description": "Component status."
 | 
						|
    },
 | 
						|
    "title": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Title of the component, e.g. \"HTTP\"."
 | 
						|
    },
 | 
						|
    "description": {
 | 
						|
      "type": "string",
 | 
						|
      "description": "Additional description for the component, optional."
 | 
						|
    },
 | 
						|
    "urls": {
 | 
						|
      "items": {
 | 
						|
        "$ref": "#/$defs/URL"
 | 
						|
      },
 | 
						|
      "type": "array",
 | 
						|
      "description": "URLs with additional resources for the component, such as docs."
 | 
						|
    },
 | 
						|
    "binding": {
 | 
						|
      "$ref": "#/$defs/Binding",
 | 
						|
      "description": "Properties for bindings only.\nThis should not present unless \"type\" is \"bindings\"."
 | 
						|
    },
 | 
						|
    "capabilities": {
 | 
						|
      "items": {
 | 
						|
        "type": "string"
 | 
						|
      },
 | 
						|
      "type": "array",
 | 
						|
      "description": "Component capabilities.\nFor state stores, the presence of \"actorStateStore\" implies that the metadata property \"actorStateStore\" can be set. In that case, do not manually specify \"actorStateStore\" as metadata option."
 | 
						|
    },
 | 
						|
    "authenticationProfiles": {
 | 
						|
      "items": {
 | 
						|
        "$ref": "#/$defs/AuthenticationProfile"
 | 
						|
      },
 | 
						|
      "type": "array",
 | 
						|
      "description": "Authentication profiles for the component."
 | 
						|
    },
 | 
						|
    "builtinAuthenticationProfiles": {
 | 
						|
      "items": {
 | 
						|
        "$ref": "#/$defs/BuiltinAuthenticationProfile"
 | 
						|
      },
 | 
						|
      "type": "array",
 | 
						|
      "description": "Built-in authentication profiles to import."
 | 
						|
    },
 | 
						|
    "metadata": {
 | 
						|
      "items": {
 | 
						|
        "$ref": "#/$defs/Metadata"
 | 
						|
      },
 | 
						|
      "type": "array",
 | 
						|
      "description": "Metadata options for the component."
 | 
						|
    }
 | 
						|
  },
 | 
						|
  "additionalProperties": false,
 | 
						|
  "type": "object",
 | 
						|
  "required": [
 | 
						|
    "schemaVersion",
 | 
						|
    "type",
 | 
						|
    "name",
 | 
						|
    "version",
 | 
						|
    "status",
 | 
						|
    "title",
 | 
						|
    "urls"
 | 
						|
  ],
 | 
						|
  "title": "ComponentMetadata",
 | 
						|
  "description": "ComponentMetadata is the schema for the metadata.yaml / metadata.json files."
 | 
						|
}
 |