// Module included in the following assembly:
//
// service_mesh/v2x/ossm-threescale-webassembly-module.adoc

[id="ossm-threescale-webassembly-module-system-object_{context}"]
= The 3scale WebAssembly module system object

The `system` top-level object specifies how to access the 3scale Account Management API for a specific account. The `upstream` field is the most important part of the object. The `system` object is optional, but recommended unless you are providing a fully static configuration for the 3scale WebAssembly module, which is an option if you do not want to provide connectivity to the _system_ component of 3scale.

When you provide static configuration objects in addition to the `system` object, the static ones always take precedence.

[source,yaml]
----
apiVersion: extensions.istio.io/v1alpha1
kind: WasmPlugin
metadata:
  name: <threescale_wasm_plugin_name>
spec:
  pluginConfig:
    system:
      name: <saas_porta>
      upstream: <object>
      token: <my_account_token>
      ttl: 300
# ...
----

.`system` object fields
|===
|Name |Description |Required

a|`name`
|An identifier for the 3scale service, currently not referenced elsewhere.
|Optional

a|`upstream`
a|The details about a network host to be contacted. `upstream` refers to the 3scale Account Management API host known as system.
|Yes

a|`token`
|A 3scale personal access token with read permissions.
|Yes

a|`ttl`
|The minimum amount of seconds to consider a configuration retrieved from this host as valid before trying to fetch new changes. The default is 600 seconds (10 minutes). *Note:* there is no maximum amount, but the module will generally fetch any configuration within a reasonable amount of time after this TTL elapses.
|Optional
|===
