fuchsia.sys2

PROTOCOLS

Realm

Defined in fuchsia.sys2/realm.fidl

A protocol used by a component instance to manage its own realm, such as for binding to its children.

The component manager provides this service to components that use /svc/fuchsia.sys2.Realm.

BindChild

Binds to a child component instance, causing it to start running if it is not already. When this function successfully returns, child is running and exposed_dir is bound to a directory that contains the capabilities which the child exposed to its realm via ComponentDecl.exposes (specified via "expose" declarations in the component’s manifest).

exposed_dir is a valid channel as long as child is running. child will remain running until it either stops on its own, or DestroyChild causes the child instance to be destroyed.

For example, if the child exposes a service /svc/example.Echo then exposed_dir will contain that service at that path.

NOTE: BindChild does not support pipelining with CreateChild. If BindChild is called on an instance before CreateChild successfully returns, it may return INSTANCE_NOT_FOUND.

Errors:

  • INVALID_ARGUMENTS: child is not a valid child reference. -
  • INSTANCE_NOT_FOUND: child does not exist.
  • INSTANCE_CANNOT_START: child was not running and there was an error starting it.
  • INSTANCE_CANNOT_RESOLVE: child's component declaration failed to resolve.

Request

NameType
child ChildRef
exposed_dir request<fuchsia.io/Directory>

Response

NameType
result Realm_BindChild_Result

CreateChild

Creates a child component instance dynamically. When this function returns successfully, the instance exists, but it may not be running.

Errors:

  • INVALID_ARGUMENTS: collection is not a valid reference or child is not a valid declaration.
  • COLLECTION_NOT_FOUND: collection does not exist.
  • INSTANCE_ALREADY_EXISTS: decl.name already exists in collection.
  • NO_SPACE: Could not allocate storage for the new instance.

Request

NameType
collection CollectionRef
decl ChildDecl

Response

NameType
result Realm_CreateChild_Result

DestroyChild

Destroys a dynamically-created component instance. When this function returns, the client should assume the instance no longer exists. However, some cleanup (such as stopping the component instance or freeing its storage) may be performed in the background after the function returns.

Errors:

  • INVALID_ARGUMENTS: child is not a valid reference or does not refer to a dynamic instance.
  • INSTANCE_NOT_FOUND: child does not exist.
  • COLLECTION_NOT_FOUND: collection does not exist.

Request

NameType
child ChildRef

Response

NameType
result Realm_DestroyChild_Result

ListChildren

Returns an iterator that lists all instances in a collection.

NOTE: The results are not guaranteed to be consistent. Instances may be created or destroyed while the iterator is live, but those changes won't be observed by the iterator after this method returns.

Errors:

  • INVALID_ARGUMENTS: collection is not a valid reference.
  • COLLECTION_NOT_FOUND: collection does not exist.

Request

NameType
collection CollectionRef
iter request<ChildIterator>

Response

NameType
result Realm_ListChildren_Result

ChildIterator

Defined in fuchsia.sys2/realm.fidl

A protocol to iterate over the list of children in a realm.

Next

Advance the iterator and return the next batch of children.

Returns a vector of ChildRef. Returns an empty vector when there are no more children.

Request

NameType

Response

NameType
children vector<ChildRef>

ComponentResolver

Defined in fuchsia.sys2/component_resolver.fidl

An interface for resolving a URL to a component.

This interface is implemented by components that provide support for loading components with a particular URL scheme. For example, the Fuchsia package component resolver exposes a service with this interface to resolve component URLs using the "fuchsia-pkg://" scheme.

To use a resolver to resolve URLs within your realm, register it in your realm's manifest. (TODO: explain in more detail)

Note: The component manager is the only intended direct client of this interface.

Resolve

Resolves a component with the given URL.

component_url is the unescaped URL of the component to resolve.

If successful, returns ZX_OK and information about the component that was resolved.

On failure, returns null info and...

  • ZX_ERR_INVALID_ARGS: The component's URL was malformed.
  • ZX_ERR_NOT_FOUND: The component does not exist.
  • ZX_ERR_UNAVAILABLE: The resolver was unable to retrieve or parse the component's resources.

Request

NameType
component_url string

Response

NameType
status zx/status
component Component

SystemController

Defined in fuchsia.sys2/system_controller.fidl

An interface implemented by ComponentManager that requests the ComponentManager stop all components and exit.

Shutdown

Stop all components, return an empty result, close this protocol's channel, and exit ComponentManager. If this is the root ComponentManager is exited we expect the system will reboot.

Request

NameType

Response

NameType

WorkScheduler

Defined in fuchsia.sys2/work_scheduler.fidl

Framework service: API for scheduling and canceling work. Each component instance can access work items that it has scheduled (but not others' scheduled work items). Work items are scheduled roughly at the specified time and frequency; the service implementation may specify its notion of roughly, and may provide a configuration API to tune this notion.

Each scheduled work item is identified by a client-provided WorkId. Each scheduled work item has a WorkId that is unique with respect to scheduled work items belonging to the same component instance.

ScheduleWork

Schedule a new work item identified by work_id. The work item is to be scheduled roughly at the time corresponding to work_request.start. When work_request.period is specified, reschedule work roughly every work_request.period until the the work item is canceled.

Request

NameType
work_id WorkId
work_request WorkRequest

Response

NameType
result WorkScheduler_ScheduleWork_Result

CancelWork

Cancel the scheduled work item specified by work_id.

Request

NameType
work_id WorkId

Response

NameType
result WorkScheduler_CancelWork_Result

Worker

Defined in fuchsia.sys2/work_scheduler.fidl

Component-exposed service: Work scheduler connects to this service to invoke scheduled work item callbacks. The service implementation is responsible for invoking the code that corresponds to the scheduled work item identified by work_id.

Note: The intent of exposing this service is to expose it to the WorkScheduler service provider (i.e., the framework) and no one else.

DoWork

Request

NameType
work_id WorkId

Response

NameType
result Worker_DoWork_Result

WorkSchedulerControl

Defined in fuchsia.sys2/work_scheduler.fidl

Framework service: Administrative API for controlling parameters of the WorkScheduler framework service. So long as there are work items with deadlines in the next batch_period, the WorkScheduler will sleep for batch_period, then wake up and immediately dispatch a batch of work items: all those with past deadlines. It will repeat this process until no work items would be scheduled in the next batch_period, at which point it will go to sleep until the next deadline. This strategy ensures that each work item is dispatched approximately within batch_period of its deadline.

GetBatchPeriod

Get the current period between WorkScheduler attempts to dispatch a batch of work. batch_period is a non-negative 64-bit integer in the range [0, 2^63-1], representing a number of nanoseconds between dispatching batches of work.

Request

NameType

Response

NameType
result WorkSchedulerControl_GetBatchPeriod_Result

SetBatchPeriod

Set the current period between WorkScheduler attempts to batch and dispatch a batch of work. batch_period is a non-negative 64-bit integer in the range [0, 2^63-1], representing a number of nanoseconds between dispatching batches of work.

Request

NameType
batch_period zx/duration

Response

NameType
result WorkSchedulerControl_SetBatchPeriod_Result

STRUCTS

Vector

Defined in fuchsia.sys2/object.fidl

A vector is a sequence of values.

NameTypeDescriptionDefault
values vector<Value> No default

Object

Defined in fuchsia.sys2/object.fidl

An object is a sequence of key/value pairs. Keys must be unique and sorted in lexicographically increasing order.

NameTypeDescriptionDefault
entries vector<Entry> No default

Entry

Defined in fuchsia.sys2/object.fidl

A key/value pair in an Object.

NameTypeDescriptionDefault
key string No default
value Value? No default

RealmRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to a component’s containing realm, i.e. the parent component.

NameTypeDescriptionDefault

SelfRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to the component itself.

NameTypeDescriptionDefault

ChildRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's child instances.

NameTypeDescriptionDefault
name fuchsia.component/child_name

The name assigned to the child by its parent. If collection is set, name is scoped to collection and the child is a dynamic instance. Required.

No default
collection fuchsia.component/collection_name

The collection name belongs to. If omitted, name references a static instance. This field must be omitted if the ChildRef is being used in a component declaration. Optional.

No default

CollectionRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's collections.

NameTypeDescriptionDefault
name fuchsia.component/collection_name No default

StorageRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to one of the component's storage sections.

NameTypeDescriptionDefault
name string[100] No default

FrameworkRef

Defined in fuchsia.sys2/relative_refs.fidl

A reference to the component framework itself.

NameTypeDescriptionDefault

Realm_BindChild_Response

Defined in fuchsia.sys2/realm.fidl

NameTypeDescriptionDefault

Realm_CreateChild_Response

Defined in fuchsia.sys2/realm.fidl

NameTypeDescriptionDefault

Realm_DestroyChild_Response

Defined in fuchsia.sys2/realm.fidl

NameTypeDescriptionDefault

Realm_ListChildren_Response

Defined in fuchsia.sys2/realm.fidl

NameTypeDescriptionDefault

WorkScheduler_ScheduleWork_Response

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescriptionDefault

WorkScheduler_CancelWork_Response

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescriptionDefault

Worker_DoWork_Response

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescriptionDefault

WorkSchedulerControl_GetBatchPeriod_Response

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescriptionDefault
batch_period zx/duration No default

WorkSchedulerControl_SetBatchPeriod_Response

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescriptionDefault

ENUMS

StartupMode

Type: uint32

Defined in fuchsia.sys2/child_decl.fidl

Describes under what conditions the component may be started.

NameValueDescription
LAZY 0

Start component instance only when another instance binds to it.

EAGER 1

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.

Durability

Type: uint32

Defined in fuchsia.sys2/collection_decl.fidl

The durability of component instances created in a collection.

NameValueDescription
PERSISTENT 1

An instance exists until either it or its parent is destroyed.

TRANSIENT 2

An instance exists until either its parent instance is stopped or it is explicitly destroyed.

EnvironmentExtends

Type: uint32

Defined in fuchsia.sys2/environment_decl.fidl

Specifies how a declared environment's initial set of properties are assigned.

NameValueDescription
NONE 0

The environment has no initial set of properties.

REALM 1

The environment's initial set of properties are inherited from its realm. Inherited properties include any fields defined in EnvironmentDecl.

DependencyType

Type: uint32

Defined in fuchsia.sys2/offer_decl.fidl

Describes the type of dependency implied by the capability.

NameValueDescription
STRONG 1

A strong dependency which may be required by components that use it.

WEAK_FOR_MIGRATION 2

A weak dependency specifically used to mark cyclic dependencies of migrated components. Components that use a weak dependency must support the dependency being unavailable at arbitrary times.

StorageType

Type: uint32

Defined in fuchsia.sys2/storage_decl.fidl

The type of storage offered by this component.

NameValueDescription
DATA 1

General data storage.

CACHE 2

Cache storage that may be deleted at any time by the system.

META 3

Meta storage that will be used by component manager to persist metadata and other information about the component

TABLES

ChildDecl

Defined in fuchsia.sys2/child_decl.fidl

Statically declares a child component instance.

OrdinalNameTypeDescription
1 name fuchsia.component/child_name

The name assigned to the child by its parent.

Must be non-empty, unique among all siblings, and contain only the following characters: [a-z0-9-_.].

2 url fuchsia.url/Url

The child component's URL.

Must be non-empty and a well-formed URL.

3 startup StartupMode

The startup mode for the component instance.

4 environment fuchsia.component/environment_name

The environment assigned to the child. This environment will be used when resolving the child's url.

Must be non-empty, reference an environment defined in the containing ComponentDecl, and contain only the following characters: [a-z0-9-_.].

CollectionDecl

Defined in fuchsia.sys2/collection_decl.fidl

Statically declares a component instance collection.

OrdinalNameTypeDescription
1 name fuchsia.component/collection_name

The name of the collection. Instances created in the collection are scoped to this name.

2 durability Durability

The durability of instances in the collection.

ComponentDecl

Defined in fuchsia.sys2/component_decl.fidl

A component declaration.

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.

OrdinalNameTypeDescription
1 program fuchsia.data/Dictionary

Information about the program to run when the component is executed.

The component manager provides the contents of this dictionary to the component runner when executing the program. Each component runner can freely define the contents of this dictionary as needed.

The system's default runner understands the following entries:

  • "binary": string The path of the executable relative to the root of the package. Typically an ELF binary.

  • "args": vector of strings The command-line arguments to provide to the executable at runtime.

  • "env": dictionary of strings The environment variables to provide to the executable at runtime.

Other runners may define different entries.

2 uses vector<UseDecl>

List of capabilities used by the component. These consist of capabilities offered to the component that are installed in its incoming namespace.

The used capabilities must be unique and non-overlapping.

3 exposes vector<ExposeDecl>

List of capabilities exposed by the component. These consist of capabilities that are made visible to the containing realm. The parent may offer these capabilities to its children, but not use them.

The exposed capabilities must be unique and non-overlapping.

4 offers vector<OfferDecl>

List of capabilities offered to the component’s children. These consist of capabilities that the given children may use, which may come from a child, the containing realm, or the component's own outgoing namespace.

The offered capabilities must be unique and non-overlapping.

5 facets Object

Additional metadata about the component.

6 children vector<ChildDecl>

The component's statically instantiated children. The children must have unique names.

7 collections vector<CollectionDecl>

The component's collections. The collections must have unique names.

8 storage vector<StorageDecl>

List of storage capabilities created by this component. Storage capabilities can be offered to children.

9 runners vector<RunnerDecl>

List of runner capabilities created by this component. Runner capabilities can be exposed to the parent's realm or offered to children.

10 environments vector<EnvironmentDecl>

List of environments created by this component. Environments are assigned to children and control aspects of a child component's runtime.

11 resolvers vector<ResolverDecl>

List of resolver capabilities created by this component.

A component can:

  • "expose" a resolver capability to its realm,
  • "offer" a resolver capability to its children,
  • register a resolver in an environment.

A component cannot "use" a resolver capability directly. Component manager uses a resolver capability on behalf of a component when that component's environment contains the resolver capability.

EnvironmentDecl

Defined in fuchsia.sys2/environment_decl.fidl

Declares an environment which configures a realm.

OrdinalNameTypeDescription
1 name fuchsia.component/environment_name

The name of this environment.

2 extends EnvironmentExtends

Specifies how the initial state of this environment is constructed.

3 resolvers vector<ResolverRegistration>

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 extends from REALM.

4 stop_timeout_ms uint32

The duration in milliseconds that the component will have to stop before it is killed.

ResolverRegistration

Defined in fuchsia.sys2/environment_decl.fidl

A mapping of URL scheme to resolver name.

OrdinalNameTypeDescription
1 resolver fuchsia.component/resolver_name

The name of the resolver.

2 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

3 scheme fuchsia.component/url_scheme

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, +, -, and ..

ExposeServiceDecl

Defined in fuchsia.sys2/expose_decl.fidl

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.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be self or child.

2 source_path string[1024]

Path identifying the service, by which it was presented to this component.

Must be an absolute path starting with /.

3 target Ref

The destination to which the service is exposed: either the component's realm or the framework.

4 target_path string[1024]

The path by which the capability is being exposed.

Must be an absolute path starting with /.

ExposeProtocolDecl

Defined in fuchsia.sys2/expose_decl.fidl

Declares a legacy service exposed to a component's containing realm, such as a legacy service exposed by the component or one of its children at runtime.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be self or child.

2 source_path string[1024]

Path identifying the legacy service, by which it was presented to this component.

3 target Ref

The destination to which the legacy service is exposed: either the component's realm or the framework.

4 target_path string[1024]

The path by which the capability is being exposed.

Must be an absolute path starting with /.

ExposeDirectoryDecl

Defined in fuchsia.sys2/expose_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be self or child.

2 source_path string[1024]

Path identifying the directory, by which it was presented to this component.

3 target Ref

The destination to which the directory is exposed: either the component's realm or the framework.

4 target_path string[1024]

The path by which the capability is being exposed.

Must be an absolute path starting with /.

5 rights fuchsia.io2/Rights

The rights to expose this directory with, required iff source == self.

6 subdir string[1024]

The subdirectory of this directory to expose instead of the root. Optional.

ExposeRunnerDecl

Defined in fuchsia.sys2/expose_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be self or child.

2 source_name fuchsia.component/runner_name

The name of the runner, by which it was presented to this component.

3 target Ref

The destination to which the runner is exposed: either the component's realm or the framework.

4 target_name fuchsia.component/runner_name

The name by which the capability is being exposed.

ExposeResolverDecl

Defined in fuchsia.sys2/expose_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be self or child.

2 source_name fuchsia.component/resolver_name

The name of the resolver, by which it was presented to this component.

3 target Ref

The destination to which the resolver is exposed: either the component's realm or the framework.

4 target_name fuchsia.component/resolver_name

The name by which the capability is being exposed.

OfferServiceDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

2 source_path string[1024]

Path identifying the service being offered.

Must be an absolute path starting with /.

3 target Ref

Reference to the target. Must be child or collection.

4 target_path string[1024]

The path under which the capability is being offered.

Must be an absolute path starting with /.

OfferProtocolDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares a legacy 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.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

2 source_path string[1024]

Path identifying the legacy service being offered.

3 target Ref

Reference to the target. Must be child or collection.

4 target_path string[1024]

The path under which the capability is being offered.

Must be an absolute path starting with /.

5 dependency_type DependencyType

The dependency type this offer represents. A component which recieves a weak offer must support the offered capability being unavailable at any point.

OfferDirectoryDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

2 source_path string[1024]

Path identifying the directory being offered.

3 target Ref

Reference to the target of the capability. Must be child or collection.

4 target_path string[1024]

The path under which the capability is being offered.

Must be an absolute path starting with /.

5 rights fuchsia.io2/Rights

The rights this directory should be offered with, required iff source == self.

6 subdir string[1024]

The subdirectory of this directory to offer instead of the root. Optional.

7 dependency_type DependencyType

The dependency type this offer represents. A component which recieves a weak offer must support the offered capability being unavailable at any point.

OfferStorageDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

OrdinalNameTypeDescription
1 type StorageType

The type of storage being offered.

2 source Ref

The source of the storage capability. Must be realm or storage.

3 target Ref

Reference to the target of the capability. Must be child or collection.

OfferRunnerDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

2 source_name fuchsia.component/runner_name

Name of the runner being offered.

3 target Ref

Reference to the target of the capability. Must be child or collection.

4 target_name fuchsia.component/runner_name

Name under which the capability is being offered.

OfferResolverDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

OrdinalNameTypeDescription
1 source Ref

The provider of the capability relative to the component itself. Must be realm, self, or child.

2 source_name fuchsia.component/resolver_name

Name of the resolver being offered.

3 target Ref

Reference to the target of the capability. Must be child or collection.

4 target_name fuchsia.component/resolver_name

Name under which the capability is being offered.

OfferEventDecl

Defined in fuchsia.sys2/offer_decl.fidl

Declares an event offered by a component.

OrdinalNameTypeDescription
1 source Ref

The provider of the event. Must be realm.

2 source_name fuchsia.component/event_name

Name of the event being offered.

3 target Ref

Reference to the target of the event. Must be child or collection.

4 target_name fuchsia.component/resolver_name

Name under which the event is being offered.

5 filter fuchsia.data/Dictionary

Filter for the event. The structure of the filter depends on the event type. May be absent for some events.

ResolverDecl

Defined in fuchsia.sys2/resolver_decl.fidl

Declares a resolver which is responsible for resolving component URLs to actual components. See fuchsia.sys2.ComponentResolver for the protocol resolvers are expected to implement.

OrdinalNameTypeDescription
1 name fuchsia.component/resolver_name

The name of this resolver. Must be non-empty, unique among resolvers declared in the same ComponentDecl, and contain only the following characters: [a-z0-9-_.].

2 source_path string[1024]

The path of the capability in the declaring component's namespace.

RunnerDecl

Defined in fuchsia.sys2/runner_decl.fidl

Declares a runner capability backed by a service.

OrdinalNameTypeDescription
1 name fuchsia.component/runner_name

The name of this runner.

2 source Ref

The provider of the underlying service relative to the component itself. Must be realm, self, or child.

3 source_path string[1024]

The path of the capability within the specified source.

StorageDecl

Defined in fuchsia.sys2/storage_decl.fidl

Declares a storage capability backed by a directory from which data, cache, or meta storage can be offered.

OrdinalNameTypeDescription
1 name string[100]

The name of this storage

2 source Ref

The provider of the underlying directory capability relative to the component itself. Must be realm, self, or child.

3 source_path string[1024]

The incoming path to the directory capability. If "source == SELF", this is a path in the component's outgoing directory. Otherwise, it is the path by which the capability was presented to the component.

UseServiceDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a service used by a component, which was offered to the component's environment.

To learn more about services, see: https://fuchsia.dev/fuchsia-src/glossary#service

OrdinalNameTypeDescription
1 source Ref

The provider of the service relative to the component itself. Must be realm or framework.

2 source_path string[1024]

Path identifying the service, by which it was presented to this component.

Must be an absolute path starting with /.

3 target_path string[1024]

The path where the capability should be installed in the component's namespace.

Must be an absolute path starting with /.

UseProtocolDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a legacy service used by a component, which was offered to the component's environment.

A legacy service is a service with a single instance, provided by a single FIDL protocol.

OrdinalNameTypeDescription
1 source Ref

The provider of the legacy service relative to the component itself. Must be realm or framework.

2 source_path string[1024]

Path identifying the legacy service, by which it was presented to this component.

3 target_path string[1024]

The path where the capability should be installed in the component's namespace.

Must be an absolute path starting with /.

UseDirectoryDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a directory used by a component, which was offered to the component's environment.

OrdinalNameTypeDescription
1 source Ref

The provider of the directory relative to the component itself. Must be realm or framework.

2 source_path string[1024]

Path identifying the directory, by which it was presented to this component.

3 target_path string[1024]

The path where the capability should be installed in the component's namespace.

Must be an absolute path starting with /.

4 rights fuchsia.io2/Rights

The rights required by the component to use this directory.

5 subdir string[1024]

The subdirectory of this directory to use instead of the root. Optional.

UseStorageDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares storage used by a component, which was offered to the component's environment.

OrdinalNameTypeDescription
1 type StorageType

Type of storage used by the component.

2 target_path string[1024]

The path where the capability should be installed in the component's namespace. Must not be set if type is META.

Must be an absolute path starting with /.

UseRunnerDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a runner used by a component, which was offered to the component's environment.

OrdinalNameTypeDescription
1 source_name fuchsia.component/runner_name

The name of the runner, as it was presented to this component by the realm.

UseEventDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares an event used by a component.

OrdinalNameTypeDescription
1 source Ref

The provider of the event. Must be |realm| or |framework|.

2 source_name fuchsia.component/event_name

Name identifying the event which was presented to this component.

3 target_name fuchsia.component/event_name

The name which the component will use to refer to this event.

4 filter fuchsia.data/Dictionary

Filter for the event. The structure of the filter depends on the event type. May be absent for some events.

Component

Defined in fuchsia.sys2/component.fidl

A component is a unit of executable software.

This object provides the component's declaration, access to its package's content, and relevant metadata.

OrdinalNameTypeDescription
1 resolved_url string

The resolved URL of the component. This is the canonical URL obtained by the component resolver after following redirects and resolving relative paths.

2 decl ComponentDecl

The component's declaration. This information is typically obtained from the component's manifest or generated by the component resolver.

3 package Package

The package that contains the component. By convention, the component's package is mapped to "/pkg" in its namespace at runtime.

This is null if the component is not represented as a package. In that case, it is the runner's responsibility to load the component's resource from the resolved_url. This mechanism is used for web applications.

Most runners, including but not limited to the builtin ELF runner, require the package's directory connection to have OPEN_RIGHT_EXECUTABLE rights in order to run the resolved component.

Package

Defined in fuchsia.sys2/package.fidl

A package is a signed collection of immutable files.

This object provides access to a package's content and relevant metadata.

OrdinalNameTypeDescription
1 package_url string

The URL of the package itself.

2 package_dir fuchsia.io/Directory

The package's content directory.

WorkRequest

Defined in fuchsia.sys2/work_scheduler.fidl

Parameters for a new piece of work to be scheduled.

OrdinalNameTypeDescription
1 start Start

Time when corresponding work item should be first scheduled.

2 period zx/duration

Delay between repeated schedulings of corresponding work item. This is left unspecified for one-shot work that should not repeat. Repeating work items are rescheduled indefinitely until it is canceled.

UNIONS

ExposeDecl

Defined in fuchsia.sys2/expose_decl.fidl

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.

NameTypeDescription
service ExposeServiceDecl
protocol ExposeProtocolDecl
directory ExposeDirectoryDecl
runner ExposeRunnerDecl
resolver ExposeResolverDecl

Value

Defined in fuchsia.sys2/object.fidl

A value is a boolean, integer, float, string, vector, or object.

NameTypeDescription
bit bool
inum int64
fnum float64
str string
vec Vector
obj Object

OfferDecl

Defined in fuchsia.sys2/offer_decl.fidl

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.

NameTypeDescription
service OfferServiceDecl
protocol OfferProtocolDecl
directory OfferDirectoryDecl
storage OfferStorageDecl
runner OfferRunnerDecl
resolver OfferResolverDecl
event OfferEventDecl

Ref

Defined in fuchsia.sys2/relative_refs.fidl

A reference to a capability source or destination relative to this component.

NameTypeDescription
realm RealmRef
self SelfRef
child ChildRef
collection CollectionRef
storage StorageRef
framework FrameworkRef

UseDecl

Defined in fuchsia.sys2/use_decl.fidl

Declares a capability used by a component, which was offered to the component's environment.

NameTypeDescription
service UseServiceDecl
protocol UseProtocolDecl
directory UseDirectoryDecl
storage UseStorageDecl
runner UseRunnerDecl
event UseEventDecl

Realm_BindChild_Result

Defined in fuchsia.sys2/realm.fidl

NameTypeDescription
response Realm_BindChild_Response
err fuchsia.component/Error

Realm_CreateChild_Result

Defined in fuchsia.sys2/realm.fidl

NameTypeDescription
response Realm_CreateChild_Response
err fuchsia.component/Error

Realm_DestroyChild_Result

Defined in fuchsia.sys2/realm.fidl

NameTypeDescription
response Realm_DestroyChild_Response
err fuchsia.component/Error

Realm_ListChildren_Result

Defined in fuchsia.sys2/realm.fidl

NameTypeDescription
response Realm_ListChildren_Response
err fuchsia.component/Error

WorkScheduler_ScheduleWork_Result

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescription
response WorkScheduler_ScheduleWork_Response
err fuchsia.component/Error

WorkScheduler_CancelWork_Result

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescription
response WorkScheduler_CancelWork_Response
err fuchsia.component/Error

Worker_DoWork_Result

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescription
response Worker_DoWork_Response
err fuchsia.component/Error

WorkSchedulerControl_GetBatchPeriod_Result

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescription
response WorkSchedulerControl_GetBatchPeriod_Response
err fuchsia.component/Error

WorkSchedulerControl_SetBatchPeriod_Result

Defined in fuchsia.sys2/work_scheduler.fidl

NameTypeDescription
response WorkSchedulerControl_SetBatchPeriod_Response
err fuchsia.component/Error

Start

Defined in fuchsia.sys2/work_scheduler.fidl

Different ways to specify when to schedule a work item for the first time.

NameTypeDescription
delay zx/duration

A non-negative delay to wait before scheduling work.

monotonic_time zx/time

A fixed point in time to start scheduling work, interpreted like ZX_CLOCK_MONOTONIC: number of nanoseconds since the system was powered on.

CONSTANTS

NameValueTypeDescription
MAX_WORK_ID_LENGTH 100 uint32

TYPE ALIASES

NameValueDescription
WorkId string[MAX_WORK_ID_LENGTH]