| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.component.decl |
| |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 7</span></div> |
| |
| |
| |
| ## **STRUCTS** |
| |
| ### CapabilityRef {#CapabilityRef data-text="CapabilityRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=48)* |
| <p>A reference to a capability declared in this component.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="CapabilityRef.name"> |
| <td><code>name</code></td> |
| <td> |
| <code>string[100]</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### ChildRef {#ChildRef data-text="ChildRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=29)* |
| <p>A reference to one of the component's child instances.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="ChildRef.name"> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#child_name'>child_name</a></code> |
| </td> |
| <td><p>The name assigned to the child by its parent. If <code>collection</code> is set, |
| <code>name</code> is scoped to <code>collection</code> and the child is a dynamic instance.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="ChildRef.collection"> |
| <td><code>collection</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>The collection <code>name</code> belongs to. If omitted, <code>name</code> references a static |
| instance. This field must be omitted if the <code>ChildRef</code> is being used in |
| a component declaration. Optional.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### CollectionRef {#CollectionRef data-text="CollectionRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=40)* |
| <p>A reference to one of the component's collections.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="CollectionRef.name"> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### ConfigType {#ConfigType data-text="ConfigType"} |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=50)* |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="ConfigType.layout"> |
| <td><code>layout</code></td> |
| <td> |
| <code><a class='link' href='#ConfigTypeLayout'>ConfigTypeLayout</a></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="ConfigType.parameters"> |
| <td><code>parameters</code></td> |
| <td> |
| <code>vector<<a class='link' href='#LayoutParameter'>LayoutParameter</a>>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="ConfigType.constraints"> |
| <td><code>constraints</code></td> |
| <td> |
| <code>vector<<a class='link' href='#LayoutConstraint'>LayoutConstraint</a>></code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### DebugRef {#DebugRef data-text="DebugRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=26)* |
| <p>A reference to the environment's debug capabilities.</p> |
| |
| <EMPTY> |
| |
| ### FrameworkRef {#FrameworkRef data-text="FrameworkRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=45)* |
| <p>A reference to the component framework itself.</p> |
| |
| <EMPTY> |
| |
| ### NameMapping {#NameMapping data-text="NameMapping"} |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=39)* |
| <p>Type used to create a mapping between 2 names. Used to rename service or component instances |
| in FIDL declarations.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="NameMapping.source_name"> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>Name used in the source instance.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="NameMapping.target_name"> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>Name used in the target instance.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### ParentRef {#ParentRef data-text="ParentRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=20)* |
| <p>A reference to a component's parent instance.</p> |
| |
| <EMPTY> |
| |
| ### SelfRef {#SelfRef data-text="SelfRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=23)* |
| <p>A reference to the component itself.</p> |
| |
| <EMPTY> |
| |
| ### VoidRef {#VoidRef data-text="VoidRef"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=53)* |
| <p>A reference to an intentionally missing offer source.</p> |
| |
| <EMPTY> |
| |
| |
| ## **ENUMS** |
| |
| ### AllowedOffers [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#AllowedOffers data-text="AllowedOffers"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/collection.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/collection.fidl;l=68)* |
| <p>The kinds of offers that can target the children in a collection.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="AllowedOffers.STATIC_ONLY"> |
| <td><h3 id="AllowedOffers.STATIC_ONLY" class="add-link hide-from-toc">STATIC_ONLY</h3></td> |
| <td><code>1</code></td> |
| <td><p>Only static offers may target components in the collection. "Static |
| offers" are the offers in the <code>ComponentDecl</code> that target the collection |
| itself.</p> |
| <p>This is the default behavior.</p> |
| </td> |
| </tr> |
| <tr id="AllowedOffers.STATIC_AND_DYNAMIC"> |
| <td><h3 id="AllowedOffers.STATIC_AND_DYNAMIC" class="add-link hide-from-toc">STATIC_AND_DYNAMIC</h3></td> |
| <td><code>2</code></td> |
| <td><p>Both static offers and dynamic offers may target components in the |
| collection. "Static offers" are the offers in the <code>ComponentDecl</code> that |
| target the collection itself. "Dynamic offers" are additional offers |
| that are passed to <code>CreateChild</code> at runtime.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Availability [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Availability data-text="Availability"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=54)* |
| <p>Describes the expected availability of the capability.</p> |
| <p>Some capabilities may not be present on all system configurations. In those |
| cases, the availability will be declared as <code>OPTIONAL</code> along the chains of |
| exposes/offers/uses, and the capability would be routed from <code>void</code> on |
| system configurations where it does not make sense to route or provide a |
| particular capability (e.g. graphical capabilities on a headless system).</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Availability.REQUIRED"> |
| <td><h3 id="Availability.REQUIRED" class="add-link hide-from-toc">REQUIRED</h3></td> |
| <td><code>1</code></td> |
| <td><p>The capability must be available. Failure to route the capability is an |
| error.</p> |
| </td> |
| </tr> |
| <tr id="Availability.OPTIONAL"> |
| <td><h3 id="Availability.OPTIONAL" class="add-link hide-from-toc">OPTIONAL</h3></td> |
| <td><code>2</code></td> |
| <td><p>Inside a use declaration: the component can function if it fails to |
| obtain the capability.</p> |
| <p>Inside an offer/expose declaration: the capability may not be available |
| in some system configurations. As a corollary, the target component must |
| not have a required dependency on the capability.</p> |
| </td> |
| </tr> |
| <tr id="Availability.SAME_AS_TARGET"> |
| <td><h3 id="Availability.SAME_AS_TARGET" class="add-link hide-from-toc">SAME_AS_TARGET</h3></td> |
| <td><code>3</code></td> |
| <td><p>If the target of the corresponding offer declaration requires the |
| capability, then the behavior is equivalent to required. If the target |
| has an optional dependency on the capability, then the behavior is |
| equivalent to optional. This is useful for container components that |
| would like to change their routing availability based on ones inside.</p> |
| <p>This value is not allowed inside a use or expose declaration.</p> |
| </td> |
| </tr> |
| <tr id="Availability.TRANSITIONAL"> |
| <td><h3 id="Availability.TRANSITIONAL" class="add-link hide-from-toc">TRANSITIONAL</h3></td> |
| <td><code>4</code></td> |
| <td><p>The source may omit the route completely without even having to route |
| from <code>void</code>.</p> |
| <p><a class='link' href='#TRANSITIONAL'>TRANSITIONAL</a> is used for soft transitions that introduce new |
| capabilities.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 9</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ConfigTypeLayout [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ConfigTypeLayout data-text="ConfigTypeLayout"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=60)* |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="ConfigTypeLayout.BOOL"> |
| <td><h3 id="ConfigTypeLayout.BOOL" class="add-link hide-from-toc">BOOL</h3></td> |
| <td><code>1</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.UINT8"> |
| <td><h3 id="ConfigTypeLayout.UINT8" class="add-link hide-from-toc">UINT8</h3></td> |
| <td><code>2</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.UINT16"> |
| <td><h3 id="ConfigTypeLayout.UINT16" class="add-link hide-from-toc">UINT16</h3></td> |
| <td><code>3</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.UINT32"> |
| <td><h3 id="ConfigTypeLayout.UINT32" class="add-link hide-from-toc">UINT32</h3></td> |
| <td><code>4</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.UINT64"> |
| <td><h3 id="ConfigTypeLayout.UINT64" class="add-link hide-from-toc">UINT64</h3></td> |
| <td><code>5</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.INT8"> |
| <td><h3 id="ConfigTypeLayout.INT8" class="add-link hide-from-toc">INT8</h3></td> |
| <td><code>6</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.INT16"> |
| <td><h3 id="ConfigTypeLayout.INT16" class="add-link hide-from-toc">INT16</h3></td> |
| <td><code>7</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.INT32"> |
| <td><h3 id="ConfigTypeLayout.INT32" class="add-link hide-from-toc">INT32</h3></td> |
| <td><code>8</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.INT64"> |
| <td><h3 id="ConfigTypeLayout.INT64" class="add-link hide-from-toc">INT64</h3></td> |
| <td><code>9</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.STRING"> |
| <td><h3 id="ConfigTypeLayout.STRING" class="add-link hide-from-toc">STRING</h3></td> |
| <td><code>10</code></td> |
| <td></td> |
| </tr> |
| <tr id="ConfigTypeLayout.VECTOR"> |
| <td><h3 id="ConfigTypeLayout.VECTOR" class="add-link hide-from-toc">VECTOR</h3></td> |
| <td><code>11</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### DependencyType [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#DependencyType data-text="DependencyType"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=24)* |
| <p>Describes the type of dependency implied by the capability.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="DependencyType.STRONG"> |
| <td><h3 id="DependencyType.STRONG" class="add-link hide-from-toc">STRONG</h3></td> |
| <td><code>1</code></td> |
| <td><p>A strong dependency which may be required by components that use it.</p> |
| </td> |
| </tr> |
| <tr id="DependencyType.WEAK"> |
| <td><h3 id="DependencyType.WEAK" class="add-link hide-from-toc">WEAK</h3></td> |
| <td><code>2</code></td> |
| <td><p>A weak dependency which is allowed to form a cycle. Components that use |
| a weak dependency must support the dependency being unavailable at |
| arbitrary times.</p> |
| </td> |
| </tr> |
| <tr id="DependencyType.WEAK_FOR_MIGRATION"> |
| <td><h3 id="DependencyType.WEAK_FOR_MIGRATION" class="add-link hide-from-toc">WEAK_FOR_MIGRATION</h3></td> |
| <td><code>3</code></td> |
| <td><p>A weak dependency specifically used to mark cyclic dependencies from |
| migrated v1 components.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Durability [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Durability data-text="Durability"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/collection.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/collection.fidl;l=55)* |
| <p>The durability of component instances created in a collection.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="Durability.TRANSIENT"> |
| <td><h3 id="Durability.TRANSIENT" class="add-link hide-from-toc">TRANSIENT</h3></td> |
| <td><code>2</code></td> |
| <td><p>An instance exists until either its parent instance is stopped |
| or it is explicitly destroyed.</p> |
| </td> |
| </tr> |
| <tr id="Durability.SINGLE_RUN"> |
| <td><h3 id="Durability.SINGLE_RUN" class="add-link hide-from-toc">SINGLE_RUN</h3></td> |
| <td><code>3</code></td> |
| <td><p>An instance is started upon creation and is immediately destroyed when |
| it stops.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### EnvironmentExtends [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#EnvironmentExtends data-text="EnvironmentExtends"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=43)* |
| <p>Specifies how a declared environment's initial set of properties are assigned.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="EnvironmentExtends.NONE"> |
| <td><h3 id="EnvironmentExtends.NONE" class="add-link hide-from-toc">NONE</h3></td> |
| <td><code>0</code></td> |
| <td><p>The environment has no initial set of properties.</p> |
| </td> |
| </tr> |
| <tr id="EnvironmentExtends.REALM"> |
| <td><h3 id="EnvironmentExtends.REALM" class="add-link hide-from-toc">REALM</h3></td> |
| <td><code>1</code></td> |
| <td><p>The environment's initial set of properties are inherited from its realm. |
| Inherited properties include any fields defined in <code>EnvironmentDecl</code>.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OnTerminate [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#OnTerminate data-text="OnTerminate"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/child.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/child.fidl;l=51)* |
| <p>Describes the action to take if this component instance terminates |
| unexpectedly.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="OnTerminate.NONE"> |
| <td><h3 id="OnTerminate.NONE" class="add-link hide-from-toc">NONE</h3></td> |
| <td><code>0</code></td> |
| <td><p>No action, the default</p> |
| </td> |
| </tr> |
| <tr id="OnTerminate.REBOOT"> |
| <td><h3 id="OnTerminate.REBOOT" class="add-link hide-from-toc">REBOOT</h3></td> |
| <td><code>1</code></td> |
| <td><p>Trigger a graceful system reboot if the component terminates for any |
| reason. This is a specialized feature gated by Component Framework |
| security policy.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### StartupMode [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#StartupMode data-text="StartupMode"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/child.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/child.fidl;l=40)* |
| <p>Describes under what conditions the component may be started.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="StartupMode.LAZY"> |
| <td><h3 id="StartupMode.LAZY" class="add-link hide-from-toc">LAZY</h3></td> |
| <td><code>0</code></td> |
| <td><p>Start component instance only when another instance binds to it.</p> |
| </td> |
| </tr> |
| <tr id="StartupMode.EAGER"> |
| <td><h3 id="StartupMode.EAGER" class="add-link hide-from-toc">EAGER</h3></td> |
| <td><code>1</code></td> |
| <td><p>Start component instance as soon as parent starts. This mode is only |
| supported for statically declared children -- a dynamic instance may only be |
| started by binding to it.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### StorageId [strict](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#StorageId data-text="StorageId"} |
| Type: <code>uint32</code> |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=90)* |
| <p>Declares which identifier to use to key a component's isolated storage |
| directory.</p> |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="StorageId.STATIC_INSTANCE_ID"> |
| <td><h3 id="StorageId.STATIC_INSTANCE_ID" class="add-link hide-from-toc">STATIC_INSTANCE_ID</h3></td> |
| <td><code>1</code></td> |
| <td><p>Isolated storage directories are keyed using a component's instance ID |
| specified in the component ID index. Components which are not listed in |
| the index cannot use or open this storage capability.</p> |
| </td> |
| </tr> |
| <tr id="StorageId.STATIC_INSTANCE_ID_OR_MONIKER"> |
| <td><h3 id="StorageId.STATIC_INSTANCE_ID_OR_MONIKER" class="add-link hide-from-toc">STATIC_INSTANCE_ID_OR_MONIKER</h3></td> |
| <td><code>2</code></td> |
| <td><p>Isolated storage directories are keyed using a component's instance ID |
| if one is specified in the component ID index. Otherwise, a component's |
| relative moniker from the storage capability is used to key its isolated |
| storage directory.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **TABLES** |
| |
| ### Child {#Child data-text="Child"} |
| |
| |
| *Defined in [fuchsia.component.decl/child.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/child.fidl;l=9)* |
| <p>Statically declares a child component instance.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Child.name"> |
| <td><h3 id="Child.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#child_name'>child_name</a></code> |
| </td> |
| <td><p>(Required) The name assigned to the child by its parent.</p> |
| <p>Must be non-empty, unique among all siblings, and contain only the |
| following characters: [a-z0-9-_.].</p> |
| </td> |
| </tr> |
| <tr id="Child.url"> |
| <td><h3 id="Child.url" class="add-link hide-from-toc">2</h3></td> |
| <td><code>url</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.url/'>fuchsia.url</a>/<a class='link' href='../fuchsia.url/#Url'>Url</a></code> |
| </td> |
| <td><p>(Required) The child component's URL.</p> |
| <p>Must be non-empty and a well-formed URL.</p> |
| </td> |
| </tr> |
| <tr id="Child.startup"> |
| <td><h3 id="Child.startup" class="add-link hide-from-toc">3</h3></td> |
| <td><code>startup</code></td> |
| <td> |
| <code><a class='link' href='#StartupMode'>StartupMode</a></code> |
| </td> |
| <td><p>(Required) The startup mode for the component instance.</p> |
| <p>Must be set.</p> |
| </td> |
| </tr> |
| <tr id="Child.environment"> |
| <td><h3 id="Child.environment" class="add-link hide-from-toc">4</h3></td> |
| <td><code>environment</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Optional) The environment assigned to this child.</p> |
| <p>May be unset, in which case the child will inherit the parent component's |
| environment. If set, the name must reference an environment defined in |
| the <code>ComponentDecl</code> and it must contain only the following characters: |
| [a-z0-9-_.].</p> |
| </td> |
| </tr> |
| <tr id="Child.on_terminate"> |
| <td><h3 id="Child.on_terminate" class="add-link hide-from-toc">5</h3></td> |
| <td><code>on_terminate</code></td> |
| <td> |
| <code><a class='link' href='#OnTerminate'>OnTerminate</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>NONE</code>) The action to take if this component |
| instance terminates unexpectedly.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Collection {#Collection data-text="Collection"} |
| |
| |
| *Defined in [fuchsia.component.decl/collection.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/collection.fidl;l=7)* |
| <p>Statically declares a component instance collection.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Collection.name"> |
| <td><h3 id="Collection.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the collection. Instances created in the |
| collection are scoped to this name.</p> |
| </td> |
| </tr> |
| <tr id="Collection.durability"> |
| <td><h3 id="Collection.durability" class="add-link hide-from-toc">2</h3></td> |
| <td><code>durability</code></td> |
| <td> |
| <code><a class='link' href='#Durability'>Durability</a></code> |
| </td> |
| <td><p>(Required) The durability of instances in the collection.</p> |
| </td> |
| </tr> |
| <tr id="Collection.environment"> |
| <td><h3 id="Collection.environment" class="add-link hide-from-toc">3</h3></td> |
| <td><code>environment</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Optional) The environment assigned to child instances in this |
| collection.</p> |
| <p>May be unset, in which case children in this collection will inherit the |
| parent component's environment. If set, the name must reference an |
| environment defined in the <code>ComponentDecl</code> and it must contain only the |
| following characters: [a-z0-9-_.].</p> |
| </td> |
| </tr> |
| <tr id="Collection.allowed_offers"> |
| <td><h3 id="Collection.allowed_offers" class="add-link hide-from-toc">4</h3></td> |
| <td><code>allowed_offers</code></td> |
| <td> |
| <code><a class='link' href='#AllowedOffers'>AllowedOffers</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>STATIC_ONLY</code>) The kinds of offers that can |
| target the child instances in this collection.</p> |
| <p>Only components using the <code>dynamic_offers</code> restricted feature may set |
| this field.</p> |
| </td> |
| </tr> |
| <tr id="Collection.allow_long_names"> |
| <td><h3 id="Collection.allow_long_names" class="add-link hide-from-toc">5</h3></td> |
| <td><code>allow_long_names</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>(Optional, defaults to <code>false</code>) Whether child instances in this |
| collection can have names longer than the default length limit of 100.</p> |
| <p>Only components using the <code>allow_long_names</code> restricted feature may set |
| this field.</p> |
| </td> |
| </tr> |
| <tr id="Collection.persistent_storage"> |
| <td><h3 id="Collection.persistent_storage" class="add-link hide-from-toc">6</h3></td> |
| <td><code>persistent_storage</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>(Optional) Whether the data in isolated storage used by dynamic child |
| instances and their descendants will persist after the instances are |
| destroyed. New dynamic instances inherit the previous instances' data |
| stores.</p> |
| <p>This setting can be overridden by a lower-level collection that is a |
| descendant of a collection that enables/disables this setting.</p> |
| <p>This setting applies to all storage capabilities consumed by the |
| collection components and their descendants.</p> |
| <p>The default is the value inherited from an ancestral collection if set, |
| otherwise <code>false</code>.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Component {#Component data-text="Component"} |
| |
| |
| *Defined in [fuchsia.component.decl/component.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/component.fidl;l=13)* |
| <p>A component declaration.</p> |
| <p>This information is typically encoded in the component manifest (.cm file) |
| if it has one or may be generated at runtime by a component resolver for |
| those that don't.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Component.program"> |
| <td><h3 id="Component.program" class="add-link hide-from-toc">1</h3></td> |
| <td><code>program</code></td> |
| <td> |
| <code><a class='link' href='#Program'>Program</a></code> |
| </td> |
| <td><p>(Optional) Information about the program to run when the component is executed. |
| Omitted for non-executable components.</p> |
| </td> |
| </tr> |
| <tr id="Component.uses"> |
| <td><h3 id="Component.uses" class="add-link hide-from-toc">2</h3></td> |
| <td><code>uses</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Use'>Use</a>></code> |
| </td> |
| <td><p>(Optional) List of capabilities used by the component. These consist of |
| capabilities offered to the component that are installed in its incoming |
| namespace.</p> |
| <p>The used capabilities must be unique and non-overlapping.</p> |
| </td> |
| </tr> |
| <tr id="Component.exposes"> |
| <td><h3 id="Component.exposes" class="add-link hide-from-toc">3</h3></td> |
| <td><code>exposes</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Expose'>Expose</a>></code> |
| </td> |
| <td><p>(Optional) List of capabilities exposed by the component. These consist of |
| capabilities that are made visible to the parent. The parent |
| may <code>offer</code> these capabilities to its children, but not <code>use</code> them.</p> |
| <p>The exposed capabilities must be unique and non-overlapping.</p> |
| </td> |
| </tr> |
| <tr id="Component.offers"> |
| <td><h3 id="Component.offers" class="add-link hide-from-toc">4</h3></td> |
| <td><code>offers</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Offer'>Offer</a>></code> |
| </td> |
| <td><p>(Optional) List of capabilities offered to the component's children. These consist |
| of capabilities that the given children may <code>use</code>, which may come from a |
| child, the parent, or the component's own outgoing namespace.</p> |
| <p>The offered capabilities must be unique and non-overlapping.</p> |
| </td> |
| </tr> |
| <tr id="Component.capabilities"> |
| <td><h3 id="Component.capabilities" class="add-link hide-from-toc">5</h3></td> |
| <td><code>capabilities</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Capability'>Capability</a>></code> |
| </td> |
| <td><p>(Optional) List of capabilities defined by the component.</p> |
| </td> |
| </tr> |
| <tr id="Component.children"> |
| <td><h3 id="Component.children" class="add-link hide-from-toc">6</h3></td> |
| <td><code>children</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Child'>Child</a>></code> |
| </td> |
| <td><p>(Optional) The component's statically instantiated children. The children must have |
| unique names.</p> |
| </td> |
| </tr> |
| <tr id="Component.collections"> |
| <td><h3 id="Component.collections" class="add-link hide-from-toc">7</h3></td> |
| <td><code>collections</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Collection'>Collection</a>></code> |
| </td> |
| <td><p>(Optional) The component's collections. The collections must have unique names.</p> |
| </td> |
| </tr> |
| <tr id="Component.environments"> |
| <td><h3 id="Component.environments" class="add-link hide-from-toc">8</h3></td> |
| <td><code>environments</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Environment'>Environment</a>></code> |
| </td> |
| <td><p>(Optional) List of environments created by this component. |
| Environments are assigned to children and control aspects of a child component's |
| runtime.</p> |
| </td> |
| </tr> |
| <tr id="Component.facets"> |
| <td><h3 id="Component.facets" class="add-link hide-from-toc">9</h3></td> |
| <td><code>facets</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Optional) Additional metadata about the component.</p> |
| </td> |
| </tr> |
| <tr id="Component.config"> |
| <td><h3 id="Component.config" class="add-link hide-from-toc">10</h3></td> |
| <td><code>config</code></td> |
| <td> |
| <code><a class='link' href='#ConfigSchema'>ConfigSchema</a></code> |
| </td> |
| <td><p>(Optional) The schema of the component's configuration interface.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ConfigField {#ConfigField data-text="ConfigField"} |
| |
| |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=39)* |
| <p>Declares a single config field (key + type)</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ConfigField.key"> |
| <td><h3 id="ConfigField.key" class="add-link hide-from-toc">1</h3></td> |
| <td><code>key</code></td> |
| <td> |
| <code><a class='link' href='#ConfigKey'>ConfigKey</a></code> |
| </td> |
| <td><p>(Required) The identifier for this config field. |
| This key will be used to match overrides.</p> |
| </td> |
| </tr> |
| <tr id="ConfigField.type"> |
| <td><h3 id="ConfigField.type" class="add-link hide-from-toc">2</h3></td> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='#ConfigType'>ConfigType</a></code> |
| </td> |
| <td><p>(Required) The type of config values. Config values are verified |
| against this layout at build time and run time.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ConfigSchema {#ConfigSchema data-text="ConfigSchema"} |
| |
| |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=21)* |
| <p>The schema of a component's configuration interface.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ConfigSchema.fields"> |
| <td><h3 id="ConfigSchema.fields" class="add-link hide-from-toc">1</h3></td> |
| <td><code>fields</code></td> |
| <td> |
| <code>vector<<a class='link' href='#ConfigField'>ConfigField</a>></code> |
| </td> |
| <td><p>(Required) Ordered fields of the component's configuration interface.</p> |
| </td> |
| </tr> |
| <tr id="ConfigSchema.checksum"> |
| <td><h3 id="ConfigSchema.checksum" class="add-link hide-from-toc">2</h3></td> |
| <td><code>checksum</code></td> |
| <td> |
| <code><a class='link' href='#ConfigChecksum'>ConfigChecksum</a></code> |
| </td> |
| <td><p>(Required) Checksum over the config declaration.</p> |
| </td> |
| </tr> |
| <tr id="ConfigSchema.value_source"> |
| <td><h3 id="ConfigSchema.value_source" class="add-link hide-from-toc">3</h3></td> |
| <td><code>value_source</code></td> |
| <td> |
| <code><a class='link' href='#ConfigValueSource'>ConfigValueSource</a></code> |
| </td> |
| <td><p>(Required) Strategy used to resolve config values.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### DebugProtocolRegistration {#DebugProtocolRegistration data-text="DebugProtocolRegistration"} |
| |
| |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=93)* |
| <p>Registers a protocol in the environment as a debug capability. This makes |
| it available to any component in the environment that uses it with |
| <code>source == debug</code>.</p> |
| <p>To learn more about protocols, see: |
| https://fuchsia.dev/fuchsia-src/glossary#protocol</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="DebugProtocolRegistration.source"> |
| <td><h3 id="DebugProtocolRegistration.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="DebugProtocolRegistration.source_name"> |
| <td><h3 id="DebugProtocolRegistration.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the protocol being offered.</p> |
| </td> |
| </tr> |
| <tr id="DebugProtocolRegistration.target_name"> |
| <td><h3 id="DebugProtocolRegistration.target_name" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being offered.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Directory {#Directory data-text="Directory"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=51)* |
| <p>Declares a directory capability backed by this component.</p> |
| <p>To learn more about directories, see: |
| https://fuchsia.dev/fuchsia-src/glossary#directory</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Directory.name"> |
| <td><h3 id="Directory.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this directory.</p> |
| </td> |
| </tr> |
| <tr id="Directory.source_path"> |
| <td><h3 id="Directory.source_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path to the directory in the component's outgoing |
| directory.</p> |
| </td> |
| </tr> |
| <tr id="Directory.rights"> |
| <td><h3 id="Directory.rights" class="add-link hide-from-toc">3</h3></td> |
| <td><code>rights</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Rights'>Rights</a></code> |
| </td> |
| <td><p>(Required) The maximum rights that can be set by a component using this |
| directory.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Environment {#Environment data-text="Environment"} |
| |
| |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=7)* |
| <p>Declares an environment which configures a realm.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Environment.name"> |
| <td><h3 id="Environment.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this environment.</p> |
| </td> |
| </tr> |
| <tr id="Environment.extends"> |
| <td><h3 id="Environment.extends" class="add-link hide-from-toc">2</h3></td> |
| <td><code>extends</code></td> |
| <td> |
| <code><a class='link' href='#EnvironmentExtends'>EnvironmentExtends</a></code> |
| </td> |
| <td><p>(Required) Specifies how the initial state of this environment is |
| constructed.</p> |
| </td> |
| </tr> |
| <tr id="Environment.runners"> |
| <td><h3 id="Environment.runners" class="add-link hide-from-toc">3</h3></td> |
| <td><code>runners</code></td> |
| <td> |
| <code>vector<<a class='link' href='#RunnerRegistration'>RunnerRegistration</a>></code> |
| </td> |
| <td><p>(Optional) List of runners available in this environment.</p> |
| <p>This list determines the total set of runners that are available for any |
| component in the environment to use.</p> |
| </td> |
| </tr> |
| <tr id="Environment.resolvers"> |
| <td><h3 id="Environment.resolvers" class="add-link hide-from-toc">4</h3></td> |
| <td><code>resolvers</code></td> |
| <td> |
| <code>vector<<a class='link' href='#ResolverRegistration'>ResolverRegistration</a>></code> |
| </td> |
| <td><p>(Optional) List of component resolvers and the URL schemes they are |
| registered to resolve. These registrations determine how components are |
| resolved in the realm. If the component URL scheme does not match any of |
| these resolvers, URL resolution is delegated to the parent environment, |
| if this environment <code>extends</code> from <code>REALM</code>.</p> |
| </td> |
| </tr> |
| <tr id="Environment.debug_capabilities"> |
| <td><h3 id="Environment.debug_capabilities" class="add-link hide-from-toc">5</h3></td> |
| <td><code>debug_capabilities</code></td> |
| <td> |
| <code>vector<<a class='link' href='#DebugRegistration'>DebugRegistration</a>></code> |
| </td> |
| <td><p>(Optional) Expose capabilties to debug section when component manager |
| allows it.</p> |
| <p>These capabilities are accessible to any component in the environment |
| with a <code>use</code> declaration with <code>source == debug</code>. Only capabilities |
| intended to support development should be declared here, and they are |
| only allowed if explicitly included in the component manager allowlist.</p> |
| </td> |
| </tr> |
| <tr id="Environment.stop_timeout_ms"> |
| <td><h3 id="Environment.stop_timeout_ms" class="add-link hide-from-toc">6</h3></td> |
| <td><code>stop_timeout_ms</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td><p>(Optional) The duration in milliseconds that the component will have to |
| stop before it is killed.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Event {#Event data-text="Event"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=132)* |
| <p>Declares an event capability which component instances may subscribe to. |
| This type cannot be used in <code>fuchsia.component.decl.Component</code>. It is only |
| used for the framework's built-in capabilities declared in |
| <code>internal.Config</code>.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Event.name"> |
| <td><h3 id="Event.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this event.</p> |
| <p>Must be unique among built-in capabilities.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### EventStream {#EventStream data-text="EventStream"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=145)* |
| <p>Declares an event_stream capability</p> |
| <p>This type cannot be used in <code>fuchsia.component.decl.Component</code>. It is only |
| used for the framework's built-in capabilities declared in |
| <code>internal.Config</code>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 8</span></div> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="EventStream.name"> |
| <td><h3 id="EventStream.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this event stream.</p> |
| <p>Must be unique among built-in capabilities.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### EventSubscription {#EventSubscription data-text="EventSubscription"} |
| |
| |
| *Defined in [fuchsia.component.decl/events.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/events.fidl;l=10)* |
| <p>Indicates the event name to subscribe to with a given event mode.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="EventSubscription.event_name"> |
| <td><h3 id="EventSubscription.event_name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>event_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The event names to subscribe to.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeDirectory {#ExposeDirectory data-text="ExposeDirectory"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=76)* |
| <p>Declares a directory exposed to a component's containing realm, such as a |
| directory exposed by the component or one of its children at runtime.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeDirectory.source"> |
| <td><h3 id="ExposeDirectory.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>self</code> or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.source_name"> |
| <td><h3 id="ExposeDirectory.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the directory, by which it was presented to |
| this component.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.target"> |
| <td><h3 id="ExposeDirectory.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the directory is exposed: either the |
| component's realm or the framework.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.target_name"> |
| <td><h3 id="ExposeDirectory.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.rights"> |
| <td><h3 id="ExposeDirectory.rights" class="add-link hide-from-toc">5</h3></td> |
| <td><code>rights</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Rights'>Rights</a></code> |
| </td> |
| <td><p>(Optional) The maximum rights that can be set by a component using this |
| directory. If unset, the rights are inherited from <code>source</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.subdir"> |
| <td><h3 id="ExposeDirectory.subdir" class="add-link hide-from-toc">6</h3></td> |
| <td><code>subdir</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Optional) The subdirectory of this directory to expose instead of the |
| root.</p> |
| </td> |
| </tr> |
| <tr id="ExposeDirectory.availability"> |
| <td><h3 id="ExposeDirectory.availability" class="add-link hide-from-toc">7</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeEventStream {#ExposeEventStream data-text="ExposeEventStream"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=155)* |
| <p>Declares an event stream exposed to a component's containing realm, such as |
| an event stream exposed by the component or one of its children at runtime.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeEventStream.source"> |
| <td><h3 id="ExposeEventStream.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>child</code>, or <code>framework</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeEventStream.source_name"> |
| <td><h3 id="ExposeEventStream.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the event stream</p> |
| </td> |
| </tr> |
| <tr id="ExposeEventStream.scope"> |
| <td><h3 id="ExposeEventStream.scope" class="add-link hide-from-toc">3</h3></td> |
| <td><code>scope</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Ref'>Ref</a>></code> |
| </td> |
| <td><p>(Required) When an event is exposed from framework, the scope is |
| required and allows one to define the child (or array of children) which |
| the event is about.</p> |
| </td> |
| </tr> |
| <tr id="ExposeEventStream.target"> |
| <td><h3 id="ExposeEventStream.target" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the event stream is exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeEventStream.target_name"> |
| <td><h3 id="ExposeEventStream.target_name" class="add-link hide-from-toc">5</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeEventStream.availability"> |
| <td><h3 id="ExposeEventStream.availability" class="add-link hide-from-toc">6</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeProtocol {#ExposeProtocol data-text="ExposeProtocol"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=52)* |
| <p>Declares a protocol exposed to a component's containing realm, such as |
| a protocol exposed by the component or one of its children at runtime.</p> |
| <p>To learn more about protocols, see: |
| https://fuchsia.dev/fuchsia-src/glossary#protocol</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeProtocol.source"> |
| <td><h3 id="ExposeProtocol.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>self</code> or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeProtocol.source_name"> |
| <td><h3 id="ExposeProtocol.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the protocol, by which it was presented to |
| this component.</p> |
| </td> |
| </tr> |
| <tr id="ExposeProtocol.target"> |
| <td><h3 id="ExposeProtocol.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the protocol is exposed: either the |
| component's realm or the framework.</p> |
| </td> |
| </tr> |
| <tr id="ExposeProtocol.target_name"> |
| <td><h3 id="ExposeProtocol.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeProtocol.availability"> |
| <td><h3 id="ExposeProtocol.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeResolver {#ExposeResolver data-text="ExposeResolver"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=132)* |
| <p>Declares a resolver exposed to a component's containing realm, such as a |
| resolver exposed by the component or one of its children at runtime.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeResolver.source"> |
| <td><h3 id="ExposeResolver.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>self</code> or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeResolver.source_name"> |
| <td><h3 id="ExposeResolver.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the resolver, by which it was presented to this |
| component.</p> |
| </td> |
| </tr> |
| <tr id="ExposeResolver.target"> |
| <td><h3 id="ExposeResolver.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the resolver is exposed</p> |
| </td> |
| </tr> |
| <tr id="ExposeResolver.target_name"> |
| <td><h3 id="ExposeResolver.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeResolver.availability"> |
| <td><h3 id="ExposeResolver.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeRunner {#ExposeRunner data-text="ExposeRunner"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=108)* |
| <p>Declares a runner exposed to a component's containing realm, such as a |
| runner exposed by the component or one of its children at runtime.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeRunner.source"> |
| <td><h3 id="ExposeRunner.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>self</code> or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeRunner.source_name"> |
| <td><h3 id="ExposeRunner.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the runner, by which it was presented to this |
| component.</p> |
| </td> |
| </tr> |
| <tr id="ExposeRunner.target"> |
| <td><h3 id="ExposeRunner.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the runner is exposed: either the |
| component's realm or the framework.</p> |
| </td> |
| </tr> |
| <tr id="ExposeRunner.target_name"> |
| <td><h3 id="ExposeRunner.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeRunner.availability"> |
| <td><h3 id="ExposeRunner.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ExposeService {#ExposeService data-text="ExposeService"} |
| |
| |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=25)* |
| <p>Declares a service exposed to a component's containing realm, such as a |
| service exposed by the component or one of its children at runtime.</p> |
| <p>To learn more about services, see: |
| https://fuchsia.dev/fuchsia-src/glossary#service</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ExposeService.source"> |
| <td><h3 id="ExposeService.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>self</code> or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ExposeService.source_name"> |
| <td><h3 id="ExposeService.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the service, by which it was presented to |
| this component.</p> |
| </td> |
| </tr> |
| <tr id="ExposeService.target"> |
| <td><h3 id="ExposeService.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the service is exposed: either the |
| component's realm or the framework.</p> |
| </td> |
| </tr> |
| <tr id="ExposeService.target_name"> |
| <td><h3 id="ExposeService.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being exposed.</p> |
| </td> |
| </tr> |
| <tr id="ExposeService.availability"> |
| <td><h3 id="ExposeService.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| See <a class='link' href='#Availability'>Availability</a>.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 11</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferDirectory {#OfferDirectory data-text="OfferDirectory"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=164)* |
| <p>Declares a directory offered by a component to one of its children, which |
| may have been offered by the component's containing realm, the component |
| itself, or one of its other children.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferDirectory.source"> |
| <td><h3 id="OfferDirectory.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, <code>child</code>, <code>framework</code>, or <code>void</code>. If |
| set to <code>void</code>, then the target must offer or use the capability with |
| <code>optional</code> availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.source_name"> |
| <td><h3 id="OfferDirectory.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the directory being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.target"> |
| <td><h3 id="OfferDirectory.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target of the capability. Must be <code>child</code> or |
| <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.target_name"> |
| <td><h3 id="OfferDirectory.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.rights"> |
| <td><h3 id="OfferDirectory.rights" class="add-link hide-from-toc">5</h3></td> |
| <td><code>rights</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Rights'>Rights</a></code> |
| </td> |
| <td><p>(Optional) The maximum rights that can be set by a component using this |
| directory. IF unset, the rights are inherited from <code>source</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.subdir"> |
| <td><h3 id="OfferDirectory.subdir" class="add-link hide-from-toc">6</h3></td> |
| <td><code>subdir</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Optional) The subdirectory of this directory to offer instead of the |
| root. Optional.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.dependency_type"> |
| <td><h3 id="OfferDirectory.dependency_type" class="add-link hide-from-toc">7</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this offer represents. A component which |
| receives a weak offer must support the offered capability being |
| unavailable at any point.</p> |
| </td> |
| </tr> |
| <tr id="OfferDirectory.availability"> |
| <td><h3 id="OfferDirectory.availability" class="add-link hide-from-toc">8</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferEvent {#OfferEvent data-text="OfferEvent"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=271)* |
| <p>Declares an event offered by a component.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferEvent.source"> |
| <td><h3 id="OfferEvent.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code> or <code>void</code>. If set to <code>void</code>, then the target |
| must offer or use the capability with <code>optional</code> availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferEvent.source_name"> |
| <td><h3 id="OfferEvent.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name of the event being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferEvent.target"> |
| <td><h3 id="OfferEvent.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target of the event. Must be <code>child</code> or |
| <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferEvent.target_name"> |
| <td><h3 id="OfferEvent.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name under which the event is being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferEvent.filter"> |
| <td><h3 id="OfferEvent.filter" class="add-link hide-from-toc">5</h3></td> |
| <td><code>filter</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Optional) Filter for the event. The structure of the filter depends on |
| the event type. May be absent for some events. (TODO: which ones?)</p> |
| </td> |
| </tr> |
| <tr id="OfferEvent.availability"> |
| <td><h3 id="OfferEvent.availability" class="add-link hide-from-toc">6</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferEventStream {#OfferEventStream data-text="OfferEventStream"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=301)* |
| <p>Declares an event stream offered by a component.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferEventStream.source"> |
| <td><h3 id="OfferEventStream.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>framework</code>, <code>child</code>, or <code>void</code>. If set to |
| <code>void</code>, then the target must offer or use the capability with <code>optional</code> |
| availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.source_name"> |
| <td><h3 id="OfferEventStream.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name of the event being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.scope"> |
| <td><h3 id="OfferEventStream.scope" class="add-link hide-from-toc">3</h3></td> |
| <td><code>scope</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Ref'>Ref</a>></code> |
| </td> |
| <td><p>(Optional) When an event is offered from framework, the scope is |
| required and allows one to define the child (or array of children) which |
| the event is about. When the event is offered from parent, the scope can |
| be used to downscope the event to a certain child scope, otherwise the |
| event will carry the scope coming from the parent.</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.target"> |
| <td><h3 id="OfferEventStream.target" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The destination to which the event stream is offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.target_name"> |
| <td><h3 id="OfferEventStream.target_name" class="add-link hide-from-toc">5</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name under which the event stream is being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.filter"> |
| <td><h3 id="OfferEventStream.filter" class="add-link hide-from-toc">6</h3></td> |
| <td><code>filter</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Optional) Filter for the event stream. Only present for DirectoryReady |
| events and CapabilityRequested events</p> |
| </td> |
| </tr> |
| <tr id="OfferEventStream.availability"> |
| <td><h3 id="OfferEventStream.availability" class="add-link hide-from-toc">7</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferProtocol {#OfferProtocol data-text="OfferProtocol"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=131)* |
| <p>Declares a protocol offered by a component to one of its children, |
| which may have been offered by the component's containing realm, the |
| component itself, or one of its other children.</p> |
| <p>To learn more about protocols, see: |
| https://fuchsia.dev/fuchsia-src/glossary#protocol</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferProtocol.source"> |
| <td><h3 id="OfferProtocol.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, <code>child</code>, <code>framework</code>, or <code>void</code>. If |
| set to <code>void</code>, then the target must offer or use the capability with |
| <code>optional</code> availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferProtocol.source_name"> |
| <td><h3 id="OfferProtocol.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the protocol being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferProtocol.target"> |
| <td><h3 id="OfferProtocol.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target. Must be <code>child</code> or <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferProtocol.target_name"> |
| <td><h3 id="OfferProtocol.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the capability is being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferProtocol.dependency_type"> |
| <td><h3 id="OfferProtocol.dependency_type" class="add-link hide-from-toc">5</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this offer represents. A component which |
| receives a weak offer must support the offered capability being |
| unavailable at any point.</p> |
| </td> |
| </tr> |
| <tr id="OfferProtocol.availability"> |
| <td><h3 id="OfferProtocol.availability" class="add-link hide-from-toc">6</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferResolver {#OfferResolver data-text="OfferResolver"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=254)* |
| <p>Declares a resolver capability offered by a component to one of its children, which |
| may have been offered by the component's containing realm, the component itself, |
| or one of its other children.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferResolver.source"> |
| <td><h3 id="OfferResolver.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferResolver.source_name"> |
| <td><h3 id="OfferResolver.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name of the resolver being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferResolver.target"> |
| <td><h3 id="OfferResolver.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target of the capability. Must be <code>child</code> or |
| <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferResolver.target_name"> |
| <td><h3 id="OfferResolver.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name under which the capability is being offered.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferRunner {#OfferRunner data-text="OfferRunner"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=235)* |
| <p>Declares a runner offered by a component to one of its children, which may |
| have been offered by the component's containing realm, the component itself, |
| or one of its other children.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferRunner.source"> |
| <td><h3 id="OfferRunner.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferRunner.source_name"> |
| <td><h3 id="OfferRunner.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name of the runner being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferRunner.target"> |
| <td><h3 id="OfferRunner.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target of the capability. Must be <code>child</code> or |
| <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferRunner.target_name"> |
| <td><h3 id="OfferRunner.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name under which the capability is being offered.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferService {#OfferService data-text="OfferService"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=91)* |
| <p>Declares a service offered by a component to one of its children, which may |
| have been offered by the component's containing realm, the component itself, |
| or one of its other children.</p> |
| <p>To learn more about services, see: |
| https://fuchsia.dev/fuchsia-src/glossary#service</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferService.source"> |
| <td><h3 id="OfferService.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, <code>child</code>, or <code>void</code>. If set to <code>void</code>, |
| then the target must offer or use the capability with <code>optional</code> |
| availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.source_name"> |
| <td><h3 id="OfferService.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the service being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.target"> |
| <td><h3 id="OfferService.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target. Must be <code>child</code> or <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.target_name"> |
| <td><h3 id="OfferService.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name under which the capability is being offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.source_instance_filter"> |
| <td><h3 id="OfferService.source_instance_filter" class="add-link hide-from-toc">5</h3></td> |
| <td><code>source_instance_filter</code></td> |
| <td> |
| <code>vector<string></code> |
| </td> |
| <td><p>(Optional) The list of allow listed instances to be offered. Instances |
| of the service not in this list will not be accessible by the target |
| component. If this is not set that means all instances from the source |
| service are offered.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.renamed_instances"> |
| <td><h3 id="OfferService.renamed_instances" class="add-link hide-from-toc">6</h3></td> |
| <td><code>renamed_instances</code></td> |
| <td> |
| <code>vector<<a class='link' href='#NameMapping'>NameMapping</a>></code> |
| </td> |
| <td><p>(Optional) List of renamed service instances.</p> |
| </td> |
| </tr> |
| <tr id="OfferService.availability"> |
| <td><h3 id="OfferService.availability" class="add-link hide-from-toc">7</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### OfferStorage {#OfferStorage data-text="OfferStorage"} |
| |
| |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=206)* |
| <p>Declares a storage capability offered by a component to one of its children, |
| such as meta storage offered by the component's containing realm or cache |
| storage offered by the component itself.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="OfferStorage.source_name"> |
| <td><h3 id="OfferStorage.source_name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the storage capability being offered</p> |
| </td> |
| </tr> |
| <tr id="OfferStorage.source"> |
| <td><h3 id="OfferStorage.source" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>storage</code>, or <code>void</code>. If set to <code>void</code>, then |
| the target must offer or use the capability with <code>optional</code> |
| availability.</p> |
| </td> |
| </tr> |
| <tr id="OfferStorage.target"> |
| <td><h3 id="OfferStorage.target" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) Reference to the target of the capability. Must be <code>child</code> or |
| <code>collection</code>.</p> |
| </td> |
| </tr> |
| <tr id="OfferStorage.target_name"> |
| <td><h3 id="OfferStorage.target_name" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name the storage capability is being offered as</p> |
| </td> |
| </tr> |
| <tr id="OfferStorage.availability"> |
| <td><h3 id="OfferStorage.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the target may use or offer the capability with |
| either <code>required</code> or <code>optional</code> availability. If set to <code>optional</code>, the |
| target must use or offer the capability with <code>optional</code> availability. |
| The <code>same_as_target</code> value causes this offer's availability to match the |
| availability set in the target.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Program {#Program data-text="Program"} |
| |
| |
| *Defined in [fuchsia.component.decl/program.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/program.fidl;l=15)* |
| <p>A program declaration.</p> |
| <p>This declaration is set by executable components to designate the runner to |
| use and pass runner-specific program information to it.</p> |
| <p>To learn more about runners, see: |
| https://fuchsia.dev/fuchsia-src/glossary#runner</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Program.runner"> |
| <td><h3 id="Program.runner" class="add-link hide-from-toc">1</h3></td> |
| <td><code>runner</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the runner to use to run the component. Must |
| match a <code>RunnerRegistration</code> in the component's environment.</p> |
| </td> |
| </tr> |
| <tr id="Program.info"> |
| <td><h3 id="Program.info" class="add-link hide-from-toc">2</h3></td> |
| <td><code>info</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Required) Information about the program to run when the component is |
| executed. The component manager provides the contents of this dictionary |
| to the runner when executing this program.</p> |
| <p>For instance, this might contain a path to the program's executable |
| image, or program arguments.</p> |
| <ul> |
| <li>The keys represent namespaced properties, delimited by ".".</li> |
| <li>Properties may be nested in values, but only in the case of an object |
| vector.</li> |
| </ul> |
| </td> |
| </tr> |
| </table> |
| |
| ### Protocol {#Protocol data-text="Protocol"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=38)* |
| <p>Declares a protocol capability backed by this component.</p> |
| <p>To learn more about protocols, see: |
| https://fuchsia.dev/fuchsia-src/glossary#protocol</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Protocol.name"> |
| <td><h3 id="Protocol.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this protocol.</p> |
| </td> |
| </tr> |
| <tr id="Protocol.source_path"> |
| <td><h3 id="Protocol.source_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path to the protocol in the component's outgoing |
| directory.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Resolver {#Resolver data-text="Resolver"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=117)* |
| <p>Declares a resolver which is responsible for resolving component URLs to |
| actual components. See <code>fuchsia.component.resolution.Resolver</code> for the |
| protocol resolvers are expected to implement.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Resolver.name"> |
| <td><h3 id="Resolver.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this resolver.</p> |
| <p>Must be unique among resolvers declared in the same <code>ComponentDecl</code>.</p> |
| </td> |
| </tr> |
| <tr id="Resolver.source_path"> |
| <td><h3 id="Resolver.source_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path to the resolver protocol in the component's outgoing |
| directory</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ResolverRegistration {#ResolverRegistration data-text="ResolverRegistration"} |
| |
| |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=67)* |
| <p>A mapping of URL scheme to resolver name.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="ResolverRegistration.resolver"> |
| <td><h3 id="ResolverRegistration.resolver" class="add-link hide-from-toc">1</h3></td> |
| <td><code>resolver</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the resolver.</p> |
| </td> |
| </tr> |
| <tr id="ResolverRegistration.source"> |
| <td><h3 id="ResolverRegistration.source" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="ResolverRegistration.scheme"> |
| <td><h3 id="ResolverRegistration.scheme" class="add-link hide-from-toc">3</h3></td> |
| <td><code>scheme</code></td> |
| <td> |
| <code><a class='link' href='#url_scheme'>url_scheme</a></code> |
| </td> |
| <td><p>(Required) The URL scheme the resolver is registered to handle. Only one |
| resolver may be registered to a particular URL scheme. The URL scheme |
| must start with a lowercase ASCII letter (a-z), and may contain |
| lowercase ASCII letters, digits, <code>+</code>, <code>-</code>, and <code>.</code>.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Runner {#Runner data-text="Runner"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=103)* |
| <p>Declares a runner capability backed by a service.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Runner.name"> |
| <td><h3 id="Runner.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this runner.</p> |
| <p>Must unique among runners declared in the same <code>ComponentDecl</code>.</p> |
| </td> |
| </tr> |
| <tr id="Runner.source_path"> |
| <td><h3 id="Runner.source_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path to the runner protocol in the component's outgoing |
| directory.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### RunnerRegistration {#RunnerRegistration data-text="RunnerRegistration"} |
| |
| |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=52)* |
| <p>A repository of the runners available in an environment.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="RunnerRegistration.source_name"> |
| <td><h3 id="RunnerRegistration.source_name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the runner capability as it's exposed to, |
| offered, or defined by this component.</p> |
| </td> |
| </tr> |
| <tr id="RunnerRegistration.source"> |
| <td><h3 id="RunnerRegistration.source" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the capability relative to the component |
| itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="RunnerRegistration.target_name"> |
| <td><h3 id="RunnerRegistration.target_name" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name by which the runner is made available in this |
| environment.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Service {#Service data-text="Service"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=25)* |
| <p>Declares a service capability backed by this component.</p> |
| <p>To learn more about services, see: |
| https://fuchsia.dev/fuchsia-src/glossary#service</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Service.name"> |
| <td><h3 id="Service.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this service.</p> |
| </td> |
| </tr> |
| <tr id="Service.source_path"> |
| <td><h3 id="Service.source_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path to the service in the component's outgoing |
| directory.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### Storage {#Storage data-text="Storage"} |
| |
| |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=66)* |
| <p>Declares a storage capability backed by a directory from which data, cache, |
| or meta storage can be offered.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="Storage.name"> |
| <td><h3 id="Storage.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of this storage</p> |
| </td> |
| </tr> |
| <tr id="Storage.source"> |
| <td><h3 id="Storage.source" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the backing directory capability relative to |
| the component itself. Must be <code>parent</code>, <code>self</code>, or <code>child</code>.</p> |
| </td> |
| </tr> |
| <tr id="Storage.backing_dir"> |
| <td><h3 id="Storage.backing_dir" class="add-link hide-from-toc">3</h3></td> |
| <td><code>backing_dir</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the directory capability from <code>source</code> that backs |
| the storage.</p> |
| </td> |
| </tr> |
| <tr id="Storage.subdir"> |
| <td><h3 id="Storage.subdir" class="add-link hide-from-toc">4</h3></td> |
| <td><code>subdir</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Optional) The subdirectory of the source directory that will back the |
| storage</p> |
| </td> |
| </tr> |
| <tr id="Storage.storage_id"> |
| <td><h3 id="Storage.storage_id" class="add-link hide-from-toc">5</h3></td> |
| <td><code>storage_id</code></td> |
| <td> |
| <code><a class='link' href='#StorageId'>StorageId</a></code> |
| </td> |
| <td><p>(Required) This enum determines how to key a component's isolated |
| storage directory. Each option corresponds to a different key'ing |
| strategy.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseDirectory {#UseDirectory data-text="UseDirectory"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=95)* |
| <p>Declares a directory used by a component, which was offered to it.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseDirectory.source"> |
| <td><h3 id="UseDirectory.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the directory relative to the component |
| itself. Must be <code>parent</code>, <code>framework</code>, or <code>child</code>. If the availability |
| is set to <code>optional</code>, then this must be set to <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.source_name"> |
| <td><h3 id="UseDirectory.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the directory, by which it was presented to |
| this component.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.target_path"> |
| <td><h3 id="UseDirectory.target_path" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path where the capability should be installed in the |
| component's namespace.</p> |
| <p>Must be an absolute path starting with /.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.rights"> |
| <td><h3 id="UseDirectory.rights" class="add-link hide-from-toc">4</h3></td> |
| <td><code>rights</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.io/'>fuchsia.io</a>/<a class='link' href='../fuchsia.io/#Rights'>Rights</a></code> |
| </td> |
| <td><p>(Required) The rights required by the component to use this directory.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.subdir"> |
| <td><h3 id="UseDirectory.subdir" class="add-link hide-from-toc">5</h3></td> |
| <td><code>subdir</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Optional) The subdirectory of this directory to use instead of the |
| root.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.dependency_type"> |
| <td><h3 id="UseDirectory.dependency_type" class="add-link hide-from-toc">6</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this use represents.</p> |
| <p>A component which offers a capability to a child from itself and uses a |
| capability from the same child, must mark the dependency as <code>weak</code>. A |
| <code>weak</code> dependency implies that the capability may become unavailable at |
| any point. Taking a strong dependency on a child's capability will |
| cause this the child to shut down before its parent. When using a weak |
| dependency, the parent shuts down before the child.</p> |
| </td> |
| </tr> |
| <tr id="UseDirectory.availability"> |
| <td><h3 id="UseDirectory.availability" class="add-link hide-from-toc">7</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseEvent {#UseEvent data-text="UseEvent"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=156)* |
| <p>Declares an event used by a component, which was offered to it.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseEvent.source"> |
| <td><h3 id="UseEvent.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the event. Must be <code>realm</code> or <code>framework</code>. If |
| the availability is set to <code>optional</code>, then this must be set to |
| <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseEvent.source_name"> |
| <td><h3 id="UseEvent.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the event which was presented to this |
| component.</p> |
| </td> |
| </tr> |
| <tr id="UseEvent.target_name"> |
| <td><h3 id="UseEvent.target_name" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name which the component will use to refer to this event.</p> |
| </td> |
| </tr> |
| <tr id="UseEvent.filter"> |
| <td><h3 id="UseEvent.filter" class="add-link hide-from-toc">4</h3></td> |
| <td><code>filter</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Optional) Filter for the event. The structure of the filter depends on |
| the event type. May be absent for some events. (TODO: which ones?)</p> |
| </td> |
| </tr> |
| <tr id="UseEvent.dependency_type"> |
| <td><h3 id="UseEvent.dependency_type" class="add-link hide-from-toc">5</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this use represents.</p> |
| <p>A component which offers a capability to a child from itself and uses a |
| capability from the same child, must mark the dependency as <code>weak</code>. A |
| <code>weak</code> dependency implies that the capability may become unavailable at |
| any point. Taking a strong dependency on a child's capability will |
| cause this the child to shut down before its parent. When using a weak |
| dependency, the parent shuts down before the child.</p> |
| </td> |
| </tr> |
| <tr id="UseEvent.availability"> |
| <td><h3 id="UseEvent.availability" class="add-link hide-from-toc">6</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseEventStream {#UseEventStream data-text="UseEventStream"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=207)* |
| <p>Declares an EventStream used by a component.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseEventStream.source_name"> |
| <td><h3 id="UseEventStream.source_name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The names of the event streams.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStream.source"> |
| <td><h3 id="UseEventStream.source" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the event. Must be <code>parent</code>, <code>framework</code>, or <code>child</code>. If |
| the availability is set to <code>optional</code>, then this must be set to |
| <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStream.scope"> |
| <td><h3 id="UseEventStream.scope" class="add-link hide-from-toc">3</h3></td> |
| <td><code>scope</code></td> |
| <td> |
| <code>vector<<a class='link' href='#Ref'>Ref</a>></code> |
| </td> |
| <td><p>(Optional) When an event is used from framework, the scope is required |
| to specify the child (or array of children) which the event will be |
| about. When the event is used from parent, the scope can be used to |
| downscope the event to a certain child scope, otherwise the event will |
| carry the scope coming from the parent.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStream.target_path"> |
| <td><h3 id="UseEventStream.target_path" class="add-link hide-from-toc">4</h3></td> |
| <td><code>target_path</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The path where the capability should be installed in the |
| component's namespace. Must be an absolute path starting with /.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStream.availability"> |
| <td><h3 id="UseEventStream.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStream.filter"> |
| <td><h3 id="UseEventStream.filter" class="add-link hide-from-toc">6</h3></td> |
| <td><code>filter</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.data/'>fuchsia.data</a>/<a class='link' href='../fuchsia.data/#Dictionary'>Dictionary</a></code> |
| </td> |
| <td><p>(Optional) Filter for the event stream. The structure of the filter |
| depends on the event stream type. Only supported for the |
| <code>DirectoryReady</code> and <code>CapabilityRequested</code> event types.</p> |
| <div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 9</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseEventStreamDeprecated {#UseEventStreamDeprecated data-text="UseEventStreamDeprecated"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=191)* |
| <p>Declares a static EventStream used by a component.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseEventStreamDeprecated.name"> |
| <td><h3 id="UseEventStreamDeprecated.name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) The name of the event stream.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStreamDeprecated.subscriptions"> |
| <td><h3 id="UseEventStreamDeprecated.subscriptions" class="add-link hide-from-toc">2</h3></td> |
| <td><code>subscriptions</code></td> |
| <td> |
| <code>vector<<a class='link' href='#EventSubscription'>EventSubscription</a>>[100]</code> |
| </td> |
| <td><p>(Required) The set of events to which this EventStream is subscribed. |
| Note: This vector must be non-empty.</p> |
| </td> |
| </tr> |
| <tr id="UseEventStreamDeprecated.availability"> |
| <td><h3 id="UseEventStreamDeprecated.availability" class="add-link hide-from-toc">3</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseProtocol {#UseProtocol data-text="UseProtocol"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=61)* |
| <p>Declares a protocol used by a component, which was offered to it.</p> |
| <p>A protocol is a service with a single instance, provided by a single FIDL |
| protocol.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseProtocol.source"> |
| <td><h3 id="UseProtocol.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the protocol relative to the component itself. |
| Must be <code>parent</code>, <code>framework</code>, <code>debug</code>, <code>capability</code>, or <code>child</code>. If the |
| availability is set to <code>optional</code>, then this must be set to <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseProtocol.source_name"> |
| <td><h3 id="UseProtocol.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the protocol, by which it was presented to this |
| component.</p> |
| </td> |
| </tr> |
| <tr id="UseProtocol.target_path"> |
| <td><h3 id="UseProtocol.target_path" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path where the capability should be installed in the component's |
| namespace.</p> |
| <p>Must be an absolute path starting with /.</p> |
| </td> |
| </tr> |
| <tr id="UseProtocol.dependency_type"> |
| <td><h3 id="UseProtocol.dependency_type" class="add-link hide-from-toc">4</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this use represents.</p> |
| <p>A component which offers a capability to a child from itself and uses a |
| capability from the same child, must mark the dependency as <code>weak</code>. A |
| <code>weak</code> dependency implies that the capability may become unavailable at |
| any point. Taking a strong dependency on a child's capability will |
| cause this the child to shut down before its parent. When using a weak |
| dependency, the parent shuts down before the child.</p> |
| </td> |
| </tr> |
| <tr id="UseProtocol.availability"> |
| <td><h3 id="UseProtocol.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseService {#UseService data-text="UseService"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=24)* |
| <p>Declares a service used by a component, which was offered to it.</p> |
| <p>To learn more about services, see: |
| https://fuchsia.dev/fuchsia-src/glossary#service</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseService.source"> |
| <td><h3 id="UseService.source" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Ref'>Ref</a></code> |
| </td> |
| <td><p>(Required) The provider of the service relative to the component itself. |
| Must be <code>parent</code> or <code>framework</code>. If the availability is set to |
| <code>optional</code>, then this must be set to <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseService.source_name"> |
| <td><h3 id="UseService.source_name" class="add-link hide-from-toc">2</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the service, by which it was presented to |
| this component.</p> |
| </td> |
| </tr> |
| <tr id="UseService.target_path"> |
| <td><h3 id="UseService.target_path" class="add-link hide-from-toc">3</h3></td> |
| <td><code>target_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path where the capability should be installed in the |
| component's namespace.</p> |
| <p>Must be an absolute path starting with /.</p> |
| </td> |
| </tr> |
| <tr id="UseService.dependency_type"> |
| <td><h3 id="UseService.dependency_type" class="add-link hide-from-toc">4</h3></td> |
| <td><code>dependency_type</code></td> |
| <td> |
| <code><a class='link' href='#DependencyType'>DependencyType</a></code> |
| </td> |
| <td><p>(Required) The dependency type this use represents.</p> |
| <p>A component which offers a capability to a child from itself and uses a |
| capability from the same child, must mark the dependency as <code>weak</code>. A |
| <code>weak</code> dependency implies that the capability may become unavailable at |
| any point. Taking a strong dependency on a child's capability will |
| cause this the child to shut down before its parent. When using a weak |
| dependency, the parent shuts down before the child.</p> |
| </td> |
| </tr> |
| <tr id="UseService.availability"> |
| <td><h3 id="UseService.availability" class="add-link hide-from-toc">5</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### UseStorage {#UseStorage data-text="UseStorage"} |
| |
| |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=136)* |
| <p>Declares storage used by a component, which was offered to it.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="UseStorage.source_name"> |
| <td><h3 id="UseStorage.source_name" class="add-link hide-from-toc">1</h3></td> |
| <td><code>source_name</code></td> |
| <td> |
| <code><a class='link' href='#name'>name</a></code> |
| </td> |
| <td><p>(Required) Name identifying the storage, by which it was presented to |
| this component. If the availability is set to <code>optional</code>, then this must |
| be set to <code>parent</code>.</p> |
| </td> |
| </tr> |
| <tr id="UseStorage.target_path"> |
| <td><h3 id="UseStorage.target_path" class="add-link hide-from-toc">2</h3></td> |
| <td><code>target_path</code></td> |
| <td> |
| <code>string[1024]</code> |
| </td> |
| <td><p>(Required) The path where the capability should be installed in the |
| component's namespace.</p> |
| <p>Must be an absolute path starting with /.</p> |
| </td> |
| </tr> |
| <tr id="UseStorage.availability"> |
| <td><h3 id="UseStorage.availability" class="add-link hide-from-toc">3</h3></td> |
| <td><code>availability</code></td> |
| <td> |
| <code><a class='link' href='#Availability'>Availability</a></code> |
| </td> |
| <td><p>(Optional, defaults to <code>REQUIRED</code>) The availability of this capability. |
| If set to <code>required</code>, the component is likely to malfunction if this |
| capability is not provided. If set to <code>optional</code>, the component can |
| handle the capability's absence.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## **UNIONS** |
| |
| ### Capability [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Capability data-text="Capability"} |
| *Defined in [fuchsia.component.decl/capability.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/capability.fidl;l=9)* |
| <p>Declares a capability defined by this component.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Capability.service"> |
| <td><h3 id="Capability.service" class="add-link hide-from-toc">1</h3></td> |
| <td><code>service</code></td> |
| <td> |
| <code><a class='link' href='#Service'>Service</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.protocol"> |
| <td><h3 id="Capability.protocol" class="add-link hide-from-toc">2</h3></td> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#Protocol'>Protocol</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.directory"> |
| <td><h3 id="Capability.directory" class="add-link hide-from-toc">3</h3></td> |
| <td><code>directory</code></td> |
| <td> |
| <code><a class='link' href='#Directory'>Directory</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.storage"> |
| <td><h3 id="Capability.storage" class="add-link hide-from-toc">4</h3></td> |
| <td><code>storage</code></td> |
| <td> |
| <code><a class='link' href='#Storage'>Storage</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.runner"> |
| <td><h3 id="Capability.runner" class="add-link hide-from-toc">5</h3></td> |
| <td><code>runner</code></td> |
| <td> |
| <code><a class='link' href='#Runner'>Runner</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.resolver"> |
| <td><h3 id="Capability.resolver" class="add-link hide-from-toc">6</h3></td> |
| <td><code>resolver</code></td> |
| <td> |
| <code><a class='link' href='#Resolver'>Resolver</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.event"> |
| <td><h3 id="Capability.event" class="add-link hide-from-toc">7</h3></td> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#Event'>Event</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Capability.event_stream"> |
| <td><h3 id="Capability.event_stream" class="add-link hide-from-toc">8</h3></td> |
| <td><code>event_stream</code></td> |
| <td> |
| <code><a class='link' href='#EventStream'>EventStream</a></code> |
| </td> |
| <td><div class="fidl-version-div"><span class="fidl-attribute fidl-version">Added: 8</span></div> |
| </td> |
| </tr> |
| </table> |
| |
| ### ConfigChecksum [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ConfigChecksum data-text="ConfigChecksum"} |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=15)* |
| <p>The checksum produced for a configuration interface. |
| Two configuration interfaces are the same if their checksums are the same.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="ConfigChecksum.sha256"> |
| <td><h3 id="ConfigChecksum.sha256" class="add-link hide-from-toc">1</h3></td> |
| <td><code>sha256</code></td> |
| <td> |
| <code>uint8[32]</code> |
| </td> |
| <td><p>A SHA-256 hash produced over a component's config interface.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### ConfigValueSource [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#ConfigValueSource data-text="ConfigValueSource"} |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=33)* |
| <p>Strategies available for resolving configuration values.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="ConfigValueSource.package_path"> |
| <td><h3 id="ConfigValueSource.package_path" class="add-link hide-from-toc">1</h3></td> |
| <td><code>package_path</code></td> |
| <td> |
| <code>string</code> |
| </td> |
| <td><p>(Required) The path within the component's package at which to find config value files.</p> |
| </td> |
| </tr> |
| </table> |
| |
| ### DebugRegistration [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#DebugRegistration data-text="DebugRegistration"} |
| *Defined in [fuchsia.component.decl/environment.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/environment.fidl;l=83)* |
| <p>Declares a capability registered in the debug section of an environment.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="DebugRegistration.protocol"> |
| <td><h3 id="DebugRegistration.protocol" class="add-link hide-from-toc">1</h3></td> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#DebugProtocolRegistration'>DebugProtocolRegistration</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Expose [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Expose data-text="Expose"} |
| *Defined in [fuchsia.component.decl/expose.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/expose.fidl;l=11)* |
| <p>Declares a capability exposed to either a component's containing realm or to |
| the framework. For example, a legacy service exposed by the component at |
| runtime.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Expose.service"> |
| <td><h3 id="Expose.service" class="add-link hide-from-toc">1</h3></td> |
| <td><code>service</code></td> |
| <td> |
| <code><a class='link' href='#ExposeService'>ExposeService</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Expose.protocol"> |
| <td><h3 id="Expose.protocol" class="add-link hide-from-toc">2</h3></td> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#ExposeProtocol'>ExposeProtocol</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Expose.directory"> |
| <td><h3 id="Expose.directory" class="add-link hide-from-toc">3</h3></td> |
| <td><code>directory</code></td> |
| <td> |
| <code><a class='link' href='#ExposeDirectory'>ExposeDirectory</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Expose.runner"> |
| <td><h3 id="Expose.runner" class="add-link hide-from-toc">4</h3></td> |
| <td><code>runner</code></td> |
| <td> |
| <code><a class='link' href='#ExposeRunner'>ExposeRunner</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Expose.resolver"> |
| <td><h3 id="Expose.resolver" class="add-link hide-from-toc">5</h3></td> |
| <td><code>resolver</code></td> |
| <td> |
| <code><a class='link' href='#ExposeResolver'>ExposeResolver</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Expose.event_stream"> |
| <td><h3 id="Expose.event_stream" class="add-link hide-from-toc">6</h3></td> |
| <td><code>event_stream</code></td> |
| <td> |
| <code><a class='link' href='#ExposeEventStream'>ExposeEventStream</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### LayoutConstraint [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#LayoutConstraint data-text="LayoutConstraint"} |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=81)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="LayoutConstraint.max_size"> |
| <td><h3 id="LayoutConstraint.max_size" class="add-link hide-from-toc">1</h3></td> |
| <td><code>max_size</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### LayoutParameter [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#LayoutParameter data-text="LayoutParameter"} |
| *Defined in [fuchsia.component.decl/config.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=75)* |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="LayoutParameter.nested_type"> |
| <td><h3 id="LayoutParameter.nested_type" class="add-link hide-from-toc">1</h3></td> |
| <td><code>nested_type</code></td> |
| <td> |
| <code><a class='link' href='#ConfigType'>ConfigType</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Offer [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Offer data-text="Offer"} |
| *Defined in [fuchsia.component.decl/offer.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/offer.fidl;l=12)* |
| <p>Declares a capability offered by a component to one of its children, which |
| may have been offered by the component's containing realm, the component |
| itself, or one of its other children.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Offer.service"> |
| <td><h3 id="Offer.service" class="add-link hide-from-toc">1</h3></td> |
| <td><code>service</code></td> |
| <td> |
| <code><a class='link' href='#OfferService'>OfferService</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.protocol"> |
| <td><h3 id="Offer.protocol" class="add-link hide-from-toc">2</h3></td> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#OfferProtocol'>OfferProtocol</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.directory"> |
| <td><h3 id="Offer.directory" class="add-link hide-from-toc">3</h3></td> |
| <td><code>directory</code></td> |
| <td> |
| <code><a class='link' href='#OfferDirectory'>OfferDirectory</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.storage"> |
| <td><h3 id="Offer.storage" class="add-link hide-from-toc">4</h3></td> |
| <td><code>storage</code></td> |
| <td> |
| <code><a class='link' href='#OfferStorage'>OfferStorage</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.runner"> |
| <td><h3 id="Offer.runner" class="add-link hide-from-toc">5</h3></td> |
| <td><code>runner</code></td> |
| <td> |
| <code><a class='link' href='#OfferRunner'>OfferRunner</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.resolver"> |
| <td><h3 id="Offer.resolver" class="add-link hide-from-toc">6</h3></td> |
| <td><code>resolver</code></td> |
| <td> |
| <code><a class='link' href='#OfferResolver'>OfferResolver</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.event"> |
| <td><h3 id="Offer.event" class="add-link hide-from-toc">7</h3></td> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#OfferEvent'>OfferEvent</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Offer.event_stream"> |
| <td><h3 id="Offer.event_stream" class="add-link hide-from-toc">8</h3></td> |
| <td><code>event_stream</code></td> |
| <td> |
| <code><a class='link' href='#OfferEventStream'>OfferEventStream</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Ref [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Ref data-text="Ref"} |
| *Defined in [fuchsia.component.decl/relative_refs.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/relative_refs.fidl;l=8)* |
| <p>A reference to a capability source or destination relative to this |
| component.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Ref.parent"> |
| <td><h3 id="Ref.parent" class="add-link hide-from-toc">1</h3></td> |
| <td><code>parent</code></td> |
| <td> |
| <code><a class='link' href='#ParentRef'>ParentRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.self"> |
| <td><h3 id="Ref.self" class="add-link hide-from-toc">2</h3></td> |
| <td><code>self</code></td> |
| <td> |
| <code><a class='link' href='#SelfRef'>SelfRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.child"> |
| <td><h3 id="Ref.child" class="add-link hide-from-toc">3</h3></td> |
| <td><code>child</code></td> |
| <td> |
| <code><a class='link' href='#ChildRef'>ChildRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.collection"> |
| <td><h3 id="Ref.collection" class="add-link hide-from-toc">4</h3></td> |
| <td><code>collection</code></td> |
| <td> |
| <code><a class='link' href='#CollectionRef'>CollectionRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.framework"> |
| <td><h3 id="Ref.framework" class="add-link hide-from-toc">5</h3></td> |
| <td><code>framework</code></td> |
| <td> |
| <code><a class='link' href='#FrameworkRef'>FrameworkRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.capability"> |
| <td><h3 id="Ref.capability" class="add-link hide-from-toc">6</h3></td> |
| <td><code>capability</code></td> |
| <td> |
| <code><a class='link' href='#CapabilityRef'>CapabilityRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.debug"> |
| <td><h3 id="Ref.debug" class="add-link hide-from-toc">7</h3></td> |
| <td><code>debug</code></td> |
| <td> |
| <code><a class='link' href='#DebugRef'>DebugRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Ref.void_type"> |
| <td><h3 id="Ref.void_type" class="add-link hide-from-toc">8</h3></td> |
| <td><code>void_type</code></td> |
| <td> |
| <code><a class='link' href='#VoidRef'>VoidRef</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ### Use [flexible](/fuchsia-src/reference/fidl/language/language.md#strict-vs-flexible){:.fidl-attribute} {#Use data-text="Use"} |
| *Defined in [fuchsia.component.decl/use.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/use.fidl;l=10)* |
| <p>Declares a capability used by a component, which was offered to it.</p> |
| <table> |
| <tr><th>Ordinal</th><th>Variant</th><th>Type</th><th>Description</th></tr> |
| <tr id="Use.service"> |
| <td><h3 id="Use.service" class="add-link hide-from-toc">1</h3></td> |
| <td><code>service</code></td> |
| <td> |
| <code><a class='link' href='#UseService'>UseService</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.protocol"> |
| <td><h3 id="Use.protocol" class="add-link hide-from-toc">2</h3></td> |
| <td><code>protocol</code></td> |
| <td> |
| <code><a class='link' href='#UseProtocol'>UseProtocol</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.directory"> |
| <td><h3 id="Use.directory" class="add-link hide-from-toc">3</h3></td> |
| <td><code>directory</code></td> |
| <td> |
| <code><a class='link' href='#UseDirectory'>UseDirectory</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.storage"> |
| <td><h3 id="Use.storage" class="add-link hide-from-toc">4</h3></td> |
| <td><code>storage</code></td> |
| <td> |
| <code><a class='link' href='#UseStorage'>UseStorage</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.event"> |
| <td><h3 id="Use.event" class="add-link hide-from-toc">5</h3></td> |
| <td><code>event</code></td> |
| <td> |
| <code><a class='link' href='#UseEvent'>UseEvent</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.event_stream_deprecated"> |
| <td><h3 id="Use.event_stream_deprecated" class="add-link hide-from-toc">6</h3></td> |
| <td><code>event_stream_deprecated</code></td> |
| <td> |
| <code><a class='link' href='#UseEventStreamDeprecated'>UseEventStreamDeprecated</a></code> |
| </td> |
| <td></td> |
| </tr> |
| <tr id="Use.event_stream"> |
| <td><h3 id="Use.event_stream" class="add-link hide-from-toc">7</h3></td> |
| <td><code>event_stream</code></td> |
| <td> |
| <code><a class='link' href='#UseEventStream'>UseEventStream</a></code> |
| </td> |
| <td></td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="CONFIG_KEY_MAX_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=8">CONFIG_KEY_MAX_SIZE</a></td> |
| <td> |
| <code>64</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td><p>Config keys can only consist of these many bytes</p> |
| </td> |
| </tr> |
| <tr id="MAX_CHILD_NAME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=7">MAX_CHILD_NAME_LENGTH</a></td> |
| <td> |
| <code>1024</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_MONIKER_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=9">MAX_MONIKER_LENGTH</a></td> |
| <td> |
| <code>4096</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_NAME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=6">MAX_NAME_LENGTH</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/events.fidl;l=7">MAX_NUM_EVENT_STREAM_SUBSCRIPTIONS</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint64</code></td> |
| <td><p>The maximum number of EventSubscriptions in an EventStream.</p> |
| </td> |
| </tr> |
| <tr id="MAX_PATH_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=8">MAX_PATH_LENGTH</a></td> |
| <td> |
| <code>1024</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| <tr id="MAX_URL_SCHEME_LENGTH"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=10">MAX_URL_SCHEME_LENGTH</a></td> |
| <td> |
| <code>100</code> |
| </td> |
| <td><code>uint32</code></td> |
| <td></td> |
| </tr> |
| </table> |
| |
| ## **ALIASES** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Description</th></tr> |
| <tr id="ConfigKey"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/config.fidl;l=11">ConfigKey</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#CONFIG_KEY_MAX_SIZE'>CONFIG_KEY_MAX_SIZE</a></code>]</td> |
| <td><p>The string identifier for a config field.</p> |
| </td> |
| </tr> |
| <tr id="child_name"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=13">child_name</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_CHILD_NAME_LENGTH'>MAX_CHILD_NAME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| <tr id="name"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=12">name</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_NAME_LENGTH'>MAX_NAME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| <tr id="url_scheme"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.component.decl/types.fidl;l=14">url_scheme</a></td> |
| <td> |
| <code>string</code>[<code><a class='link' href='#MAX_URL_SCHEME_LENGTH'>MAX_URL_SCHEME_LENGTH</a></code>]</td> |
| <td></td> |
| </tr> |
| </table> |