API Reference
Resources
Container
- Implements: ISimulatorResource
Represents a container running in the Wing Simulator.
Initializers
bring sim;
new sim.Container(props: ContainerProps);
Name | Type | Description |
---|---|---|
|
| No description. |
props
Required
- Type: ContainerProps
Methods
Preflight Methods
Name | Description |
---|---|
| Convert this resource to a resource schema for the simulator. |
toSimulator
toSimulator(): ToSimulatorOutput
Convert this resource to a resource schema for the simulator.
Static Functions
Name | Description |
---|---|
| A hook called by the Wing compiler once for each inflight host that needs to use this type inflight. |
| Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource. |
onLiftType
bring sim;
sim.Container.onLiftType(host: IInflightHost, ops: MutArray<str>);
A hook called by the Wing compiler once for each inflight host that needs to use this type inflight.
The list of requested inflight methods
needed by the inflight host are given by ops
.
This method is commonly used for adding permissions, environment variables, or other capabilities to the inflight host.
host
Required
- Type: IInflightHost
ops
Required
- Type: MutArray<str>
toInflight
bring sim;
sim.Container.toInflight(obj: IResource);
Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource.
NOTE: This statement must be executed within an async context.
obj
Required
- Type: IResource
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
| str | A token that resolves to the host port of this container. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.
hostPort
Optional
hostPort: str;
- Type: str
A token that resolves to the host port of this container.
Policy
- Implements: ISimulatorResource
Implementation of sim.Policy
.
Initializers
bring sim;
new sim.Policy(props: PolicyProps);
Name | Type | Description |
---|---|---|
|
| No description. |
props
Required
- Type: PolicyProps
Methods
Preflight Methods
Name | Description |
---|---|
| Adds a statement to the policy. |
| Convert this resource to a resource schema for the simulator. |
addStatement
addStatement(resource: IResource, op: str): void
Adds a statement to the policy.
resource
Required
- Type: IResource
op
Required
- Type: str
toSimulator
toSimulator(): ToSimulatorOutput
Convert this resource to a resource schema for the simulator.
Static Functions
Name | Description |
---|---|
| A hook called by the Wing compiler once for each inflight host that needs to use this type inflight. |
| Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource. |
onLiftType
bring sim;
sim.Policy.onLiftType(host: IInflightHost, ops: MutArray<str>);
A hook called by the Wing compiler once for each inflight host that needs to use this type inflight.
The list of requested inflight methods
needed by the inflight host are given by ops
.
This method is commonly used for adding permissions, environment variables, or other capabilities to the inflight host.
host
Required
- Type: IInflightHost
ops
Required
- Type: MutArray<str>
toInflight
bring sim;
sim.Policy.toInflight(obj: IResource);
Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource.
NOTE: This statement must be executed within an async context.
obj
Required
- Type: IResource
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.
Resource
- Implements: IResource, ISimulatorResource, IInflightHost, ISimulatorInflightHost
A backend for a simulated resource.
Initializers
bring sim;
new sim.Resource(factory: IResourceFactory);
Name | Type | Description |
---|---|---|
|
| No description. |
factory
Required
- Type: IResourceFactory
Methods
Preflight Methods
Name | Description |
---|---|
| Add an environment variable to make available to the inflight code. |
| Add a simulated permission to this inflight host. |
| Obtain a token that can be used to reference an attribute of this resource that is only resolved once the resource is started in the simulator. |
| Convert this resource to a resource schema for the simulator. |
Inflight Methods
Name | Description |
---|---|
| Call a method on the resource. |
addEnvironment
addEnvironment(name: str, value: str): void
Add an environment variable to make available to the inflight code.
name
Required
- Type: str
value
Required
- Type: str
addPermission
addPermission(resource: IResource, op: str): void
Add a simulated permission to this inflight host.
resource
Required
- Type: IResource
op
Required
- Type: str
createToken
createToken(name: str): str
Obtain a token that can be used to reference an attribute of this resource that is only resolved once the resource is started in the simulator.
If the token is used in inflight code or in the configuration of a simulated resource (e.g. as an environment variable), the relevant resource will automatically take a dependency on the resource the token belongs to.
name
Required
- Type: str
The name of the token.
toSimulator
toSimulator(): ToSimulatorOutput
Convert this resource to a resource schema for the simulator.
call
inflight call(method: str, args?: MutArray<Json>): Json
Call a method on the resource.
method
Required
- Type: str
args
Optional
- Type: MutArray<Json>
Static Functions
Name | Description |
---|---|
| A hook called by the Wing compiler once for each inflight host that needs to use this type inflight. |
| Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource. |
onLiftType
bring sim;
sim.Resource.onLiftType(host: IInflightHost, ops: MutArray<str>);
A hook called by the Wing compiler once for each inflight host that needs to use this type inflight.
The list of requested inflight methods
needed by the inflight host are given by ops
.
This method is commonly used for adding permissions, environment variables, or other capabilities to the inflight host.
host
Required
- Type: IInflightHost
ops
Required
- Type: MutArray<str>
toInflight
bring sim;
sim.Resource.toInflight(obj: IResource);
Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource.
NOTE: This statement must be executed within an async context.
obj
Required
- Type: IResource
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.
State
- Implements: ISimulatorResource
Key/value in-memory state for the simulator.
Use the preflight method token(key)
to obtain a token that can be used to reference the value
of the state at runtime.
During deployment (i.e. cloud.OnDeploy
or cloud.Service
startup), you must call the inflight
method set(key, value)
to set the runtime value. The value will be available at runtime through
the inflight method get(key)
(or resolved as a token).
See tests for examples.
Initializers
bring sim;
new sim.State();
Name | Type | Description |
---|
Methods
Preflight Methods
Name | Description |
---|---|
| Returns a token that can be used to retrieve the value of the state after the simulation has run. |
| Convert this resource to a resource schema for the simulator. |
Inflight Methods
Name | Description |
---|---|
| Gets the runtime state of this object. |
| Sets the state of runtime a runtime object. |
| Checks if runtime state exists for this object and returns it's value. |
token
token(key: str): str
Returns a token that can be used to retrieve the value of the state after the simulation has run.
key
Required
- Type: str
The object key retrieved through the inflight state.get()
.
toSimulator
toSimulator(): ToSimulatorOutput
Convert this resource to a resource schema for the simulator.
get
inflight get(key: str): Json
Gets the runtime state of this object.
Throws if there is no value for the given key.
key
Required
- Type: str
The object's key.
set
inflight set(key: str, value: Json): void
Sets the state of runtime a runtime object.
key
Required
- Type: str
The object's key.
value
Required
- Type: Json
The object's value.
tryGet
inflight tryGet(key: str): Json?
Checks if runtime state exists for this object and returns it's value.
If no value exists,
returns nil
.
key
Required
- Type: str
The object's key.
Static Functions
Name | Description |
---|---|
| A hook called by the Wing compiler once for each inflight host that needs to use this type inflight. |
| Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource. |
onLiftType
bring sim;
sim.State.onLiftType(host: IInflightHost, ops: MutArray<str>);
A hook called by the Wing compiler once for each inflight host that needs to use this type inflight.
The list of requested inflight methods
needed by the inflight host are given by ops
.
This method is commonly used for adding permissions, environment variables, or other capabilities to the inflight host.
host
Required
- Type: IInflightHost
ops
Required
- Type: MutArray<str>
toInflight
bring sim;
sim.State.toInflight(obj: IResource);
Generates an asynchronous JavaScript statement which can be used to create an inflight client for a resource.
NOTE: This statement must be executed within an async context.
obj
Required
- Type: IResource
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.
Structs
ContainerProps
Initialization properties for sim.Container
.
Initializer
bring sim;
let ContainerProps = sim.ContainerProps{ ... };
Properties
Name | Type | Description |
---|---|---|
| str | A name of a public Docker image to pull and run or a path to a local directory with a Dockerfile . |
| str | A name for the container. |
| MutArray<str> | Container arguments. |
| num | Internal container port to expose. |
| str | Container entrypoint. |
| MutMap<str> | Environment variables to set in the container. |
| str | Docker network to use for the container - such as 'host', 'bridge', etc. |
| str | An explicit source hash that represents the container source. |
| str | A glob of local files to consider as input sources for the container, relative to the build context directory. |
| MutArray<str> | Volume mount points. |
image
Required
image: str;
- Type: str
A name of a public Docker image to pull and run or a path to a local directory with a Dockerfile
.
name
Required
name: str;
- Type: str
A name for the container.
args
Optional
args: MutArray<str>;
- Type: MutArray<str>
- Default: []
Container arguments.
containerPort
Optional
containerPort: num;
- Type: num
- Default: no port exposed
Internal container port to expose.
entrypoint
Optional
entrypoint: str;
- Type: str
- Default: default image entrypoint
Container entrypoint.
env
Optional
env: MutMap<str>;
- Type: MutMap<str>
- Default: {}
Environment variables to set in the container.
network
Optional
network: str;
- Type: str
- Default: default docker network
Docker network to use for the container - such as 'host', 'bridge', etc.
Example
'host'
sourceHash
Optional
sourceHash: str;
- Type: str
- Default: calculated based on the source files
An explicit source hash that represents the container source.
if not set, and sourcePattern
is set, the hash will be calculated based on the content of the source files.
sourcePattern
Optional
sourcePattern: str;
- Type: str
- Default: all files
A glob of local files to consider as input sources for the container, relative to the build context directory.
volumes
Optional
volumes: MutArray<str>;
- Type: MutArray<str>
- Default: []
Volume mount points.
Example
['/host:/container']
PolicyProps
Options for sim.Policy
.
Initializer
bring sim;
let PolicyProps = sim.PolicyProps{ ... };
Properties
Name | Type | Description |
---|---|---|
|
| The resource to which the policy is attached. |
principal
Required
principal: IResource;
- Type: IResource
The resource to which the policy is attached.
Protocols
IResource
- Implemented By: IResource
Contract that a resource backend must implement.
Methods
Name | Description |
---|---|
| Runs when the resource is stopped. |
onStop
onStop(): void
Runs when the resource is stopped.
IResourceContext
- Implemented By: IResourceContext
Context for implementing a simulator resource.
Methods
Name | Description |
---|---|
| Log a message at the current point in time. |
| Resolves a token value. |
| The directory for the resource's state. |
log
inflight log(message: str, level?: LogLevel): void
Log a message at the current point in time.
Defaults to info
level.
message
Required
- Type: str
The message to log.
level
Optional
- Type: LogLevel
The severity of the message.
resolveToken
inflight resolveToken(name: str, value: str): void
Resolves a token value.
All tokens must be resolved during the constructor of the resource.
name
Required
- Type: str
The name of the token.
value
Required
- Type: str
The value of the token.
statedir
statedir(): str
The directory for the resource's state.
IResourceFactory
-
Extends: IInflight
-
Implemented By: IResourceFactory
Inflight client: @winglang/sdk.sim.IResourceFactoryClient
A resource with an inflight "handle" method that can be passed to the sim.Resource
constructor.
IResourceFactoryClient
- Implemented By: IResourceFactoryClient
A resource with an inflight "handle" method that can be passed to the sim.Resource
constructor.
Methods
Name | Description |
---|---|
| Function that will be called to initialize the simulator resource. |
handle
inflight handle(context: IResourceContext): IResource?
Function that will be called to initialize the simulator resource.
To implement a shutdown sequence, return an object that implements the IResource
inflight interface with an onStop()
method.
context
Required
- Type: IResourceContext
ISimulatorInflightHost
-
Extends: IInflightHost
-
Implemented By: Resource, ISimulatorInflightHost
Interfaces shared by all preflight classes that host inflight code.
Methods
Name | Description |
---|---|
| Add a simulated permission to this inflight host. |
addPermission
addPermission(resource: IResource, op: str): void
Add a simulated permission to this inflight host.
resource
Required
- Type: IResource
The resource to add.
op
Required
- Type: str
The action to add.
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.
ISimulatorResource
Interfaces shared by all preflight classes targeting the simulator.
Methods
Name | Description |
---|---|
| Convert this resource to a resource schema for the simulator. |
toSimulator
toSimulator(): ToSimulatorOutput
Convert this resource to a resource schema for the simulator.
Properties
Name | Type | Description |
---|---|---|
| constructs.Node | The tree node. |
node
Required
node: Node;
- Type: constructs.Node
The tree node.