← Back to packages

Package intrinsic_proto.services

Service Calculator

Service ProductReader

Message CalculatorConfig

Message CalculatorRequest

Message CalculatorResponse

Message EmptyDirVolumeSource

Message EnvVar

Message GetProductDataRequest

Message GetProductDataResponse

Message HostPathVolumeSource

Message ListProductsRequest

Message ListProductsResponse

Message PodSecurityContext

Message PosixCapabilities

Message ProcessedServiceAssets

Message ProcessedServiceManifest

Message ResourceRequirements

Message SecurityContext

Message ServiceAssets

Message ServiceDef

Message ServiceHttpConfig

Message ServiceImage

Message ServiceImageSettings

Message ServiceManifest

Message ServiceManifests

Message ServiceMetadata

Message ServicePodSettings

Message ServicePodSpec

Message Sysctl

Message Volume

Message VolumeMount

Enum CalculatorOperation

Enum EmptyDirMedium

Enum PosixCapability

Services

service Calculator intrinsic/assets/services/examples/calcserver/calc_server.proto

This demonstrates how to use a custom service.

Calculate performs basic calculator operations on two input numbers.

service ProductReader intrinsic/scene/product/assets/product_reader/product_reader.proto

Gets the product data necessary to create a WorldObject in a skill.

Messages

message CalculatorConfig intrinsic/assets/services/examples/calcserver/calc_server.proto

Field Type Description
1 reverse_order bool

True to reverse the order of operands when calculating (i.e., y then x rather than x then y).

message CalculatorRequest intrinsic/assets/services/examples/calcserver/calc_server.proto

Field Type Description
1 operation intrinsic_proto.services.CalculatorOperation
2 x int64
3 y int64

message CalculatorResponse intrinsic/assets/services/examples/calcserver/calc_server.proto

Field Type Description
1 result int64

message EmptyDirVolumeSource intrinsic/assets/services/proto/service_volume.proto

EmptyDirVolumeSource describes a volume created for use by the Service. See: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir

Field Type Description
1 medium intrinsic_proto.services.EmptyDirMedium

The medium used to store the volume. If unspecified, the host system's default is used.

message EnvVar intrinsic/assets/services/proto/env_var.proto

Field Type Description
1 name string

The name of the environment variable.

2 value string

The value of the environment variable.

message GetProductDataRequest intrinsic/scene/product/assets/product_reader/product_reader.proto

Field Type Description
1 name string

Unique name of the product within this solution

message GetProductDataResponse intrinsic/scene/product/assets/product_reader/product_reader.proto

Field Type Description
1 scene_object intrinsic_proto.scene_object.v1.SceneObject

The fully configured SceneObject that represents the geometry of this product.

2 metadata google.protobuf.Struct

Metadata associated with the product.

message HostPathVolumeSource intrinsic/assets/services/proto/service_volume.proto

HostPathVolumeSource describes a path on the host machine that should be made accessible to the Service. See: https://kubernetes.io/docs/concepts/storage/volumes/#hostpath

Field Type Description
1 path string

The path on the host to make available.

message ListProductsRequest intrinsic/scene/product/assets/product_reader/product_reader.proto

Field Type Description

message ListProductsResponse intrinsic/scene/product/assets/product_reader/product_reader.proto

Field Type Description
1 products repeated intrinsic_proto.product.Product

message PodSecurityContext intrinsic/assets/services/proto/service_permissions.proto

Field Type Description
3 sysctls repeated intrinsic_proto.services.Sysctl

message PosixCapabilities intrinsic/assets/services/proto/service_permissions.proto

Field Type Description
1 add repeated intrinsic_proto.services.PosixCapability

POSIX capabilities to be granted to the service.

message ProcessedServiceAssets intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 default_configuration google.protobuf.Any

Default configuration data for the service.

2 file_descriptor_set google.protobuf.FileDescriptorSet

A complete descriptor set for the configuration message.

3 images map<string, Image>

References to images uploaded in a container registry. The keys are the original filenames in the bundle, as referenced by the service definition.

message ProcessedServiceManifest intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 metadata intrinsic_proto.services.ServiceMetadata

Metadata associated with this service (e.g., id, documentation, etc.)

2 service_def intrinsic_proto.services.ServiceDef

The service's pod spec.

3 assets intrinsic_proto.services.ProcessedServiceAssets

The processed version of the service assets. This can be used to send a complete description of a service using a manifest.

message ResourceRequirements intrinsic/assets/services/proto/service_permissions.proto

ResourceRequirements describes the compute resource requirements for the container running the service. See: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits

Field Type Description
1 limits map<string, string>

The maximum of specific resources that a container can use. Is also used as the requested amount of resources by default.

2 requests map<string, string>

The minimum of specific resources that a container can use. If both limits and requests are specified for cpu and memory, the requests must be less than or equal to the limits. For extended resources, both must be equal, unless the extended resource is a GPU, where a zero request is allowed. A zero request in this case means that the resource is not required and if no GPU is available in the cluster it will not be requested.

message SecurityContext intrinsic/assets/services/proto/service_permissions.proto

SecurityContext defines security related permissions the service will be given. See: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

Field Type Description
1 posix_capabilities intrinsic_proto.services.PosixCapabilities
2 privileged bool

message ServiceAssets intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 default_configuration_filename optional string

The binary proto file containing the default configuration.

If unspecified, the default configuration will be an empty message of the type specified in the manifest's ServiceDef.config_message_full_name.

2 parameter_descriptor_filename optional string

The file descriptor set containing the service's parameters.

3 image_filenames repeated string

The filenames of images used in the service definition.

message ServiceDef intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 service_proto_prefixes repeated string

The list of gRPC service names that this service will expose.

Descriptors for each service in this list must be included in the file descriptor set in the manifest's ServiceAssets.

Do not include DynamicReconfiguration or ServiceState in this list.

2 real_spec intrinsic_proto.services.ServicePodSpec

The pod spec to be used in real environments.

3 sim_spec intrinsic_proto.services.ServicePodSpec

The pod spec to be used in simulated environments.

4 http_config intrinsic_proto.services.ServiceHttpConfig

The HTTP configuration for this service. If provided (including empty config), an HTTP route to the service will be set up. It may handle HTTP traffic at this route by serving HTTP responses at the HTTP port and path prefix available from RuntimeContext (/etc/intrinsic/runtime_config.pb) or INTRINSIC_HTTP_PATH_PREFIX and INTRINSIC_HTTP_PORT environment variables.

5 supports_dynamic_reconfiguration bool

True if this Service supports dynamic reconfiguration by serving the DynamicReconfiguration service on its configured gRPC port.

6 supports_service_state bool

True if the Service supports service state interaction by serving the ServiceState service on its configured gRPC port.

7 config_message_full_name string

The full name of the proto message used to configure this service.

For each instance of the service in a solution, a message of this type is specified and provided to the service container.

A descriptor for this message must be included in the file descriptor set in the manifest's ServiceAssets.

message ServiceHttpConfig intrinsic/assets/services/proto/service_http_config.proto

Field Type Description

message ServiceImage intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 archive_filename string

The image archive file.

2 settings intrinsic_proto.services.ServiceImageSettings

The settings for this specific image.

message ServiceImageSettings intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 volume_mounts repeated intrinsic_proto.services.VolumeMount

A list of volumes to be mounted in the image.

2 security_context intrinsic_proto.services.SecurityContext

Security permissions for the image.

3 resource_requirements intrinsic_proto.services.ResourceRequirements

The compute resource requirements for the container running the service.

4 requires_rtpc_node bool

If true, this image must be scheduled on a real-time node.

5 env_vars repeated intrinsic_proto.services.EnvVar

The environment variables to set in the container.

6 args repeated string

The arguments to pass to the container.

message ServiceManifest intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 metadata intrinsic_proto.services.ServiceMetadata

Metadata associated with this service (e.g., id, documentation, etc.)

2 service_def intrinsic_proto.services.ServiceDef

The service definition.

3 assets intrinsic_proto.services.ServiceAssets

This service's assets.

message ServiceManifests intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 manifests repeated intrinsic_proto.services.ServiceManifest

message ServiceMetadata intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 id intrinsic_proto.assets.Id

The service's id.

2 vendor intrinsic_proto.assets.Vendor

The service's vendor.

3 documentation intrinsic_proto.assets.Documentation

Documentation about the service which will be shown to users.

4 display_name string

The display name of this service to be shown in UIs.

5 asset_tag intrinsic_proto.assets.AssetTag

A tag identifying the category of the service.

message ServicePodSettings intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 host_network bool

If true, use the host's network namespace.

2 volumes repeated intrinsic_proto.services.Volume

A list of named volumes that can be mounted by a resource image.

3 security_context intrinsic_proto.services.PodSecurityContext

Security settings for the pod and all its containers.

message ServicePodSpec intrinsic/assets/services/proto/service_manifest.proto

Field Type Description
1 image intrinsic_proto.services.ServiceImage

The image to be used in simulated or real environments.

2 settings intrinsic_proto.services.ServicePodSettings

The settings for this pod.

3 extra_images repeated intrinsic_proto.services.ServiceImage

Additional images to be used in the pod.

message Sysctl intrinsic/assets/services/proto/service_permissions.proto

Sysctl defines a sysctl setting to be set for the particular pod.

This request may be allowlisted in particular contexts. See: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/#setting-sysctls-for-a-pod

Field Type Description
1 name string
2 value string

message Volume intrinsic/assets/services/proto/service_volume.proto

Volume represents a named volume in the pod that may be accessed by the Service through a VolumeMount. See: https://kubernetes.io/docs/concepts/storage/volumes/

Field Type Description
1 name string
oneof source
2 host_path intrinsic_proto.services.HostPathVolumeSource
3 empty_dir intrinsic_proto.services.EmptyDirVolumeSource

message VolumeMount intrinsic/assets/services/proto/service_volume.proto

VolumeMount specifies how a Volume is mounted in the Service. Its name must match a specified volume. See: https://kubernetes.io/docs/concepts/storage/volumes/

Available mount paths and whether those paths are writeable depend on the Service's container image. For instance, for Services that use @distroless_base as a base image, likely only mount paths under /tmp will be writeable.

Field Type Description
1 name string
2 mount_path string
3 read_only bool

Enums

enum CalculatorOperation intrinsic/assets/services/examples/calcserver/calc_server.proto

Name Number Description
CALCULATOR_OPERATION_UNSPECIFIED 0
CALCULATOR_OPERATION_ADD 1
CALCULATOR_OPERATION_MULTIPLY 2
CALCULATOR_OPERATION_SUBTRACT 3
CALCULATOR_OPERATION_DIVIDE 4

enum EmptyDirMedium intrinsic/assets/services/proto/service_volume.proto

Empty dir medium determines where the empty dir volume is stored. See: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir

Name Number Description
EMPTY_DIR_MEDIUM_UNSPECIFIED 0

Unspecified uses the host system's default.

EMPTY_DIR_MEDIUM_MEMORY 1

enum PosixCapability intrinsic/assets/services/proto/service_permissions.proto

Each PosixCapability grants the service extra permissions. We currently support a limited subset of POSIX capabilities.

Name Number Description
POSIX_CAPABILITY_UNSPECIFIED 0

Unspecified is not a valid capability and should not be used.

POSIX_CAPABILITY_SYS_RAWIO 1
POSIX_CAPABILITY_SYS_NICE 2
POSIX_CAPABILITY_IPC_LOCK 3