[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drupal-migration.json","properties":{"id":{"title":"The migration ID (machine name)","type":"string"},"label":{"title":"The human-readable label for the migration","type":"string"},"audit":{"title":"Whether the migration is auditable","type":"boolean"},"migration_tags":{"title":"List of tags, used by the plugin manager for filtering","type":"array","items":{"type":"string"},"uniqueItems":true},"deriver":{"title":"Deriver class","type":"string"},"source":{"title":"The source plugin configuration","type":"object","properties":{"plugin":{"title":"Source plugin ID","type":"string"}},"required":["plugin"]},"process":{"title":"The configuration describing the process plugins","type":"object"},"destination":{"title":"The destination plugin configuration","type":["object"],"properties":{"plugin":{"title":"Destination plugin ID","type":["string","null"]}},"required":["plugin"]},"migration_dependencies":{"title":"Migrations to run before this migration","type":"object","properties":{"required":{"title":"List of migration IDs that must be run before this migration","type":"array","items":{"type":"string"},"uniqueItems":true},"optional":{"title":"List of migration IDs that, if they exist, must be run before","type":"array","items":{"type":"string"},"uniqueItems":true}}},"dependencies":{"title":"The migration's dependencies","type":"object","properties":{"config":{"type":"array","items":{"type":"string"},"uniqueItems":true},"module":{"type":"array","items":{"type":"string"},"uniqueItems":true},"theme":{"type":"array","items":{"type":"string"},"uniqueItems":true},"content":{"type":"array","items":{"type":"string"},"uniqueItems":true},"enforced":{"type":"object","properties":{"config":{"type":"array","items":{"type":"string"},"uniqueItems":true},"module":{"type":"array","items":{"type":"string"},"uniqueItems":true},"theme":{"type":"array","items":{"type":"string"},"uniqueItems":true},"content":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"additionalProperties":false}},"additionalProperties":false},"provider":{"title":"List of plugin providers","type":"array","items":{"type":"string"},"uniqueItems":true},"class":{"title":"Class for migration implementation","type":["string","null"]}},"title":"JSON schema for Drupal migration files","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Drupal migration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The migration ID (machine name)

The human-readable label for the migration

Whether the migration is auditable

List of tags, used by the plugin manager for filtering

Deriver class

The source plugin configuration

Source plugin ID

The configuration describing the process plugins

The destination plugin configuration

Destination plugin ID

Migrations to run before this migration

List of migration IDs that must be run before this migration

List of migration IDs that, if they exist, must be run before

The migration's dependencies

List of plugin providers

Class for migration implementation

JSON schema for Drupal migration files

Provide a JSON object that satisfies the schema "JSON schema for Drupal migration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drupal-permissions.json","additionalProperties":{"title":"Permission definition","type":"object","required":["title"],"properties":{"title":{"title":"The human-readable name of the permission","type":"string"},"description":{"title":"A description of what the permission does","type":"string"},"restrict access":{"title":"Restrict access to this permission to trusted users","description":"This should be used for permissions that have inherent security risks across a variety of potential use cases (for example, the \"administer filters\" and \"bypass node access\" permissions provided by Drupal core).","type":"boolean"}},"additionalProperties":false},"properties":{"permission_callbacks":{"title":"List of permission callbacks","type":"array","items":{"title":"A callback that return array of permissions","type":"string"},"uniqueItems":true}},"title":"JSON schema for Drupal permissions file","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Drupal permissions file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Permission definition

The human-readable name of the permission

A description of what the permission does

Restrict access to this permission to trusted users

This should be used for permissions that have inherent security risks across a variety of potential use cases (for example, the "administer filters" and "bypass node access" permissions provided by Drupal core).

List of permission callbacks

A callback that return array of permissions

JSON schema for Drupal permissions file

Provide a JSON object that satisfies the schema "JSON schema for Drupal permissions file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drupal-recipe.json","$defs":{"theme":{"defaultRegions":{"enum":["sidebar_first","sidebar_second","content","header","primary_menu","secondary_menu","footer","highlighted","help","page_top","page_bottom","breadcrumb"]}},"recipeTypes":{"type":"string","enum":["Administration","Block type","Comment type","Contact form","Content field","Content type","Editor","Maintenance","Media type","Performance","Responsive image","Search","Site","Taxonomy","Text format","Text format editor","Theme","User role","User type","Users","Workflow"]},"actionsList":{"generic":{"cloneAs":{"description":"Creates a clone of any config entity with a new ID.","type":"string"},"create":{"description":"Creates a config entity.","type":"object"},"createIfNotExists":{"description":"Creates a config entity if it does not exist. Existence is determined by it having the same ID.","type":"object"},"createForEach":{"description":"Loop over bundle config entities to create other config entities that are coupled to those bundles.","type":"object"},"createForEachIfNotExists":{"description":"Extends createForEach, to create only when it doesn't exist.","type":"object"},"set":{"description":"Changes a property of a config entity. This is a pretty low-level method and should generally only be used if no dedicated method exists. Works on all config entities.","type":"object","properties":{"property_name":{"description":"The property name i.e. label","type":"string"},"value":{"description":"The property value i.e. Logged-in user","type":["string","number","boolean","array"]}},"required":["property_name","value"]},"setMultiple":{"type":"array","description":"The same as set, but accepts multiple property/value pairs.","items":[{"$ref":"#/$defs/actionsList/generic/set"}]},"setThirdPartySetting":{"description":"Set third-party settings values for any config entity that can carry third-party settings.","type":"object","properties":{"module":{"description":"The module name","type":"string"},"key":{"description":"The key i.e. enabled","type":"string"},"value":{"description":"The property value i.e. true","type":["string","number","boolean","array"]}},"required":["module","key","value"]},"setThirdPartySettings":{"type":"array","description":"The same as setThirdPartySetting, but accepts multiple property/value pairs.","items":[{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"}]},"simpleConfigUpdate":{"description":"Used to make updates to any configuration value.","type":"object"}},"specific":{"block.block.*":{"type":"object","properties":{"setRegion":{"$ref":"#/$defs/theme/defaultRegions","description":"Sets the region in which a block should be. Which regions are available depends on which theme the block is in. Only works on blocks.","type":"string","default":"content"},"setStatus":{"description":"Sets status","type":"boolean"},"setWeight":{"description":"Sets the weight (position relative to other blocks in the same region of the same theme) of a block. Accepts any number. Works on Blocks.","type":"number"},"placeBlockInDefaultTheme":{"type":"object","properties":{"id":{"description":"The block id","type":"string"},"region":{"description":"The region accepts an array keyed by theme name.","type":"object","default":{"bootstrap":"footer","olivero":"footer_top"}},"default_region":{"description":"A fallback used if no match found in the region array.","type":"string","default":"content"},"position":{"description":"Place the block before/after any blocks already in the region.","type":"string","enum":["first","last"],"default":"first"},"plugin":{"description":"The plugin id","type":"string","default":"system_powered_by_block"}},"required":["id","region","default_region","position","plugin"]},"placeBlockInAdminTheme":{"$ref":"#/$defs/actionsList/specific/block.block.*/properties/placeBlockInDefaultTheme"},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"core.entity_form_display.*.*.*":{"$comment":"","type":"object","title":"Form/View display","description":"","properties":{"hideComponent":{"type":"string","title":"Hides a component from an entity view display or entity form display.","description":"Value: The component id","default":"uid"},"hideComponents":{"type":"array","description":"Value: The list of component ids","items":[{"type":"string"}]},"setComponent":{"type":"object","description":"Allows adding a field to an entity's view or form displays.","properties":{"name":{"description":"The field id. i.e. field_tags","type":"string"},"options":{"type":"object","properties":{"type":{"description":"The field type. i.e. entity_reference_label","type":"string"},"label":{"description":"Label position. i.e. above","type":"string","enum":["above","below","hidden","inline"]},"settings":{"type":"object","properties":{"link":{"type":"boolean"}}},"third_party_settings":{"type":"object"},"weight":{"type":"number"},"region":{"$ref":"#/$defs/theme/defaultRegions","type":"string"}}}},"additionalProperties":false},"setComponents":{"type":"array","description":"Allows adding adding the configuration for multiple fields.","items":[{"$ref":"#/$defs/actionsList/specific/core.entity_form_display.*.*.*/properties/setComponent"}]},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"core.entity_view_display.*.*.*":{"$ref":"#/$defs/actionsList/specific/core.entity_form_display.*.*.*"},"contact.form.*":{"type":"object","properties":{"setMessage":{"description":"Sets the message that a contact form should display to users when they submit the form. Only works on contact forms.","type":"string","default":"'Hello world'"},"setRecipients":{"description":"Sets the email addresses that should be notified when a user submits a contact form. Accepts an array of email addresses. Only works on contact forms.","type":"array","items":[{"type":"string","format":"email","default":"me@example.com"}]},"setRedirectPath":{"description":"Sets the path (URL) where users should be redirected when they submit a contact form. Must start with a slash. Only works on contact forms.","type":"string","default":"'/thank-you'"},"setReply":{"description":"Sets a message to be emailed to the person who submitted a contact form. Only works on contact forms.","type":"string","default":"'Thanks for your message.'"},"setWeight":{"description":"Sets the weight (position relative to other blocks in the same region of the same theme) of a block. Accepts any number. Works on Blocks.","type":"number"},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"editor.editor.*":{"properties":{"addItemToToolbar":{"description":"Add a new toolbar item.","type":"object","properties":{"item_name":{"description":"The toolbar item name","type":"string"},"position":{"description":"Specific the position, optionally replacing the item that's already in that position.","type":"number","minimum":0},"replace":{"description":"If there's already something at that position, replace it.","type":"boolean"}},"required":["item_name"]},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"field.field.*.*.*":{"properties":{"setDefaultValue":{"description":"Sets the default value of a field, which can be changed by users when editing content. Exactly what the default value should look like, varies by field type. Works on fields and base field overrides.","type":"string","default":"''"},"setDescription":{"description":"Changes the user-facing description of a field. Works on fields and base field overrides.","type":"string","default":"''"},"setLabel":{"description":"Changes the human-readable label of a field. Works on fields and base field overrides.","type":"string","default":"''"},"setRequired":{"description":"Sets whether users must enter a value for a field. Works on fields and base field overrides.","type":"boolean","default":true},"setTranslatable":{"description":"Sets whether a field should be translatable in the UI, or not. Works on fields and base field overrides. (Note that most fields are translatable by default.)","type":"boolean","default":true},"setSettings":{"description":"Changes field settings. Exactly which settings are available, and what they mean, varies by the field type. Any preexisting settings are added automatically, with the incoming settings taking precedence. Works on fields and base field overrides.","type":"object","properties":{"display_summary":{"type":"boolean","default":true},"required_summary":{"type":"boolean","default":true}}},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"field.storage.*.*":{"properties":{"addToAllBundles":{"description":"If you have a field that you want to add to every content type, but you don't know how many content types there are, or what they're called, there's an addToAllBundles config action that will automatically add a field to every content type.","type":"object","properties":{"label":{"type":"string","default":"''"},"description":{"type":"string","default":"''"},"fail_if_exists":{"description":"If field_meta_tags already exists on any content type, you'll get an error.","type":"boolean","default":false}}},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"workflows.workflow.*":{"type":"object","properties":{"addNodeTypes":{"description":"If you have an entity type or entity bundle that you want to add to a content moderation workflow, you can use config actions.","type":"array","items":[{"description":"Opt only certain content types into moderation.","type":"string"}]},"addTaxonomyVocabularies":{"description":"Opt every taxonomy vocabulary into moderation.","type":"string","default":"'*'"},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false},"user.role.*":{"type":"object","properties":{"grantPermission":{"description":"Used to add permissions to user roles.","type":"string","default":"''"},"grantPermissions":{"description":"Add multiple roles.","type":"array","items":[{"$ref":"#/$defs/actionsList/specific/user.role.*/properties/grantPermission"}]},"grantPermissionsForEachNodeType":{"description":"Grants permissions for every bundle of an entity type.","type":"array","items":{"type":"string"}},"grantPermissionsForEachTaxonomyVocabulary":{"description":"Grants permissions for every taxonomy vocabulary.","type":"array","items":{"type":"string"}},"grantPermissionsForEachMediaType":{"description":"Grants permissions for every media type.","type":"array","items":{"type":"string"}},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs"},"create":{"$ref":"#/$defs/actionsList/generic/create"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists"},"set":{"$ref":"#/$defs/actionsList/generic/set"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate"}},"additionalProperties":false}}}},"type":"object","required":["name","description","type"],"title":"New recipe","additionalProperties":true,"properties":{"name":{"title":"User interface name for the recipe","type":"string","default":"''"},"description":{"type":"string","default":"''"},"type":{"$ref":"#/$defs/recipeTypes","title":"The type of the recipe. Used for administrative purposes.","type":"string"},"recipes":{"type":"array","title":"List of recipes that this recipe depends on. Recipes must be installed relative to the Drupal root directory.","items":{"type":"string"},"examples":["core/recipes/remote_video_media_type","starshot_admin_theme"]},"install":{"title":"List of modules to be installed.","type":"array","items":{"type":"string"}},"config":{"type":"object","properties":{"import":{"title":"A list of configurations to be installed.","description":"The key is the configuration provider and the value is the list of configuration names.","type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"actions":{"title":"Key/Value","description":"The key is the configuration object targeted and the value is the action to be performed. For each action additional properties can be provided.","type":"object","patternProperties":{"block.block.*":{"$ref":"#/$defs/actionsList/specific/block.block.*"},"core.entity_form_display.*.*.*":{"$ref":"#/$defs/actionsList/specific/core.entity_form_display.*.*.*"},"core.entity_view_display.*.*.*":{"$ref":"#/$defs/actionsList/specific/core.entity_view_display.*.*.*"},"contact.form.*":{"$ref":"#/$defs/actionsList/specific/contact.form.*"},"editor.editor.*":{"$ref":"#/$defs/actionsList/specific/editor.editor.*"},"field.field.*.*.*":{"$ref":"#/$defs/actionsList/specific/field.field.*.*.*"},"field.storage.*.*":{"$ref":"#/$defs/actionsList/specific/field.storage.*.*"},"workflows.workflow.*":{"$ref":"#/$defs/actionsList/specific/workflows.workflow.*"},"user.role.*":{"$ref":"#/$defs/actionsList/specific/user.role.*"}},"additionalProperties":{"type":"object","properties":{"set":{"$ref":"#/$defs/actionsList/generic/set","type":"object"},"setMultiple":{"$ref":"#/$defs/actionsList/generic/setMultiple","type":"array"},"cloneAs":{"$ref":"#/$defs/actionsList/generic/cloneAs","type":"string"},"create":{"$ref":"#/$defs/actionsList/generic/create","type":"object"},"createIfNotExists":{"$ref":"#/$defs/actionsList/generic/createIfNotExists","type":"object"},"createForEach":{"$ref":"#/$defs/actionsList/generic/createForEach","type":"object"},"createForEachIfNotExists":{"$ref":"#/$defs/actionsList/generic/createForEachIfNotExists","type":"object"},"setThirdPartySetting":{"$ref":"#/$defs/actionsList/generic/setThirdPartySetting","type":"object"},"setThirdPartySettings":{"$ref":"#/$defs/actionsList/generic/setThirdPartySettings","type":"array"},"simpleConfigUpdate":{"$ref":"#/$defs/actionsList/generic/simpleConfigUpdate","type":"object"}}}}}},"content":{"title":"List of content to be created.","description":"The contents are stored in a directory relative to the recipe file.","type":"array","items":[{"type":"string"}]}}}
</schema>

[User] Provide a JSON object that satisfies the schema "New recipe". Here are the required top‑level fields: name, description, type. Return only the valid JSON object.

Administration
Block type
Comment type
Contact form
Content field
Content type
Editor
Maintenance
Media type
Performance
Responsive image
Search
Site
Taxonomy
Text format
Text format editor
Theme
User role
User type
Users
Workflow

Creates a clone of any config entity with a new ID.

Creates a config entity.

Creates a config entity if it does not exist. Existence is determined by it having the same ID.

Loop over bundle config entities to create other config entities that are coupled to those bundles.

Extends createForEach, to create only when it doesn't exist.

Changes a property of a config entity. This is a pretty low-level method and should generally only be used if no dedicated method exists. Works on all config entities.

The property name i.e. label

The property value i.e. Logged-in user

The same as set, but accepts multiple property/value pairs.

Set third-party settings values for any config entity that can carry third-party settings.

The module name

The key i.e. enabled

The property value i.e. true

The same as setThirdPartySetting, but accepts multiple property/value pairs.

Used to make updates to any configuration value.

Sets the region in which a block should be. Which regions are available depends on which theme the block is in. Only works on blocks.

Sets status

Sets the weight (position relative to other blocks in the same region of the same theme) of a block. Accepts any number. Works on Blocks.

The block id

The region accepts an array keyed by theme name.

A fallback used if no match found in the region array.

Place the block before/after any blocks already in the region.

The plugin id

id region default_region position plugin

Form/View display

Hides a component from an entity view display or entity form display.

Value: The component id

Value: The list of component ids

Allows adding a field to an entity's view or form displays.

The field id. i.e. field_tags

The field type. i.e. entity_reference_label

Label position. i.e. above

Allows adding adding the configuration for multiple fields.

Sets the message that a contact form should display to users when they submit the form. Only works on contact forms.

Sets the email addresses that should be notified when a user submits a contact form. Accepts an array of email addresses. Only works on contact forms.

Sets the path (URL) where users should be redirected when they submit a contact form. Must start with a slash. Only works on contact forms.

Sets a message to be emailed to the person who submitted a contact form. Only works on contact forms.

Add a new toolbar item.

The toolbar item name

Specific the position, optionally replacing the item that's already in that position.

If there's already something at that position, replace it.

Sets the default value of a field, which can be changed by users when editing content. Exactly what the default value should look like, varies by field type. Works on fields and base field overrides.

Changes the user-facing description of a field. Works on fields and base field overrides.

Changes the human-readable label of a field. Works on fields and base field overrides.

Sets whether users must enter a value for a field. Works on fields and base field overrides.

Sets whether a field should be translatable in the UI, or not. Works on fields and base field overrides. (Note that most fields are translatable by default.)

Changes field settings. Exactly which settings are available, and what they mean, varies by the field type. Any preexisting settings are added automatically, with the incoming settings taking precedence. Works on fields and base field overrides.

If you have a field that you want to add to every content type, but you don't know how many content types there are, or what they're called, there's an addToAllBundles config action that will automatically add a field to every content type.

If field_meta_tags already exists on any content type, you'll get an error.

If you have an entity type or entity bundle that you want to add to a content moderation workflow, you can use config actions.

Opt only certain content types into moderation.

Opt every taxonomy vocabulary into moderation.

Used to add permissions to user roles.

Add multiple roles.

Grants permissions for every bundle of an entity type.

Grants permissions for every taxonomy vocabulary.

Grants permissions for every media type.

New recipe

User interface name for the recipe

The type of the recipe. Used for administrative purposes.

List of recipes that this recipe depends on. Recipes must be installed relative to the Drupal root directory.

List of modules to be installed.

A list of configurations to be installed.

The key is the configuration provider and the value is the list of configuration names.

Key/Value

The key is the configuration object targeted and the value is the action to be performed. For each action additional properties can be provided.

List of content to be created.

The contents are stored in a directory relative to the recipe file.

Provide a JSON object that satisfies the schema "New recipe". Here are the required top‑level fields: name, description, type. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drupal-routing.json","additionalProperties":{"type":"object","properties":{"path":{"title":"Route path","type":"string"},"defaults":{"title":"Default route parameters","type":"object","properties":{"_controller":{"title":"A controller to execute when the route is matched","type":"string"},"_form":{"type":"string"},"_title":{"type":"string"},"_title_callback":{"type":"string"},"_access":{"type":"string"},"_entity_list":{"type":"string"},"_entity_form":{"type":"string"},"_entity_view":{"type":"string"}}},"requirements":{"title":"List of requirements that makes a specific route only match under specific conditions","type":"object","properties":{"_access":{"type":"string"},"_custom_access":{"type":"string"},"_format":{"type":"string"},"_entity_access":{"type":"string"},"_entity_create_access":{"type":"string"},"_entity_delete_multiple_access":{"type":"string"},"_module_dependencies":{"type":"string"},"_csrf_token":{"type":"string"},"_user_is_logged_in":{"type":"string"},"_access_theme":{"type":"string"},"_permission":{"type":"string"}}},"methods":{"title":"Method of the incoming request to match the route","type":"array","items":{"type":"string","enum":["GET","POST","PATCH","PUT","DELETE"]},"uniqueItems":true},"options":{"title":"Additional route options","type":"object","properties":{"no_cache":{"type":"boolean"},"_admin_route":{"type":"boolean"},"_no_path":{"type":"boolean"},"_maintenance_access":{"type":"boolean"},"_node_operation_route":{"type":"boolean"},"parameters":{"type":"object"},"_auth":{"type":"array","items":{"type":"string"},"uniqueItems":true}}}},"additionalProperties":false},"properties":{"route_callbacks":{"title":"List of callbacks to provide routes","type":"array","items":{"type":"string"},"uniqueItems":true}},"title":"JSON schema for Drupal routing file","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Drupal routing file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Route path

Default route parameters

A controller to execute when the route is matched

List of requirements that makes a specific route only match under specific conditions

Method of the incoming request to match the route

Additional route options

List of callbacks to provide routes

JSON schema for Drupal routing file

Provide a JSON object that satisfies the schema "JSON schema for Drupal routing file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drupal-services.json","additionalProperties":false,"properties":{"parameters":{"title":"Service parameters","type":"object"},"services":{"type":"object","additionalProperties":{"type":"object","properties":{"class":{"title":"Service class","type":"string"},"parent":{"title":"Parent service to extend","type":"string"},"factory":{"title":"A factory to create the object","oneOf":[{"type":"string"},{"type":"array"}]},"decorates":{"title":"Service name to decorate","type":"string"},"deprecated":{"title":"A flag indicating that the service is deprecated","type":"string"},"lazy":{"title":"Lazy service instantiation","type":"boolean"},"shared":{"title":"Shared service","type":"boolean"},"abstract":{"title":"Abstract service","type":"boolean"},"public":{"title":"A flag indication that the service cannot be accessed directly from the container object","type":"boolean"},"alias":{"title":"A shortcut to access some services","type":"string"},"arguments":{"title":"Service arguments","type":"array","uniqueItems":true},"configurator":{"title":"A callable to configure a service after its instantiation","type":"array","items":{"type":"string"}},"tags":{"title":"List of tags tell Drupal that your service can be processed in some special way","examples":["event_subscriber","service_collector","theme_negotiator","twig.extension","access_check"],"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"call":{"type":"string"},"alias":{"type":"string"},"required":{"type":"boolean"},"tag":{"type":"string"},"priority":{"type":"integer"},"default_backend":{"type":"string"},"responder":{"type":"boolean"},"format":{"type":"string"},"applies_to":{"type":"string"},"provider_id":{"type":"string"},"needs_incoming_request":{"type":"boolean"},"scheme":{"type":"string"}}}},"calls":{"title":"Methods to set optional dependencies","type":"array","uniqueItems":true}}}}},"title":"JSON schema for Drupal services file","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for Drupal services file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Service parameters

Service class

Parent service to extend

A factory to create the object

Service name to decorate

A flag indicating that the service is deprecated

Lazy service instantiation

Shared service

Abstract service

A flag indication that the service cannot be accessed directly from the container object

A shortcut to access some services

Service arguments

A callable to configure a service after its instantiation

List of tags tell Drupal that your service can be processed in some special way

Methods to set optional dependencies

JSON schema for Drupal services file

Provide a JSON object that satisfies the schema "JSON schema for Drupal services file". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/drush.site.yml.json","additionalProperties":{"type":"object","properties":{"root":{"title":"The Drupal root for this site","default":"/path/to/drupal/root","type":"string"},"host":{"title":"The fully-qualified domain name of the remote system hosting the Drupal instance","default":"my-server.com","type":"string"},"uri":{"title":"Site URI","description":"The value of uri should always be the same as when the site is being accessed from a web browser","default":"https://example.com","type":"string"},"user":{"title":"The username to log in as when using ssh or rsync","type":"string"},"os":{"title":"The operating system of the remote server","type":"string","enum":["Windows","Linux"]},"ssh":{"title":"Contains settings used to control how ssh commands are generated when running remote commands","type":"object","properties":{"options":{"title":"Additional commandline options for the ssh command itself","type":"string"},"tty":{"title":"A flag to force Drush to always or never create a tty","type":"boolean"}}},"paths":{"title":"Aliases for common rsync targets","type":"object","properties":{"drush-script":{"title":"Path to the remote Drush command","default":"/path/to/drush","type":"string"},"alias-path":{"title":"A list of paths where Drush will search for alias files","type":"array","items":{"type":"string"}},"files":{"titles":"Path to 'files' directory","type":"string"}},"additionalProperties":{"type":"string"}},"command":{"title":"Contains options for specific commands","type":"object","additionalProperties":{"type":"object"}},"docker":{"type":"object","properties":{"service":{"title":"The name of the container to run on","type":"string"},"exec":{"type":"object","options":{"title":"Options for exec command","type":"string"}}}},"vagrant":{"title":"Vagrant transport","type":"null"}}},"title":"JSON Schema for Drush site aliases","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON Schema for Drush site aliases". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The Drupal root for this site

The fully-qualified domain name of the remote system hosting the Drupal instance

Site URI

The value of uri should always be the same as when the site is being accessed from a web browser

The username to log in as when using ssh or rsync

The operating system of the remote server

Contains settings used to control how ssh commands are generated when running remote commands

Additional commandline options for the ssh command itself

A flag to force Drush to always or never create a tty

Aliases for common rsync targets

Path to the remote Drush command

A list of paths where Drush will search for alias files

Contains options for specific commands

The name of the container to run on

Options for exec command

Vagrant transport

JSON Schema for Drush site aliases

Provide a JSON object that satisfies the schema "JSON Schema for Drush site aliases". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "dss-2.0.0". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "dss-2.0.0". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/dtool-dataset-metadata-1.0.json","title":"DToolDataset","description":"Schema for metadata attached to a dtool dataset","type":"object","properties":{"uuid":{"type":"string","format":"uuid"},"base_uri":{"type":"string"},"uri":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"readme":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":true}]},"manifest":{"type":"object","properties":{"items":{"type":"object","additionalProperties":{"type":"object","properties":{"hash":{"type":"string"},"relpath":{"type":"string"},"size_in_bytes":{"type":"integer"},"utc_timestamp":{"type":"number"}}}},"hash_function":{"type":"string"},"dtoolcore_version":{"type":"string"}}},"creator_username":{"type":"string"},"frozen_at":{"anyOf":[{"type":"string"},{"type":"number"}]},"created_at":{"anyOf":[{"type":"string"},{"type":"number"}]},"annotations":{"type":"object"},"tags":{"type":"array","items":{"type":"string"}},"number_of_items":{"type":"integer"},"size_in_bytes":{"type":"integer"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "DToolDataset". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

DToolDataset

Schema for metadata attached to a dtool dataset

Provide a JSON object that satisfies the schema "DToolDataset". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-06/schema","type":"object","description":"The EAS config (eas.json) validation and documentation.","meta":{"updatedAt":"2022-07-18T15:00:00.000Z"},"properties":{"$schema":{"type":"string"},"cli":{"$ref":"#/definitions/Cli"},"build":{"$ref":"#/definitions/Build"},"submit":{"$ref":"#/definitions/Submit"}},"definitions":{"Cli":{"type":"object","description":"Configure the basic behavior of your project with the EAS CLI","properties":{"version":{"type":"string","description":"The compatible versions of EAS CLI with this config","examples":[">=0.54.1"]},"requireCommit":{"type":"boolean","description":"If all changes required to be committed before building or submitting"},"appVersionSource":{"enum":["local","remote"],"markdownDescription":"Version policy defines whether version of your app should be based on your local project or values stored on EAS servers (remote).\n\nThis is the configuration required for `eas build:version:set` and works with the `autoIncrement` options per platform.","markdownEnumDescriptions":["When using local, the `autoIncrement` is based on your local project values.","When using remote, the `autoIncrement` is based on the values stored on EAS servers."]},"promptToConfigurePushNotifications":{"type":"boolean","description":"Specifies where EAS CLI should prompt to configure Push Notifications credentials. It defaults to true if expo-notifications is in your project dependencies, otherwise it defaults to false.","default":true}}},"Build":{"type":"object","description":"EAS Build configuration. Learn more: https://docs.expo.dev/build-reference/eas-json/","markdownDescription":"EAS Build configuration. [Learn more](https://docs.expo.dev/build-reference/eas-json/)","patternProperties":{".*":{"$ref":"#/definitions/BuildProfile"}}},"BuildCache":{"type":"object","properties":{"disabled":{"type":"boolean","description":"Disables caching. Defaults to false."},"key":{"type":"string","description":"Cache key. You can invalidate the cache by changing this value."},"customPaths":{"type":"array","description":"[DEPRECATED] Use `paths` instead. List of the paths that will be saved after a successful build and restored at the beginning of the next one.","markdownDescription":"[DEPRECATED] Use `paths` instead. List of the paths that will be saved after a successful build and restored at the beginning of the next one. Both absolute and relative paths are supported, where relative paths are resolved from the directory with `eas.json`.","uniqueItems":true,"items":{"type":"string"},"deprecated":true},"paths":{"type":"array","description":"List of the paths that will be saved after a successful build and restored at the beginning of the next one.","markdownDescription":"List of the paths that will be saved after a successful build and restored at the beginning of the next one. Both absolute and relative paths are supported, where relative paths are resolved from the directory with `eas.json`.","uniqueItems":true,"items":{"type":"string"}}}},"BuildProfile":{"type":"object","description":"The build profile configuration.","properties":{"withoutCredentials":{"type":"boolean","description":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when working with custom builds.","markdownDescription":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when working with custom builds.","default":false},"extends":{"type":"string","description":"The name of the build profile that the current one should inherit values from. This value can't be specified per platform."},"credentialsSource":{"enum":["remote","local"],"description":"The source of credentials used to sign build artifacts. Learn more: https://docs.expo.dev/app-signing/local-credentials/","markdownDescription":"The source of credentials used to sign build artifacts.\n\n- `remote` - if you want to use the credentials managed by EAS.\n- `local` - if you want to provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)","default":"remote","markdownEnumDescriptions":["Use the credentials managed by EAS.","Provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)"]},"channel":{"type":"string","description":"The channel name identifies which EAS Update channel a build belongs to. Learn more: https://docs.expo.dev/eas-update/how-eas-update-works/","markdownDescription":"The channel name identifies which EAS Update channel a build belongs to. [Learn more](https://docs.expo.dev/eas-update/how-eas-update-works/)"},"distribution":{"enum":["internal","store"],"description":"The method of distributing your app. Learn more: https://docs.expo.dev/build/internal-distribution/","markdownDescription":"The method of distributing your app.\n\n- `internal` - with this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)\n- `store` - produces builds for store uploads, your build URLs won't be shareable.","markdownEnumDescriptions":["With this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)","Produces builds for store uploads, your build URLs won't be shareable."]},"developmentClient":{"type":"boolean","description":"If set to true, this field expresses the intent to produce a development client build. Learn more: https://docs.expo.dev/development/introduction/","markdownDescription":"If set to true, this field expresses the intent to produce a development client build.\n\nFor the build to be successful, the project must have `expo-dev-client` installed and configured.\n> This field is sugar for setting the iOS `buildConfiguration` to `Debug` and Android `gradleCommand` to `:app:assembleDebug`. Those fields, if provided for the same build profile, will take precedence.\n\n[Learn more](https://docs.expo.dev/development/introduction/)","default":false},"prebuildCommand":{"type":"string","description":"Optional override of the prebuild command used by EAS. Learn more: https://docs.expo.dev/workflow/expo-cli/#expo-prebuild","markdownDescription":"Optional override of the prebuild command used by EAS.\n\nFor example, you can specify `prebuild --template example-template` to use a custom template.\n>`--platform` and `--non-interactive` will be added automatically by the build engine, so you do not need to specify them manually.\n\n[Learn more](https://docs.expo.dev/workflow/expo-cli/#expo-prebuild)"},"node":{"type":"string","description":"The version of Node.js to use for the build. See: https://nodejs.org/en/about/releases/","markdownDescription":"The exact version of [Node.js](https://nodejs.org/en/about/releases/) to use for the build."},"corepack":{"type":"boolean","description":"If set to true, corepack will be enabled at the beginning of the build process. Learn more: https://nodejs.org/api/corepack.html","markdownDescription":"If set to true, [corepack](https://nodejs.org/api/corepack.html) will be enabled at the beginning of the build process.","default":false},"yarn":{"type":"string","description":"The version of Yarn to use for the build. See: https://www.npmjs.com/package/yarn","markdownDescription":"The exact version of [Yarn](https://www.npmjs.com/package/yarn) to use for the build."},"pnpm":{"type":"string","description":"The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm","markdownDescription":"The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build."},"bun":{"type":"string","description":"The version of Bun to use for the build. See: https://bun.sh/","markdownDescription":"The exact version of [Bun](https://bun.sh/) to use for the build."},"env":{"type":"object","description":"Environment variables that should be set during the build process.\n\nShould only be used for values that you would commit to your git repository, i.e. not passwords or secrets.","patternProperties":{".*":{"type":"string","description":"This environment variable will be set during the build process."}}},"cache":{"$ref":"#/definitions/BuildCache","description":"The cache configuration.","markdownDescription":"Cache configuration. This feature is intended for caching values that require a lot of computation, e.g. compilation results (both final binaries and any intermediate files), but it wouldn't work well for `node_modules` because the cache is not local to the machine, so the download speed is similar to downloading from the npm registry."},"autoIncrement":{"type":"boolean","description":"Controls how EAS CLI bumps your application build version.","markdownDescription":"When enabled, for iOS, bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`) and for Android, bumps `expo.android.versionCode` (e.g. `3` -> `4`).","default":false},"buildArtifactPaths":{"type":"array","items":{"type":"string"},"description":"List of paths (or patterns) where EAS Build is going to look for the build artifacts. Use `applicationArchivePath` to specify the path for uploading the application archive. Build artifacts are uploaded even if the build fails. See: https://github.com/mrmlnc/fast-glob#pattern-syntax","markdownDescription":"List of paths (or patterns) where EAS Build is going to look for the build artifacts. Use `applicationArchivePath` to specify the path for uploading the application archive. Build artifacts are uploaded even if the build fails. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax))."},"resourceClass":{"description":"The resource class that will be used to run this build, supported by both Android and iOS workers. Learn more: https://docs.expo.dev/build-reference/infrastructure/","markdownDescription":"The resource class that will be used to run this build, supported by both Android and iOS workers. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)","default":"default","anyOf":[{"enum":["default","medium","large"]},{"type":"string"}]},"config":{"description":"Custom workflow file name that will be used to run this build. You can also specify this property on platform level for platform-specific workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/","type":"string"},"environment":{"description":"Environment to use for the server-side defined EAS environment variables during build process and command execution. Learn more: https://docs.expo.dev/eas/environment-variables/","markdownDescription":"Environment to use for the server-side defined EAS environment variables during build process and command execution. [Learn more](https://docs.expo.dev/eas/environment-variables/)","enum":["production","preview","development"]},"android":{"$ref":"#/definitions/BuildProfileAndroid"},"ios":{"$ref":"#/definitions/BuildProfileIos"}}},"BuildProfileAndroid":{"type":"object","description":"The Android-specific build profile configuration.","properties":{"withoutCredentials":{"type":"boolean","description":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when you want to build debug binaries and the debug keystore is checked in to the repository or working with custom builds.","markdownDescription":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when you want to build debug binaries and the debug keystore is checked in to the repository or working with custom builds.","default":false},"image":{"description":"Image with build environment. Learn more: https://docs.expo.dev/build-reference/infrastructure/","markdownDescription":"Image with build environment. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)","default":"default","anyOf":[{"enum":["auto","latest","sdk-52","sdk-51","sdk-50","sdk-49","ubuntu-22.04-jdk-17-ndk-r26b","ubuntu-22.04-jdk-17-ndk-r25b","ubuntu-22.04-jdk-11-ndk-r23b","ubuntu-22.04-jdk-17-ndk-r21e","ubuntu-22.04-jdk-11-ndk-r21e"],"markdownEnumDescriptions":["When using this option the build image is selected automatically based on the project configuration, detected Expo SDK and React Native versions.","The latest Android image currently available. It is resolved to `ubuntu-22.04-jdk-17-ndk-r26b`. The `latest` to image mapping will be updated as new images are released.","The recommended image for SDK 52 builds","The recommended image for SDK 51 builds","The recommended image for SDK 50 builds","The recommended image for SDK 49 builds"]},{"deprecated":true,"enum":["default","stable","ubuntu-20.04-jdk-11-ndk-r23b","ubuntu-20.04-jdk-11-ndk-r19c","ubuntu-20.04-jdk-8-ndk-r19c","ubuntu-20.04-jdk-11-ndk-r21e","ubuntu-20.04-jdk-8-ndk-r21e","ubuntu-22.04-jdk-8-ndk-r21e"],"markdownEnumDescriptions":["This image tag is deprecated, please use other image tags or images directly instead.","This image tag is deprecated, please use other image tags or images directly instead.","This image is deprecated","This image is deprecated","This image is deprecated","This image is deprecated","This image is deprecated","This image is deprecated"]}]},"resourceClass":{"description":"The Android-specific resource class that will be used to run this build. Learn more: https://docs.expo.dev/build-reference/infrastructure/","markdownDescription":"The Android-specific resource class that will be used to run this build. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)","default":"default","anyOf":[{"enum":["default","medium","large"]},{"type":"string"}]},"ndk":{"type":"string","description":"The version of Android NDK."},"autoIncrement":{"enum":[false,true,"versionCode","version"],"description":"Controls how EAS CLI bumps your application build version.","markdownDescription":"Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"versionCode\"` (or `true`) - bumps `expo.android.versionCode` (e.g. `3` -> `4`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `versionName` and `expo.android.versionCode` to `versionCode` in the `build.gradle`. Google Play uses these values to identify the app build, `versionName` is the version visible to users, whereas `versionCode` defines the version number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.","default":false,"markdownEnumDescriptions":["Versions won't be bumped automatically (default).","Bumps `expo.android.versionCode` (e.g. `3` -> `4`).","Bumps `expo.android.versionCode` (e.g. `3` -> `4`).","Bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`)."]},"buildType":{"enum":["app-bundle","apk"],"description":"Type of the artifact you want to build.","markdownDescription":"Type of the artifact you want to build. It controls what Gradle task will be used, can be overridden by `gradleCommand` or `developmentClient: true` option.\n- `app-bundle` - `:app:bundleRelease`\n- `apk` - `:app:assembleRelease`","markdownEnumDescriptions":["Gradle task `:app:bundleRelease` is used","Gradle task `:app:assembleRelease` is used"]},"gradleCommand":{"type":"string","description":"Gradle task that will be used to build your project, e.g. `:app:assembleDebug` to build a debug binary.","markdownDescription":"Gradle task that will be used to build your project, e.g. `:app:assembleDebug` to build a debug binary.\n\nIt's not recommended unless you need to run a task that `buildType` does not support, it takes priority over `buildType` and `developmentClient`."},"applicationArchivePath":{"type":"string","description":"Path (or pattern) where EAS Build is going to look for the application archive. See: https://github.com/mrmlnc/fast-glob#pattern-syntax","markdownDescription":"Path (or pattern) where EAS Build is going to look for the application archive. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).","default":"android/app/build/outputs/**/*.{apk,aab}"},"artifactPath":{"type":"string","description":"[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts. See: https://github.com/mrmlnc/fast-glob#pattern-syntax","markdownDescription":"[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).","default":"android/app/build/outputs/**/*.{apk,aab}"},"config":{"description":"Custom workflow file name that will be used to run this Android build. You can also specify this property on profile levle for platform-agnostic workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/","type":"string"}}},"BuildProfileIos":{"type":"object","description":"The iOS-specific build profile configuration.","properties":{"withoutCredentials":{"type":"boolean","description":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when working with custom builds.","markdownDescription":"When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when working with custom builds.","default":false},"simulator":{"type":"boolean","description":"If set to true, creates build for simulator.","default":false},"enterpriseProvisioning":{"enum":["universal","adhoc"],"markdownDescription":"Provisioning method used for `\"distribution\": \"internal\"` when you have an Apple account with Apple Developer Enterprise Program membership.\n\nYou can choose if you want to use `adhoc` or `universal` provisioning. The latter is recommended as it does not require you to register each individual device. If you don't provide this option and you still authenticate with an enterprise team, you'll be prompted which provisioning method to use.","markdownEnumDescriptions":["Recommended as it does not require you to register each individual device"]},"autoIncrement":{"enum":[false,true,"buildNumber","version"],"description":"Controls how EAS CLI bumps your application build version.","markdownDescription":"Controls how EAS CLI bumps your application build version.\n\nAllowed values:\n\n- `\"version\"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).\n- `\"buildNumber\"` (or `true`) - bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`).\n- `false` - versions won't be bumped automatically (default)\n\nIn the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `CFBundleShortVersionString` and `expo.ios.buildNumber` to `CFBundleVersion` in the `Info.plist`. The App Store is using those values to identify the app build, `CFBundleShortVersionString` is the version visible to users, whereas `CFBundleVersion` defines the build number. The combination of those needs to be unique, so you can bump either of them.\n\nThis feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.","default":false,"markdownEnumDescriptions":["Versions won't be bumped automatically (default)","Bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`)","Bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`)","Bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`)"]},"image":{"description":"Image with build environment. Learn more: https://docs.expo.dev/build-reference/infrastructure/","markdownDescription":"Image with build environment. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)","default":"default","anyOf":[{"enum":["auto","latest","sdk-52","sdk-51","sdk-50","sdk-49","macos-sonoma-14.6-xcode-16.1","macos-sonoma-14.6-xcode-16.0","macos-sonoma-14.5-xcode-15.4","macos-sonoma-14.4-xcode-15.3","macos-ventura-13.6-xcode-15.2","macos-ventura-13.6-xcode-15.1","macos-ventura-13.6-xcode-15.0"],"markdownEnumDescriptions":["When using this option the build image is selected automatically based on the project configuration, detected Expo SDK and React Native versions.","The latest iOS image currently available. It is resolved to `macos-sonoma-14.6-xcode-16.1`. The `latest` to image mapping will be updated as new images are released.","The recommended image for SDK 52 builds","The recommended image for SDK 51 builds","The recommended image for SDK 50 builds","The recommended image for SDK 49 builds"]},{"deprecated":true,"enum":["default","stable"],"markdownEnumDescriptions":["This image tag is deprecated, please use other image tags or images directly instead.","This image tag is deprecated, please use other image tags or images directly instead."]}]},"resourceClass":{"description":"The iOS-specific resource class that will be used to run this build. Learn more: https://docs.expo.dev/build-reference/infrastructure/","markdownDescription":"The iOS-specific resource class that will be used to run this build. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)","default":"default","anyOf":[{"enum":["default","medium","large","m-medium"]},{"type":"string"}]},"bundler":{"type":"string","description":"The version of bundler to use for the build. See: https://bundler.io/.","markdownDescription":"The version of [bundler](https://bundler.io/) to use for the build."},"fastlane":{"type":"string","description":"The version of fastlane to use for the build. See: https://fastlane.tools/","markdownDescription":"The version of [fastlane](https://fastlane.tools/) to use for the build."},"cocoapods":{"type":"string","description":"The version of CocoaPods to use for the build. See: https://cocoapods.org/","markdownDescription":"The version of [CocoaPods](https://cocoapods.org/) to use for the build."},"scheme":{"type":"string","description":"Xcode project's scheme.","markdownDescription":"Xcode project's scheme.\n- managed project: does not have any effect\n- bare project\n  - If your project has multiple schemes, you should set this value.\n  - If the project has only one scheme, it will be detected automatically.\n  - If multiple schemes exist and this value is **not** set, EAS CLI will prompt you to select one of them."},"buildConfiguration":{"type":"string","description":"Xcode project's Build Configuration.","markdownDescription":"Xcode project's Build Configuration.\n- managed project: \"Release\" or \"Debug\", defaults to \"Release\"\n- bare project: defaults to the value specified in the scheme\n\nIt takes priority over `developmentClient` field."},"applicationArchivePath":{"type":"string","description":"Path (or pattern) where EAS Build is going to look for the application archive. See: https://github.com/mrmlnc/fast-glob#pattern-syntax","markdownDescription":"Path (or pattern) where EAS Build is going to look for the application archive.\n\nEAS Build uses the `fast-glob` npm package for pattern matching, ([See their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).\n\nYou should modify that path only if you are using a custom `Gymfile`.\n\nThe default is `ios/build/Build/Products/*-iphonesimulator/*.app` when building for simulator and `ios/build/*.ipa` in other cases."},"artifactPath":{"type":"string","description":"[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts. See: https://github.com/mrmlnc/fast-glob#pattern-syntax","markdownDescription":"[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts.\n\nEAS Build uses the `fast-glob` npm package for pattern matching, ([See their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).\n\nYou should modify that path only if you are using a custom `Gymfile`.\n\nThe default is `ios/build/Build/Products/*-iphonesimulator/*.app` when building for simulator and `ios/build/*.ipa` in other cases."},"config":{"description":"Custom workflow file name that will be used to run this iOS build. You can also specify this property on profile levle for platform-agnostic workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/","type":"string"}}},"Submit":{"type":"object","description":"EAS Submit configuration. Learn more: https://docs.expo.dev/submit/eas-json/","markdownDescription":"EAS Submit configuration. [Learn more](https://docs.expo.dev/submit/eas-json/)","patternProperties":{".*":{"$ref":"#/definitions/SubmitProfile","description":"The submit profile name with the configuration."}}},"SubmitProfile":{"type":"object","properties":{"extends":{"type":"string","description":"The name of the submit profile that the current one should inherit values from."},"android":{"$ref":"#/definitions/SubmitProfileAndroid"},"ios":{"$ref":"#/definitions/SubmitProfileIos"}}},"SubmitProfileAndroid":{"type":"object","description":"The Android-specific submit profile configuration.","properties":{"serviceAccountKeyPath":{"type":"string","description":"Path to the JSON file with service account key used to authenticate with Google Play. Learn more: https://expo.fyi/creating-google-service-account","markdownDescription":"Path to the JSON file with service account key used to authenticate with Google Play. [Learn more](https://expo.fyi/creating-google-service-account)"},"track":{"enum":["beta","alpha","internal","production"],"description":"The track of the application to use. Learn more: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en","markdownDescription":"The [track of the application](https://support.google.com/googleplay/android-developer/answer/9859348?hl=en) to use.","markdownEnumDescriptions":["**Open testing** releases are available to testers on Google Play. Users can join tests from your store listing.","**Closed testing** releases are available to a limited number of testers that you choose, who can test a pre-release version of your app and submit feedback.","**Internal testing** releases are available to up to 100 testers that you choose.","**Production releases** are available to all Google Play users in your chosen countries."]},"releaseStatus":{"enum":["draft","inProgress","halted","completed"],"description":"The status of a release. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks","markdownDescription":"The status of a release. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)","enumDescriptions":["The release's APKs are not being served to users.","The release's APKs are being served to a fraction of users, if set.","The release's APKs will no longer be served to users. Users who already have these APKs are unaffected.","The release will have no further changes. Its APKs are being served to all users, unless they are eligible to APKs of a more recent release."]},"rollout":{"type":"number","description":"The initial fraction of users who are eligible to receive the release. Should be a value from 0 (no users) to 1 (all users). Works only with 'inProgress' release status. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks","markdownDescription":"The initial fraction of users who are eligible to receive the release. Should be a value from 0 (no users) to 1 (all users). Works only with `inProgress` release status. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)"},"changesNotSentForReview":{"type":"boolean","description":"Indicates that the changes sent with this submission will not be reviewed until they are explicitly sent for review from the Google Play Console UI. Defaults to false.","default":false},"applicationId":{"type":"string","description":"The application id that will be used when accessing Service Account Keys managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple product flavors, this value might be necessary."}}},"SubmitProfileIos":{"type":"object","description":"The iOS-specific submit profile configuration.","properties":{"appleId":{"type":"string","description":"Your Apple ID username (you can also set the `EXPO_APPLE_ID` env variable).","markdownDescription":"Your Apple ID username (you can also set the `EXPO_APPLE_ID` env variable)."},"ascAppId":{"type":"string","description":"App Store Connect unique application Apple ID number. When set, results in skipping the app creation step. Learn more: https://expo.fyi/asc-app-id","markdownDescription":"App Store Connect unique application Apple ID number. When set, results in skipping the app creation step. [Learn more](https://expo.fyi/asc-app-id)"},"appleTeamId":{"type":"string","description":"Your Apple Developer Team ID."},"sku":{"type":"string","description":"An unique ID for your app that is not visible on the App Store, will be generated unless provided."},"language":{"type":"string","description":"Primary language. Defaults to `en-US`.","markdownDescription":"Primary language. Defaults to `en-US`."},"companyName":{"type":"string","description":"The name of your company, needed only for the first submission of any app to the App Store."},"appName":{"type":"string","description":"The name of your app as it will appear on the App Store. Defaults to `expo.name` from the app config.","markdownDescription":"The name of your app as it will appear on the App Store. Defaults to `expo.name` from the app config."},"ascApiKeyPath":{"type":"string","description":"The path to your App Store Connect Api Key .p8 file. Learn more: https://expo.fyi/creating-asc-api-key","markdownDescription":"The path to your App Store Connect Api Key .p8 file. [Learn more](https://expo.fyi/creating-asc-api-key)"},"ascApiKeyIssuerId":{"type":"string","description":"The Issuer ID of your App Store Connect Api Key. Learn more: https://expo.fyi/creating-asc-api-key","markdownDescription":"The Issuer ID of your App Store Connect Api Key. [Learn more](https://expo.fyi/creating-asc-api-key)"},"ascApiKeyId":{"type":"string","description":"The Key ID of your App Store Connect Api Key. Learn more: https://expo.fyi/creating-asc-api-key","markdownDescription":"The Key ID of your App Store Connect Api Key. [Learn more](https://expo.fyi/creating-asc-api-key)"},"bundleIdentifier":{"type":"string","description":"The Bundle identifier that will be used when accessing submit credentials managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple Xcode schemes and targets, this value might be necessary."},"groups":{"type":"array","description":"Internal TestFlight testing groups to add the build to (iOS only). Learn more: https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers","markdownDescription":"Internal TestFlight testing groups to add the build to (iOS only). [Learn more](https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers)"},"metadataPath":{"type":"string","description":"The path to your store configuration file. Learn more: https://docs.expo.dev/eas-metadata/introduction/","markdownDescription":"The path to your store configuration file. [Learn more](https://docs.expo.dev/eas-metadata/introduction/)"}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "eas.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

The EAS config (eas.json) validation and documentation.

Configure the basic behavior of your project with the EAS CLI

The compatible versions of EAS CLI with this config

If all changes required to be committed before building or submitting

Version policy defines whether version of your app should be based on your local project or values stored on EAS servers (remote).

This is the configuration required for `eas build:version:set` and works with the `autoIncrement` options per platform.

When using local, the `autoIncrement` is based on your local project values.

When using remote, the `autoIncrement` is based on the values stored on EAS servers.

Specifies where EAS CLI should prompt to configure Push Notifications credentials. It defaults to true if expo-notifications is in your project dependencies, otherwise it defaults to false.

EAS Build configuration. Learn more: https://docs.expo.dev/build-reference/eas-json/

EAS Build configuration. [Learn more](https://docs.expo.dev/build-reference/eas-json/)

Disables caching. Defaults to false.

Cache key. You can invalidate the cache by changing this value.

[DEPRECATED] Use `paths` instead. List of the paths that will be saved after a successful build and restored at the beginning of the next one. Both absolute and relative paths are supported, where relative paths are resolved from the directory with `eas.json`.

List of the paths that will be saved after a successful build and restored at the beginning of the next one.

The build profile configuration.

When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when working with custom builds.

The name of the build profile that the current one should inherit values from. This value can't be specified per platform.

The source of credentials used to sign build artifacts. Learn more: https://docs.expo.dev/app-signing/local-credentials/

The source of credentials used to sign build artifacts.

- `remote` - if you want to use the credentials managed by EAS.
- `local` - if you want to provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)

Provide your own `credentials.json` file. [learn more](https://docs.expo.dev/app-signing/local-credentials/)

The channel name identifies which EAS Update channel a build belongs to. Learn more: https://docs.expo.dev/eas-update/how-eas-update-works/

The channel name identifies which EAS Update channel a build belongs to. [Learn more](https://docs.expo.dev/eas-update/how-eas-update-works/)

The method of distributing your app. Learn more: https://docs.expo.dev/build/internal-distribution/

The method of distributing your app.

- `internal` - with this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)
- `store` - produces builds for store uploads, your build URLs won't be shareable.

With this option you'll be able to share your build URLs with anyone, and they will be able to install the builds to their devices straight from the Expo website. When using `internal`, make sure the build produces an APK or IPA file. Otherwise, the shareable URL will be useless. [Learn more](https://docs.expo.dev/build/internal-distribution/)

Produces builds for store uploads, your build URLs won't be shareable.

If set to true, this field expresses the intent to produce a development client build. Learn more: https://docs.expo.dev/development/introduction/

If set to true, this field expresses the intent to produce a development client build.

For the build to be successful, the project must have `expo-dev-client` installed and configured.
> This field is sugar for setting the iOS `buildConfiguration` to `Debug` and Android `gradleCommand` to `:app:assembleDebug`. Those fields, if provided for the same build profile, will take precedence.

[Learn more](https://docs.expo.dev/development/introduction/)

Optional override of the prebuild command used by EAS. Learn more: https://docs.expo.dev/workflow/expo-cli/#expo-prebuild

Optional override of the prebuild command used by EAS.

For example, you can specify `prebuild --template example-template` to use a custom template.
>`--platform` and `--non-interactive` will be added automatically by the build engine, so you do not need to specify them manually.

[Learn more](https://docs.expo.dev/workflow/expo-cli/#expo-prebuild)

The version of Node.js to use for the build. See: https://nodejs.org/en/about/releases/

The exact version of [Node.js](https://nodejs.org/en/about/releases/) to use for the build.

If set to true, corepack will be enabled at the beginning of the build process. Learn more: https://nodejs.org/api/corepack.html

If set to true, [corepack](https://nodejs.org/api/corepack.html) will be enabled at the beginning of the build process.

The version of Yarn to use for the build. See: https://www.npmjs.com/package/yarn

The exact version of [Yarn](https://www.npmjs.com/package/yarn) to use for the build.

The version of pnpm to use for the build. See: https://www.npmjs.com/package/pnpm

The exact version of [pnpm](https://www.npmjs.com/package/pnpm) to use for the build.

The version of Bun to use for the build. See: https://bun.sh/

The exact version of [Bun](https://bun.sh/) to use for the build.

Environment variables that should be set during the build process.

Should only be used for values that you would commit to your git repository, i.e. not passwords or secrets.

This environment variable will be set during the build process.

The cache configuration.

Cache configuration. This feature is intended for caching values that require a lot of computation, e.g. compilation results (both final binaries and any intermediate files), but it wouldn't work well for `node_modules` because the cache is not local to the machine, so the download speed is similar to downloading from the npm registry.

Controls how EAS CLI bumps your application build version.

When enabled, for iOS, bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`) and for Android, bumps `expo.android.versionCode` (e.g. `3` -> `4`).

List of paths (or patterns) where EAS Build is going to look for the build artifacts. Use `applicationArchivePath` to specify the path for uploading the application archive. Build artifacts are uploaded even if the build fails. See: https://github.com/mrmlnc/fast-glob#pattern-syntax

List of paths (or patterns) where EAS Build is going to look for the build artifacts. Use `applicationArchivePath` to specify the path for uploading the application archive. Build artifacts are uploaded even if the build fails. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).

The resource class that will be used to run this build, supported by both Android and iOS workers. Learn more: https://docs.expo.dev/build-reference/infrastructure/

The resource class that will be used to run this build, supported by both Android and iOS workers. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)

Custom workflow file name that will be used to run this build. You can also specify this property on platform level for platform-specific workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/

Environment to use for the server-side defined EAS environment variables during build process and command execution. Learn more: https://docs.expo.dev/eas/environment-variables/

Environment to use for the server-side defined EAS environment variables during build process and command execution. [Learn more](https://docs.expo.dev/eas/environment-variables/)

The Android-specific build profile configuration.

When set to `true`, EAS CLI won't require you to configure credentials when building the app. This comes in handy when you want to build debug binaries and the debug keystore is checked in to the repository or working with custom builds.

Image with build environment. Learn more: https://docs.expo.dev/build-reference/infrastructure/

Image with build environment. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)

When using this option the build image is selected automatically based on the project configuration, detected Expo SDK and React Native versions.

The latest Android image currently available. It is resolved to `ubuntu-22.04-jdk-17-ndk-r26b`. The `latest` to image mapping will be updated as new images are released.

This image tag is deprecated, please use other image tags or images directly instead.

The Android-specific resource class that will be used to run this build. Learn more: https://docs.expo.dev/build-reference/infrastructure/

The Android-specific resource class that will be used to run this build. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)

The version of Android NDK.

Controls how EAS CLI bumps your application build version.

Allowed values:
- `"version"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).
- `"versionCode"` (or `true`) - bumps `expo.android.versionCode` (e.g. `3` -> `4`).
- `false` - versions won't be bumped automatically (default)

In the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `versionName` and `expo.android.versionCode` to `versionCode` in the `build.gradle`. Google Play uses these values to identify the app build, `versionName` is the version visible to users, whereas `versionCode` defines the version number. The combination of those needs to be unique, so you can bump either of them.

This feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.

Versions won't be bumped automatically (default).

Bumps `expo.android.versionCode` (e.g. `3` -> `4`).

Bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).

Type of the artifact you want to build.

Type of the artifact you want to build. It controls what Gradle task will be used, can be overridden by `gradleCommand` or `developmentClient: true` option.
- `app-bundle` - `:app:bundleRelease`
- `apk` - `:app:assembleRelease`

Gradle task `:app:bundleRelease` is used

Gradle task `:app:assembleRelease` is used

Gradle task that will be used to build your project, e.g. `:app:assembleDebug` to build a debug binary.

Gradle task that will be used to build your project, e.g. `:app:assembleDebug` to build a debug binary.

It's not recommended unless you need to run a task that `buildType` does not support, it takes priority over `buildType` and `developmentClient`.

Path (or pattern) where EAS Build is going to look for the application archive. See: https://github.com/mrmlnc/fast-glob#pattern-syntax

Path (or pattern) where EAS Build is going to look for the application archive. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).

[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts. See: https://github.com/mrmlnc/fast-glob#pattern-syntax

[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts. EAS Build uses the `fast-glob` npm package for pattern matching ([see their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).

Custom workflow file name that will be used to run this Android build. You can also specify this property on profile levle for platform-agnostic workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/

The iOS-specific build profile configuration.

If set to true, creates build for simulator.

Provisioning method used for `"distribution": "internal"` when you have an Apple account with Apple Developer Enterprise Program membership.

You can choose if you want to use `adhoc` or `universal` provisioning. The latter is recommended as it does not require you to register each individual device. If you don't provide this option and you still authenticate with an enterprise team, you'll be prompted which provisioning method to use.

Recommended as it does not require you to register each individual device

Controls how EAS CLI bumps your application build version.

Allowed values:

- `"version"` - bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`).
- `"buildNumber"` (or `true`) - bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`).
- `false` - versions won't be bumped automatically (default)

In the case of a bare project, it also updates versions in native code. `expo.version` corresponds to `CFBundleShortVersionString` and `expo.ios.buildNumber` to `CFBundleVersion` in the `Info.plist`. The App Store is using those values to identify the app build, `CFBundleShortVersionString` is the version visible to users, whereas `CFBundleVersion` defines the build number. The combination of those needs to be unique, so you can bump either of them.

This feature is not intended for use with dynamic configuration (app.config.js). EAS CLI will throw an error if you don't use app.json.

Versions won't be bumped automatically (default)

Bumps the last component of `expo.ios.buildNumber` (e.g. `1.2.3.39` -> `1.2.3.40`)

Bumps the patch of `expo.version` (e.g. `1.2.3` -> `1.2.4`)

The latest iOS image currently available. It is resolved to `macos-sonoma-14.6-xcode-16.1`. The `latest` to image mapping will be updated as new images are released.

The iOS-specific resource class that will be used to run this build. Learn more: https://docs.expo.dev/build-reference/infrastructure/

The iOS-specific resource class that will be used to run this build. [Learn more](https://docs.expo.dev/build-reference/infrastructure/)

The version of bundler to use for the build. See: https://bundler.io/.

The version of [bundler](https://bundler.io/) to use for the build.

The version of fastlane to use for the build. See: https://fastlane.tools/

The version of [fastlane](https://fastlane.tools/) to use for the build.

The version of CocoaPods to use for the build. See: https://cocoapods.org/

The version of [CocoaPods](https://cocoapods.org/) to use for the build.

Xcode project's scheme.

Xcode project's scheme.
- managed project: does not have any effect
- bare project
  - If your project has multiple schemes, you should set this value.
  - If the project has only one scheme, it will be detected automatically.
  - If multiple schemes exist and this value is **not** set, EAS CLI will prompt you to select one of them.

Xcode project's Build Configuration.

Xcode project's Build Configuration.
- managed project: "Release" or "Debug", defaults to "Release"
- bare project: defaults to the value specified in the scheme

It takes priority over `developmentClient` field.

Path (or pattern) where EAS Build is going to look for the application archive.

EAS Build uses the `fast-glob` npm package for pattern matching, ([See their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).

You should modify that path only if you are using a custom `Gymfile`.

The default is `ios/build/Build/Products/*-iphonesimulator/*.app` when building for simulator and `ios/build/*.ipa` in other cases.

[DEPRECATED] Use `applicationArchivePath` instead. Path (or pattern) where EAS Build is going to look for the build artifacts.

EAS Build uses the `fast-glob` npm package for pattern matching, ([See their README to learn more about the syntax you can use](https://github.com/mrmlnc/fast-glob#pattern-syntax)).

You should modify that path only if you are using a custom `Gymfile`.

The default is `ios/build/Build/Products/*-iphonesimulator/*.app` when building for simulator and `ios/build/*.ipa` in other cases.

Custom workflow file name that will be used to run this iOS build. You can also specify this property on profile levle for platform-agnostic workflows. Learn more: https://docs.expo.dev/custom-builds/get-started/

EAS Submit configuration. Learn more: https://docs.expo.dev/submit/eas-json/

EAS Submit configuration. [Learn more](https://docs.expo.dev/submit/eas-json/)

The submit profile name with the configuration.

The name of the submit profile that the current one should inherit values from.

The Android-specific submit profile configuration.

Path to the JSON file with service account key used to authenticate with Google Play. Learn more: https://expo.fyi/creating-google-service-account

Path to the JSON file with service account key used to authenticate with Google Play. [Learn more](https://expo.fyi/creating-google-service-account)

The track of the application to use. Learn more: https://support.google.com/googleplay/android-developer/answer/9859348?hl=en

The [track of the application](https://support.google.com/googleplay/android-developer/answer/9859348?hl=en) to use.

**Open testing** releases are available to testers on Google Play. Users can join tests from your store listing.

**Closed testing** releases are available to a limited number of testers that you choose, who can test a pre-release version of your app and submit feedback.

**Internal testing** releases are available to up to 100 testers that you choose.

**Production releases** are available to all Google Play users in your chosen countries.

The status of a release. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks

The status of a release. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)

The release's APKs are not being served to users.

The release's APKs are being served to a fraction of users, if set.

The release's APKs will no longer be served to users. Users who already have these APKs are unaffected.

The release will have no further changes. Its APKs are being served to all users, unless they are eligible to APKs of a more recent release.

The initial fraction of users who are eligible to receive the release. Should be a value from 0 (no users) to 1 (all users). Works only with 'inProgress' release status. Learn more: https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks

The initial fraction of users who are eligible to receive the release. Should be a value from 0 (no users) to 1 (all users). Works only with `inProgress` release status. [Learn more](https://developers.google.com/android-publisher/api-ref/rest/v3/edits.tracks)

Indicates that the changes sent with this submission will not be reviewed until they are explicitly sent for review from the Google Play Console UI. Defaults to false.

The application id that will be used when accessing Service Account Keys managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple product flavors, this value might be necessary.

The iOS-specific submit profile configuration.

Your Apple ID username (you can also set the `EXPO_APPLE_ID` env variable).

Your Apple ID username (you can also set the `EXPO_APPLE_ID` env variable).

App Store Connect unique application Apple ID number. When set, results in skipping the app creation step. Learn more: https://expo.fyi/asc-app-id

App Store Connect unique application Apple ID number. When set, results in skipping the app creation step. [Learn more](https://expo.fyi/asc-app-id)

Your Apple Developer Team ID.

An unique ID for your app that is not visible on the App Store, will be generated unless provided.

Primary language. Defaults to `en-US`.

The name of your company, needed only for the first submission of any app to the App Store.

The name of your app as it will appear on the App Store. Defaults to `expo.name` from the app config.

The name of your app as it will appear on the App Store. Defaults to `expo.name` from the app config.

The path to your App Store Connect Api Key .p8 file. Learn more: https://expo.fyi/creating-asc-api-key

The path to your App Store Connect Api Key .p8 file. [Learn more](https://expo.fyi/creating-asc-api-key)

The Issuer ID of your App Store Connect Api Key. Learn more: https://expo.fyi/creating-asc-api-key

The Issuer ID of your App Store Connect Api Key. [Learn more](https://expo.fyi/creating-asc-api-key)

The Key ID of your App Store Connect Api Key. Learn more: https://expo.fyi/creating-asc-api-key

The Key ID of your App Store Connect Api Key. [Learn more](https://expo.fyi/creating-asc-api-key)

The Bundle identifier that will be used when accessing submit credentials managed by Expo, it does not have any effect if you are using local credentials. In most cases this value will be autodetected, but if you have multiple Xcode schemes and targets, this value might be necessary.

Internal TestFlight testing groups to add the build to (iOS only). Learn more: https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers

Internal TestFlight testing groups to add the build to (iOS only). [Learn more](https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers)

The path to your store configuration file. Learn more: https://docs.expo.dev/eas-metadata/introduction/

The path to your store configuration file. [Learn more](https://docs.expo.dev/eas-metadata/introduction/)

Provide a JSON object that satisfies the schema "eas.schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/easyvcr-net","$comment":"https://github.com/EasyPost/easyvcr-csharp","title":"EasyVCR .NET cassette","description":"A schema for an EasyVCR .NET recording\nhttps://github.com/EasyPost/easyvcr-csharp","type":"array","items":{"type":"object","additionalProperties":true,"properties":{"Duration":{"title":"Duration","description":"How long, in milliseconds, the recorded request took to complete","type":"integer"},"RecordedAt":{"title":"Recorded at","description":"When the request was recorded","type":"string","format":"date-time"},"Request":{"title":"Request","description":"The request that was recorded","type":"object","properties":{"Body":{"title":"Body","description":"The request body","type":"string"},"BodyContentType":{"title":"Body content type","description":"The type of content in the request body","type":"string"},"ContentHeaders":{"title":"Content headers","description":"The request content headers","type":"object"},"Method":{"title":"Method","description":"The HTTP method","type":"string"},"RequestHeaders":{"title":"Request headers","description":"The request headers","type":"object"},"Uri":{"title":"Uri","description":"The request URI","type":"string"}}},"Response":{"title":"Response","description":"The response that was recorded","type":"object","properties":{"Body":{"title":"Body","description":"The response body","type":"string"},"BodyContentType":{"title":"Body content type","description":"The type of content in the response body","type":"string"},"ContentHeaders":{"title":"Content headers","description":"The response content headers","type":"object"},"HttpVersion":{"title":"HTTP version","description":"The HTTP version","type":"string"},"ResponseHeaders":{"title":"Response headers","description":"The response headers","type":"object"},"Status":{"title":"Status","description":"The HTTP status","type":"object","properties":{"Code":{"title":"Code","description":"The HTTP status code","type":"integer"},"Message":{"title":"Description","description":"The HTTP status code description","type":"string"}}}}}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "EasyVCR .NET cassette". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

EasyVCR .NET cassette

A schema for an EasyVCR .NET recording
https://github.com/EasyPost/easyvcr-csharp

Duration

How long, in milliseconds, the recorded request took to complete

Recorded at

When the request was recorded

Request

The request that was recorded

Body

The request body

Body content type

The type of content in the request body

Content headers

The request content headers

Method

The HTTP method

Request headers

The request headers

Uri

The request URI

Response

The response that was recorded

Body

The response body

Body content type

The type of content in the response body

Content headers

The response content headers

HTTP version

The HTTP version

Response headers

The response headers

Status

The HTTP status

Code

The HTTP status code

Description

The HTTP status code description

Provide a JSON object that satisfies the schema "EasyVCR .NET cassette". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.