Action List
Viewset for viewing recipe actions.
GET /api/v1/action/?format=api
https://normandy.cdn.mozilla.net/api/v1/action/console-log/implementation/sha384-dwDUzk7p67hyOW81gMBIWnhrBFoOvbRvrt2ftxkMrqBjbADVA_1TjHuv0i7bbFrN/", "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Log a message to the console", "type": "object", "required": [ "message" ], "properties": { "message": { "description": "Message to log to the console", "type": "string", "default": "" } } } }, { "name": "show-heartbeat", "implementation_url": "https://normandy.cdn.mozilla.net/api/v1/action/show-heartbeat/implementation/sha384-VTOdZHFMo1LOw0JWf6_jAGBb9r5sBbb7BQrmI8n3wy3oVO3ywb1g3ulD1BagmaMA/", "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Show a Heartbeat survey.", "description": "This action shows a single survey.", "type": "object", "required": [ "surveyId", "message", "thanksMessage", "postAnswerUrl", "learnMoreMessage", "learnMoreUrl" ], "properties": { "repeatOption": { "type": "string", "enum": [ "once", "xdays", "nag" ], "description": "Determines how often a prompt is shown executes.", "default": "once" }, "repeatEvery": { "description": "For repeatOption=xdays, how often (in days) the prompt is displayed.", "default": null, "type": [ "number", "null" ] }, "includeTelemetryUUID": { "type": "boolean", "description": "Include unique user ID in post-answer-url and Telemetry", "default": false }, "surveyId": { "type": "string", "description": "Slug uniquely identifying this survey in telemetry" }, "message": { "description": "Message to show to the user", "type": "string" }, "engagementButtonLabel": { "description": "Text for the engagement button. If specified, this button will be shown instead of rating stars.", "default": null, "type": [ "string", "null" ] }, "thanksMessage": { "description": "Thanks message to show to the user after they've rated Firefox", "type": "string" }, "postAnswerUrl": { "description": "URL to redirect the user to after rating Firefox or clicking the engagement button", "default": null, "type": [ "string", "null" ] }, "learnMoreMessage": { "description": "Message to show to the user to learn more", "default": null, "type": [ "string", "null" ] }, "learnMoreUrl": { "description": "URL to show to the user when they click Learn More", "default": null, "type": [ "string", "null" ] } } } }, { "name": "preference-experiment", "implementation_url": "https://normandy.cdn.mozilla.net/api/v1/action/preference-experiment/implementation/sha384-o1w_DJcXVnm6ppFcrPr78-Q32ZVXgi6lfYm9wUS3JBj5466SxrFpXaFt_KgJC87O/", "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Run a feature experiment activated by a preference.", "type": "object", "required": [ "slug", "preferenceName", "preferenceType", "branches" ], "properties": { "slug": { "description": "Unique identifier for this experiment", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "experimentDocumentUrl": { "description": "URL of a document describing the experiment", "type": "string", "format": "uri", "default": "" }, "preferenceName": { "description": "Full dotted-path of the preference that controls this experiment", "type": "string" }, "preferenceType": { "description": "Data type of the preference that controls this experiment", "type": "string", "enum": [ "string", "integer", "boolean" ] }, "preferenceBranchType": { "description": "Controls whether the default or user value of the preference is modified", "type": "string", "enum": [ "user", "default" ], "default": "default" }, "isHighPopulation": { "description": "Marks the preference experiment as a high population experiment, that should be excluded from certain types of telemetry", "type": "boolean", "default": "false" }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false }, "branches": { "description": "List of experimental branches", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "slug", "value", "ratio" ], "properties": { "slug": { "description": "Unique identifier for this branch of the experiment", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "value": { "description": "Value to set the preference to for this branch", "type": [ "string", "number", "boolean" ] }, "ratio": { "description": "Ratio of users who should be grouped into this branch", "type": "integer", "minimum": 1 } } } } } } }, { "name": "opt-out-study", "implementation_url": "https://normandy.cdn.mozilla.net/api/v1/action/opt-out-study/implementation/sha384-QKoPs61T67mshtL1-RGVzzj7xgQbzCCit0fDUfnxE7UPiAKpHpFe5R7P-9Zr6jRZ/", "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Enroll a user in an opt-out SHIELD study", "type": "object", "required": [ "name", "description", "addonUrl", "extensionApiId" ], "properties": { "name": { "description": "User-facing name of the study", "type": "string", "minLength": 1 }, "description": { "description": "User-facing description of the study", "type": "string", "minLength": 1 }, "addonUrl": { "description": "URL of the add-on XPI file", "type": "string", "format": "uri", "minLength": 1 }, "extensionApiId": { "description": "The record ID of the extension used for Normandy API calls.", "type": "integer" }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false } } } }, { "name": "preference-rollout", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Change preferences permanently", "type": "object", "required": [ "slug", "preferences" ], "properties": { "slug": { "description": "Unique identifer for the rollout, used in telemetry and rollbacks", "type": "string", "pattern": "^[a-z0-9\\-_]+$" }, "preferences": { "description": "The preferences to change, and their values", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "preferenceName", "value" ], "properties": { "preferenceName": { "description": "Full dotted-path of the preference being changed", "type": "string" }, "value": { "description": "Value to set the preference to", "type": [ "string", "integer", "boolean" ] } } } } } } }, { "name": "preference-rollback", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Undo a preference rollout", "type": "object", "required": [ "rolloutSlug" ], "properties": { "rolloutSlug": { "description": "Unique identifer for the rollout to undo", "type": "string", "pattern": "^[a-z0-9\\-_]+$" } } } }, { "name": "addon-study", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Enroll a user in an opt-out SHIELD study", "type": "object", "required": [ "name", "description", "addonUrl", "extensionApiId" ], "properties": { "name": { "description": "User-facing name of the study", "type": "string", "minLength": 1 }, "description": { "description": "User-facing description of the study", "type": "string", "minLength": 1 }, "addonUrl": { "description": "URL of the add-on XPI file", "type": "string", "format": "uri", "minLength": 1 }, "extensionApiId": { "description": "The record ID of the extension used for Normandy API calls.", "type": "integer" }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false } } } }, { "name": "branched-addon-study", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Enroll a user in an add-on experiment, with managed branches", "type": "object", "required": [ "slug", "userFacingName", "userFacingDescription", "branches" ], "properties": { "slug": { "description": "Machine-readable identifier", "type": "string", "minLength": 1 }, "userFacingName": { "description": "User-facing name of the study", "type": "string", "minLength": 1 }, "userFacingDescription": { "description": "User-facing description of the study", "type": "string", "minLength": 1 }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false }, "branches": { "description": "List of experimental branches", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "slug", "ratio", "extensionApiId" ], "properties": { "slug": { "description": "Unique identifier for this branch of the experiment.", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "ratio": { "description": "Ratio of users who should be grouped into this branch.", "type": "integer", "minimum": 1 }, "extensionApiId": { "description": "The record ID of the add-on uploaded to the Normandy server. May be null, in which case no add-on will be installed.", "type": [ "number", "null" ], "default": null } } } } } } }, { "name": "multi-preference-experiment", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Run a feature experiment activated by a set of preferences.", "type": "object", "required": [ "slug", "userFacingName", "userFacingDescription", "branches" ], "properties": { "slug": { "description": "Unique identifier for this experiment", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "userFacingName": { "description": "User-facing name of the experiment", "type": "string", "minLength": 1 }, "userFacingDescription": { "description": "User-facing description of the experiment", "type": "string", "minLength": 1 }, "experimentDocumentUrl": { "description": "URL of a document describing the experiment", "type": "string", "format": "uri", "default": "" }, "isHighPopulation": { "description": "Marks the preference experiment as a high population experiment, that should be excluded from certain types of telemetry", "type": "boolean", "default": "false" }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false }, "branches": { "description": "List of experimental branches", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "slug", "ratio", "preferences" ], "properties": { "slug": { "description": "Unique identifier for this branch of the experiment", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "ratio": { "description": "Ratio of users who should be grouped into this branch", "type": "integer", "minimum": 1 }, "preferences": { "description": "The set of preferences to be set if this branch is chosen", "type": "object", "patternProperties": { ".*": { "type": "object", "properties": { "preferenceType": { "description": "Data type of the preference that controls this experiment", "type": "string", "enum": [ "string", "integer", "boolean" ] }, "preferenceBranchType": { "description": "Controls whether the default or user value of the preference is modified", "type": "string", "enum": [ "user", "default" ], "default": "default" }, "preferenceValue": { "description": "Value for this preference when this branch is chosen", "type": [ "string", "number", "boolean" ] } }, "required": [ "preferenceType", "preferenceBranchType", "preferenceValue" ] } } } } } } } } }, { "name": "addon-rollout", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Install add-on permanently", "type": "object", "required": [ "extensionApiId", "slug" ], "properties": { "extensionApiId": { "description": "The record ID of the extension used for Normandy API calls.", "type": "integer" }, "slug": { "description": "Unique identifer for the rollout, used in telemetry and rollbacks.", "type": "string", "pattern": "^[a-z0-9\\-_]+$" } } } }, { "name": "addon-rollback", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Undo an add-on rollout", "type": "object", "required": [ "rolloutSlug" ], "properties": { "rolloutSlug": { "description": "Unique identifer for the rollout to undo.", "type": "string", "pattern": "^[a-z0-9\\-_]+$" } } } }, { "name": "messaging-experiment", "implementation_url": null, "arguments_schema": { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Messaging Experiment", "type": "object", "required": [ "slug", "branches" ], "properties": { "slug": { "description": "Unique identifier for this experiment", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "isEnrollmentPaused": { "description": "If true, new users will not be enrolled in the study.", "type": "boolean", "default": false }, "branches": { "description": "List of experimental branches", "type": "array", "minItems": 1, "items": { "type": "object", "required": [ "slug", "value", "ratio", "groups" ], "properties": { "slug": { "description": "Unique identifier for this branch of the experiment.", "type": "string", "pattern": "^[A-Za-z0-9\\-_]+$" }, "value": { "description": "Message content.", "type": "object", "properties": {} }, "ratio": { "description": "Ratio of users who should be grouped into this branch.", "type": "integer", "minimum": 1 }, "groups": { "description": "A list of experiment groups that can be used to exclude or select related experiments. May be empty.", "type": "array", "items": { "type": "string", "description": "Identifier of the group" } } } } } } } } ][ { "name": "console-log", "implementation_url": "