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