Consumers - List
Get a list of available service hook consumer services. Optionally filter by consumers that support at least one event type from the specific publisher.
GET https://dev.azure.com/{organization}/_apis/hooks/consumers?api-version=7.1
GET https://dev.azure.com/{organization}/_apis/hooks/consumers?publisherId={publisherId}&api-version=7.1
URI Parameters
Name | In | Required | Type | Description |
---|---|---|---|---|
organization
|
path | True |
string |
The name of the Azure DevOps organization. |
api-version
|
query | True |
string |
Version of the API to use. This should be set to '7.1' to use this version of the api. |
publisher
|
query |
string |
Responses
Name | Type | Description |
---|---|---|
200 OK |
Consumer[] |
successful operation |
Security
oauth2
Type:
oauth2
Flow:
accessCode
Authorization URL:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL:
https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
Scopes
Name | Description |
---|---|
vso.work | Grants the ability to read work items, queries, boards, area and iterations paths, and other work item tracking related metadata. Also grants the ability to execute queries, search work items and to receive notifications about work item events via service hooks. |
vso.build | Grants the ability to access build artifacts, including build results, definitions, and requests, and the ability to receive notifications about build events via service hooks. |
vso.code | Grants the ability to read source code and metadata about commits, changesets, branches, and other version control artifacts. Also grants the ability to search code and get notified about version control events via service hooks. |
Examples
Sample request
GET https://dev.azure.com/fabrikam/_apis/hooks/consumers?api-version=7.1
Sample response
{
"count": 15,
"value": [
{
"id": "zendesk",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/zendesk",
"name": "Zendesk",
"description": "Zendesk is a SaaS suite that offers help desk ticketing, issue tracking, and customer service support.",
"imageUrl": "",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=396756",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "accountName",
"name": "Account name",
"description": "Zendesk account name like https://<account name>.zendesk.com",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^([A-Za-z0-9][A-Za-z0-9\\-]{0,61}[A-Za-z0-9]|[A-Za-z0-9]{1,63})$",
"maxLength": 63
}
},
{
"id": "username",
"name": "User name",
"description": "The Zendesk user name of a user who will update tickets",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^.+\\@.+\\..+$",
"maxLength": 254
}
},
{
"id": "apiToken",
"name": "API token",
"description": "The Zendesk API token (can be found in Zendesk app in Admin > Channels > API)",
"inputMode": "passwordBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"maxLength": 100
}
}
],
"actions": [
{
"id": "createPrivateComment",
"consumerId": "zendesk",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/zendesk/actions/createPrivateComment",
"name": "Create a private comment in a ticket",
"description": "Create a private comment in a ticket. <a href='http://go.microsoft.com/fwlink/?LinkId=396756'>Learn more.</a>",
"supportedEventTypes": [
"workitem.commented"
],
"supportedResourceVersions": {
"workitem.commented": [
"1.0-preview.1"
]
},
"inputDescriptors": []
}
]
},
{
"id": "zapier",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/zapier",
"name": "Zapier",
"description": "Zapier enables you to automate tasks between 200+ online services. <b>Note:</b> Subscriptions for this service must be created and managed at zapier.com.",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=390581",
"authenticationType": "none",
"externalConfiguration": {
"editSubscriptionPropertyName": "editSubscriptionUrl"
},
"inputDescriptors": [],
"actions": [
{
"id": "sendNotification",
"consumerId": "zapier",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/zapier/actions/sendNotification",
"name": "Send notification",
"description": "Send event information to the specified Zapier subscription URL.",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {
"workitem.commented": [
"1.0-preview.1"
],
"workitem.created": [
"1.0-preview.1"
],
"workitem.updated": [
"1.0-preview.1"
]
},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "url",
"name": "Subscription URL",
"description": "The URL on zapier.com that the notification POST will be sent to.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "uri",
"isRequired": true
}
}
]
}
]
},
{
"id": "webHooks",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/webHooks",
"name": "Web Hooks",
"description": "Provides event communication via HTTP",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=390531",
"authenticationType": "none",
"inputDescriptors": [],
"actions": [
{
"id": "httpRequest",
"consumerId": "webHooks",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/webHooks/actions/httpRequest",
"name": "Post via HTTP",
"description": "This action posts a JSON object representation of the event to the specified URL. Secure, HTTPS endpoints are recommended due to the potential for private data in the event payload. <a href='http://go.microsoft.com/fwlink/?LinkID=390531'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "url",
"name": "URL",
"description": "The URL to which an HTTP POST will be sent.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "uri",
"isRequired": true
}
},
{
"id": "httpHeaders",
"name": "HTTP headers",
"description": "HTTP header keys and values separated by a colon(e.g. \"Key1:value1\") with each key-value-pair appearing on its own line of text.",
"inputMode": "textArea",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^([\\S]+[\\s]*:[\\s]*[\\S]+[\\s]*[\r\n\f]+)*?([\\S]+[\\s]*:[\\s]*[\\S]+)+$"
}
},
{
"id": "basicAuthUsername",
"name": "Basic authentication username",
"description": "Enter a username for standard HTTP authentication. Basic HTTP authentication sends credentials in plain text (unencrypted) which means you should use a URL beginning with \"https\" to enable encryption of these credentials via secure transport layer (SSL).",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^[\\S]+$",
"minLength": 1,
"maxLength": 256
}
},
{
"id": "basicAuthPassword",
"name": "Basic authentication password",
"description": "Enter a password for standard HTTP authentication. Basic HTTP authentication sends credentials in plain text (unencrypted) which means you should use a URL beginning with \"https\" to enable encryption of these credentials via secure transport layer (SSL).",
"inputMode": "passwordBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^[\\S]+$",
"minLength": 1,
"maxLength": 256
}
},
{
"id": "resourceDetailsToSend",
"name": "Resource details to send",
"description": "Control the resource fields to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "resourceDetailsToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "minimal",
"displayValue": "Minimal"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "messagesToSend",
"name": "Messages to send",
"description": "Control the messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "messagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "detailedMessagesToSend",
"name": "Detailed messages to send",
"description": "Control the detailed messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "detailedMessagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
}
]
}
]
},
{
"id": "userVoice",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/userVoice",
"name": "UserVoice",
"description": "UserVoice integrates easy-to-use feedback, helpdesk, and knowledge base management tools in one platform that empowers users to speak and companies to understand. <b>Note:</b> Subscriptions for this service must be created and managed at uservoice.com.",
"imageUrl": "",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393617",
"authenticationType": "external",
"externalConfiguration": {},
"inputDescriptors": [],
"actions": [
{
"id": "sendLinkedWorkItemEvent",
"consumerId": "userVoice",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/userVoice/actions/sendLinkedWorkItemEvent",
"name": "Send linked work item event",
"description": "Send linked work item events to UserVoice",
"supportedEventTypes": [
"workitem.created",
"workitem.updated"
],
"supportedResourceVersions": {
"workitem.created": [
"1.0-preview.1"
],
"workitem.updated": [
"1.0-preview.1"
]
},
"inputDescriptors": [
{
"id": "url",
"name": "URL",
"description": "The URL to which the liked work item event will be sent",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "uri",
"isRequired": true
}
},
{
"id": "authToken",
"name": "Authorization token",
"description": "The authorization token to use while sending the event to UserVoice",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
}
]
}
]
},
{
"id": "trello",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/trello",
"name": "Trello",
"description": "Provides integration with Trello",
"imageUrl": "https://d2k1ftgv7pobq7.cloudfront.net/images/bd87ee916375920ae72dffadbb10d412/logo-blue-lg.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=390530",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "userToken",
"name": "User token (need one? <a href='http://go.microsoft.com/fwlink/?LinkID=390580'>Get it now</a>)",
"description": "Your user token provided by Trello. Click the link in the action description above to learn how to obtain this token.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 64,
"maxLength": 64
}
}
],
"actions": [
{
"id": "createCard",
"consumerId": "trello",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/trello/actions/createCard",
"name": "Create a card",
"description": "This action creates a card on an existing list in Trello. A card can represent a task, issue, event, or just about anything. A card's state is typically determined by what list it is on. <a href='http://go.microsoft.com/fwlink/?LinkID=390530'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "boardId",
"name": "Board",
"description": "The name of the board on which the Trello card will be created.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 8,
"maxLength": 64
},
"dependencyInputIds": [
"userToken"
],
"hasDynamicValueInformation": true
},
{
"id": "listId",
"name": "List",
"description": "The name of the list on which the Trello card will be created.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 9,
"maxLength": 64
},
"dependencyInputIds": [
"boardId"
],
"hasDynamicValueInformation": true
},
{
"id": "labels",
"name": "Labels",
"description": "A comma-separated list of label colors to apply to the created card. Valid label color names are red, orange, yellow, green, blue, and purple.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^((red|orange|yellow|green|blue|purple),)*?(red|orange|yellow|green|blue|purple)+$",
"minLength": 3,
"maxLength": 35
},
"values": {
"possibleValues": [
{
"value": "red"
},
{
"value": "orange"
},
{
"value": "yellow"
},
{
"value": "green"
},
{
"value": "blue"
},
{
"value": "purple"
}
]
}
},
{
"id": "addToTop",
"name": "Create at top of list",
"description": "Indicates if the card should be created at the top of the Trello list, instead of the bottom.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
},
"values": {
"defaultValue": "False"
}
}
]
},
{
"id": "createList",
"consumerId": "trello",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/trello/actions/createList",
"name": "Create a list",
"description": "This action creates a list on an existing board in Trello. A list is used to organize cards on a board and typically represents a state. <a href='http://go.microsoft.com/fwlink/?LinkID=390530'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "boardId",
"name": "Board",
"description": "The name of the board on which the Trello list will be created.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 8,
"maxLength": 64
},
"dependencyInputIds": [
"userToken"
],
"hasDynamicValueInformation": true
},
{
"id": "addToBottom",
"name": "Create at bottom of board",
"description": "Indicates if the list should be created at the bottom of the board, instead of the top.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
},
"values": {
"defaultValue": "False"
}
}
]
}
]
},
{
"id": "myGet",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/myGet",
"name": "MyGet",
"description": "MyGet allows you to create and host your own NuGet feeds with your own packages and those from other package sources such as NuGet.org. <b>Note:</b> Subscriptions for this service must be created and managed at myget.org.",
"imageUrl": "https://www.myget.org/Content/images/myget/logo.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393619",
"authenticationType": "external",
"externalConfiguration": {},
"inputDescriptors": [],
"actions": [
{
"id": "publishPackage",
"consumerId": "myGet",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/myGet/actions/publishPackage",
"name": "Publish NuGet package to MyGet",
"description": "Publish NuGet package produced in a build to a MyGet feed",
"supportedEventTypes": [
"build.complete"
],
"inputDescriptors": [
{
"id": "feedId",
"name": "Feed",
"description": "The MyGet private or public feed where to publish the packages",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[a-z0-9]\\([_-]?[a-z0-9]+\\)*$",
"maxLength": 63
}
},
{
"id": "packageSourceId",
"name": "Package source identifier",
"description": "The MyGet package source identifier which defines the packages to publish",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "guid",
"isRequired": true
}
}
]
},
{
"id": "triggerBuild",
"consumerId": "myGet",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/myGet/actions/triggerBuild",
"name": "Trigger a MyGet build",
"description": "Trigger a MyGet build, which is based on several conventions. <a href='http://docs.myget.org/docs/reference/build-services'>Learn more</a>.",
"supportedEventTypes": [
"git.push"
],
"inputDescriptors": [
{
"id": "feedId",
"name": "Feed",
"description": "The MyGet private or public feed where to trigger a build",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[a-z0-9]\\([_-]?[a-z0-9]+\\)*$",
"maxLength": 63
}
},
{
"id": "buildSourceId",
"name": "Build source identifier",
"description": "The MyGet build source identifier which defines the sources to build",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "guid",
"isRequired": true
}
}
]
}
]
},
{
"id": "kato",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/kato",
"name": "Kato",
"description": "Kato is a powerful collaboration platform based on simple chat that helps organizations move faster by decreasing email volume and making all communication instantly searchable.",
"imageUrl": "",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393614",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "roomToken",
"name": "Room token",
"description": "The token for interacting with a room using the Kato API",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^([a-zA-Z0-9]|-|_|\\.|!|\\^|\\*|~|'|\\(|\\))+$",
"maxLength": 300
}
},
{
"id": "roomName",
"name": "Room name",
"description": "Room name as seen in Kato",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string"
}
}
],
"actions": [
{
"id": "postEventToRoom",
"consumerId": "kato",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/kato/actions/postEventToRoom",
"name": "Post event to room",
"description": "Posts an event to a Kato room. <a href='http://go.microsoft.com/fwlink/?LinkId=393614'>Learn more.</a>",
"supportedEventTypes": [
"*"
],
"inputDescriptors": []
}
]
},
{
"id": "jenkins",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/jenkins",
"name": "Jenkins",
"description": "Jenkins is an open source continuous integration service popular with Java teams.",
"imageUrl": "http://jenkins-ci.org/sites/default/files/images/headshot.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393616",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "serverBaseUrl",
"name": "Jenkins base URL",
"description": "The base URL that hosts the Jenkins server",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "uri",
"isRequired": true
}
},
{
"id": "username",
"name": "User name",
"description": "The Jenkins user name of a user who is allowed to trigger the build",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
},
{
"id": "password",
"name": "User API token (or password)",
"description": "The user's API token, which is available in the Jenkin user configuration page. The API token is new since version 1.426. For earlier versions of Jenkins the real user password must be specified.",
"inputMode": "passwordBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
}
],
"actions": [
{
"id": "triggerGenericBuild",
"consumerId": "jenkins",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/jenkins/actions/triggerGenericBuild",
"name": "Trigger generic build",
"description": "Triggers a generic Jenkins build, invoking the Jenkins build URL. Secure, HTTPS endpoints are recommended due to the potential for private data in the event payload. <a href='http://go.microsoft.com/fwlink/?LinkId=393616'>Learn more.</a>",
"supportedEventTypes": [
"git.push",
"build.complete",
"tfvc.checkin"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "buildName",
"name": "Build",
"description": "The build name to trigger",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
},
"dependencyInputIds": [
"serverBaseUrl",
"username",
"password"
],
"hasDynamicValueInformation": true
},
{
"id": "buildAuthToken",
"name": "Build token",
"description": "The authorization token in the form of a string so that only those who know it would be able to remotely trigger this project's builds",
"inputMode": "passwordBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
}
},
{
"id": "buildParameterized",
"name": "Accepts parameters",
"description": "Indicates if the build is parameterized or not (build parameters are optionally specified above)",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
}
},
{
"id": "buildParams",
"name": "Build parameters",
"description": "Build parameteres names and values separated by a colon(e.g. \"param1:value1\") with each name-value pair appearing on its own line of text",
"inputMode": "textArea",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^((.+?)(\\s*):(.*)[\r\n\f]?)+$"
}
}
]
},
{
"id": "triggerGitBuild",
"consumerId": "jenkins",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/jenkins/actions/triggerGitBuild",
"name": "Trigger Git build",
"description": "Triggers a build configured to use a Git repository using the <a href='https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin'>Jenkins Git Plugin</a>. Secure, HTTPS endpoints are recommended due to the potential for private data in the event payload.",
"supportedEventTypes": [
"git.push"
],
"supportedResourceVersions": {},
"inputDescriptors": []
}
]
},
{
"id": "hubot",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/hubot",
"name": "Hubot",
"description": "Hubot is a popular chat bot service that responds to commands sent by users in a team room; helping automate common tasks like creating work items, checking build status, and viewing recent team activity.",
"imageUrl": "",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=402677",
"authenticationType": "external",
"inputDescriptors": [],
"actions": [
{
"id": "postMessage",
"consumerId": "hubot",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/hubot/actions/postMessage",
"name": "Post a message",
"description": "This action sends a team room message to the specified URL (typically this URL will end with /hubot/messagehook). A strong user name and password are highly recommended. <a href='http://go.microsoft.com/fwlink/?LinkID=402677'>Learn more.</a>",
"supportedEventTypes": [
"message.posted"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "url",
"name": "URL",
"description": "Hubot's URL",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "uri",
"isRequired": true
}
},
{
"id": "username",
"name": "Username",
"description": "Hubot's username (as defined by HUBOT_VSONLINE_ADAPTER_BASIC_AUTH_USERNAME)",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"maxLength": 200
}
},
{
"id": "password",
"name": "Password",
"description": "Hubot's password (as defined by HUBOT_VSONLINE_ADAPTER_BASIC_AUTH_PASSWORD)",
"inputMode": "passwordBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"maxLength": 500
}
}
]
},
{
"id": "postMessageToQueue",
"consumerId": "hubot",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/hubot/actions/postMessageToQueue",
"name": "Post a message to an Azure Service Bus Queue",
"description": "This action sends a team room message to the specified Azure Service Bus queue. <a href='http://go.microsoft.com/fwlink/?LinkID=402677'>Learn more.</a>",
"supportedEventTypes": [
"message.posted"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "connectionString",
"name": "SAS connection string",
"description": "The SAS (shared access signature) connection string to use to connect with Azure Service Bus. This connection string is available in the Azure Portal.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 1,
"maxLength": 500
}
},
{
"id": "queueName",
"name": "Queue name",
"description": "The name of the queue to send the message to and where Hubot is listening for new messages. The name can contain only letters, numbers, periods, hyphens, forward slashes, and underscores. The name must start and end with a letter or number. If the queue does not exists, it will be created if the specified connection string has the necessary permissions.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[A-Za-z0-9]$|^[A-Za-z0-9][\\w-\\.\\/]*[A-Za-z0-9]$",
"minLength": 1,
"maxLength": 50
},
"dependencyInputIds": [
"connectionString"
],
"hasDynamicValueInformation": true
}
]
}
]
},
{
"id": "hipChat",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/hipChat",
"name": "HipChat",
"description": "HipChat, from Atlassian, provides group chat and video chat built for teams.",
"imageUrl": "http://www.hipchat.com/img/logo.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkId=392098",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "authToken",
"name": "Authorization token",
"description": "Authorization token which allows to post messages to a room. It can be a room token which is just authorized to a given room, or a personal access token, which is authorized to all rooms that the token's owner is authorized.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
}
],
"actions": [
{
"id": "postMessageToRoom",
"consumerId": "hipChat",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/hipChat/actions/postMessageToRoom",
"name": "Post a message to a room",
"description": "Post a message about the event to a room in HipChat. <a href='http://go.microsoft.com/fwlink/?LinkId=392098'>Learn more.</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "roomName",
"name": "Room",
"description": "Room to post the message to.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 1,
"maxLength": 50
},
"dependencyInputIds": [
"authToken"
],
"hasDynamicValueInformation": true
},
{
"id": "notifyRoom",
"name": "Notify room participants",
"description": "Whether or not this message should trigger a notification for people in the room (change the tab color, play a sound, etc). Each recipient's notification preferences are taken into account.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
}
},
{
"id": "showDetails",
"name": "Send a detailed message",
"description": "Post a short or detailed messages about the event.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
}
},
{
"id": "bgColor",
"name": "Message color",
"description": "Background color for message. Valid values: yellow, red, green, purple, gray, random (default: 'yellow')",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"possibleValues": [
{
"value": "gray",
"displayValue": "Gray"
},
{
"value": "green",
"displayValue": "Green"
},
{
"value": "purple",
"displayValue": "Purple"
},
{
"value": "random",
"displayValue": "Random"
},
{
"value": "red",
"displayValue": "Red"
},
{
"value": "yellow",
"displayValue": "Yellow"
}
],
"isLimitedToPossibleValues": true
}
}
]
}
]
},
{
"id": "flowdock",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/flowdock",
"name": "Flowdock",
"description": "Flowdock provides chat and inbox for teams, providing one place to talk and stay up-to-date.",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393615",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "flowAPIToken",
"name": "Flow API token",
"description": "The authorization token to post messages to a team inbox or a group chat. You can get the flow API Token from Flowdock (<a href='https://www.flowdock.com/account/tokens>'account settings</a>",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[\\w0-9\\s]*$"
}
},
{
"id": "flowName",
"name": "Flow name",
"description": "Flow name as seen in Flowdock",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string",
"maxLength": 100
}
},
{
"id": "showDetails",
"name": "Send a detailed message",
"description": "Post a short or detailed message about the event.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
}
}
],
"actions": [
{
"id": "postMessageToChat",
"consumerId": "flowdock",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/flowdock/actions/postMessageToChat",
"name": "Post a message to a team chat",
"description": "Post a message about the event to a team chat in Flowdock. <a href='http://go.microsoft.com/fwlink/?LinkId=393615'>Learn more.</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "externalUserName",
"name": "Sender user name",
"description": "Name of the \"user\" sending the message.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[\\w0-9@\\.]+$",
"maxLength": 16
}
},
{
"id": "tags",
"name": "Tags",
"description": "List of tags to be added to the message (comma separated). User tags should start with '@'. Hashtags can optionally be prefixed with \"#\". Tags are case insensitive.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^(\\s*[^\\s,]+\\s*)(,(\\s*[^\\s,]+\\s*))*$"
}
}
]
},
{
"id": "postMessageToTeamInbox",
"consumerId": "flowdock",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/flowdock/actions/postMessageToTeamInbox",
"name": "Post a message to a team inbox",
"description": "Post a message about the event to a team inbox in Flowdock. <a href='http://go.microsoft.com/fwlink/?LinkId=393615'>Learn more.</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "subject",
"name": "Subject",
"description": "Subject line of the message (displayed as the title of the team inbox message)",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
},
{
"id": "fromName",
"name": "From name",
"description": "Name of the message sender",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
}
},
{
"id": "fromAddress",
"name": "From address",
"description": "Email address of the message sender (used to show an avatar of the sender)",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^.+\\@.+\\..+$",
"maxLength": 254
}
},
{
"id": "replyTo",
"name": "Reply to",
"description": "Email address for replies (used when replying to the message within Flowdock)",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^.+\\@.+\\..+$",
"maxLength": 254
}
},
{
"id": "project",
"name": "Project",
"description": "Human readable identifier for more detailed message categorization",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^[\\w0-9\\s]*$"
}
},
{
"id": "tags",
"name": "Tags",
"description": "List of tags to be added to the message (comma separated). User tags should start with '@'. Hashtags can optionally be prefixed with \"#\". Tags are case insensitive.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"pattern": "^(\\s*[^\\s,]+\\s*)(,(\\s*[^\\s,]+\\s*))*$"
}
}
]
}
]
},
{
"id": "campfire",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/campfire",
"name": "Campfire",
"description": "Campfire provides team collaboration with real time chat. Campfire is like instant messaging, but designed exclusively for groups.",
"imageUrl": "https://campfirenow.com/images/logo_campfire-full.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=393613",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "accountName",
"name": "Account name",
"description": "Account name like https://<account name>.campfirenow.com",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^([A-Za-z0-9][A-Za-z0-9\\-]{0,61}[A-Za-z0-9]|[A-Za-z0-9]{1,63})$",
"maxLength": 63
}
},
{
"id": "authToken",
"name": "API authentication token",
"description": "API authentication token for the user that messages will be posted from. You can get this token visiting the user profile page at Campfire.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
}
],
"actions": [
{
"id": "postMessageToRoom",
"consumerId": "campfire",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/campfire/actions/postMessageToRoom",
"name": "Post a message to a room",
"description": "Post a message about the event to a room in Campfire. <a href='http://go.microsoft.com/fwlink/?LinkID=393613'>Learn more.</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"inputDescriptors": [
{
"id": "roomId",
"name": "Room",
"description": "Room to post the message to.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "number",
"isRequired": true,
"minValue": 1
},
"dependencyInputIds": [
"accountName",
"authToken"
],
"hasDynamicValueInformation": true
},
{
"id": "showDetails",
"name": "Send a detailed message",
"description": "Post a short or detailed messages about the event.",
"inputMode": "checkBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "boolean"
}
}
]
}
]
},
{
"id": "azureServiceBus",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureServiceBus",
"name": "Azure Service Bus",
"description": "Microsoft Azure Service Bus provides a hosted, secure, and widely available infrastructure for widespread communication, large-scale event distribution, naming, and service publishing.",
"imageUrl": "http://www.windowsazure.com/css/images/logo.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=392636",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "connectionString",
"name": "SAS connection string",
"description": "The SAS (shared access signature) connection string to use to connect with Azure Service Bus. This connection string is available in the Azure Portal.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 1,
"maxLength": 500
}
}
],
"actions": [
{
"id": "serviceBusNotificationHubSend",
"consumerId": "azureServiceBus",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureServiceBus/actions/serviceBusNotificationHubSend",
"name": "Send a message to a Notification Hub",
"description": "This action sends a generic, template notification to the specified Azure Notification Hub. <a href='http://go.microsoft.com/fwlink/?LinkID=392636'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "notificationHubName",
"name": "Notification Hub name",
"description": "The name of the notification hub to send the notification to. The name can contain only letters, numbers, periods, hyphens, forward slashes, and underscores. The name must start and end with a letter or number. The hub should already exist.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[A-Za-z0-9]$|^[A-Za-z0-9][\\w-\\.\\/]*[A-Za-z0-9]$",
"minLength": 1,
"maxLength": 50
},
"dependencyInputIds": [
"connectionString"
],
"hasDynamicValueInformation": true
},
{
"id": "tagsExpression",
"name": "Tags",
"description": "A tag expression is any boolean expression constructed using the logical operators AND (&&), OR (||), NOT (!), and round parentheses. For example: (A || B) && !C. If an expression uses only ORs, it can contain at most 20 tags. Other expressions are limited to 6 tags. Note that a single tag is a valid expression. Each tag in expression can be any string, up to 120 characters, containing alphanumeric and the following non-alphanumeric characters: ‘_’, ‘@’, ‘#’, ‘.’, ‘:’, ‘-’.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"maxLength": 1024
}
}
]
},
{
"id": "serviceBusQueueSend",
"consumerId": "azureServiceBus",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureServiceBus/actions/serviceBusQueueSend",
"name": "Send a message to a Service Bus Queue",
"description": "This action sends a JSON string representation of the event to the specified Azure Service Bus queue. <a href='http://go.microsoft.com/fwlink/?LinkID=392636'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "queueName",
"name": "Queue name",
"description": "The name of the queue to send the message to. The name can contain only letters, numbers, periods, hyphens, forward slashes, and underscores. The name must start and end with a letter or number. If the queue does not exists, it will be created if the specified connection string has the necessary permissions.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[A-Za-z0-9]$|^[A-Za-z0-9][\\w-\\.\\/]*[A-Za-z0-9]$",
"minLength": 1,
"maxLength": 50
},
"dependencyInputIds": [
"connectionString"
],
"hasDynamicValueInformation": true
},
{
"id": "resourceDetailsToSend",
"name": "Resource details to send",
"description": "Control the resource fields to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "resourceDetailsToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "minimal",
"displayValue": "Minimal"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "messagesToSend",
"name": "Messages to send",
"description": "Control the messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "messagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "detailedMessagesToSend",
"name": "Detailed messages to send",
"description": "Control the detailed messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "detailedMessagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
}
]
},
{
"id": "serviceBusTopicSend",
"consumerId": "azureServiceBus",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureServiceBus/actions/serviceBusTopicSend",
"name": "Send a message to a Service Bus Topic",
"description": "This action sends a JSON string representation of the event to the specified Azure Service Bus topic. <a href='http://go.microsoft.com/fwlink/?LinkID=392636'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "topicName",
"name": "Topic name",
"description": "The name of the topic to send the message to. The name can contain only letters, numbers, periods, hyphens, forward slashes, and underscores. The name must start and end with a letter or number. If the topic does not exists, it will be created if the specified connection string has the necessary permissions.",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[A-Za-z0-9]$|^[A-Za-z0-9][\\w-\\.\\/]*[A-Za-z0-9]$",
"minLength": 1,
"maxLength": 50
},
"dependencyInputIds": [
"connectionString"
],
"hasDynamicValueInformation": true
},
{
"id": "resourceDetailsToSend",
"name": "Resource details to send",
"description": "Control the resource fields to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "resourceDetailsToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "minimal",
"displayValue": "Minimal"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "messagesToSend",
"name": "Messages to send",
"description": "Control the messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "messagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "detailedMessagesToSend",
"name": "Detailed messages to send",
"description": "Control the detailed messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "detailedMessagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
}
]
}
]
},
{
"id": "azureStorageQueue",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureStorageQueue",
"name": "Azure Storage",
"description": "Microsoft Azure Storage is a service for storing large numbers of messages that can be accessed from anywhere in the world. It is useful for creating a backlog of work to process asynchronously.",
"imageUrl": "http://www.windowsazure.com/css/images/logo.png",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=390532",
"authenticationType": "external",
"inputDescriptors": [
{
"id": "accountName",
"name": "Storage account name",
"description": "The name associated with your Azure storage account (e.g. https://STORAGE_ACCOUNT_NAME.queue.core.windows.net).",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 1,
"maxLength": 100
}
},
{
"id": "accountKey",
"name": "Storage account key",
"description": "The key associated with your Azure storage account.",
"inputMode": "textBox",
"isConfidential": true,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"minLength": 64,
"maxLength": 100
}
}
],
"actions": [
{
"id": "enqueue",
"consumerId": "azureStorageQueue",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/azureStorageQueue/actions/enqueue",
"name": "Insert a message in a Storage Queue",
"description": "This action inserts a JSON string representation of the event to the specified Azure storage queue. <a href='http://go.microsoft.com/fwlink/?LinkID=390532'>Learn More</a>",
"supportedEventTypes": [
"*"
],
"supportedResourceVersions": {},
"allowResourceVersionOverride": true,
"inputDescriptors": [
{
"id": "queueName",
"name": "Queue name",
"description": "The lowercase-only name of the queue to be used within Azure storage. A queue by this name will be created if it does not already exist.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true,
"pattern": "^[a-z0-9]+[a-z0-9-]+[a-z0-9]$",
"minLength": 3,
"maxLength": 63
}
},
{
"id": "visiTimeout",
"name": "Message visibility timeout (in seconds)",
"description": "Specifies the visibility timeout value, in seconds, for the enqueued message, relative to server time. The value must be larger than or equal to 0, and cannot be larger than 7 days, or 604,800 seconds. The visibility timeout must be set to a value smaller than the message's time-to-live value.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "number",
"isRequired": true,
"minValue": 0,
"maxValue": 604800
},
"values": {
"defaultValue": "0"
}
},
{
"id": "ttl",
"name": "Message time-to-live (in seconds)",
"description": "Specifies the time-to-live interval for the queue message, in seconds. The maximum time-to-live allowed is 7 days, or 604,800 seconds.",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "number",
"isRequired": true,
"minValue": 1,
"maxValue": 604800
},
"values": {
"defaultValue": "604800"
}
},
{
"id": "resourceDetailsToSend",
"name": "Resource details to send",
"description": "Control the resource fields to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "resourceDetailsToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "minimal",
"displayValue": "Minimal"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "messagesToSend",
"name": "Messages to send",
"description": "Control the messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "messagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
},
{
"id": "detailedMessagesToSend",
"name": "Detailed messages to send",
"description": "Control the detailed messages to send",
"inputMode": "combo",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string"
},
"values": {
"inputId": "detailedMessagesToSend",
"defaultValue": "",
"possibleValues": [
{
"value": "",
"displayValue": "All"
},
{
"value": "text",
"displayValue": "Text"
},
{
"value": "html",
"displayValue": "HTML"
},
{
"value": "markdown",
"displayValue": "Markdown"
},
{
"value": "none",
"displayValue": "None"
}
],
"isLimitedToPossibleValues": true
}
}
]
}
]
},
{
"id": "appVeyor",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/appVeyor",
"name": "AppVeyor",
"description": "AppVeyor automates building, testing, and deployment of .NET applications - helping your team focus on delivering great apps.",
"imageUrl": "",
"informationUrl": "http://go.microsoft.com/fwlink/?LinkID=396758",
"authenticationType": "external",
"externalConfiguration": {},
"inputDescriptors": [],
"actions": [
{
"id": "triggerBuild",
"consumerId": "appVeyor",
"url": "https://dev.azure.com/fabrikam/_apis/hooks/consumers/appVeyor/actions/triggerBuild",
"name": "Trigger a AppVeyor build",
"description": "Trigger a AppVeyor build <a href='http://go.microsoft.com/fwlink/?LinkID=396758'>Learn more</a>",
"supportedEventTypes": [
"git.push"
],
"inputDescriptors": [
{
"id": "webHookId",
"name": "Webhook ID",
"description": "The Webhook ID that uniquely identifies a project in AppVeyor database",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": false,
"validation": {
"dataType": "string",
"isRequired": true
}
},
{
"id": "projectName",
"name": "Project name",
"description": "Project name in AppVeyor",
"inputMode": "textBox",
"isConfidential": false,
"useInDefaultDescription": true,
"validation": {
"dataType": "string"
}
}
]
}
]
}
]
}
Definitions
Name | Description |
---|---|
Authentication |
Gets or sets this consumer's authentication type. |
Consumer |
Defines the data contract of a consumer. |
Consumer |
Defines the data contract of a consumer action. |
External |
Describes how to configure a subscription that is managed externally. |
Input |
Gets or sets the data type to validate. |
Input |
Describes an input for subscriptions. |
Input |
Mode in which the value of this input should be entered |
Input |
Describes what values are valid for a subscription input |
Input |
Information about a single value for an input |
Input |
Information about the possible/allowed values for a given subscription input |
Input |
Error information related to a subscription input value. |
Reference |
The class to represent a collection of REST reference links. |
AuthenticationType
Gets or sets this consumer's authentication type.
Value | Description |
---|---|
external |
Externally-configured authentication. |
none |
No authentication is required. |
oAuth |
OAuth authentication. |
Consumer
Defines the data contract of a consumer.
Name | Type | Description |
---|---|---|
_links |
Reference Links |
|
actions |
Gets this consumer's actions. |
|
authenticationType |
Gets or sets this consumer's authentication type. |
|
description |
string |
Gets or sets this consumer's localized description. |
externalConfiguration |
Non-null only if subscriptions for this consumer are configured externally. |
|
id |
string |
Gets or sets this consumer's identifier. |
imageUrl |
string |
Gets or sets this consumer's image URL, if any. |
informationUrl |
string |
Gets or sets this consumer's information URL, if any. |
inputDescriptors |
Gets or sets this consumer's input descriptors. |
|
name |
string |
Gets or sets this consumer's localized name. |
url |
string |
The url for this resource |
ConsumerAction
Defines the data contract of a consumer action.
Name | Type | Description |
---|---|---|
_links |
Reference Links |
|
allowResourceVersionOverride |
boolean |
Gets or sets the flag indicating if resource version can be overridden when creating or editing a subscription. |
consumerId |
string |
Gets or sets the identifier of the consumer to which this action belongs. |
description |
string |
Gets or sets this action's localized description. |
id |
string |
Gets or sets this action's identifier. |
inputDescriptors |
Gets or sets this action's input descriptors. |
|
name |
string |
Gets or sets this action's localized name. |
supportedEventTypes |
string[] |
Gets or sets this action's supported event identifiers. |
supportedResourceVersions |
object |
Gets or sets this action's supported resource versions. |
url |
string |
The url for this resource |
ExternalConfigurationDescriptor
Describes how to configure a subscription that is managed externally.
Name | Type | Description |
---|---|---|
createSubscriptionUrl |
string |
Url of the site to create this type of subscription. |
editSubscriptionPropertyName |
string |
The name of an input property that contains the URL to edit a subscription. |
hostedOnly |
boolean |
True if the external configuration applies only to hosted. |
InputDataType
Gets or sets the data type to validate.
Value | Description |
---|---|
boolean |
Represents a value of true or false. |
guid |
Represents a Guid. |
none |
No data type is specified. |
number |
Represents a numeric value. |
string |
Represents a textual value. |
uri |
Represents a URI. |
InputDescriptor
Describes an input for subscriptions.
Name | Type | Description |
---|---|---|
dependencyInputIds |
string[] |
The ids of all inputs that the value of this input is dependent on. |
description |
string |
Description of what this input is used for |
groupName |
string |
The group localized name to which this input belongs and can be shown as a header for the container that will include all the inputs in the group. |
hasDynamicValueInformation |
boolean |
If true, the value information for this input is dynamic and should be fetched when the value of dependency inputs change. |
id |
string |
Identifier for the subscription input |
inputMode |
Mode in which the value of this input should be entered |
|
isConfidential |
boolean |
Gets whether this input is confidential, such as for a password or application key |
name |
string |
Localized name which can be shown as a label for the subscription input |
properties |
object |
Custom properties for the input which can be used by the service provider |
type |
string |
Underlying data type for the input value. When this value is specified, InputMode, Validation and Values are optional. |
useInDefaultDescription |
boolean |
Gets whether this input is included in the default generated action description. |
validation |
Information to use to validate this input's value |
|
valueHint |
string |
A hint for input value. It can be used in the UI as the input placeholder. |
values |
Information about possible values for this input |
InputMode
Mode in which the value of this input should be entered
Value | Description |
---|---|
checkBox |
Checkbox should be shown(for true/false values) |
combo |
A select/combo control should be shown |
none |
This input should not be shown in the UI |
passwordBox |
An password input box should be shown |
radioButtons |
Radio buttons should be shown |
textArea |
A multi-line text area should be shown |
textBox |
An input text box should be shown |
InputValidation
Describes what values are valid for a subscription input
Name | Type | Description |
---|---|---|
dataType |
Gets or sets the data type to validate. |
|
isRequired |
boolean |
Gets or sets if this is a required field. |
maxLength |
integer (int32) |
Gets or sets the maximum length of this descriptor. |
maxValue |
string (decimal) |
Gets or sets the minimum value for this descriptor. |
minLength |
integer (int32) |
Gets or sets the minimum length of this descriptor. |
minValue |
string (decimal) |
Gets or sets the minimum value for this descriptor. |
pattern |
string |
Gets or sets the pattern to validate. |
patternMismatchErrorMessage |
string |
Gets or sets the error on pattern mismatch. |
InputValue
Information about a single value for an input
Name | Type | Description |
---|---|---|
data |
object |
Any other data about this input |
displayValue |
string |
The text to show for the display of this value |
value |
string |
The value to store for this input |
InputValues
Information about the possible/allowed values for a given subscription input
Name | Type | Description |
---|---|---|
defaultValue |
string |
The default value to use for this input |
error |
Errors encountered while computing dynamic values. |
|
inputId |
string |
The id of the input |
isDisabled |
boolean |
Should this input be disabled |
isLimitedToPossibleValues |
boolean |
Should the value be restricted to one of the values in the PossibleValues (True) or are the values in PossibleValues just a suggestion (False) |
isReadOnly |
boolean |
Should this input be made read-only |
possibleValues |
Possible values that this input can take |
InputValuesError
Error information related to a subscription input value.
Name | Type | Description |
---|---|---|
message |
string |
The error message. |
ReferenceLinks
The class to represent a collection of REST reference links.
Name | Type | Description |
---|---|---|
links |
object |
The readonly view of the links. Because Reference links are readonly, we only want to expose them as read only. |