From dfc9b89059491c3bb52e426123febe0ebae92ce5 Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Thu, 17 Sep 2026 10:46:24 -0700 Subject: [PATCH 1/7] Add actor_template_uid to ExternalSnapshot and LocalSnapshotInfo Add actor_template_uid to ExternalSnapshot and LocalSnapshotInfo so each snapshot records the UID of the ActorTemplate whose sandbox its guest state was captured from. A paused actor can hold a local checkpoint and an external snapshot captured under different templates after a template repoint, so template provenance must be tracked per snapshot rather than relying solely on ActorStatus.current_actor_template_uid. --- benchmarking/locust/common/ateapi_pb2.py | 440 +++++++++--------- .../controlapi/zz_generated.validation.go | 56 +++ pkg/proto/ateapipb/ateapi.pb.go | 44 +- pkg/proto/ateapipb/ateapi.proto | 12 + 4 files changed, 323 insertions(+), 229 deletions(-) diff --git a/benchmarking/locust/common/ateapi_pb2.py b/benchmarking/locust/common/ateapi_pb2.py index 469d796d52..7e6289a128 100644 --- a/benchmarking/locust/common/ateapi_pb2.py +++ b/benchmarking/locust/common/ateapi_pb2.py @@ -40,7 +40,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x61teapi.proto\x12\x06\x61teapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"]\n\x10\x45xternalSnapshot\x12\x14\n\x0csnapshot_uri\x18\x01 \x01(\t\x12\x33\n\rcontent_scope\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\"\x86\x01\n\x11LocalSnapshotInfo\x12\x15\n\rsnapshot_name\x18\x01 \x01(\t\x12%\n\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\t\x12\x33\n\rcontent_scope\x18\x03 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\"w\n\x08Selector\x12\x37\n\x0cmatch_labels\x18\x01 \x03(\x0b\x32!.ateapi.Selector.MatchLabelsEntry\x1a\x32\n\x10MatchLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb2\x01\n\x10ResourceMetadata\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03uid\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xdc\x02\n\x0e\x45xternalVolume\x12\x13\n\x0bvolume_name\x18\x01 \x01(\t\x12\x19\n\x11storage_volume_id\x18\x02 \x01(\t\x12\x13\n\x0bvolume_type\x18\x03 \x01(\t\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.ateapi.ExternalVolume.Status\x12\x41\n\x0evolume_context\x18\x05 \x03(\x0b\x32).ateapi.ExternalVolume.VolumeContextEntry\x1a\x34\n\x12VolumeContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_PENDING\x10\x01\x12\x12\n\x0eSTATUS_CREATED\x10\x02\x12\x13\n\x0fSTATUS_DELETING\x10\x03\"\xd5\x01\n\x05\x41\x63tor\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0e\x61\x63tor_template\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x0fworker_selector\x18\x05 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\nsource_tag\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12#\n\x06status\x18\x07 \x01(\x0b\x32\x13.ateapi.ActorStatus\"]\n\x0c\x45gressPolicy\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x05rules\x18\x02 \x03(\x0b\x32\x12.ateapi.EgressRule\"{\n\nEgressRule\x12\'\n\thostnames\x18\x01 \x01(\x0b\x32\x14.ateapi.HostnameRule\x12\x1f\n\x05\x63idrs\x18\x02 \x01(\x0b\x32\x10.ateapi.CIDRRule\x12#\n\x03\x61ll\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Empty\"L\n\x0cHostnameRule\x12\x10\n\x08patterns\x18\x01 \x03(\t\x12*\n\x07\x65\x66\x66\x65\x63ts\x18\x02 \x01(\x0b\x32\x19.ateapi.EgressRuleEffects\"\x19\n\x08\x43IDRRule\x12\r\n\x05\x63idrs\x18\x01 \x03(\t\"U\n\x11\x45gressRuleEffects\x12@\n\x15inject_static_headers\x18\x01 \x03(\x0b\x32!.ateapi.CredentialHeaderInjection\"S\n\x19\x43redentialHeaderInjection\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x16\n\x0e\x63redential_uri\x18\x03 \x01(\t\"\xf0\x02\n\x0b\x41\x63torStatus\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.ateapi.ActorState\x12\x33\n\x11worker_assignment\x18\x02 \x01(\x0b\x32\x18.ateapi.WorkerAssignment\x12 \n\x18in_progress_snapshot_uri\x18\x03 \x01(\t\x12\x33\n\x11\x65xternal_snapshot\x18\x04 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x36\n\x13local_snapshot_info\x18\x05 \x01(\x0b\x32\x19.ateapi.LocalSnapshotInfo\x12-\n\ractor_volumes\x18\x07 \x03(\x0b\x32\x16.ateapi.ExternalVolume\x12\'\n\x1fin_progress_local_snapshot_name\x18\x08 \x01(\t\x12\"\n\x1a\x63urrent_actor_template_uid\x18\x0b \x01(\t\"\xa7\x01\n\x10WorkerAssignment\x12!\n\x06worker\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x18\n\x10worker_namespace\x18\x01 \x01(\t\x12\x13\n\x0bworker_pool\x18\x02 \x01(\t\x12\x12\n\nworker_pod\x18\x03 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x04 \x01(\t\x12\x15\n\rworker_pod_ip\x18\x05 \x01(\t\"\x87\x01\n\tTagStatus\x12*\n\x08snapshot\x18\x01 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x02 \x01(\t\x12\x18\n\x10storage_location\x18\x03 \x01(\t\x12\x18\n\x10source_actor_uid\x18\x04 \x01(\t\"\x9e\x01\n\x03Tag\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x06status\x18\x02 \x01(\x0b\x32\x11.ateapi.TagStatus\x12\x1f\n\x05scope\x18\x03 \x01(\x0e\x32\x10.ateapi.TagScope\x12\'\n\x0csource_actor\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\"6\n\x08\x41tespace\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\"+\n\tObjectRef\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe3\x02\n\rActorTemplate\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0fworker_selector\x18\x02 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\ncontainers\x18\x03 \x03(\x0b\x32\x11.ateapi.Container\x12\x1f\n\x07volumes\x18\x04 \x03(\x0b\x32\x0e.ateapi.Volume\x12\x31\n\x10snapshots_config\x18\x05 \x01(\x0b\x32\x17.ateapi.SnapshotsConfig\x12-\n\x0esandbox_config\x18\x06 \x01(\x0b\x32\x15.ateapi.SandboxConfig\x12$\n\tresources\x18\x07 \x01(\x0b\x32\x11.ateapi.Resources\x12+\n\x06status\x18\x08 \x01(\x0b\x32\x1b.ateapi.ActorTemplateStatus\"+\n\tResources\x12\x1e\n\x06limits\x18\x01 \x03(\x0b\x32\x0e.ateapi.Limits\"(\n\x06Limits\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\t\"\x91\x01\n\x14GoldenSnapshotStatus\x12%\n\ngolden_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12;\n\x17take_golden_snapshot_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x03 \x01(\t\"S\n\x13\x41\x63torTemplateStatus\x12<\n\x16golden_snapshot_status\x18\x01 \x01(\x0b\x32\x1c.ateapi.GoldenSnapshotStatus\"Q\n\rSandboxConfig\x12+\n\rsandbox_class\x18\x01 \x01(\x0e\x32\x14.ateapi.SandboxClass\x12\x13\n\x0b\x63onfig_name\x18\x02 \x01(\t\"\xb7\x01\n\x0fSnapshotsConfig\x12.\n\x08on_pause\x18\x01 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12/\n\ton_commit\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12)\n\ton_resume\x18\x03 \x01(\x0b\x32\x16.ateapi.OnResumeConfig\x12\x18\n\x10storage_location\x18\x04 \x01(\t\"9\n\x0eOnResumeConfig\x12\'\n\tfrom_data\x18\x01 \x01(\x0e\x32\x14.ateapi.ResumeSource\"\x92\x02\n\tContainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\x12\x1b\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x0e.ateapi.EnvVar\x12\'\n\x06readyz\x18\x06 \x01(\x0b\x32\x17.ateapi.ContainerReadyz\x12*\n\rvolume_mounts\x18\x07 \x03(\x0b\x32\x13.ateapi.VolumeMount\x12\x31\n\x10security_context\x18\x08 \x01(\x0b\x32\x17.ateapi.SecurityContext\x12$\n\tresources\x18\t \x01(\x0b\x32\x11.ateapi.Resources\"=\n\x0fSecurityContext\x12*\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32\x14.ateapi.Capabilities\")\n\x0c\x43\x61pabilities\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0c\n\x04\x64rop\x18\x02 \x03(\t\"%\n\x06\x45nvVar\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"S\n\x0f\x43ontainerReadyz\x12\'\n\x08http_get\x18\x01 \x01(\x0b\x32\x15.ateapi.HTTPGetAction\x12\x17\n\x0ftimeout_seconds\x18\x02 \x01(\x05\"+\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xec\x01\n\x06Volume\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x0b\x64urable_dir\x18\x02 \x01(\x0b\x32\x1e.ateapi.DurableDirVolumeSource\x12@\n\x18\x65xternal_volume_template\x18\x03 \x01(\x0b\x32\x1e.ateapi.ExternalVolumeTemplate\x12\x33\n\x0bsystem_info\x18\x05 \x01(\x0b\x32\x1e.ateapi.SystemInfoVolumeSource\x12(\n\x05image\x18\x06 \x01(\x0b\x32\x19.ateapi.ImageVolumeSource\"&\n\x11ImageVolumeSource\x12\x11\n\treference\x18\x01 \x01(\t\"\x18\n\x16\x44urableDirVolumeSource\"F\n\x16\x45xternalVolumeTemplate\x12\x10\n\x08\x63\x61pacity\x18\x01 \x01(\t\x12\x1a\n\x12storage_class_name\x18\x02 \x01(\t\"L\n\x16SystemInfoVolumeSource\x12\x32\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32\x1c.ateapi.SystemInfoDataSource\"\x84\x01\n\x14SystemInfoDataSource\x12\x37\n\x0e\x61\x63tor_metadata\x18\x01 \x01(\x0b\x32\x1f.ateapi.ActorMetadataDataSource\x12\x33\n\x0ctrust_bundle\x18\x02 \x01(\x0b\x32\x1d.ateapi.TrustBundleDataSource\"C\n\x17\x41\x63torMetadataDataSource\x12(\n\x05items\x18\x01 \x03(\x0b\x32\x19.ateapi.ActorMetadataItem\"L\n\x11\x41\x63torMetadataItem\x12)\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x1a.ateapi.ActorMetadataField\x12\x0c\n\x04path\x18\x02 \x01(\t\"3\n\x15TrustBundleDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"/\n\x0bVolumeMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\";\n\x15\x43reateAtespaceRequest\x12\"\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x10.ateapi.Atespace\"9\n\x12GetAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"=\n\x14ListAtespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"U\n\x15ListAtespacesResponse\x12#\n\tatespaces\x18\x01 \x03(\x0b\x32\x10.ateapi.Atespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"<\n\x15\x44\x65leteAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1a\x43reateActorTemplateRequest\x12-\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x15.ateapi.ActorTemplate\"D\n\x17GetActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"T\n\x19ListActorTemplatesRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"e\n\x1aListActorTemplatesResponse\x12.\n\x0f\x61\x63tor_templates\x18\x01 \x03(\x0b\x32\x15.ateapi.ActorTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x1a\x44\x65leteActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"3\n\x0fGetActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12\x43reateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"2\n\x12UpdateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"7\n\x13SuspendActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"4\n\x14SuspendActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"5\n\x11PauseActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12PauseActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"6\n\x12ResumeActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"D\n\x13ResumeActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\x12\x0f\n\x07resumed\x18\x02 \x01(\x08\"I\n\x12\x44\x65leteActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tany_state\x18\x02 \x01(\x08\"?\n\x1bGetActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"o\n\x1e\x43reateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"o\n\x1eUpdateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"B\n\x1e\x44\x65leteActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"/\n\rGetTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"\\\n\x13MintActorJWTRequest\x12 \n\x05\x61\x63tor\x18\x05 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12\x10\n\x08\x61udience\x18\x01 \x03(\t\")\n\x14MintActorJWTResponse\x12\x11\n\tactor_jwt\x18\x01 \x01(\t\"\xa9\x01\n\x1bMintActorCertificateRequest\x12 \n\x05\x61\x63tor\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12#\n\x1b\x63\x65rtificate_signing_request\x18\x02 \x01(\x0c\x12\x30\n\x07purpose\x18\x04 \x01(\x0e\x32\x1f.ateapi.ActorCertificatePurpose\":\n\x1cMintActorCertificateResponse\x12\x1a\n\x12\x61\x63tor_certificates\x18\x01 \x03(\x0c\"D\n\x17GetActorSnapshotRequest\x12)\n\x0e\x61\x63tor_snapshot\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1aGetActorSnapshotTagRequest\x12-\n\x12\x61\x63tor_snapshot_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"J\n\x0fListTagsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"F\n\x10ListTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.ateapi.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\",\n\x10\x43reateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\",\n\x10UpdateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\"2\n\x10\x44\x65leteTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"-\n\rDeleteOptions\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\x0b\n\x03uid\x18\x02 \x01(\t\"m\n!ListWorkerActorAssignmentsRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\"ListWorkerActorAssignmentsResponse\x12\x32\n\x11\x61\x63tor_assignments\x18\x01 \x03(\x0b\x32\x17.ateapi.ActorAssignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\";\n\x12ListWorkersRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"O\n\x13ListWorkersResponse\x12\x1f\n\x07workers\x18\x01 \x03(\x0b\x32\x0e.ateapi.Worker\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"5\n\x10GetWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"5\n\x13\x43reateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"5\n\x13UpdateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"`\n\x13\x44\x65leteWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12&\n\x07options\x18\x02 \x01(\x0b\x32\x15.ateapi.DeleteOptions\"7\n\x12\x44rainWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"L\n\x11ListActorsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"L\n\x12ListActorsResponse\x12\x1d\n\x06\x61\x63tors\x18\x01 \x03(\x0b\x32\r.ateapi.Actor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc6\x02\n\x06Worker\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12\x18\n\x10worker_namespace\x18\x02 \x01(\t\x12\x13\n\x0bworker_pool\x18\x03 \x01(\t\x12\x12\n\nworker_pod\x18\x04 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x05 \x01(\t\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\n\n\x02ip\x18\x07 \x01(\t\x12\x15\n\rsandbox_class\x18\x08 \x01(\t\x12*\n\x06labels\x18\t \x03(\x0b\x32\x1a.ateapi.Worker.LabelsEntry\x12$\n\x06status\x18\x0b \x01(\x0b\x32\x14.ateapi.WorkerStatus\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x0cWorkerStatus\x12\"\n\x05state\x18\x01 \x01(\x0e\x32\x13.ateapi.WorkerState\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\x12*\n\tallocated\x18\x03 \x01(\x0b\x32\x17.ateapi.WorkerResources\"G\n\x0fWorkerResources\x12$\n\tresources\x18\x01 \x01(\x0b\x32\x11.ateapi.Resources\x12\x0e\n\x06\x61\x63tors\x18\x02 \x01(\x05\"\xc7\x01\n\x0f\x41\x63torAssignment\x12*\n\x08metadata\x18\x06 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12 \n\x05\x61\x63tor\x18\x02 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x03 \x01(\t\x12-\n\x12\x61\x63tor_template_ref\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12$\n\tresources\x18\x05 \x01(\x0b\x32\x11.ateapi.Resources\"h\n\x18SetWorkerCapacityRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\";\n\x19SetWorkerCapacityResponse\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker*\x80\x01\n\x14SnapshotContentScope\x12&\n\"SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_FULL\x10\x01\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_DATA\x10\x02*V\n\x08TagScope\x12\x19\n\x15TAG_SCOPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TAG_SCOPE_ATESPACE\x10\x01\x12\x17\n\x13TAG_SCOPE_PUBLISHED\x10\x02*\xf7\x01\n\nActorState\x12\x1b\n\x17\x41\x43TOR_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TOR_STATE_RESUMING\x10\x01\x12\x17\n\x13\x41\x43TOR_STATE_RUNNING\x10\x02\x12\x1a\n\x16\x41\x43TOR_STATE_SUSPENDING\x10\x03\x12\x19\n\x15\x41\x43TOR_STATE_SUSPENDED\x10\x04\x12\x17\n\x13\x41\x43TOR_STATE_PAUSING\x10\x05\x12\x16\n\x12\x41\x43TOR_STATE_PAUSED\x10\x06\x12\x17\n\x13\x41\x43TOR_STATE_CRASHED\x10\x07\x12\x18\n\x14\x41\x43TOR_STATE_DELETING\x10\x08*b\n\x0cSandboxClass\x12\x1d\n\x19SANDBOX_CLASS_UNSPECIFIED\x10\x00\x12\x18\n\x14SANDBOX_CLASS_GVISOR\x10\x01\x12\x19\n\x15SANDBOX_CLASS_MICROVM\x10\x02*d\n\x0cResumeSource\x12\x1d\n\x19RESUME_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17RESUME_SOURCE_COLD_BOOT\x10\x01\x12\x18\n\x14RESUME_SOURCE_GOLDEN\x10\x02*\x9a\x01\n\x12\x41\x63torMetadataField\x12$\n ACTOR_METADATA_FIELD_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x43TOR_METADATA_FIELD_NAME\x10\x01\x12!\n\x1d\x41\x43TOR_METADATA_FIELD_ATESPACE\x10\x02\x12\x1c\n\x18\x41\x43TOR_METADATA_FIELD_UID\x10\x03*k\n\x17\x41\x63torCertificatePurpose\x12)\n%ACTOR_CERTIFICATE_PURPOSE_UNSPECIFIED\x10\x00\x12%\n!ACTOR_CERTIFICATE_PURPOSE_ATUNNEL\x10\x01*_\n\x0bWorkerState\x12\x1c\n\x18WORKER_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13WORKER_STATE_ACTIVE\x10\x01\x12\x19\n\x15WORKER_STATE_DRAINING\x10\x02\x32\xa5\x13\n\x07\x43ontrol\x12\x34\n\x08GetActor\x12\x17.ateapi.GetActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0b\x43reateActor\x12\x1a.ateapi.CreateActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0bUpdateActor\x12\x1a.ateapi.UpdateActorRequest\x1a\r.ateapi.Actor\"\x00\x12K\n\x0cSuspendActor\x12\x1b.ateapi.SuspendActorRequest\x1a\x1c.ateapi.SuspendActorResponse\"\x00\x12\x45\n\nPauseActor\x12\x19.ateapi.PauseActorRequest\x1a\x1a.ateapi.PauseActorResponse\"\x00\x12H\n\x0bResumeActor\x12\x1a.ateapi.ResumeActorRequest\x1a\x1b.ateapi.ResumeActorResponse\"\x00\x12:\n\x0b\x44\x65leteActor\x12\x1a.ateapi.DeleteActorRequest\x1a\r.ateapi.Actor\"\x00\x12S\n\x14GetActorEgressPolicy\x12#.ateapi.GetActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x43reateActorEgressPolicy\x12&.ateapi.CreateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17UpdateActorEgressPolicy\x12&.ateapi.UpdateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x44\x65leteActorEgressPolicy\x12&.ateapi.DeleteActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12K\n\x0cMintActorJWT\x12\x1b.ateapi.MintActorJWTRequest\x1a\x1c.ateapi.MintActorJWTResponse\"\x00\x12\x63\n\x14MintActorCertificate\x12#.ateapi.MintActorCertificateRequest\x1a$.ateapi.MintActorCertificateResponse\"\x00\x12\x34\n\tCreateTag\x12\x18.ateapi.CreateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12.\n\x06GetTag\x12\x15.ateapi.GetTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12?\n\x08ListTags\x12\x17.ateapi.ListTagsRequest\x1a\x18.ateapi.ListTagsResponse\"\x00\x12\x34\n\tUpdateTag\x12\x18.ateapi.UpdateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12\x34\n\tDeleteTag\x12\x18.ateapi.DeleteTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12H\n\x0bListWorkers\x12\x1a.ateapi.ListWorkersRequest\x1a\x1b.ateapi.ListWorkersResponse\"\x00\x12\x37\n\tGetWorker\x12\x18.ateapi.GetWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x43reateWorker\x12\x1b.ateapi.CreateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0cUpdateWorker\x12\x1b.ateapi.UpdateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x44\x65leteWorker\x12\x1b.ateapi.DeleteWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12;\n\x0b\x44rainWorker\x12\x1a.ateapi.DrainWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12u\n\x1aListWorkerActorAssignments\x12).ateapi.ListWorkerActorAssignmentsRequest\x1a*.ateapi.ListWorkerActorAssignmentsResponse\"\x00\x12\x45\n\nListActors\x12\x19.ateapi.ListActorsRequest\x1a\x1a.ateapi.ListActorsResponse\"\x00\x12\x43\n\x0e\x43reateAtespace\x12\x1d.ateapi.CreateAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12=\n\x0bGetAtespace\x12\x1a.ateapi.GetAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12N\n\rListAtespaces\x12\x1c.ateapi.ListAtespacesRequest\x1a\x1d.ateapi.ListAtespacesResponse\"\x00\x12\x43\n\x0e\x44\x65leteAtespace\x12\x1d.ateapi.DeleteAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12R\n\x13\x43reateActorTemplate\x12\".ateapi.CreateActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12L\n\x10GetActorTemplate\x12\x1f.ateapi.GetActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12]\n\x12ListActorTemplates\x12!.ateapi.ListActorTemplatesRequest\x1a\".ateapi.ListActorTemplatesResponse\"\x00\x12R\n\x13\x44\x65leteActorTemplate\x12\".ateapi.DeleteActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x32i\n\rWorkerService\x12X\n\x11SetWorkerCapacity\x12 .ateapi.SetWorkerCapacityRequest\x1a!.ateapi.SetWorkerCapacityResponseB9Z7github.com/agent-substrate/substrate/pkg/proto/ateapipbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x61teapi.proto\x12\x06\x61teapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"y\n\x10\x45xternalSnapshot\x12\x14\n\x0csnapshot_uri\x18\x01 \x01(\t\x12\x33\n\rcontent_scope\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x03 \x01(\t\"\xa2\x01\n\x11LocalSnapshotInfo\x12\x15\n\rsnapshot_name\x18\x01 \x01(\t\x12%\n\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\t\x12\x33\n\rcontent_scope\x18\x03 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x04 \x01(\t\"w\n\x08Selector\x12\x37\n\x0cmatch_labels\x18\x01 \x03(\x0b\x32!.ateapi.Selector.MatchLabelsEntry\x1a\x32\n\x10MatchLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb2\x01\n\x10ResourceMetadata\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03uid\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xdc\x02\n\x0e\x45xternalVolume\x12\x13\n\x0bvolume_name\x18\x01 \x01(\t\x12\x19\n\x11storage_volume_id\x18\x02 \x01(\t\x12\x13\n\x0bvolume_type\x18\x03 \x01(\t\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.ateapi.ExternalVolume.Status\x12\x41\n\x0evolume_context\x18\x05 \x03(\x0b\x32).ateapi.ExternalVolume.VolumeContextEntry\x1a\x34\n\x12VolumeContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_PENDING\x10\x01\x12\x12\n\x0eSTATUS_CREATED\x10\x02\x12\x13\n\x0fSTATUS_DELETING\x10\x03\"\xd5\x01\n\x05\x41\x63tor\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0e\x61\x63tor_template\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x0fworker_selector\x18\x05 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\nsource_tag\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12#\n\x06status\x18\x07 \x01(\x0b\x32\x13.ateapi.ActorStatus\"]\n\x0c\x45gressPolicy\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x05rules\x18\x02 \x03(\x0b\x32\x12.ateapi.EgressRule\"{\n\nEgressRule\x12\'\n\thostnames\x18\x01 \x01(\x0b\x32\x14.ateapi.HostnameRule\x12\x1f\n\x05\x63idrs\x18\x02 \x01(\x0b\x32\x10.ateapi.CIDRRule\x12#\n\x03\x61ll\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Empty\"L\n\x0cHostnameRule\x12\x10\n\x08patterns\x18\x01 \x03(\t\x12*\n\x07\x65\x66\x66\x65\x63ts\x18\x02 \x01(\x0b\x32\x19.ateapi.EgressRuleEffects\"\x19\n\x08\x43IDRRule\x12\r\n\x05\x63idrs\x18\x01 \x03(\t\"U\n\x11\x45gressRuleEffects\x12@\n\x15inject_static_headers\x18\x01 \x03(\x0b\x32!.ateapi.CredentialHeaderInjection\"S\n\x19\x43redentialHeaderInjection\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x16\n\x0e\x63redential_uri\x18\x03 \x01(\t\"\xf0\x02\n\x0b\x41\x63torStatus\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.ateapi.ActorState\x12\x33\n\x11worker_assignment\x18\x02 \x01(\x0b\x32\x18.ateapi.WorkerAssignment\x12 \n\x18in_progress_snapshot_uri\x18\x03 \x01(\t\x12\x33\n\x11\x65xternal_snapshot\x18\x04 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x36\n\x13local_snapshot_info\x18\x05 \x01(\x0b\x32\x19.ateapi.LocalSnapshotInfo\x12-\n\ractor_volumes\x18\x07 \x03(\x0b\x32\x16.ateapi.ExternalVolume\x12\'\n\x1fin_progress_local_snapshot_name\x18\x08 \x01(\t\x12\"\n\x1a\x63urrent_actor_template_uid\x18\x0b \x01(\t\"\xa7\x01\n\x10WorkerAssignment\x12!\n\x06worker\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x18\n\x10worker_namespace\x18\x01 \x01(\t\x12\x13\n\x0bworker_pool\x18\x02 \x01(\t\x12\x12\n\nworker_pod\x18\x03 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x04 \x01(\t\x12\x15\n\rworker_pod_ip\x18\x05 \x01(\t\"\x87\x01\n\tTagStatus\x12*\n\x08snapshot\x18\x01 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x02 \x01(\t\x12\x18\n\x10storage_location\x18\x03 \x01(\t\x12\x18\n\x10source_actor_uid\x18\x04 \x01(\t\"\x9e\x01\n\x03Tag\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x06status\x18\x02 \x01(\x0b\x32\x11.ateapi.TagStatus\x12\x1f\n\x05scope\x18\x03 \x01(\x0e\x32\x10.ateapi.TagScope\x12\'\n\x0csource_actor\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\"6\n\x08\x41tespace\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\"+\n\tObjectRef\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe3\x02\n\rActorTemplate\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0fworker_selector\x18\x02 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\ncontainers\x18\x03 \x03(\x0b\x32\x11.ateapi.Container\x12\x1f\n\x07volumes\x18\x04 \x03(\x0b\x32\x0e.ateapi.Volume\x12\x31\n\x10snapshots_config\x18\x05 \x01(\x0b\x32\x17.ateapi.SnapshotsConfig\x12-\n\x0esandbox_config\x18\x06 \x01(\x0b\x32\x15.ateapi.SandboxConfig\x12$\n\tresources\x18\x07 \x01(\x0b\x32\x11.ateapi.Resources\x12+\n\x06status\x18\x08 \x01(\x0b\x32\x1b.ateapi.ActorTemplateStatus\"+\n\tResources\x12\x1e\n\x06limits\x18\x01 \x03(\x0b\x32\x0e.ateapi.Limits\"(\n\x06Limits\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\t\"\x91\x01\n\x14GoldenSnapshotStatus\x12%\n\ngolden_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12;\n\x17take_golden_snapshot_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x03 \x01(\t\"S\n\x13\x41\x63torTemplateStatus\x12<\n\x16golden_snapshot_status\x18\x01 \x01(\x0b\x32\x1c.ateapi.GoldenSnapshotStatus\"Q\n\rSandboxConfig\x12+\n\rsandbox_class\x18\x01 \x01(\x0e\x32\x14.ateapi.SandboxClass\x12\x13\n\x0b\x63onfig_name\x18\x02 \x01(\t\"\xb7\x01\n\x0fSnapshotsConfig\x12.\n\x08on_pause\x18\x01 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12/\n\ton_commit\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12)\n\ton_resume\x18\x03 \x01(\x0b\x32\x16.ateapi.OnResumeConfig\x12\x18\n\x10storage_location\x18\x04 \x01(\t\"9\n\x0eOnResumeConfig\x12\'\n\tfrom_data\x18\x01 \x01(\x0e\x32\x14.ateapi.ResumeSource\"\x92\x02\n\tContainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\x12\x1b\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x0e.ateapi.EnvVar\x12\'\n\x06readyz\x18\x06 \x01(\x0b\x32\x17.ateapi.ContainerReadyz\x12*\n\rvolume_mounts\x18\x07 \x03(\x0b\x32\x13.ateapi.VolumeMount\x12\x31\n\x10security_context\x18\x08 \x01(\x0b\x32\x17.ateapi.SecurityContext\x12$\n\tresources\x18\t \x01(\x0b\x32\x11.ateapi.Resources\"=\n\x0fSecurityContext\x12*\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32\x14.ateapi.Capabilities\")\n\x0c\x43\x61pabilities\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0c\n\x04\x64rop\x18\x02 \x03(\t\"%\n\x06\x45nvVar\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"S\n\x0f\x43ontainerReadyz\x12\'\n\x08http_get\x18\x01 \x01(\x0b\x32\x15.ateapi.HTTPGetAction\x12\x17\n\x0ftimeout_seconds\x18\x02 \x01(\x05\"+\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xec\x01\n\x06Volume\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x0b\x64urable_dir\x18\x02 \x01(\x0b\x32\x1e.ateapi.DurableDirVolumeSource\x12@\n\x18\x65xternal_volume_template\x18\x03 \x01(\x0b\x32\x1e.ateapi.ExternalVolumeTemplate\x12\x33\n\x0bsystem_info\x18\x05 \x01(\x0b\x32\x1e.ateapi.SystemInfoVolumeSource\x12(\n\x05image\x18\x06 \x01(\x0b\x32\x19.ateapi.ImageVolumeSource\"&\n\x11ImageVolumeSource\x12\x11\n\treference\x18\x01 \x01(\t\"\x18\n\x16\x44urableDirVolumeSource\"F\n\x16\x45xternalVolumeTemplate\x12\x10\n\x08\x63\x61pacity\x18\x01 \x01(\t\x12\x1a\n\x12storage_class_name\x18\x02 \x01(\t\"L\n\x16SystemInfoVolumeSource\x12\x32\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32\x1c.ateapi.SystemInfoDataSource\"\x84\x01\n\x14SystemInfoDataSource\x12\x37\n\x0e\x61\x63tor_metadata\x18\x01 \x01(\x0b\x32\x1f.ateapi.ActorMetadataDataSource\x12\x33\n\x0ctrust_bundle\x18\x02 \x01(\x0b\x32\x1d.ateapi.TrustBundleDataSource\"C\n\x17\x41\x63torMetadataDataSource\x12(\n\x05items\x18\x01 \x03(\x0b\x32\x19.ateapi.ActorMetadataItem\"L\n\x11\x41\x63torMetadataItem\x12)\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x1a.ateapi.ActorMetadataField\x12\x0c\n\x04path\x18\x02 \x01(\t\"3\n\x15TrustBundleDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"/\n\x0bVolumeMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\";\n\x15\x43reateAtespaceRequest\x12\"\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x10.ateapi.Atespace\"9\n\x12GetAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"=\n\x14ListAtespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"U\n\x15ListAtespacesResponse\x12#\n\tatespaces\x18\x01 \x03(\x0b\x32\x10.ateapi.Atespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"<\n\x15\x44\x65leteAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1a\x43reateActorTemplateRequest\x12-\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x15.ateapi.ActorTemplate\"D\n\x17GetActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"T\n\x19ListActorTemplatesRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"e\n\x1aListActorTemplatesResponse\x12.\n\x0f\x61\x63tor_templates\x18\x01 \x03(\x0b\x32\x15.ateapi.ActorTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x1a\x44\x65leteActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"3\n\x0fGetActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12\x43reateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"2\n\x12UpdateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"7\n\x13SuspendActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"4\n\x14SuspendActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"5\n\x11PauseActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12PauseActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"6\n\x12ResumeActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"D\n\x13ResumeActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\x12\x0f\n\x07resumed\x18\x02 \x01(\x08\"I\n\x12\x44\x65leteActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tany_state\x18\x02 \x01(\x08\"?\n\x1bGetActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"o\n\x1e\x43reateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"o\n\x1eUpdateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"B\n\x1e\x44\x65leteActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"/\n\rGetTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"\\\n\x13MintActorJWTRequest\x12 \n\x05\x61\x63tor\x18\x05 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12\x10\n\x08\x61udience\x18\x01 \x03(\t\")\n\x14MintActorJWTResponse\x12\x11\n\tactor_jwt\x18\x01 \x01(\t\"\xa9\x01\n\x1bMintActorCertificateRequest\x12 \n\x05\x61\x63tor\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12#\n\x1b\x63\x65rtificate_signing_request\x18\x02 \x01(\x0c\x12\x30\n\x07purpose\x18\x04 \x01(\x0e\x32\x1f.ateapi.ActorCertificatePurpose\":\n\x1cMintActorCertificateResponse\x12\x1a\n\x12\x61\x63tor_certificates\x18\x01 \x03(\x0c\"D\n\x17GetActorSnapshotRequest\x12)\n\x0e\x61\x63tor_snapshot\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1aGetActorSnapshotTagRequest\x12-\n\x12\x61\x63tor_snapshot_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"J\n\x0fListTagsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"F\n\x10ListTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.ateapi.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\",\n\x10\x43reateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\",\n\x10UpdateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\"2\n\x10\x44\x65leteTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"-\n\rDeleteOptions\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\x0b\n\x03uid\x18\x02 \x01(\t\"m\n!ListWorkerActorAssignmentsRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\"ListWorkerActorAssignmentsResponse\x12\x32\n\x11\x61\x63tor_assignments\x18\x01 \x03(\x0b\x32\x17.ateapi.ActorAssignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\";\n\x12ListWorkersRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"O\n\x13ListWorkersResponse\x12\x1f\n\x07workers\x18\x01 \x03(\x0b\x32\x0e.ateapi.Worker\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"5\n\x10GetWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"5\n\x13\x43reateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"5\n\x13UpdateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"`\n\x13\x44\x65leteWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12&\n\x07options\x18\x02 \x01(\x0b\x32\x15.ateapi.DeleteOptions\"7\n\x12\x44rainWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"L\n\x11ListActorsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"L\n\x12ListActorsResponse\x12\x1d\n\x06\x61\x63tors\x18\x01 \x03(\x0b\x32\r.ateapi.Actor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc6\x02\n\x06Worker\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12\x18\n\x10worker_namespace\x18\x02 \x01(\t\x12\x13\n\x0bworker_pool\x18\x03 \x01(\t\x12\x12\n\nworker_pod\x18\x04 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x05 \x01(\t\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\n\n\x02ip\x18\x07 \x01(\t\x12\x15\n\rsandbox_class\x18\x08 \x01(\t\x12*\n\x06labels\x18\t \x03(\x0b\x32\x1a.ateapi.Worker.LabelsEntry\x12$\n\x06status\x18\x0b \x01(\x0b\x32\x14.ateapi.WorkerStatus\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x0cWorkerStatus\x12\"\n\x05state\x18\x01 \x01(\x0e\x32\x13.ateapi.WorkerState\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\x12*\n\tallocated\x18\x03 \x01(\x0b\x32\x17.ateapi.WorkerResources\"G\n\x0fWorkerResources\x12$\n\tresources\x18\x01 \x01(\x0b\x32\x11.ateapi.Resources\x12\x0e\n\x06\x61\x63tors\x18\x02 \x01(\x05\"\xc7\x01\n\x0f\x41\x63torAssignment\x12*\n\x08metadata\x18\x06 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12 \n\x05\x61\x63tor\x18\x02 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x03 \x01(\t\x12-\n\x12\x61\x63tor_template_ref\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12$\n\tresources\x18\x05 \x01(\x0b\x32\x11.ateapi.Resources\"h\n\x18SetWorkerCapacityRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\";\n\x19SetWorkerCapacityResponse\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker*\x80\x01\n\x14SnapshotContentScope\x12&\n\"SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_FULL\x10\x01\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_DATA\x10\x02*V\n\x08TagScope\x12\x19\n\x15TAG_SCOPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TAG_SCOPE_ATESPACE\x10\x01\x12\x17\n\x13TAG_SCOPE_PUBLISHED\x10\x02*\xf7\x01\n\nActorState\x12\x1b\n\x17\x41\x43TOR_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TOR_STATE_RESUMING\x10\x01\x12\x17\n\x13\x41\x43TOR_STATE_RUNNING\x10\x02\x12\x1a\n\x16\x41\x43TOR_STATE_SUSPENDING\x10\x03\x12\x19\n\x15\x41\x43TOR_STATE_SUSPENDED\x10\x04\x12\x17\n\x13\x41\x43TOR_STATE_PAUSING\x10\x05\x12\x16\n\x12\x41\x43TOR_STATE_PAUSED\x10\x06\x12\x17\n\x13\x41\x43TOR_STATE_CRASHED\x10\x07\x12\x18\n\x14\x41\x43TOR_STATE_DELETING\x10\x08*b\n\x0cSandboxClass\x12\x1d\n\x19SANDBOX_CLASS_UNSPECIFIED\x10\x00\x12\x18\n\x14SANDBOX_CLASS_GVISOR\x10\x01\x12\x19\n\x15SANDBOX_CLASS_MICROVM\x10\x02*d\n\x0cResumeSource\x12\x1d\n\x19RESUME_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17RESUME_SOURCE_COLD_BOOT\x10\x01\x12\x18\n\x14RESUME_SOURCE_GOLDEN\x10\x02*\x9a\x01\n\x12\x41\x63torMetadataField\x12$\n ACTOR_METADATA_FIELD_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x43TOR_METADATA_FIELD_NAME\x10\x01\x12!\n\x1d\x41\x43TOR_METADATA_FIELD_ATESPACE\x10\x02\x12\x1c\n\x18\x41\x43TOR_METADATA_FIELD_UID\x10\x03*k\n\x17\x41\x63torCertificatePurpose\x12)\n%ACTOR_CERTIFICATE_PURPOSE_UNSPECIFIED\x10\x00\x12%\n!ACTOR_CERTIFICATE_PURPOSE_ATUNNEL\x10\x01*_\n\x0bWorkerState\x12\x1c\n\x18WORKER_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13WORKER_STATE_ACTIVE\x10\x01\x12\x19\n\x15WORKER_STATE_DRAINING\x10\x02\x32\xa5\x13\n\x07\x43ontrol\x12\x34\n\x08GetActor\x12\x17.ateapi.GetActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0b\x43reateActor\x12\x1a.ateapi.CreateActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0bUpdateActor\x12\x1a.ateapi.UpdateActorRequest\x1a\r.ateapi.Actor\"\x00\x12K\n\x0cSuspendActor\x12\x1b.ateapi.SuspendActorRequest\x1a\x1c.ateapi.SuspendActorResponse\"\x00\x12\x45\n\nPauseActor\x12\x19.ateapi.PauseActorRequest\x1a\x1a.ateapi.PauseActorResponse\"\x00\x12H\n\x0bResumeActor\x12\x1a.ateapi.ResumeActorRequest\x1a\x1b.ateapi.ResumeActorResponse\"\x00\x12:\n\x0b\x44\x65leteActor\x12\x1a.ateapi.DeleteActorRequest\x1a\r.ateapi.Actor\"\x00\x12S\n\x14GetActorEgressPolicy\x12#.ateapi.GetActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x43reateActorEgressPolicy\x12&.ateapi.CreateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17UpdateActorEgressPolicy\x12&.ateapi.UpdateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x44\x65leteActorEgressPolicy\x12&.ateapi.DeleteActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12K\n\x0cMintActorJWT\x12\x1b.ateapi.MintActorJWTRequest\x1a\x1c.ateapi.MintActorJWTResponse\"\x00\x12\x63\n\x14MintActorCertificate\x12#.ateapi.MintActorCertificateRequest\x1a$.ateapi.MintActorCertificateResponse\"\x00\x12\x34\n\tCreateTag\x12\x18.ateapi.CreateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12.\n\x06GetTag\x12\x15.ateapi.GetTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12?\n\x08ListTags\x12\x17.ateapi.ListTagsRequest\x1a\x18.ateapi.ListTagsResponse\"\x00\x12\x34\n\tUpdateTag\x12\x18.ateapi.UpdateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12\x34\n\tDeleteTag\x12\x18.ateapi.DeleteTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12H\n\x0bListWorkers\x12\x1a.ateapi.ListWorkersRequest\x1a\x1b.ateapi.ListWorkersResponse\"\x00\x12\x37\n\tGetWorker\x12\x18.ateapi.GetWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x43reateWorker\x12\x1b.ateapi.CreateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0cUpdateWorker\x12\x1b.ateapi.UpdateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x44\x65leteWorker\x12\x1b.ateapi.DeleteWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12;\n\x0b\x44rainWorker\x12\x1a.ateapi.DrainWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12u\n\x1aListWorkerActorAssignments\x12).ateapi.ListWorkerActorAssignmentsRequest\x1a*.ateapi.ListWorkerActorAssignmentsResponse\"\x00\x12\x45\n\nListActors\x12\x19.ateapi.ListActorsRequest\x1a\x1a.ateapi.ListActorsResponse\"\x00\x12\x43\n\x0e\x43reateAtespace\x12\x1d.ateapi.CreateAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12=\n\x0bGetAtespace\x12\x1a.ateapi.GetAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12N\n\rListAtespaces\x12\x1c.ateapi.ListAtespacesRequest\x1a\x1d.ateapi.ListAtespacesResponse\"\x00\x12\x43\n\x0e\x44\x65leteAtespace\x12\x1d.ateapi.DeleteAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12R\n\x13\x43reateActorTemplate\x12\".ateapi.CreateActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12L\n\x10GetActorTemplate\x12\x1f.ateapi.GetActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12]\n\x12ListActorTemplates\x12!.ateapi.ListActorTemplatesRequest\x1a\".ateapi.ListActorTemplatesResponse\"\x00\x12R\n\x13\x44\x65leteActorTemplate\x12\".ateapi.DeleteActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x32i\n\rWorkerService\x12X\n\x11SetWorkerCapacity\x12 .ateapi.SetWorkerCapacityRequest\x1a!.ateapi.SetWorkerCapacityResponseB9Z7github.com/agent-substrate/substrate/pkg/proto/ateapipbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -54,224 +54,224 @@ _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_options = b'8\001' _globals['_WORKER_LABELSENTRY']._loaded_options = None _globals['_WORKER_LABELSENTRY']._serialized_options = b'8\001' - _globals['_SNAPSHOTCONTENTSCOPE']._serialized_start=9358 - _globals['_SNAPSHOTCONTENTSCOPE']._serialized_end=9486 - _globals['_TAGSCOPE']._serialized_start=9488 - _globals['_TAGSCOPE']._serialized_end=9574 - _globals['_ACTORSTATE']._serialized_start=9577 - _globals['_ACTORSTATE']._serialized_end=9824 - _globals['_SANDBOXCLASS']._serialized_start=9826 - _globals['_SANDBOXCLASS']._serialized_end=9924 - _globals['_RESUMESOURCE']._serialized_start=9926 - _globals['_RESUMESOURCE']._serialized_end=10026 - _globals['_ACTORMETADATAFIELD']._serialized_start=10029 - _globals['_ACTORMETADATAFIELD']._serialized_end=10183 - _globals['_ACTORCERTIFICATEPURPOSE']._serialized_start=10185 - _globals['_ACTORCERTIFICATEPURPOSE']._serialized_end=10292 - _globals['_WORKERSTATE']._serialized_start=10294 - _globals['_WORKERSTATE']._serialized_end=10389 + _globals['_SNAPSHOTCONTENTSCOPE']._serialized_start=9414 + _globals['_SNAPSHOTCONTENTSCOPE']._serialized_end=9542 + _globals['_TAGSCOPE']._serialized_start=9544 + _globals['_TAGSCOPE']._serialized_end=9630 + _globals['_ACTORSTATE']._serialized_start=9633 + _globals['_ACTORSTATE']._serialized_end=9880 + _globals['_SANDBOXCLASS']._serialized_start=9882 + _globals['_SANDBOXCLASS']._serialized_end=9980 + _globals['_RESUMESOURCE']._serialized_start=9982 + _globals['_RESUMESOURCE']._serialized_end=10082 + _globals['_ACTORMETADATAFIELD']._serialized_start=10085 + _globals['_ACTORMETADATAFIELD']._serialized_end=10239 + _globals['_ACTORCERTIFICATEPURPOSE']._serialized_start=10241 + _globals['_ACTORCERTIFICATEPURPOSE']._serialized_end=10348 + _globals['_WORKERSTATE']._serialized_start=10350 + _globals['_WORKERSTATE']._serialized_end=10445 _globals['_EXTERNALSNAPSHOT']._serialized_start=86 - _globals['_EXTERNALSNAPSHOT']._serialized_end=179 - _globals['_LOCALSNAPSHOTINFO']._serialized_start=182 - _globals['_LOCALSNAPSHOTINFO']._serialized_end=316 - _globals['_SELECTOR']._serialized_start=318 - _globals['_SELECTOR']._serialized_end=437 - _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_start=387 - _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_end=437 - _globals['_RESOURCEMETADATA']._serialized_start=440 - _globals['_RESOURCEMETADATA']._serialized_end=618 - _globals['_EXTERNALVOLUME']._serialized_start=621 - _globals['_EXTERNALVOLUME']._serialized_end=969 - _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_start=822 - _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_end=874 - _globals['_EXTERNALVOLUME_STATUS']._serialized_start=876 - _globals['_EXTERNALVOLUME_STATUS']._serialized_end=969 - _globals['_ACTOR']._serialized_start=972 - _globals['_ACTOR']._serialized_end=1185 - _globals['_EGRESSPOLICY']._serialized_start=1187 - _globals['_EGRESSPOLICY']._serialized_end=1280 - _globals['_EGRESSRULE']._serialized_start=1282 - _globals['_EGRESSRULE']._serialized_end=1405 - _globals['_HOSTNAMERULE']._serialized_start=1407 - _globals['_HOSTNAMERULE']._serialized_end=1483 - _globals['_CIDRRULE']._serialized_start=1485 - _globals['_CIDRRULE']._serialized_end=1510 - _globals['_EGRESSRULEEFFECTS']._serialized_start=1512 - _globals['_EGRESSRULEEFFECTS']._serialized_end=1597 - _globals['_CREDENTIALHEADERINJECTION']._serialized_start=1599 - _globals['_CREDENTIALHEADERINJECTION']._serialized_end=1682 - _globals['_ACTORSTATUS']._serialized_start=1685 - _globals['_ACTORSTATUS']._serialized_end=2053 - _globals['_WORKERASSIGNMENT']._serialized_start=2056 - _globals['_WORKERASSIGNMENT']._serialized_end=2223 - _globals['_TAGSTATUS']._serialized_start=2226 - _globals['_TAGSTATUS']._serialized_end=2361 - _globals['_TAG']._serialized_start=2364 - _globals['_TAG']._serialized_end=2522 - _globals['_ATESPACE']._serialized_start=2524 - _globals['_ATESPACE']._serialized_end=2578 - _globals['_OBJECTREF']._serialized_start=2580 - _globals['_OBJECTREF']._serialized_end=2623 - _globals['_ACTORTEMPLATE']._serialized_start=2626 - _globals['_ACTORTEMPLATE']._serialized_end=2981 - _globals['_RESOURCES']._serialized_start=2983 - _globals['_RESOURCES']._serialized_end=3026 - _globals['_LIMITS']._serialized_start=3028 - _globals['_LIMITS']._serialized_end=3068 - _globals['_GOLDENSNAPSHOTSTATUS']._serialized_start=3071 - _globals['_GOLDENSNAPSHOTSTATUS']._serialized_end=3216 - _globals['_ACTORTEMPLATESTATUS']._serialized_start=3218 - _globals['_ACTORTEMPLATESTATUS']._serialized_end=3301 - _globals['_SANDBOXCONFIG']._serialized_start=3303 - _globals['_SANDBOXCONFIG']._serialized_end=3384 - _globals['_SNAPSHOTSCONFIG']._serialized_start=3387 - _globals['_SNAPSHOTSCONFIG']._serialized_end=3570 - _globals['_ONRESUMECONFIG']._serialized_start=3572 - _globals['_ONRESUMECONFIG']._serialized_end=3629 - _globals['_CONTAINER']._serialized_start=3632 - _globals['_CONTAINER']._serialized_end=3906 - _globals['_SECURITYCONTEXT']._serialized_start=3908 - _globals['_SECURITYCONTEXT']._serialized_end=3969 - _globals['_CAPABILITIES']._serialized_start=3971 - _globals['_CAPABILITIES']._serialized_end=4012 - _globals['_ENVVAR']._serialized_start=4014 - _globals['_ENVVAR']._serialized_end=4051 - _globals['_CONTAINERREADYZ']._serialized_start=4053 - _globals['_CONTAINERREADYZ']._serialized_end=4136 - _globals['_HTTPGETACTION']._serialized_start=4138 - _globals['_HTTPGETACTION']._serialized_end=4181 - _globals['_VOLUME']._serialized_start=4184 - _globals['_VOLUME']._serialized_end=4420 - _globals['_IMAGEVOLUMESOURCE']._serialized_start=4422 - _globals['_IMAGEVOLUMESOURCE']._serialized_end=4460 - _globals['_DURABLEDIRVOLUMESOURCE']._serialized_start=4462 - _globals['_DURABLEDIRVOLUMESOURCE']._serialized_end=4486 - _globals['_EXTERNALVOLUMETEMPLATE']._serialized_start=4488 - _globals['_EXTERNALVOLUMETEMPLATE']._serialized_end=4558 - _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_start=4560 - _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_end=4636 - _globals['_SYSTEMINFODATASOURCE']._serialized_start=4639 - _globals['_SYSTEMINFODATASOURCE']._serialized_end=4771 - _globals['_ACTORMETADATADATASOURCE']._serialized_start=4773 - _globals['_ACTORMETADATADATASOURCE']._serialized_end=4840 - _globals['_ACTORMETADATAITEM']._serialized_start=4842 - _globals['_ACTORMETADATAITEM']._serialized_end=4918 - _globals['_TRUSTBUNDLEDATASOURCE']._serialized_start=4920 - _globals['_TRUSTBUNDLEDATASOURCE']._serialized_end=4971 - _globals['_VOLUMEMOUNT']._serialized_start=4973 - _globals['_VOLUMEMOUNT']._serialized_end=5020 - _globals['_CREATEATESPACEREQUEST']._serialized_start=5022 - _globals['_CREATEATESPACEREQUEST']._serialized_end=5081 - _globals['_GETATESPACEREQUEST']._serialized_start=5083 - _globals['_GETATESPACEREQUEST']._serialized_end=5140 - _globals['_LISTATESPACESREQUEST']._serialized_start=5142 - _globals['_LISTATESPACESREQUEST']._serialized_end=5203 - _globals['_LISTATESPACESRESPONSE']._serialized_start=5205 - _globals['_LISTATESPACESRESPONSE']._serialized_end=5290 - _globals['_DELETEATESPACEREQUEST']._serialized_start=5292 - _globals['_DELETEATESPACEREQUEST']._serialized_end=5352 - _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_start=5354 - _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_end=5429 - _globals['_GETACTORTEMPLATEREQUEST']._serialized_start=5431 - _globals['_GETACTORTEMPLATEREQUEST']._serialized_end=5499 - _globals['_LISTACTORTEMPLATESREQUEST']._serialized_start=5501 - _globals['_LISTACTORTEMPLATESREQUEST']._serialized_end=5585 - _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_start=5587 - _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_end=5688 - _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_start=5690 - _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_end=5761 - _globals['_GETACTORREQUEST']._serialized_start=5763 - _globals['_GETACTORREQUEST']._serialized_end=5814 - _globals['_CREATEACTORREQUEST']._serialized_start=5816 - _globals['_CREATEACTORREQUEST']._serialized_end=5866 - _globals['_UPDATEACTORREQUEST']._serialized_start=5868 - _globals['_UPDATEACTORREQUEST']._serialized_end=5918 - _globals['_SUSPENDACTORREQUEST']._serialized_start=5920 - _globals['_SUSPENDACTORREQUEST']._serialized_end=5975 - _globals['_SUSPENDACTORRESPONSE']._serialized_start=5977 - _globals['_SUSPENDACTORRESPONSE']._serialized_end=6029 - _globals['_PAUSEACTORREQUEST']._serialized_start=6031 - _globals['_PAUSEACTORREQUEST']._serialized_end=6084 - _globals['_PAUSEACTORRESPONSE']._serialized_start=6086 - _globals['_PAUSEACTORRESPONSE']._serialized_end=6136 - _globals['_RESUMEACTORREQUEST']._serialized_start=6138 - _globals['_RESUMEACTORREQUEST']._serialized_end=6192 - _globals['_RESUMEACTORRESPONSE']._serialized_start=6194 - _globals['_RESUMEACTORRESPONSE']._serialized_end=6262 - _globals['_DELETEACTORREQUEST']._serialized_start=6264 - _globals['_DELETEACTORREQUEST']._serialized_end=6337 - _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_start=6339 - _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_end=6402 - _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_start=6404 - _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_end=6515 - _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_start=6517 - _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_end=6628 - _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_start=6630 - _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_end=6696 - _globals['_GETTAGREQUEST']._serialized_start=6698 - _globals['_GETTAGREQUEST']._serialized_end=6745 - _globals['_MINTACTORJWTREQUEST']._serialized_start=6747 - _globals['_MINTACTORJWTREQUEST']._serialized_end=6839 - _globals['_MINTACTORJWTRESPONSE']._serialized_start=6841 - _globals['_MINTACTORJWTRESPONSE']._serialized_end=6882 - _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_start=6885 - _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_end=7054 - _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_start=7056 - _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_end=7114 - _globals['_GETACTORSNAPSHOTREQUEST']._serialized_start=7116 - _globals['_GETACTORSNAPSHOTREQUEST']._serialized_end=7184 - _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_start=7186 - _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_end=7261 - _globals['_LISTTAGSREQUEST']._serialized_start=7263 - _globals['_LISTTAGSREQUEST']._serialized_end=7337 - _globals['_LISTTAGSRESPONSE']._serialized_start=7339 - _globals['_LISTTAGSRESPONSE']._serialized_end=7409 - _globals['_CREATETAGREQUEST']._serialized_start=7411 - _globals['_CREATETAGREQUEST']._serialized_end=7455 - _globals['_UPDATETAGREQUEST']._serialized_start=7457 - _globals['_UPDATETAGREQUEST']._serialized_end=7501 - _globals['_DELETETAGREQUEST']._serialized_start=7503 - _globals['_DELETETAGREQUEST']._serialized_end=7553 - _globals['_DELETEOPTIONS']._serialized_start=7555 - _globals['_DELETEOPTIONS']._serialized_end=7600 - _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_start=7602 - _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_end=7711 - _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_start=7713 - _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_end=7826 - _globals['_LISTWORKERSREQUEST']._serialized_start=7828 - _globals['_LISTWORKERSREQUEST']._serialized_end=7887 - _globals['_LISTWORKERSRESPONSE']._serialized_start=7889 - _globals['_LISTWORKERSRESPONSE']._serialized_end=7968 - _globals['_GETWORKERREQUEST']._serialized_start=7970 - _globals['_GETWORKERREQUEST']._serialized_end=8023 - _globals['_CREATEWORKERREQUEST']._serialized_start=8025 - _globals['_CREATEWORKERREQUEST']._serialized_end=8078 - _globals['_UPDATEWORKERREQUEST']._serialized_start=8080 - _globals['_UPDATEWORKERREQUEST']._serialized_end=8133 - _globals['_DELETEWORKERREQUEST']._serialized_start=8135 - _globals['_DELETEWORKERREQUEST']._serialized_end=8231 - _globals['_DRAINWORKERREQUEST']._serialized_start=8233 - _globals['_DRAINWORKERREQUEST']._serialized_end=8288 - _globals['_LISTACTORSREQUEST']._serialized_start=8290 - _globals['_LISTACTORSREQUEST']._serialized_end=8366 - _globals['_LISTACTORSRESPONSE']._serialized_start=8368 - _globals['_LISTACTORSRESPONSE']._serialized_end=8444 - _globals['_WORKER']._serialized_start=8447 - _globals['_WORKER']._serialized_end=8773 - _globals['_WORKER_LABELSENTRY']._serialized_start=8728 - _globals['_WORKER_LABELSENTRY']._serialized_end=8773 - _globals['_WORKERSTATUS']._serialized_start=8776 - _globals['_WORKERSTATUS']._serialized_end=8913 - _globals['_WORKERRESOURCES']._serialized_start=8915 - _globals['_WORKERRESOURCES']._serialized_end=8986 - _globals['_ACTORASSIGNMENT']._serialized_start=8989 - _globals['_ACTORASSIGNMENT']._serialized_end=9188 - _globals['_SETWORKERCAPACITYREQUEST']._serialized_start=9190 - _globals['_SETWORKERCAPACITYREQUEST']._serialized_end=9294 - _globals['_SETWORKERCAPACITYRESPONSE']._serialized_start=9296 - _globals['_SETWORKERCAPACITYRESPONSE']._serialized_end=9355 - _globals['_CONTROL']._serialized_start=10392 - _globals['_CONTROL']._serialized_end=12861 - _globals['_WORKERSERVICE']._serialized_start=12863 - _globals['_WORKERSERVICE']._serialized_end=12968 + _globals['_EXTERNALSNAPSHOT']._serialized_end=207 + _globals['_LOCALSNAPSHOTINFO']._serialized_start=210 + _globals['_LOCALSNAPSHOTINFO']._serialized_end=372 + _globals['_SELECTOR']._serialized_start=374 + _globals['_SELECTOR']._serialized_end=493 + _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_start=443 + _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_end=493 + _globals['_RESOURCEMETADATA']._serialized_start=496 + _globals['_RESOURCEMETADATA']._serialized_end=674 + _globals['_EXTERNALVOLUME']._serialized_start=677 + _globals['_EXTERNALVOLUME']._serialized_end=1025 + _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_start=878 + _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_end=930 + _globals['_EXTERNALVOLUME_STATUS']._serialized_start=932 + _globals['_EXTERNALVOLUME_STATUS']._serialized_end=1025 + _globals['_ACTOR']._serialized_start=1028 + _globals['_ACTOR']._serialized_end=1241 + _globals['_EGRESSPOLICY']._serialized_start=1243 + _globals['_EGRESSPOLICY']._serialized_end=1336 + _globals['_EGRESSRULE']._serialized_start=1338 + _globals['_EGRESSRULE']._serialized_end=1461 + _globals['_HOSTNAMERULE']._serialized_start=1463 + _globals['_HOSTNAMERULE']._serialized_end=1539 + _globals['_CIDRRULE']._serialized_start=1541 + _globals['_CIDRRULE']._serialized_end=1566 + _globals['_EGRESSRULEEFFECTS']._serialized_start=1568 + _globals['_EGRESSRULEEFFECTS']._serialized_end=1653 + _globals['_CREDENTIALHEADERINJECTION']._serialized_start=1655 + _globals['_CREDENTIALHEADERINJECTION']._serialized_end=1738 + _globals['_ACTORSTATUS']._serialized_start=1741 + _globals['_ACTORSTATUS']._serialized_end=2109 + _globals['_WORKERASSIGNMENT']._serialized_start=2112 + _globals['_WORKERASSIGNMENT']._serialized_end=2279 + _globals['_TAGSTATUS']._serialized_start=2282 + _globals['_TAGSTATUS']._serialized_end=2417 + _globals['_TAG']._serialized_start=2420 + _globals['_TAG']._serialized_end=2578 + _globals['_ATESPACE']._serialized_start=2580 + _globals['_ATESPACE']._serialized_end=2634 + _globals['_OBJECTREF']._serialized_start=2636 + _globals['_OBJECTREF']._serialized_end=2679 + _globals['_ACTORTEMPLATE']._serialized_start=2682 + _globals['_ACTORTEMPLATE']._serialized_end=3037 + _globals['_RESOURCES']._serialized_start=3039 + _globals['_RESOURCES']._serialized_end=3082 + _globals['_LIMITS']._serialized_start=3084 + _globals['_LIMITS']._serialized_end=3124 + _globals['_GOLDENSNAPSHOTSTATUS']._serialized_start=3127 + _globals['_GOLDENSNAPSHOTSTATUS']._serialized_end=3272 + _globals['_ACTORTEMPLATESTATUS']._serialized_start=3274 + _globals['_ACTORTEMPLATESTATUS']._serialized_end=3357 + _globals['_SANDBOXCONFIG']._serialized_start=3359 + _globals['_SANDBOXCONFIG']._serialized_end=3440 + _globals['_SNAPSHOTSCONFIG']._serialized_start=3443 + _globals['_SNAPSHOTSCONFIG']._serialized_end=3626 + _globals['_ONRESUMECONFIG']._serialized_start=3628 + _globals['_ONRESUMECONFIG']._serialized_end=3685 + _globals['_CONTAINER']._serialized_start=3688 + _globals['_CONTAINER']._serialized_end=3962 + _globals['_SECURITYCONTEXT']._serialized_start=3964 + _globals['_SECURITYCONTEXT']._serialized_end=4025 + _globals['_CAPABILITIES']._serialized_start=4027 + _globals['_CAPABILITIES']._serialized_end=4068 + _globals['_ENVVAR']._serialized_start=4070 + _globals['_ENVVAR']._serialized_end=4107 + _globals['_CONTAINERREADYZ']._serialized_start=4109 + _globals['_CONTAINERREADYZ']._serialized_end=4192 + _globals['_HTTPGETACTION']._serialized_start=4194 + _globals['_HTTPGETACTION']._serialized_end=4237 + _globals['_VOLUME']._serialized_start=4240 + _globals['_VOLUME']._serialized_end=4476 + _globals['_IMAGEVOLUMESOURCE']._serialized_start=4478 + _globals['_IMAGEVOLUMESOURCE']._serialized_end=4516 + _globals['_DURABLEDIRVOLUMESOURCE']._serialized_start=4518 + _globals['_DURABLEDIRVOLUMESOURCE']._serialized_end=4542 + _globals['_EXTERNALVOLUMETEMPLATE']._serialized_start=4544 + _globals['_EXTERNALVOLUMETEMPLATE']._serialized_end=4614 + _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_start=4616 + _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_end=4692 + _globals['_SYSTEMINFODATASOURCE']._serialized_start=4695 + _globals['_SYSTEMINFODATASOURCE']._serialized_end=4827 + _globals['_ACTORMETADATADATASOURCE']._serialized_start=4829 + _globals['_ACTORMETADATADATASOURCE']._serialized_end=4896 + _globals['_ACTORMETADATAITEM']._serialized_start=4898 + _globals['_ACTORMETADATAITEM']._serialized_end=4974 + _globals['_TRUSTBUNDLEDATASOURCE']._serialized_start=4976 + _globals['_TRUSTBUNDLEDATASOURCE']._serialized_end=5027 + _globals['_VOLUMEMOUNT']._serialized_start=5029 + _globals['_VOLUMEMOUNT']._serialized_end=5076 + _globals['_CREATEATESPACEREQUEST']._serialized_start=5078 + _globals['_CREATEATESPACEREQUEST']._serialized_end=5137 + _globals['_GETATESPACEREQUEST']._serialized_start=5139 + _globals['_GETATESPACEREQUEST']._serialized_end=5196 + _globals['_LISTATESPACESREQUEST']._serialized_start=5198 + _globals['_LISTATESPACESREQUEST']._serialized_end=5259 + _globals['_LISTATESPACESRESPONSE']._serialized_start=5261 + _globals['_LISTATESPACESRESPONSE']._serialized_end=5346 + _globals['_DELETEATESPACEREQUEST']._serialized_start=5348 + _globals['_DELETEATESPACEREQUEST']._serialized_end=5408 + _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_start=5410 + _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_end=5485 + _globals['_GETACTORTEMPLATEREQUEST']._serialized_start=5487 + _globals['_GETACTORTEMPLATEREQUEST']._serialized_end=5555 + _globals['_LISTACTORTEMPLATESREQUEST']._serialized_start=5557 + _globals['_LISTACTORTEMPLATESREQUEST']._serialized_end=5641 + _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_start=5643 + _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_end=5744 + _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_start=5746 + _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_end=5817 + _globals['_GETACTORREQUEST']._serialized_start=5819 + _globals['_GETACTORREQUEST']._serialized_end=5870 + _globals['_CREATEACTORREQUEST']._serialized_start=5872 + _globals['_CREATEACTORREQUEST']._serialized_end=5922 + _globals['_UPDATEACTORREQUEST']._serialized_start=5924 + _globals['_UPDATEACTORREQUEST']._serialized_end=5974 + _globals['_SUSPENDACTORREQUEST']._serialized_start=5976 + _globals['_SUSPENDACTORREQUEST']._serialized_end=6031 + _globals['_SUSPENDACTORRESPONSE']._serialized_start=6033 + _globals['_SUSPENDACTORRESPONSE']._serialized_end=6085 + _globals['_PAUSEACTORREQUEST']._serialized_start=6087 + _globals['_PAUSEACTORREQUEST']._serialized_end=6140 + _globals['_PAUSEACTORRESPONSE']._serialized_start=6142 + _globals['_PAUSEACTORRESPONSE']._serialized_end=6192 + _globals['_RESUMEACTORREQUEST']._serialized_start=6194 + _globals['_RESUMEACTORREQUEST']._serialized_end=6248 + _globals['_RESUMEACTORRESPONSE']._serialized_start=6250 + _globals['_RESUMEACTORRESPONSE']._serialized_end=6318 + _globals['_DELETEACTORREQUEST']._serialized_start=6320 + _globals['_DELETEACTORREQUEST']._serialized_end=6393 + _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_start=6395 + _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_end=6458 + _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_start=6460 + _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_end=6571 + _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_start=6573 + _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_end=6684 + _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_start=6686 + _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_end=6752 + _globals['_GETTAGREQUEST']._serialized_start=6754 + _globals['_GETTAGREQUEST']._serialized_end=6801 + _globals['_MINTACTORJWTREQUEST']._serialized_start=6803 + _globals['_MINTACTORJWTREQUEST']._serialized_end=6895 + _globals['_MINTACTORJWTRESPONSE']._serialized_start=6897 + _globals['_MINTACTORJWTRESPONSE']._serialized_end=6938 + _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_start=6941 + _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_end=7110 + _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_start=7112 + _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_end=7170 + _globals['_GETACTORSNAPSHOTREQUEST']._serialized_start=7172 + _globals['_GETACTORSNAPSHOTREQUEST']._serialized_end=7240 + _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_start=7242 + _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_end=7317 + _globals['_LISTTAGSREQUEST']._serialized_start=7319 + _globals['_LISTTAGSREQUEST']._serialized_end=7393 + _globals['_LISTTAGSRESPONSE']._serialized_start=7395 + _globals['_LISTTAGSRESPONSE']._serialized_end=7465 + _globals['_CREATETAGREQUEST']._serialized_start=7467 + _globals['_CREATETAGREQUEST']._serialized_end=7511 + _globals['_UPDATETAGREQUEST']._serialized_start=7513 + _globals['_UPDATETAGREQUEST']._serialized_end=7557 + _globals['_DELETETAGREQUEST']._serialized_start=7559 + _globals['_DELETETAGREQUEST']._serialized_end=7609 + _globals['_DELETEOPTIONS']._serialized_start=7611 + _globals['_DELETEOPTIONS']._serialized_end=7656 + _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_start=7658 + _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_end=7767 + _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_start=7769 + _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_end=7882 + _globals['_LISTWORKERSREQUEST']._serialized_start=7884 + _globals['_LISTWORKERSREQUEST']._serialized_end=7943 + _globals['_LISTWORKERSRESPONSE']._serialized_start=7945 + _globals['_LISTWORKERSRESPONSE']._serialized_end=8024 + _globals['_GETWORKERREQUEST']._serialized_start=8026 + _globals['_GETWORKERREQUEST']._serialized_end=8079 + _globals['_CREATEWORKERREQUEST']._serialized_start=8081 + _globals['_CREATEWORKERREQUEST']._serialized_end=8134 + _globals['_UPDATEWORKERREQUEST']._serialized_start=8136 + _globals['_UPDATEWORKERREQUEST']._serialized_end=8189 + _globals['_DELETEWORKERREQUEST']._serialized_start=8191 + _globals['_DELETEWORKERREQUEST']._serialized_end=8287 + _globals['_DRAINWORKERREQUEST']._serialized_start=8289 + _globals['_DRAINWORKERREQUEST']._serialized_end=8344 + _globals['_LISTACTORSREQUEST']._serialized_start=8346 + _globals['_LISTACTORSREQUEST']._serialized_end=8422 + _globals['_LISTACTORSRESPONSE']._serialized_start=8424 + _globals['_LISTACTORSRESPONSE']._serialized_end=8500 + _globals['_WORKER']._serialized_start=8503 + _globals['_WORKER']._serialized_end=8829 + _globals['_WORKER_LABELSENTRY']._serialized_start=8784 + _globals['_WORKER_LABELSENTRY']._serialized_end=8829 + _globals['_WORKERSTATUS']._serialized_start=8832 + _globals['_WORKERSTATUS']._serialized_end=8969 + _globals['_WORKERRESOURCES']._serialized_start=8971 + _globals['_WORKERRESOURCES']._serialized_end=9042 + _globals['_ACTORASSIGNMENT']._serialized_start=9045 + _globals['_ACTORASSIGNMENT']._serialized_end=9244 + _globals['_SETWORKERCAPACITYREQUEST']._serialized_start=9246 + _globals['_SETWORKERCAPACITYREQUEST']._serialized_end=9350 + _globals['_SETWORKERCAPACITYRESPONSE']._serialized_start=9352 + _globals['_SETWORKERCAPACITYRESPONSE']._serialized_end=9411 + _globals['_CONTROL']._serialized_start=10448 + _globals['_CONTROL']._serialized_end=12917 + _globals['_WORKERSERVICE']._serialized_start=12919 + _globals['_WORKERSERVICE']._serialized_end=13024 # @@protoc_insertion_point(module_scope) diff --git a/cmd/ateapi/internal/controlapi/zz_generated.validation.go b/cmd/ateapi/internal/controlapi/zz_generated.validation.go index dc7abf7379..57f832d317 100644 --- a/cmd/ateapi/internal/controlapi/zz_generated.validation.go +++ b/cmd/ateapi/internal/controlapi/zz_generated.validation.go @@ -2984,6 +2984,34 @@ func Validate_ExternalSnapshot( errs = append(errs, fn(fldPath.Child("content_scope"), &obj.ContentScope, oldVal, oldObj != nil)...) } + { // field ateapipb.ExternalSnapshot.ActorTemplateUid + fn := func( + fldPath *field.Path, + obj, oldObj *string, + oldValueCorrelated bool) (errs field.ErrorList) { + // don't revalidate unchanged data + if oldValueCorrelated && op.Type == operation.Update { + if obj == oldObj || (obj != nil && oldObj != nil && *obj == *oldObj) { + return nil + } + } + // call field-attached validations + earlyReturn := false + if e := validate.OptionalValue(ctx, op, fldPath, obj, oldObj).MarkShortCircuit(); len(e) != 0 { + earlyReturn = true + } + if earlyReturn { + return // do not proceed + } + return + } + oldVal := safe.Field(oldObj, + func(oldObj *ateapipb.ExternalSnapshot) *string { + return &oldObj.ActorTemplateUid + }) + errs = append(errs, fn(fldPath.Child("actor_template_uid"), &obj.ActorTemplateUid, oldVal, oldObj != nil)...) + } + return errs } @@ -4617,6 +4645,34 @@ func Validate_LocalSnapshotInfo( errs = append(errs, fn(fldPath.Child("content_scope"), &obj.ContentScope, oldVal, oldObj != nil)...) } + { // field ateapipb.LocalSnapshotInfo.ActorTemplateUid + fn := func( + fldPath *field.Path, + obj, oldObj *string, + oldValueCorrelated bool) (errs field.ErrorList) { + // don't revalidate unchanged data + if oldValueCorrelated && op.Type == operation.Update { + if obj == oldObj || (obj != nil && oldObj != nil && *obj == *oldObj) { + return nil + } + } + // call field-attached validations + earlyReturn := false + if e := validate.OptionalValue(ctx, op, fldPath, obj, oldObj).MarkShortCircuit(); len(e) != 0 { + earlyReturn = true + } + if earlyReturn { + return // do not proceed + } + return + } + oldVal := safe.Field(oldObj, + func(oldObj *ateapipb.LocalSnapshotInfo) *string { + return &oldObj.ActorTemplateUid + }) + errs = append(errs, fn(fldPath.Child("actor_template_uid"), &obj.ActorTemplateUid, oldVal, oldObj != nil)...) + } + return errs } diff --git a/pkg/proto/ateapipb/ateapi.pb.go b/pkg/proto/ateapipb/ateapi.pb.go index 967f06922e..d546e4bbd5 100644 --- a/pkg/proto/ateapipb/ateapi.pb.go +++ b/pkg/proto/ateapipb/ateapi.pb.go @@ -537,9 +537,14 @@ type ExternalSnapshot struct { // +k8s:optional // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum - ContentScope SnapshotContentScope `protobuf:"varint,2,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + ContentScope SnapshotContentScope `protobuf:"varint,2,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` + // UID of the ActorTemplate whose sandbox this snapshot's guest state was + // captured from. + // + // +k8s:optional + ActorTemplateUid string `protobuf:"bytes,3,opt,name=actor_template_uid,json=actorTemplateUid,proto3" json:"actor_template_uid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExternalSnapshot) Reset() { @@ -586,6 +591,13 @@ func (x *ExternalSnapshot) GetContentScope() SnapshotContentScope { return SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED } +func (x *ExternalSnapshot) GetActorTemplateUid() string { + if x != nil { + return x.ActorTemplateUid + } + return "" +} + type LocalSnapshotInfo struct { state protoimpl.MessageState `protogen:"open.v1"` // The name of the local checkpoint on each of the nodes below. Checkpoint @@ -611,9 +623,14 @@ type LocalSnapshotInfo struct { // +k8s:optional // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum - ContentScope SnapshotContentScope `protobuf:"varint,3,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + ContentScope SnapshotContentScope `protobuf:"varint,3,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` + // UID of the ActorTemplate whose sandbox this checkpoint's guest state was + // captured from. + // + // +k8s:optional + ActorTemplateUid string `protobuf:"bytes,4,opt,name=actor_template_uid,json=actorTemplateUid,proto3" json:"actor_template_uid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LocalSnapshotInfo) Reset() { @@ -667,6 +684,13 @@ func (x *LocalSnapshotInfo) GetContentScope() SnapshotContentScope { return SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED } +func (x *LocalSnapshotInfo) GetActorTemplateUid() string { + if x != nil { + return x.ActorTemplateUid + } + return "" +} + // Selector matches worker pools by label. // Only equality-based matching is supported. type Selector struct { @@ -6848,14 +6872,16 @@ var File_ateapi_proto protoreflect.FileDescriptor const file_ateapi_proto_rawDesc = "" + "\n" + - "\fateapi.proto\x12\x06ateapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"x\n" + + "\fateapi.proto\x12\x06ateapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa6\x01\n" + "\x10ExternalSnapshot\x12!\n" + "\fsnapshot_uri\x18\x01 \x01(\tR\vsnapshotUri\x12A\n" + - "\rcontent_scope\x18\x02 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\"\xbd\x01\n" + + "\rcontent_scope\x18\x02 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\x12,\n" + + "\x12actor_template_uid\x18\x03 \x01(\tR\x10actorTemplateUid\"\xeb\x01\n" + "\x11LocalSnapshotInfo\x12#\n" + "\rsnapshot_name\x18\x01 \x01(\tR\fsnapshotName\x12@\n" + "\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\tR\x19nodeVmsWithLocalSnapshots\x12A\n" + - "\rcontent_scope\x18\x03 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\"\x90\x01\n" + + "\rcontent_scope\x18\x03 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\x12,\n" + + "\x12actor_template_uid\x18\x04 \x01(\tR\x10actorTemplateUid\"\x90\x01\n" + "\bSelector\x12D\n" + "\fmatch_labels\x18\x01 \x03(\v2!.ateapi.Selector.MatchLabelsEntryR\vmatchLabels\x1a>\n" + "\x10MatchLabelsEntry\x12\x10\n" + diff --git a/pkg/proto/ateapipb/ateapi.proto b/pkg/proto/ateapipb/ateapi.proto index 0022537716..7a638a69a8 100644 --- a/pkg/proto/ateapipb/ateapi.proto +++ b/pkg/proto/ateapipb/ateapi.proto @@ -155,6 +155,12 @@ message ExternalSnapshot { // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum SnapshotContentScope content_scope = 2; + + // UID of the ActorTemplate whose sandbox this snapshot's guest state was + // captured from. + // + // +k8s:optional + string actor_template_uid = 3; } message LocalSnapshotInfo { @@ -184,6 +190,12 @@ message LocalSnapshotInfo { // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum SnapshotContentScope content_scope = 3; + + // UID of the ActorTemplate whose sandbox this checkpoint's guest state was + // captured from. + // + // +k8s:optional + string actor_template_uid = 4; } enum SnapshotContentScope { From 99d9a563d1fc952a2d1858c56204e65d13077b1b Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Thu, 17 Sep 2026 11:43:34 -0700 Subject: [PATCH 2/7] Stamp actor_template_uid on snapshots at capture and creation Stamp ExternalSnapshot.actor_template_uid and LocalSnapshotInfo.actor_template_uid with the active sandbox's ActorTemplate UID when suspending or pausing an actor, and when creating an actor from a tag. --- cmd/ateapi/internal/controlapi/actor.go | 1 + .../internal/controlapi/functionaltest/actor_test.go | 9 +++++++-- cmd/ateapi/internal/controlapi/workflow_pause.go | 5 +++-- cmd/ateapi/internal/controlapi/workflow_pause_test.go | 4 ++++ cmd/ateapi/internal/controlapi/workflow_suspend.go | 5 +++-- .../internal/controlapi/workflow_suspend_test.go | 10 ++++++++-- 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/cmd/ateapi/internal/controlapi/actor.go b/cmd/ateapi/internal/controlapi/actor.go index 0049eda943..e7e0f8be58 100644 --- a/cmd/ateapi/internal/controlapi/actor.go +++ b/cmd/ateapi/internal/controlapi/actor.go @@ -140,6 +140,7 @@ func (s *ServiceImpl) CreateActor(ctx context.Context, inActor *ateapipb.Actor) // repoint before that first resume reads as "no guest state" instead of // "replaced template", and the resume restores the old template's // memory and rootfs in full instead of the volume data alone. + outActor.Status.ExternalSnapshot.ActorTemplateUid = sourceTag.GetStatus().GetActorTemplateUid() outActor.Status.CurrentActorTemplateUid = sourceTag.GetStatus().GetActorTemplateUid() } if errs := validateActorUpdate(ctx, field.NewPath("actor"), outActor, inActor, true); len(errs) > 0 { diff --git a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go index 07ce4cd75a..fa9f172e6e 100644 --- a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go +++ b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go @@ -2331,8 +2331,12 @@ func TestSuspendActor(t *testing.T) { Metadata: &ateapipb.ResourceMetadata{Name: name, Atespace: testAtespace}, ActorTemplate: &ateapipb.ObjectRef{Atespace: testAtespace, Name: "tmpl1"}, Status: &ateapipb.ActorStatus{ - State: ateapipb.ActorState_ACTOR_STATE_SUSPENDED, - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: snapshotURI, ContentScope: sourceActor.GetStatus().GetExternalSnapshot().GetContentScope()}, + State: ateapipb.ActorState_ACTOR_STATE_SUSPENDED, + ExternalSnapshot: &ateapipb.ExternalSnapshot{ + SnapshotUri: snapshotURI, + ContentScope: sourceActor.GetStatus().GetExternalSnapshot().GetContentScope(), + ActorTemplateUid: tmpl.GetMetadata().GetUid(), + }, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), }, } @@ -2555,6 +2559,7 @@ func TestPauseActor(t *testing.T) { LocalSnapshotInfo: &ateapipb.LocalSnapshotInfo{ NodeVmsWithLocalSnapshots: []string{"node1"}, ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, + ActorTemplateUid: tmpl.GetMetadata().GetUid(), }, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, diff --git a/cmd/ateapi/internal/controlapi/workflow_pause.go b/cmd/ateapi/internal/controlapi/workflow_pause.go index 3fc4a77c84..e3e4be4e88 100644 --- a/cmd/ateapi/internal/controlapi/workflow_pause.go +++ b/cmd/ateapi/internal/controlapi/workflow_pause.go @@ -277,8 +277,9 @@ func (w *ActorWorkflow) ensurePausedFinalized(ctx context.Context, actorRef reso // TODO(dberkov) - what if InProgressLocalSnapshotName is empty? That shouldn't be possible. if toUpdate.GetStatus().GetInProgressLocalSnapshotName() != "" { localInfo := &ateapipb.LocalSnapshotInfo{ - SnapshotName: toUpdate.GetStatus().GetInProgressLocalSnapshotName(), - ContentScope: contentScope, + SnapshotName: toUpdate.GetStatus().GetInProgressLocalSnapshotName(), + ContentScope: contentScope, + ActorTemplateUid: toUpdate.GetStatus().GetCurrentActorTemplateUid(), } if newState != ateapipb.ActorState_ACTOR_STATE_CRASHED { localInfo.NodeVmsWithLocalSnapshots = []string{nodeName} diff --git a/cmd/ateapi/internal/controlapi/workflow_pause_test.go b/cmd/ateapi/internal/controlapi/workflow_pause_test.go index d12f59e687..3cd69fa075 100644 --- a/cmd/ateapi/internal/controlapi/workflow_pause_test.go +++ b/cmd/ateapi/internal/controlapi/workflow_pause_test.go @@ -134,6 +134,7 @@ func TestEnsurePausedFinalized_RecordsContentScope(t *testing.T) { WorkerPodUid: workerName, }, InProgressLocalSnapshotName: "snap-prefix", + CurrentActorTemplateUid: "tmpl-uid-1", }, }) if _, err := st.CreateWorker(ctx, &ateapipb.Worker{ @@ -167,6 +168,9 @@ func TestEnsurePausedFinalized_RecordsContentScope(t *testing.T) { if scope := got.GetStatus().GetLocalSnapshotInfo().GetContentScope(); scope != tc.want { t.Errorf("LocalSnapshotInfo.ContentScope = %v, want %v", scope, tc.want) } + if uid := got.GetStatus().GetLocalSnapshotInfo().GetActorTemplateUid(); uid != "tmpl-uid-1" { + t.Errorf("LocalSnapshotInfo.ActorTemplateUid = %q, want %q", uid, "tmpl-uid-1") + } }) } } diff --git a/cmd/ateapi/internal/controlapi/workflow_suspend.go b/cmd/ateapi/internal/controlapi/workflow_suspend.go index 8b2421b820..fd7d6f9404 100644 --- a/cmd/ateapi/internal/controlapi/workflow_suspend.go +++ b/cmd/ateapi/internal/controlapi/workflow_suspend.go @@ -391,8 +391,9 @@ func (w *ActorWorkflow) ensureSuspendedFinalized(ctx context.Context, actorRef r externalSnapshot := latestActor.GetStatus().GetExternalSnapshot() if inProgressSnapshotURI != "" { externalSnapshot = &ateapipb.ExternalSnapshot{ - SnapshotUri: inProgressSnapshotURI, - ContentScope: commitSnapshotScope(actorRef.Atespace, actorTemplate), + SnapshotUri: inProgressSnapshotURI, + ContentScope: commitSnapshotScope(actorRef.Atespace, actorTemplate), + ActorTemplateUid: latestActor.GetStatus().GetCurrentActorTemplateUid(), } } diff --git a/cmd/ateapi/internal/controlapi/workflow_suspend_test.go b/cmd/ateapi/internal/controlapi/workflow_suspend_test.go index 63aed9cb6e..0ff61b9ae0 100644 --- a/cmd/ateapi/internal/controlapi/workflow_suspend_test.go +++ b/cmd/ateapi/internal/controlapi/workflow_suspend_test.go @@ -283,8 +283,9 @@ func TestEnsureSuspendedFinalized_NoAssignment(t *testing.T) { actor := &ateapipb.Actor{ Metadata: &ateapipb.ResourceMetadata{Atespace: "team-a", Name: "actor-1"}, Status: &ateapipb.ActorStatus{ - State: ateapipb.ActorState_ACTOR_STATE_SUSPENDING, - InProgressSnapshotUri: snapshotURI, + State: ateapipb.ActorState_ACTOR_STATE_SUSPENDING, + InProgressSnapshotUri: snapshotURI, + CurrentActorTemplateUid: "tmpl-uid-1", LocalSnapshotInfo: &ateapipb.LocalSnapshotInfo{ SnapshotName: "actor-1-pause-snapshot", NodeVmsWithLocalSnapshots: []string{"node1"}, @@ -306,6 +307,11 @@ func TestEnsureSuspendedFinalized_NoAssignment(t *testing.T) { if got := stored.GetStatus().GetExternalSnapshot().GetSnapshotUri(); got != snapshotURI { t.Errorf("SnapshotUri = %q, want %q", got, snapshotURI) } + // The snapshot carries the template it was captured under, so a later + // repoint can tell that its guest state no longer matches. + if got := stored.GetStatus().GetExternalSnapshot().GetActorTemplateUid(); got != "tmpl-uid-1" { + t.Errorf("ExternalSnapshot.ActorTemplateUid = %q, want %q", got, "tmpl-uid-1") + } if got := stored.GetStatus().GetInProgressSnapshotUri(); got != "" { t.Errorf("InProgressSnapshotUri = %q, want cleared", got) } From ea25f5916406a8e89d56194066d8a78fad565f00 Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Thu, 17 Sep 2026 11:47:22 -0700 Subject: [PATCH 3/7] Evaluate template replacement per snapshot on resume Compare targetTemplateUID against LocalSnapshotInfo.actor_template_uid for local checkpoint restores and against ExternalSnapshot.actor_template_uid for external snapshot restores. This ensures resuming a paused actor whose local checkpoint matches the target template restores in FULL even when an older external snapshot on the actor came from a previous template. --- .../controlapi/functionaltest/actor_test.go | 72 +++++++++++ .../internal/controlapi/workflow_resume.go | 32 +++-- .../controlapi/workflow_resume_test.go | 120 +++++++++++++----- 3 files changed, 182 insertions(+), 42 deletions(-) diff --git a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go index fa9f172e6e..245c25d7fe 100644 --- a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go +++ b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go @@ -2497,6 +2497,78 @@ func TestResumeActor_RepointTemplateBeforeResume(t *testing.T) { } } +// TestResumeActor_PausedAfterRepointUsesLocalProvenance verifies that an actor +// paused after a template repoint restores from its pause checkpoint in FULL, +// not DATA. At that point the actor holds an external snapshot captured on v1 +// and a local checkpoint captured on v2; judging the local restore by the +// external snapshot's provenance would wrongly discard the v2 memory image. +func TestResumeActor_PausedAfterRepointUsesLocalProvenance(t *testing.T) { + ns := namespaceForTest("ns-repoint-pause") + tc := setupTest(t, ns) + defer tc.cleanup() + + ctx := context.Background() + tmpl := createTemplate(t, tc, ns) + tmpl2 := proto.Clone(tmpl).(*ateapipb.ActorTemplate) + tmpl2.Metadata = &ateapipb.ResourceMetadata{Atespace: testAtespace, Name: "tmpl2"} + tmpl2.Status = nil + if _, err := tc.client.CreateActorTemplate(ctx, &ateapipb.CreateActorTemplateRequest{ActorTemplate: tmpl2}); err != nil { + t.Fatalf("CreateActorTemplate(tmpl2) failed: %v", err) + } + worker := createWorkerPod(t, tc, ns, "worker-1", "node1", "pool1") + + const name = "actor-1" + actorRef := &ateapipb.ObjectRef{Atespace: testAtespace, Name: name} + if _, err := tc.client.CreateActor(ctx, &ateapipb.CreateActorRequest{Actor: &ateapipb.Actor{ + Metadata: &ateapipb.ResourceMetadata{Atespace: testAtespace, Name: name}, + ActorTemplate: &ateapipb.ObjectRef{Atespace: testAtespace, Name: "tmpl1"}, + }}); err != nil { + t.Fatalf("CreateActor failed: %v", err) + } + if _, err := tc.client.ResumeActor(ctx, &ateapipb.ResumeActorRequest{Actor: actorRef}); err != nil { + t.Fatalf("ResumeActor(v1) failed: %v", err) + } + suspended, err := tc.client.SuspendActor(ctx, &ateapipb.SuspendActorRequest{Actor: actorRef}) + if err != nil { + t.Fatalf("SuspendActor(v1) failed: %v", err) + } + waitForWorkerAvailable(t, tc, worker) + + // Repoint at v2 while suspended; the external snapshot stays on v1. + toUpdate := proto.Clone(suspended.GetActor()).(*ateapipb.Actor) + toUpdate.ActorTemplate = &ateapipb.ObjectRef{Atespace: testAtespace, Name: "tmpl2"} + if _, err := tc.client.UpdateActor(ctx, &ateapipb.UpdateActorRequest{Actor: toUpdate}); err != nil { + t.Fatalf("UpdateActor(tmpl2) failed: %v", err) + } + + // Resume on v2 (this restore is DATA, from the v1 external snapshot), then + // pause; the pause checkpoint is captured on v2 while the external + // snapshot still says v1. + if _, err := tc.client.ResumeActor(ctx, &ateapipb.ResumeActorRequest{Actor: actorRef}); err != nil { + t.Fatalf("ResumeActor(v2 from v1 snapshot) failed: %v", err) + } + if got := tc.fakeAtelet.lastRestoreRequest().GetScope(); got != ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA { + t.Fatalf("first resume on v2 had scope = %v, want DATA", got) + } + if _, err := tc.client.PauseActor(ctx, &ateapipb.PauseActorRequest{Actor: actorRef}); err != nil { + t.Fatalf("PauseActor failed: %v", err) + } + waitForWorkerAvailable(t, tc, worker) + + // Resume from PAUSED: the local checkpoint was captured on v2 and the + // actor's template is v2, so the restore must be FULL. + if _, err := tc.client.ResumeActor(ctx, &ateapipb.ResumeActorRequest{Actor: actorRef}); err != nil { + t.Fatalf("ResumeActor(from v2 pause) failed: %v", err) + } + restoreReq := tc.fakeAtelet.lastRestoreRequest() + if got := restoreReq.GetType(); got != ateletpb.CheckpointType_CHECKPOINT_TYPE_LOCAL { + t.Errorf("restore request type = %v, want LOCAL", got) + } + if got := restoreReq.GetScope(); got != ateletpb.SnapshotScope_SNAPSHOT_SCOPE_FULL { + t.Errorf("restore request scope = %v, want FULL (local checkpoint was captured on v2)", got) + } +} + // TestPauseActor tests the full workflow of pausing a running actor. // Workflow: // 1. Creates a mock ActorTemplate. diff --git a/cmd/ateapi/internal/controlapi/workflow_resume.go b/cmd/ateapi/internal/controlapi/workflow_resume.go index 7bb47fb4c7..4c1dabc419 100644 --- a/cmd/ateapi/internal/controlapi/workflow_resume.go +++ b/cmd/ateapi/internal/controlapi/workflow_resume.go @@ -48,9 +48,13 @@ type resumeSnapshotSource struct { // selects the golden snapshot as the boot source for the pending restore: // restore then combines the golden snapshot with the actor's data. GoldenSnapshotURI resources.SnapshotURI - // TemplateReplaced is true when the snapshot's recorded template UID - // differs from the actor's current template. - TemplateReplaced bool + // LocalTemplateReplaced and ExternalTemplateReplaced are true when the + // actor's local pause checkpoint, respectively its external snapshot, was + // captured under a template other than the actor's current one. They are + // tracked separately because the two can have been captured under + // different templates, and each restore path reads only its own. + LocalTemplateReplaced bool + ExternalTemplateReplaced bool } // restoreTelemetry labels the restore operation for the resume lifecycle @@ -179,18 +183,22 @@ func (w *ActorWorkflow) loadActorForResume(ctx context.Context, actorRef resourc if err != nil { return nil, nil, src, err } + // Each captured guest state records the template whose sandbox it came + // from, so judge each against the actor's current template on its own: a + // repointed Actor's local checkpoint and its external snapshot need not + // have been captured under the same one. + templateReplaced := func(capturedUnder string) bool { + return capturedUnder != "" && capturedUnder != actorTemplate.GetMetadata().GetUid() + } + if local := actor.GetStatus().GetLocalSnapshotInfo(); local != nil { + src.LocalTemplateReplaced = templateReplaced(local.GetActorTemplateUid()) + } if uri := actor.GetStatus().GetExternalSnapshot().GetSnapshotUri(); uri != "" { if src.SnapshotURI, err = resources.ParseSnapshotURI(uri); err != nil { return nil, nil, src, status.Errorf(codes.DataLoss, "Actor %s external snapshot: %v", actorRef, err) } src.Scope = actor.GetStatus().GetExternalSnapshot().GetContentScope() - // The Actor records the template its guest state was built on; a - // different UID on its current template means it was repointed since - // the capture. - // TODO: Disallow updating the ActorTemplate ID for paused actors here - // as well; it is already disallowed at admission time. - builtOnTemplateUID := actor.GetStatus().GetCurrentActorTemplateUid() - src.TemplateReplaced = builtOnTemplateUID != "" && builtOnTemplateUID != actorTemplate.GetMetadata().GetUid() + src.ExternalTemplateReplaced = templateReplaced(actor.GetStatus().GetExternalSnapshot().GetActorTemplateUid()) } // The template's onResume configuration selects the boot source for the @@ -700,7 +708,7 @@ func (w *ActorWorkflow) ensureAteletRestored(ctx context.Context, actorRef resou // loadActorForResume resolved a golden URI per the template's onResume // configuration, else what the pause captured. switch { - case src.TemplateReplaced: + case src.LocalTemplateReplaced: req.Scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA case !src.GoldenSnapshotURI.IsZero(): req.Scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA_ON_GOLDEN @@ -723,7 +731,7 @@ func (w *ActorWorkflow) ensureAteletRestored(ctx context.Context, actorRef resou var scope ateletpb.SnapshotScope var goldenSnapshotURI string switch { - case src.TemplateReplaced: + case src.ExternalTemplateReplaced: scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA case !src.GoldenSnapshotURI.IsZero(): scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA_ON_GOLDEN diff --git a/cmd/ateapi/internal/controlapi/workflow_resume_test.go b/cmd/ateapi/internal/controlapi/workflow_resume_test.go index 17fc25159e..c2c547c329 100644 --- a/cmd/ateapi/internal/controlapi/workflow_resume_test.go +++ b/cmd/ateapi/internal/controlapi/workflow_resume_test.go @@ -1090,25 +1090,60 @@ func TestLoadActorForResume_DoesNotDefaultGolden(t *testing.T) { } // TestLoadActorForResume_TemplateReplaced covers the detection of a repointed -// actor: the actor records the template UID its guest state was built on, and -// a mismatch with its current template marks the source TemplateReplaced, -// forcing the restore to data-only. +// actor. Each captured guest state records the template it came from and is +// judged against the actor's current template on its own provenance; a +// mismatch forces that restore to data-only. func TestLoadActorForResume_TemplateReplaced(t *testing.T) { actorRef := resources.ActorRef{Atespace: "team-a", Name: "id1"} + // "current" stands for the created template's own UID. + const current = "current" + tests := []struct { name string - // builtOnTemplateUID seeds the template UID the actor's guest state - // was built on; "current" stands for the created template's own UID, - // "" leaves the field unset (an actor from before it was recorded). - builtOnTemplateUID string - noSnapshot bool - want bool + // snapshotUID and localUID are the per-snapshot provenance. localUID + // is only seeded when withLocal is set. + snapshotUID string + localUID string + noSnapshot bool + withLocal bool + wantExternal bool + wantLocal bool }{ - {name: "snapshot taken under the current template", builtOnTemplateUID: "current", want: false}, - {name: "snapshot taken under a replaced template", builtOnTemplateUID: "some-other-uid", want: true}, - {name: "snapshot without a recorded template UID", builtOnTemplateUID: "", want: false}, - {name: "no durable snapshot", noSnapshot: true, want: false}, + { + name: "snapshot taken under the current template", + snapshotUID: current, + }, + { + name: "snapshot taken under a replaced template", + snapshotUID: "some-other-uid", + wantExternal: true, + }, + { + name: "snapshot without a recorded template UID", + snapshotUID: "", + }, + { + name: "no durable snapshot", + noSnapshot: true, + }, + { + // The pause path: a repointed Actor resumed on the new template + // and then paused, so its checkpoint is current while the external + // snapshot it still holds is not. + name: "local checkpoint and external snapshot differ", + snapshotUID: "some-other-uid", + withLocal: true, + localUID: current, + wantExternal: true, + }, + { + name: "local checkpoint taken under a replaced template", + snapshotUID: current, + withLocal: true, + localUID: "some-other-uid", + wantLocal: true, + }, } for _, tt := range tests { @@ -1124,21 +1159,31 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { t.Fatalf("create template: %v", err) } if tmpl.GetMetadata().GetUid() == "" { - t.Fatal("created template has no UID; the matching case would be vacuous") + t.Fatal("created template has no UID; the matching cases would be vacuous") + } + resolve := func(uid string) string { + if uid == current { + return tmpl.GetMetadata().GetUid() + } + return uid } var seedOpts []func(*ateapipb.Actor) if !tt.noSnapshot { - uid := tt.builtOnTemplateUID - if uid == "current" { - uid = tmpl.GetMetadata().GetUid() - } seedOpts = append(seedOpts, func(a *ateapipb.Actor) { a.Status.ExternalSnapshot = &ateapipb.ExternalSnapshot{ - SnapshotUri: someActorSnapshotURI(t, testStorageLocation, actorRef.Atespace, "snap-1"), - ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, + SnapshotUri: someActorSnapshotURI(t, testStorageLocation, actorRef.Atespace, "snap-1"), + ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, + ActorTemplateUid: resolve(tt.snapshotUID), + } + }) + } + if tt.withLocal { + seedOpts = append(seedOpts, func(a *ateapipb.Actor) { + a.Status.LocalSnapshotInfo = &ateapipb.LocalSnapshotInfo{ + SnapshotName: "local-1", + ActorTemplateUid: resolve(tt.localUID), } - a.Status.CurrentActorTemplateUid = uid }) } seedWorkflowActor(t, ctx, persistence, actorRef, "ns", "tmpl1", ateapipb.ActorState_ACTOR_STATE_SUSPENDED, seedOpts...) @@ -1148,8 +1193,11 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { if err != nil { t.Fatalf("loadActorForResume: %v", err) } - if src.TemplateReplaced != tt.want { - t.Errorf("src.TemplateReplaced = %v, want %v", src.TemplateReplaced, tt.want) + if src.ExternalTemplateReplaced != tt.wantExternal { + t.Errorf("src.ExternalTemplateReplaced = %v, want %v", src.ExternalTemplateReplaced, tt.wantExternal) + } + if src.LocalTemplateReplaced != tt.wantLocal { + t.Errorf("src.LocalTemplateReplaced = %v, want %v", src.LocalTemplateReplaced, tt.wantLocal) } }) } @@ -1313,11 +1361,11 @@ func TestResumeActor_AteletWireRequest(t *testing.T) { localSnapshot *ateapipb.LocalSnapshotInfo // externalSnapshot seeds Status.ExternalSnapshot (the durable snapshot). externalSnapshot *ateapipb.ExternalSnapshot - // tmplUID seeds Status.CurrentActorTemplateUid, the template UID the - // guest state was built on: "current" stands for the created template's - // store-assigned UID (unknown until runtime), "" leaves the field unset - // (an actor from before it was recorded), anything else mismatches (a - // repointed actor). + // tmplUID seeds the template UID the snapshot's guest state was built + // on (stamped onto localSnapshot, externalSnapshot, and + // CurrentActorTemplateUid): "current" stands for the created template's + // store-assigned UID (unknown until runtime), "" leaves the field unset, + // anything else mismatches (a repointed actor). tmplUID string } // templateSeed is the ActorTemplate configuration a row persists. @@ -1755,13 +1803,25 @@ func TestResumeActor_AteletWireRequest(t *testing.T) { actorRef := resources.ActorRef{Atespace: "team-a", Name: "id1"} seedWorkflowActor(t, ctx, persistence, actorRef, "ns", "tmpl1", actorState, func(a *ateapipb.Actor) { a.Status.WorkerAssignment = wireTestAssignment() - a.Status.LocalSnapshotInfo = tt.actor.localSnapshot - a.Status.ExternalSnapshot = tt.actor.externalSnapshot uid := tt.actor.tmplUID if uid == "current" { uid = createdTmpl.GetMetadata().GetUid() } a.Status.CurrentActorTemplateUid = uid + if tt.actor.localSnapshot != nil { + local := proto.CloneOf(tt.actor.localSnapshot) + if local.ActorTemplateUid == "" { + local.ActorTemplateUid = uid + } + a.Status.LocalSnapshotInfo = local + } + if tt.actor.externalSnapshot != nil { + ext := proto.CloneOf(tt.actor.externalSnapshot) + if ext.ActorTemplateUid == "" { + ext.ActorTemplateUid = uid + } + a.Status.ExternalSnapshot = ext + } }) actor, loadedTmpl, src, err := w.loadActorForResume(ctx, actorRef) From 9d88892bcd5b8273b106549cd9b65d2cf001a4c8 Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Thu, 17 Sep 2026 12:17:32 -0700 Subject: [PATCH 4/7] e2e: verify per-snapshot actor_template_uid across repoint and pause Extend TestUpdateTemplateLifecycle to assert external_snapshot.actor_template_uid after suspend, and add a pause-then-resume sequence under template B while the actor still holds template A's external snapshot to verify local checkpoint provenance preserves memory state on FULL restores. --- .../e2e/suites/demo/updatetemplate_test.go | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/internal/e2e/suites/demo/updatetemplate_test.go b/internal/e2e/suites/demo/updatetemplate_test.go index 9729117a6b..dc2c9583a7 100644 --- a/internal/e2e/suites/demo/updatetemplate_test.go +++ b/internal/e2e/suites/demo/updatetemplate_test.go @@ -29,7 +29,7 @@ import ( // different ActorTemplate: the actor runs and writes to its durable-dir data // volume under template A, suspends, is repointed at template B via // UpdateActor, and resumes. The resume must detect the template change (the -// recorded current_actor_template_uid no longer matches) and restore +// snapshot's recorded actor_template_uid no longer matches) and restore // data-only: the durable dir survives while the guest cold-boots from // template B. func TestUpdateTemplateLifecycle(t *testing.T) { @@ -140,6 +140,9 @@ func runUpdateTemplateTestCase(t *testing.T, onCommit ateapipb.SnapshotContentSc if got, want := suspended.GetStatus().GetCurrentActorTemplateUid(), createdA.GetMetadata().GetUid(); got != want { t.Errorf("suspended Actor current_actor_template_uid = %q, want template A's %q", got, want) } + if got, want := suspended.GetStatus().GetExternalSnapshot().GetActorTemplateUid(), createdA.GetMetadata().GetUid(); got != want { + t.Errorf("suspended Actor external_snapshot.actor_template_uid = %q, want template A's %q", got, want) + } if suspended.GetStatus().GetExternalSnapshot().GetSnapshotUri() == "" { t.Error("suspended Actor has no external snapshot") } @@ -187,6 +190,57 @@ func runUpdateTemplateTestCase(t *testing.T, onCommit ateapipb.SnapshotContentSc t.Errorf("[after template update] expected %q (template B validating the preserved file), got response: %s", want, resp) } + // + // Pause under template B while the external snapshot is still from + // template A: LocalSnapshotInfo records template B while ExternalSnapshot + // retains template A. Resuming from PAUSED must judge by the local + // checkpoint's provenance (template B) and restore in FULL when onPause is + // FULL, preserving the in-memory counter rather than resetting it. + // + t.Logf("Pausing Actor %q under template B...", actorID) + if _, err := clients.SubstrateAPI.PauseActor(ctx, &ateapipb.PauseActorRequest{ + Actor: &ateapipb.ObjectRef{Atespace: demoAtespace, Name: actorID}, + }); err != nil { + t.Fatalf("failed to pause Actor under template B: %v", err) + } + waitForActorState(ctx, t, clients, actorID, ateapipb.ActorState_ACTOR_STATE_PAUSED) + + paused, err := clients.SubstrateAPI.GetActor(ctx, &ateapipb.GetActorRequest{ + Actor: &ateapipb.ObjectRef{Atespace: demoAtespace, Name: actorID}, + }) + if err != nil { + t.Fatalf("failed to get paused Actor: %v", err) + } + if got, want := paused.GetStatus().GetLocalSnapshotInfo().GetActorTemplateUid(), createdB.GetMetadata().GetUid(); got != want { + t.Errorf("paused Actor local_snapshot_info.actor_template_uid = %q, want template B's %q", got, want) + } + if got, want := paused.GetStatus().GetExternalSnapshot().GetActorTemplateUid(), createdA.GetMetadata().GetUid(); got != want { + t.Errorf("paused Actor external_snapshot.actor_template_uid = %q, want template A's %q", got, want) + } + + t.Logf("Resuming Actor %q from pause under template B...", actorID) + if _, err := e2e.ResumeActorAwaitCapacity(t, ctx, clients, &ateapipb.ResumeActorRequest{ + Actor: &ateapipb.ObjectRef{Atespace: demoAtespace, Name: actorID}, + }); err != nil { + t.Fatalf("failed to resume Actor from pause under template B: %v", err) + } + waitForActorState(ctx, t, clients, actorID, ateapipb.ActorState_ACTOR_STATE_RUNNING) + + resp, err = callActor(t, resources.ActorRef{Atespace: demoAtespace, Name: actorID}) + if err != nil { + t.Fatalf("failed to call actor after pause/resume under template B: %v", err) + } + wantMemAfterPause := 2 + if onCommit == ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_DATA { + wantMemAfterPause = 1 + } + validateCounterResponse(t, resp, "after pause/resume under template B", wantMemAfterPause, 4) + + // TODO: Once RevertActor is available, add a resume -> crash/revert -> + // resume sequence here to verify that reverting after running on template B + // drops B's local state and resumes from template A's external snapshot + // with DATA scope (since ExternalSnapshot.actor_template_uid == A != B). + // A second suspend closes the loop: the resume under B stamped B as the // sprint's template, and the suspend preserves it. t.Logf("Suspending Actor %q again...", actorID) @@ -205,6 +259,9 @@ func runUpdateTemplateTestCase(t *testing.T, onCommit ateapipb.SnapshotContentSc if got, want := suspended.GetStatus().GetCurrentActorTemplateUid(), createdB.GetMetadata().GetUid(); got != want { t.Errorf("re-suspended Actor current_actor_template_uid = %q, want template B's %q", got, want) } + if got, want := suspended.GetStatus().GetExternalSnapshot().GetActorTemplateUid(), createdB.GetMetadata().GetUid(); got != want { + t.Errorf("re-suspended Actor external_snapshot.actor_template_uid = %q, want template B's %q", got, want) + } } // createUpdateTestTemplate creates a per-test WorkerPool plus a substrate From 7ca60b6814b59b1dbda26116fff6e4eeb1af5b3a Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Thu, 17 Sep 2026 12:35:29 -0700 Subject: [PATCH 5/7] test: expect actor_template_uid on ExternalSnapshot in functional tests CreateActor now stamps the resolved template UID onto the golden ExternalSnapshot it seeds, so the functional test expectations for create, update, resume, and pause must carry it too. --- .../internal/controlapi/functionaltest/actor_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go index 245c25d7fe..cd781c1caf 100644 --- a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go +++ b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go @@ -72,7 +72,7 @@ func TestCreateActor_Success(t *testing.T) { Status: &ateapipb.ActorStatus{ State: ateapipb.ActorState_ACTOR_STATE_SUSPENDED, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, + ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, }, WorkerSelector: &ateapipb.Selector{MatchLabels: map[string]string{"tier": "free"}}, } @@ -694,7 +694,7 @@ func TestUpdateActor_Success(t *testing.T) { Status: &ateapipb.ActorStatus{ State: ateapipb.ActorState_ACTOR_STATE_SUSPENDED, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, + ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, }, WorkerSelector: &ateapipb.Selector{ MatchLabels: map[string]string{"tier": "paid"}, @@ -841,7 +841,7 @@ func TestUpdateActor(t *testing.T) { Status: &ateapipb.ActorStatus{ State: ateapipb.ActorState_ACTOR_STATE_SUSPENDED, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, + ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, }, WorkerSelector: &ateapipb.Selector{ MatchLabels: map[string]string{"tier": "paid"}, @@ -1812,7 +1812,7 @@ func TestResumeActor(t *testing.T) { Status: &ateapipb.ActorStatus{ State: ateapipb.ActorState_ACTOR_STATE_RUNNING, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, + ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, WorkerAssignment: &ateapipb.WorkerAssignment{ Worker: &ateapipb.ObjectRef{Name: podUID}, WorkerNamespace: ns, @@ -2634,7 +2634,7 @@ func TestPauseActor(t *testing.T) { ActorTemplateUid: tmpl.GetMetadata().GetUid(), }, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), - ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL}, + ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, }, } From a9353bd5042885cc44077f859f1a0fa048200fbd Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Fri, 18 Sep 2026 11:12:23 -0700 Subject: [PATCH 6/7] check TemplateReplaced only on external snapshot restores and drop LocalSnapshotInfo.actor_template_uid --- benchmarking/locust/common/ateapi_pb2.py | 436 +++++++++--------- .../controlapi/functionaltest/actor_test.go | 1 - .../internal/controlapi/workflow_pause.go | 5 +- .../controlapi/workflow_pause_test.go | 4 - .../internal/controlapi/workflow_resume.go | 27 +- .../controlapi/workflow_resume_test.go | 76 +-- .../controlapi/zz_generated.validation.go | 28 -- .../e2e/suites/demo/updatetemplate_test.go | 13 +- pkg/proto/ateapipb/ateapi.pb.go | 23 +- pkg/proto/ateapipb/ateapi.proto | 6 - 10 files changed, 256 insertions(+), 363 deletions(-) diff --git a/benchmarking/locust/common/ateapi_pb2.py b/benchmarking/locust/common/ateapi_pb2.py index 7e6289a128..3c182749bb 100644 --- a/benchmarking/locust/common/ateapi_pb2.py +++ b/benchmarking/locust/common/ateapi_pb2.py @@ -40,7 +40,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x61teapi.proto\x12\x06\x61teapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"y\n\x10\x45xternalSnapshot\x12\x14\n\x0csnapshot_uri\x18\x01 \x01(\t\x12\x33\n\rcontent_scope\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x03 \x01(\t\"\xa2\x01\n\x11LocalSnapshotInfo\x12\x15\n\rsnapshot_name\x18\x01 \x01(\t\x12%\n\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\t\x12\x33\n\rcontent_scope\x18\x03 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x04 \x01(\t\"w\n\x08Selector\x12\x37\n\x0cmatch_labels\x18\x01 \x03(\x0b\x32!.ateapi.Selector.MatchLabelsEntry\x1a\x32\n\x10MatchLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb2\x01\n\x10ResourceMetadata\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03uid\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xdc\x02\n\x0e\x45xternalVolume\x12\x13\n\x0bvolume_name\x18\x01 \x01(\t\x12\x19\n\x11storage_volume_id\x18\x02 \x01(\t\x12\x13\n\x0bvolume_type\x18\x03 \x01(\t\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.ateapi.ExternalVolume.Status\x12\x41\n\x0evolume_context\x18\x05 \x03(\x0b\x32).ateapi.ExternalVolume.VolumeContextEntry\x1a\x34\n\x12VolumeContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_PENDING\x10\x01\x12\x12\n\x0eSTATUS_CREATED\x10\x02\x12\x13\n\x0fSTATUS_DELETING\x10\x03\"\xd5\x01\n\x05\x41\x63tor\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0e\x61\x63tor_template\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x0fworker_selector\x18\x05 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\nsource_tag\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12#\n\x06status\x18\x07 \x01(\x0b\x32\x13.ateapi.ActorStatus\"]\n\x0c\x45gressPolicy\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x05rules\x18\x02 \x03(\x0b\x32\x12.ateapi.EgressRule\"{\n\nEgressRule\x12\'\n\thostnames\x18\x01 \x01(\x0b\x32\x14.ateapi.HostnameRule\x12\x1f\n\x05\x63idrs\x18\x02 \x01(\x0b\x32\x10.ateapi.CIDRRule\x12#\n\x03\x61ll\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Empty\"L\n\x0cHostnameRule\x12\x10\n\x08patterns\x18\x01 \x03(\t\x12*\n\x07\x65\x66\x66\x65\x63ts\x18\x02 \x01(\x0b\x32\x19.ateapi.EgressRuleEffects\"\x19\n\x08\x43IDRRule\x12\r\n\x05\x63idrs\x18\x01 \x03(\t\"U\n\x11\x45gressRuleEffects\x12@\n\x15inject_static_headers\x18\x01 \x03(\x0b\x32!.ateapi.CredentialHeaderInjection\"S\n\x19\x43redentialHeaderInjection\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x16\n\x0e\x63redential_uri\x18\x03 \x01(\t\"\xf0\x02\n\x0b\x41\x63torStatus\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.ateapi.ActorState\x12\x33\n\x11worker_assignment\x18\x02 \x01(\x0b\x32\x18.ateapi.WorkerAssignment\x12 \n\x18in_progress_snapshot_uri\x18\x03 \x01(\t\x12\x33\n\x11\x65xternal_snapshot\x18\x04 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x36\n\x13local_snapshot_info\x18\x05 \x01(\x0b\x32\x19.ateapi.LocalSnapshotInfo\x12-\n\ractor_volumes\x18\x07 \x03(\x0b\x32\x16.ateapi.ExternalVolume\x12\'\n\x1fin_progress_local_snapshot_name\x18\x08 \x01(\t\x12\"\n\x1a\x63urrent_actor_template_uid\x18\x0b \x01(\t\"\xa7\x01\n\x10WorkerAssignment\x12!\n\x06worker\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x18\n\x10worker_namespace\x18\x01 \x01(\t\x12\x13\n\x0bworker_pool\x18\x02 \x01(\t\x12\x12\n\nworker_pod\x18\x03 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x04 \x01(\t\x12\x15\n\rworker_pod_ip\x18\x05 \x01(\t\"\x87\x01\n\tTagStatus\x12*\n\x08snapshot\x18\x01 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x02 \x01(\t\x12\x18\n\x10storage_location\x18\x03 \x01(\t\x12\x18\n\x10source_actor_uid\x18\x04 \x01(\t\"\x9e\x01\n\x03Tag\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x06status\x18\x02 \x01(\x0b\x32\x11.ateapi.TagStatus\x12\x1f\n\x05scope\x18\x03 \x01(\x0e\x32\x10.ateapi.TagScope\x12\'\n\x0csource_actor\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\"6\n\x08\x41tespace\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\"+\n\tObjectRef\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe3\x02\n\rActorTemplate\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0fworker_selector\x18\x02 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\ncontainers\x18\x03 \x03(\x0b\x32\x11.ateapi.Container\x12\x1f\n\x07volumes\x18\x04 \x03(\x0b\x32\x0e.ateapi.Volume\x12\x31\n\x10snapshots_config\x18\x05 \x01(\x0b\x32\x17.ateapi.SnapshotsConfig\x12-\n\x0esandbox_config\x18\x06 \x01(\x0b\x32\x15.ateapi.SandboxConfig\x12$\n\tresources\x18\x07 \x01(\x0b\x32\x11.ateapi.Resources\x12+\n\x06status\x18\x08 \x01(\x0b\x32\x1b.ateapi.ActorTemplateStatus\"+\n\tResources\x12\x1e\n\x06limits\x18\x01 \x03(\x0b\x32\x0e.ateapi.Limits\"(\n\x06Limits\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\t\"\x91\x01\n\x14GoldenSnapshotStatus\x12%\n\ngolden_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12;\n\x17take_golden_snapshot_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x03 \x01(\t\"S\n\x13\x41\x63torTemplateStatus\x12<\n\x16golden_snapshot_status\x18\x01 \x01(\x0b\x32\x1c.ateapi.GoldenSnapshotStatus\"Q\n\rSandboxConfig\x12+\n\rsandbox_class\x18\x01 \x01(\x0e\x32\x14.ateapi.SandboxClass\x12\x13\n\x0b\x63onfig_name\x18\x02 \x01(\t\"\xb7\x01\n\x0fSnapshotsConfig\x12.\n\x08on_pause\x18\x01 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12/\n\ton_commit\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12)\n\ton_resume\x18\x03 \x01(\x0b\x32\x16.ateapi.OnResumeConfig\x12\x18\n\x10storage_location\x18\x04 \x01(\t\"9\n\x0eOnResumeConfig\x12\'\n\tfrom_data\x18\x01 \x01(\x0e\x32\x14.ateapi.ResumeSource\"\x92\x02\n\tContainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\x12\x1b\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x0e.ateapi.EnvVar\x12\'\n\x06readyz\x18\x06 \x01(\x0b\x32\x17.ateapi.ContainerReadyz\x12*\n\rvolume_mounts\x18\x07 \x03(\x0b\x32\x13.ateapi.VolumeMount\x12\x31\n\x10security_context\x18\x08 \x01(\x0b\x32\x17.ateapi.SecurityContext\x12$\n\tresources\x18\t \x01(\x0b\x32\x11.ateapi.Resources\"=\n\x0fSecurityContext\x12*\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32\x14.ateapi.Capabilities\")\n\x0c\x43\x61pabilities\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0c\n\x04\x64rop\x18\x02 \x03(\t\"%\n\x06\x45nvVar\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"S\n\x0f\x43ontainerReadyz\x12\'\n\x08http_get\x18\x01 \x01(\x0b\x32\x15.ateapi.HTTPGetAction\x12\x17\n\x0ftimeout_seconds\x18\x02 \x01(\x05\"+\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xec\x01\n\x06Volume\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x0b\x64urable_dir\x18\x02 \x01(\x0b\x32\x1e.ateapi.DurableDirVolumeSource\x12@\n\x18\x65xternal_volume_template\x18\x03 \x01(\x0b\x32\x1e.ateapi.ExternalVolumeTemplate\x12\x33\n\x0bsystem_info\x18\x05 \x01(\x0b\x32\x1e.ateapi.SystemInfoVolumeSource\x12(\n\x05image\x18\x06 \x01(\x0b\x32\x19.ateapi.ImageVolumeSource\"&\n\x11ImageVolumeSource\x12\x11\n\treference\x18\x01 \x01(\t\"\x18\n\x16\x44urableDirVolumeSource\"F\n\x16\x45xternalVolumeTemplate\x12\x10\n\x08\x63\x61pacity\x18\x01 \x01(\t\x12\x1a\n\x12storage_class_name\x18\x02 \x01(\t\"L\n\x16SystemInfoVolumeSource\x12\x32\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32\x1c.ateapi.SystemInfoDataSource\"\x84\x01\n\x14SystemInfoDataSource\x12\x37\n\x0e\x61\x63tor_metadata\x18\x01 \x01(\x0b\x32\x1f.ateapi.ActorMetadataDataSource\x12\x33\n\x0ctrust_bundle\x18\x02 \x01(\x0b\x32\x1d.ateapi.TrustBundleDataSource\"C\n\x17\x41\x63torMetadataDataSource\x12(\n\x05items\x18\x01 \x03(\x0b\x32\x19.ateapi.ActorMetadataItem\"L\n\x11\x41\x63torMetadataItem\x12)\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x1a.ateapi.ActorMetadataField\x12\x0c\n\x04path\x18\x02 \x01(\t\"3\n\x15TrustBundleDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"/\n\x0bVolumeMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\";\n\x15\x43reateAtespaceRequest\x12\"\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x10.ateapi.Atespace\"9\n\x12GetAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"=\n\x14ListAtespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"U\n\x15ListAtespacesResponse\x12#\n\tatespaces\x18\x01 \x03(\x0b\x32\x10.ateapi.Atespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"<\n\x15\x44\x65leteAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1a\x43reateActorTemplateRequest\x12-\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x15.ateapi.ActorTemplate\"D\n\x17GetActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"T\n\x19ListActorTemplatesRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"e\n\x1aListActorTemplatesResponse\x12.\n\x0f\x61\x63tor_templates\x18\x01 \x03(\x0b\x32\x15.ateapi.ActorTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x1a\x44\x65leteActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"3\n\x0fGetActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12\x43reateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"2\n\x12UpdateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"7\n\x13SuspendActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"4\n\x14SuspendActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"5\n\x11PauseActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12PauseActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"6\n\x12ResumeActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"D\n\x13ResumeActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\x12\x0f\n\x07resumed\x18\x02 \x01(\x08\"I\n\x12\x44\x65leteActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tany_state\x18\x02 \x01(\x08\"?\n\x1bGetActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"o\n\x1e\x43reateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"o\n\x1eUpdateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"B\n\x1e\x44\x65leteActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"/\n\rGetTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"\\\n\x13MintActorJWTRequest\x12 \n\x05\x61\x63tor\x18\x05 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12\x10\n\x08\x61udience\x18\x01 \x03(\t\")\n\x14MintActorJWTResponse\x12\x11\n\tactor_jwt\x18\x01 \x01(\t\"\xa9\x01\n\x1bMintActorCertificateRequest\x12 \n\x05\x61\x63tor\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12#\n\x1b\x63\x65rtificate_signing_request\x18\x02 \x01(\x0c\x12\x30\n\x07purpose\x18\x04 \x01(\x0e\x32\x1f.ateapi.ActorCertificatePurpose\":\n\x1cMintActorCertificateResponse\x12\x1a\n\x12\x61\x63tor_certificates\x18\x01 \x03(\x0c\"D\n\x17GetActorSnapshotRequest\x12)\n\x0e\x61\x63tor_snapshot\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1aGetActorSnapshotTagRequest\x12-\n\x12\x61\x63tor_snapshot_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"J\n\x0fListTagsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"F\n\x10ListTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.ateapi.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\",\n\x10\x43reateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\",\n\x10UpdateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\"2\n\x10\x44\x65leteTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"-\n\rDeleteOptions\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\x0b\n\x03uid\x18\x02 \x01(\t\"m\n!ListWorkerActorAssignmentsRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\"ListWorkerActorAssignmentsResponse\x12\x32\n\x11\x61\x63tor_assignments\x18\x01 \x03(\x0b\x32\x17.ateapi.ActorAssignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\";\n\x12ListWorkersRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"O\n\x13ListWorkersResponse\x12\x1f\n\x07workers\x18\x01 \x03(\x0b\x32\x0e.ateapi.Worker\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"5\n\x10GetWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"5\n\x13\x43reateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"5\n\x13UpdateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"`\n\x13\x44\x65leteWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12&\n\x07options\x18\x02 \x01(\x0b\x32\x15.ateapi.DeleteOptions\"7\n\x12\x44rainWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"L\n\x11ListActorsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"L\n\x12ListActorsResponse\x12\x1d\n\x06\x61\x63tors\x18\x01 \x03(\x0b\x32\r.ateapi.Actor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc6\x02\n\x06Worker\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12\x18\n\x10worker_namespace\x18\x02 \x01(\t\x12\x13\n\x0bworker_pool\x18\x03 \x01(\t\x12\x12\n\nworker_pod\x18\x04 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x05 \x01(\t\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\n\n\x02ip\x18\x07 \x01(\t\x12\x15\n\rsandbox_class\x18\x08 \x01(\t\x12*\n\x06labels\x18\t \x03(\x0b\x32\x1a.ateapi.Worker.LabelsEntry\x12$\n\x06status\x18\x0b \x01(\x0b\x32\x14.ateapi.WorkerStatus\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x0cWorkerStatus\x12\"\n\x05state\x18\x01 \x01(\x0e\x32\x13.ateapi.WorkerState\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\x12*\n\tallocated\x18\x03 \x01(\x0b\x32\x17.ateapi.WorkerResources\"G\n\x0fWorkerResources\x12$\n\tresources\x18\x01 \x01(\x0b\x32\x11.ateapi.Resources\x12\x0e\n\x06\x61\x63tors\x18\x02 \x01(\x05\"\xc7\x01\n\x0f\x41\x63torAssignment\x12*\n\x08metadata\x18\x06 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12 \n\x05\x61\x63tor\x18\x02 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x03 \x01(\t\x12-\n\x12\x61\x63tor_template_ref\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12$\n\tresources\x18\x05 \x01(\x0b\x32\x11.ateapi.Resources\"h\n\x18SetWorkerCapacityRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\";\n\x19SetWorkerCapacityResponse\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker*\x80\x01\n\x14SnapshotContentScope\x12&\n\"SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_FULL\x10\x01\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_DATA\x10\x02*V\n\x08TagScope\x12\x19\n\x15TAG_SCOPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TAG_SCOPE_ATESPACE\x10\x01\x12\x17\n\x13TAG_SCOPE_PUBLISHED\x10\x02*\xf7\x01\n\nActorState\x12\x1b\n\x17\x41\x43TOR_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TOR_STATE_RESUMING\x10\x01\x12\x17\n\x13\x41\x43TOR_STATE_RUNNING\x10\x02\x12\x1a\n\x16\x41\x43TOR_STATE_SUSPENDING\x10\x03\x12\x19\n\x15\x41\x43TOR_STATE_SUSPENDED\x10\x04\x12\x17\n\x13\x41\x43TOR_STATE_PAUSING\x10\x05\x12\x16\n\x12\x41\x43TOR_STATE_PAUSED\x10\x06\x12\x17\n\x13\x41\x43TOR_STATE_CRASHED\x10\x07\x12\x18\n\x14\x41\x43TOR_STATE_DELETING\x10\x08*b\n\x0cSandboxClass\x12\x1d\n\x19SANDBOX_CLASS_UNSPECIFIED\x10\x00\x12\x18\n\x14SANDBOX_CLASS_GVISOR\x10\x01\x12\x19\n\x15SANDBOX_CLASS_MICROVM\x10\x02*d\n\x0cResumeSource\x12\x1d\n\x19RESUME_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17RESUME_SOURCE_COLD_BOOT\x10\x01\x12\x18\n\x14RESUME_SOURCE_GOLDEN\x10\x02*\x9a\x01\n\x12\x41\x63torMetadataField\x12$\n ACTOR_METADATA_FIELD_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x43TOR_METADATA_FIELD_NAME\x10\x01\x12!\n\x1d\x41\x43TOR_METADATA_FIELD_ATESPACE\x10\x02\x12\x1c\n\x18\x41\x43TOR_METADATA_FIELD_UID\x10\x03*k\n\x17\x41\x63torCertificatePurpose\x12)\n%ACTOR_CERTIFICATE_PURPOSE_UNSPECIFIED\x10\x00\x12%\n!ACTOR_CERTIFICATE_PURPOSE_ATUNNEL\x10\x01*_\n\x0bWorkerState\x12\x1c\n\x18WORKER_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13WORKER_STATE_ACTIVE\x10\x01\x12\x19\n\x15WORKER_STATE_DRAINING\x10\x02\x32\xa5\x13\n\x07\x43ontrol\x12\x34\n\x08GetActor\x12\x17.ateapi.GetActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0b\x43reateActor\x12\x1a.ateapi.CreateActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0bUpdateActor\x12\x1a.ateapi.UpdateActorRequest\x1a\r.ateapi.Actor\"\x00\x12K\n\x0cSuspendActor\x12\x1b.ateapi.SuspendActorRequest\x1a\x1c.ateapi.SuspendActorResponse\"\x00\x12\x45\n\nPauseActor\x12\x19.ateapi.PauseActorRequest\x1a\x1a.ateapi.PauseActorResponse\"\x00\x12H\n\x0bResumeActor\x12\x1a.ateapi.ResumeActorRequest\x1a\x1b.ateapi.ResumeActorResponse\"\x00\x12:\n\x0b\x44\x65leteActor\x12\x1a.ateapi.DeleteActorRequest\x1a\r.ateapi.Actor\"\x00\x12S\n\x14GetActorEgressPolicy\x12#.ateapi.GetActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x43reateActorEgressPolicy\x12&.ateapi.CreateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17UpdateActorEgressPolicy\x12&.ateapi.UpdateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x44\x65leteActorEgressPolicy\x12&.ateapi.DeleteActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12K\n\x0cMintActorJWT\x12\x1b.ateapi.MintActorJWTRequest\x1a\x1c.ateapi.MintActorJWTResponse\"\x00\x12\x63\n\x14MintActorCertificate\x12#.ateapi.MintActorCertificateRequest\x1a$.ateapi.MintActorCertificateResponse\"\x00\x12\x34\n\tCreateTag\x12\x18.ateapi.CreateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12.\n\x06GetTag\x12\x15.ateapi.GetTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12?\n\x08ListTags\x12\x17.ateapi.ListTagsRequest\x1a\x18.ateapi.ListTagsResponse\"\x00\x12\x34\n\tUpdateTag\x12\x18.ateapi.UpdateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12\x34\n\tDeleteTag\x12\x18.ateapi.DeleteTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12H\n\x0bListWorkers\x12\x1a.ateapi.ListWorkersRequest\x1a\x1b.ateapi.ListWorkersResponse\"\x00\x12\x37\n\tGetWorker\x12\x18.ateapi.GetWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x43reateWorker\x12\x1b.ateapi.CreateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0cUpdateWorker\x12\x1b.ateapi.UpdateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x44\x65leteWorker\x12\x1b.ateapi.DeleteWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12;\n\x0b\x44rainWorker\x12\x1a.ateapi.DrainWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12u\n\x1aListWorkerActorAssignments\x12).ateapi.ListWorkerActorAssignmentsRequest\x1a*.ateapi.ListWorkerActorAssignmentsResponse\"\x00\x12\x45\n\nListActors\x12\x19.ateapi.ListActorsRequest\x1a\x1a.ateapi.ListActorsResponse\"\x00\x12\x43\n\x0e\x43reateAtespace\x12\x1d.ateapi.CreateAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12=\n\x0bGetAtespace\x12\x1a.ateapi.GetAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12N\n\rListAtespaces\x12\x1c.ateapi.ListAtespacesRequest\x1a\x1d.ateapi.ListAtespacesResponse\"\x00\x12\x43\n\x0e\x44\x65leteAtespace\x12\x1d.ateapi.DeleteAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12R\n\x13\x43reateActorTemplate\x12\".ateapi.CreateActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12L\n\x10GetActorTemplate\x12\x1f.ateapi.GetActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12]\n\x12ListActorTemplates\x12!.ateapi.ListActorTemplatesRequest\x1a\".ateapi.ListActorTemplatesResponse\"\x00\x12R\n\x13\x44\x65leteActorTemplate\x12\".ateapi.DeleteActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x32i\n\rWorkerService\x12X\n\x11SetWorkerCapacity\x12 .ateapi.SetWorkerCapacityRequest\x1a!.ateapi.SetWorkerCapacityResponseB9Z7github.com/agent-substrate/substrate/pkg/proto/ateapipbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x61teapi.proto\x12\x06\x61teapi\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"y\n\x10\x45xternalSnapshot\x12\x14\n\x0csnapshot_uri\x18\x01 \x01(\t\x12\x33\n\rcontent_scope\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x03 \x01(\t\"\x86\x01\n\x11LocalSnapshotInfo\x12\x15\n\rsnapshot_name\x18\x01 \x01(\t\x12%\n\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\t\x12\x33\n\rcontent_scope\x18\x03 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\"w\n\x08Selector\x12\x37\n\x0cmatch_labels\x18\x01 \x03(\x0b\x32!.ateapi.Selector.MatchLabelsEntry\x1a\x32\n\x10MatchLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xb2\x01\n\x10ResourceMetadata\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0b\n\x03uid\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12/\n\x0b\x63reate_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xdc\x02\n\x0e\x45xternalVolume\x12\x13\n\x0bvolume_name\x18\x01 \x01(\t\x12\x19\n\x11storage_volume_id\x18\x02 \x01(\t\x12\x13\n\x0bvolume_type\x18\x03 \x01(\t\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.ateapi.ExternalVolume.Status\x12\x41\n\x0evolume_context\x18\x05 \x03(\x0b\x32).ateapi.ExternalVolume.VolumeContextEntry\x1a\x34\n\x12VolumeContextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x06Status\x12\x16\n\x12STATUS_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATUS_PENDING\x10\x01\x12\x12\n\x0eSTATUS_CREATED\x10\x02\x12\x13\n\x0fSTATUS_DELETING\x10\x03\"\xd5\x01\n\x05\x41\x63tor\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0e\x61\x63tor_template\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x0fworker_selector\x18\x05 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\nsource_tag\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12#\n\x06status\x18\x07 \x01(\x0b\x32\x13.ateapi.ActorStatus\"]\n\x0c\x45gressPolicy\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x05rules\x18\x02 \x03(\x0b\x32\x12.ateapi.EgressRule\"{\n\nEgressRule\x12\'\n\thostnames\x18\x01 \x01(\x0b\x32\x14.ateapi.HostnameRule\x12\x1f\n\x05\x63idrs\x18\x02 \x01(\x0b\x32\x10.ateapi.CIDRRule\x12#\n\x03\x61ll\x18\x03 \x01(\x0b\x32\x16.google.protobuf.Empty\"L\n\x0cHostnameRule\x12\x10\n\x08patterns\x18\x01 \x03(\t\x12*\n\x07\x65\x66\x66\x65\x63ts\x18\x02 \x01(\x0b\x32\x19.ateapi.EgressRuleEffects\"\x19\n\x08\x43IDRRule\x12\r\n\x05\x63idrs\x18\x01 \x03(\t\"U\n\x11\x45gressRuleEffects\x12@\n\x15inject_static_headers\x18\x01 \x03(\x0b\x32!.ateapi.CredentialHeaderInjection\"S\n\x19\x43redentialHeaderInjection\x12\x0e\n\x06header\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t\x12\x16\n\x0e\x63redential_uri\x18\x03 \x01(\t\"\xf0\x02\n\x0b\x41\x63torStatus\x12!\n\x05state\x18\x01 \x01(\x0e\x32\x12.ateapi.ActorState\x12\x33\n\x11worker_assignment\x18\x02 \x01(\x0b\x32\x18.ateapi.WorkerAssignment\x12 \n\x18in_progress_snapshot_uri\x18\x03 \x01(\t\x12\x33\n\x11\x65xternal_snapshot\x18\x04 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x36\n\x13local_snapshot_info\x18\x05 \x01(\x0b\x32\x19.ateapi.LocalSnapshotInfo\x12-\n\ractor_volumes\x18\x07 \x03(\x0b\x32\x16.ateapi.ExternalVolume\x12\'\n\x1fin_progress_local_snapshot_name\x18\x08 \x01(\t\x12\"\n\x1a\x63urrent_actor_template_uid\x18\x0b \x01(\t\"\xa7\x01\n\x10WorkerAssignment\x12!\n\x06worker\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x18\n\x10worker_namespace\x18\x01 \x01(\t\x12\x13\n\x0bworker_pool\x18\x02 \x01(\t\x12\x12\n\nworker_pod\x18\x03 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x04 \x01(\t\x12\x15\n\rworker_pod_ip\x18\x05 \x01(\t\"\x87\x01\n\tTagStatus\x12*\n\x08snapshot\x18\x01 \x01(\x0b\x32\x18.ateapi.ExternalSnapshot\x12\x1a\n\x12\x61\x63tor_template_uid\x18\x02 \x01(\t\x12\x18\n\x10storage_location\x18\x03 \x01(\t\x12\x18\n\x10source_actor_uid\x18\x04 \x01(\t\"\x9e\x01\n\x03Tag\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12!\n\x06status\x18\x02 \x01(\x0b\x32\x11.ateapi.TagStatus\x12\x1f\n\x05scope\x18\x03 \x01(\x0e\x32\x10.ateapi.TagScope\x12\'\n\x0csource_actor\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\"6\n\x08\x41tespace\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\"+\n\tObjectRef\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\xe3\x02\n\rActorTemplate\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12)\n\x0fworker_selector\x18\x02 \x01(\x0b\x32\x10.ateapi.Selector\x12%\n\ncontainers\x18\x03 \x03(\x0b\x32\x11.ateapi.Container\x12\x1f\n\x07volumes\x18\x04 \x03(\x0b\x32\x0e.ateapi.Volume\x12\x31\n\x10snapshots_config\x18\x05 \x01(\x0b\x32\x17.ateapi.SnapshotsConfig\x12-\n\x0esandbox_config\x18\x06 \x01(\x0b\x32\x15.ateapi.SandboxConfig\x12$\n\tresources\x18\x07 \x01(\x0b\x32\x11.ateapi.Resources\x12+\n\x06status\x18\x08 \x01(\x0b\x32\x1b.ateapi.ActorTemplateStatus\"+\n\tResources\x12\x1e\n\x06limits\x18\x01 \x03(\x0b\x32\x0e.ateapi.Limits\"(\n\x06Limits\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\t\"\x91\x01\n\x14GoldenSnapshotStatus\x12%\n\ngolden_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12;\n\x17take_golden_snapshot_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x03 \x01(\t\"S\n\x13\x41\x63torTemplateStatus\x12<\n\x16golden_snapshot_status\x18\x01 \x01(\x0b\x32\x1c.ateapi.GoldenSnapshotStatus\"Q\n\rSandboxConfig\x12+\n\rsandbox_class\x18\x01 \x01(\x0e\x32\x14.ateapi.SandboxClass\x12\x13\n\x0b\x63onfig_name\x18\x02 \x01(\t\"\xb7\x01\n\x0fSnapshotsConfig\x12.\n\x08on_pause\x18\x01 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12/\n\ton_commit\x18\x02 \x01(\x0e\x32\x1c.ateapi.SnapshotContentScope\x12)\n\ton_resume\x18\x03 \x01(\x0b\x32\x16.ateapi.OnResumeConfig\x12\x18\n\x10storage_location\x18\x04 \x01(\t\"9\n\x0eOnResumeConfig\x12\'\n\tfrom_data\x18\x01 \x01(\x0e\x32\x14.ateapi.ResumeSource\"\x92\x02\n\tContainer\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05image\x18\x02 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x03 \x03(\t\x12\x0c\n\x04\x61rgs\x18\x04 \x03(\t\x12\x1b\n\x03\x65nv\x18\x05 \x03(\x0b\x32\x0e.ateapi.EnvVar\x12\'\n\x06readyz\x18\x06 \x01(\x0b\x32\x17.ateapi.ContainerReadyz\x12*\n\rvolume_mounts\x18\x07 \x03(\x0b\x32\x13.ateapi.VolumeMount\x12\x31\n\x10security_context\x18\x08 \x01(\x0b\x32\x17.ateapi.SecurityContext\x12$\n\tresources\x18\t \x01(\x0b\x32\x11.ateapi.Resources\"=\n\x0fSecurityContext\x12*\n\x0c\x63\x61pabilities\x18\x01 \x01(\x0b\x32\x14.ateapi.Capabilities\")\n\x0c\x43\x61pabilities\x12\x0b\n\x03\x61\x64\x64\x18\x01 \x03(\t\x12\x0c\n\x04\x64rop\x18\x02 \x03(\t\"%\n\x06\x45nvVar\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"S\n\x0f\x43ontainerReadyz\x12\'\n\x08http_get\x18\x01 \x01(\x0b\x32\x15.ateapi.HTTPGetAction\x12\x17\n\x0ftimeout_seconds\x18\x02 \x01(\x05\"+\n\rHTTPGetAction\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"\xec\x01\n\x06Volume\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x33\n\x0b\x64urable_dir\x18\x02 \x01(\x0b\x32\x1e.ateapi.DurableDirVolumeSource\x12@\n\x18\x65xternal_volume_template\x18\x03 \x01(\x0b\x32\x1e.ateapi.ExternalVolumeTemplate\x12\x33\n\x0bsystem_info\x18\x05 \x01(\x0b\x32\x1e.ateapi.SystemInfoVolumeSource\x12(\n\x05image\x18\x06 \x01(\x0b\x32\x19.ateapi.ImageVolumeSource\"&\n\x11ImageVolumeSource\x12\x11\n\treference\x18\x01 \x01(\t\"\x18\n\x16\x44urableDirVolumeSource\"F\n\x16\x45xternalVolumeTemplate\x12\x10\n\x08\x63\x61pacity\x18\x01 \x01(\t\x12\x1a\n\x12storage_class_name\x18\x02 \x01(\t\"L\n\x16SystemInfoVolumeSource\x12\x32\n\x0c\x64\x61ta_sources\x18\x01 \x03(\x0b\x32\x1c.ateapi.SystemInfoDataSource\"\x84\x01\n\x14SystemInfoDataSource\x12\x37\n\x0e\x61\x63tor_metadata\x18\x01 \x01(\x0b\x32\x1f.ateapi.ActorMetadataDataSource\x12\x33\n\x0ctrust_bundle\x18\x02 \x01(\x0b\x32\x1d.ateapi.TrustBundleDataSource\"C\n\x17\x41\x63torMetadataDataSource\x12(\n\x05items\x18\x01 \x03(\x0b\x32\x19.ateapi.ActorMetadataItem\"L\n\x11\x41\x63torMetadataItem\x12)\n\x05\x66ield\x18\x01 \x01(\x0e\x32\x1a.ateapi.ActorMetadataField\x12\x0c\n\x04path\x18\x02 \x01(\t\"3\n\x15TrustBundleDataSource\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"/\n\x0bVolumeMount\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nmount_path\x18\x02 \x01(\t\";\n\x15\x43reateAtespaceRequest\x12\"\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x10.ateapi.Atespace\"9\n\x12GetAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"=\n\x14ListAtespacesRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"U\n\x15ListAtespacesResponse\x12#\n\tatespaces\x18\x01 \x03(\x0b\x32\x10.ateapi.Atespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"<\n\x15\x44\x65leteAtespaceRequest\x12#\n\x08\x61tespace\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1a\x43reateActorTemplateRequest\x12-\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x15.ateapi.ActorTemplate\"D\n\x17GetActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"T\n\x19ListActorTemplatesRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"e\n\x1aListActorTemplatesResponse\x12.\n\x0f\x61\x63tor_templates\x18\x01 \x03(\x0b\x32\x15.ateapi.ActorTemplate\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x1a\x44\x65leteActorTemplateRequest\x12)\n\x0e\x61\x63tor_template\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"3\n\x0fGetActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12\x43reateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"2\n\x12UpdateActorRequest\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"7\n\x13SuspendActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"4\n\x14SuspendActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"5\n\x11PauseActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"2\n\x12PauseActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\"6\n\x12ResumeActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"D\n\x13ResumeActorResponse\x12\x1c\n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\r.ateapi.Actor\x12\x0f\n\x07resumed\x18\x02 \x01(\x08\"I\n\x12\x44\x65leteActorRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tany_state\x18\x02 \x01(\x08\"?\n\x1bGetActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"o\n\x1e\x43reateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"o\n\x1eUpdateActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12+\n\regress_policy\x18\x02 \x01(\x0b\x32\x14.ateapi.EgressPolicy\"B\n\x1e\x44\x65leteActorEgressPolicyRequest\x12 \n\x05\x61\x63tor\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"/\n\rGetTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"\\\n\x13MintActorJWTRequest\x12 \n\x05\x61\x63tor\x18\x05 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12\x10\n\x08\x61udience\x18\x01 \x03(\t\")\n\x14MintActorJWTResponse\x12\x11\n\tactor_jwt\x18\x01 \x01(\t\"\xa9\x01\n\x1bMintActorCertificateRequest\x12 \n\x05\x61\x63tor\x18\x06 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x07 \x01(\t\x12#\n\x1b\x63\x65rtificate_signing_request\x18\x02 \x01(\x0c\x12\x30\n\x07purpose\x18\x04 \x01(\x0e\x32\x1f.ateapi.ActorCertificatePurpose\":\n\x1cMintActorCertificateResponse\x12\x1a\n\x12\x61\x63tor_certificates\x18\x01 \x03(\x0c\"D\n\x17GetActorSnapshotRequest\x12)\n\x0e\x61\x63tor_snapshot\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"K\n\x1aGetActorSnapshotTagRequest\x12-\n\x12\x61\x63tor_snapshot_tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"J\n\x0fListTagsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"F\n\x10ListTagsResponse\x12\x19\n\x04tags\x18\x01 \x03(\x0b\x32\x0b.ateapi.Tag\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\",\n\x10\x43reateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\",\n\x10UpdateTagRequest\x12\x18\n\x03tag\x18\x01 \x01(\x0b\x32\x0b.ateapi.Tag\"2\n\x10\x44\x65leteTagRequest\x12\x1e\n\x03tag\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"-\n\rDeleteOptions\x12\x0f\n\x07version\x18\x01 \x01(\x03\x12\x0b\n\x03uid\x18\x02 \x01(\t\"m\n!ListWorkerActorAssignmentsRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"q\n\"ListWorkerActorAssignmentsResponse\x12\x32\n\x11\x61\x63tor_assignments\x18\x01 \x03(\x0b\x32\x17.ateapi.ActorAssignment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\";\n\x12ListWorkersRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"O\n\x13ListWorkersResponse\x12\x1f\n\x07workers\x18\x01 \x03(\x0b\x32\x0e.ateapi.Worker\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"5\n\x10GetWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"5\n\x13\x43reateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"5\n\x13UpdateWorkerRequest\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker\"`\n\x13\x44\x65leteWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12&\n\x07options\x18\x02 \x01(\x0b\x32\x15.ateapi.DeleteOptions\"7\n\x12\x44rainWorkerRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\"L\n\x11ListActorsRequest\x12\x10\n\x08\x61tespace\x18\x01 \x01(\t\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"L\n\x12ListActorsResponse\x12\x1d\n\x06\x61\x63tors\x18\x01 \x03(\x0b\x32\r.ateapi.Actor\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"\xc6\x02\n\x06Worker\x12*\n\x08metadata\x18\x01 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12\x18\n\x10worker_namespace\x18\x02 \x01(\t\x12\x13\n\x0bworker_pool\x18\x03 \x01(\t\x12\x12\n\nworker_pod\x18\x04 \x01(\t\x12\x16\n\x0eworker_pod_uid\x18\x05 \x01(\t\x12\x11\n\tnode_name\x18\x06 \x01(\t\x12\n\n\x02ip\x18\x07 \x01(\t\x12\x15\n\rsandbox_class\x18\x08 \x01(\t\x12*\n\x06labels\x18\t \x03(\x0b\x32\x1a.ateapi.Worker.LabelsEntry\x12$\n\x06status\x18\x0b \x01(\x0b\x32\x14.ateapi.WorkerStatus\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x89\x01\n\x0cWorkerStatus\x12\"\n\x05state\x18\x01 \x01(\x0e\x32\x13.ateapi.WorkerState\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\x12*\n\tallocated\x18\x03 \x01(\x0b\x32\x17.ateapi.WorkerResources\"G\n\x0fWorkerResources\x12$\n\tresources\x18\x01 \x01(\x0b\x32\x11.ateapi.Resources\x12\x0e\n\x06\x61\x63tors\x18\x02 \x01(\x05\"\xc7\x01\n\x0f\x41\x63torAssignment\x12*\n\x08metadata\x18\x06 \x01(\x0b\x32\x18.ateapi.ResourceMetadata\x12 \n\x05\x61\x63tor\x18\x02 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12\x11\n\tactor_uid\x18\x03 \x01(\t\x12-\n\x12\x61\x63tor_template_ref\x18\x04 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12$\n\tresources\x18\x05 \x01(\x0b\x32\x11.ateapi.Resources\"h\n\x18SetWorkerCapacityRequest\x12!\n\x06worker\x18\x01 \x01(\x0b\x32\x11.ateapi.ObjectRef\x12)\n\x08\x63\x61pacity\x18\x02 \x01(\x0b\x32\x17.ateapi.WorkerResources\";\n\x19SetWorkerCapacityResponse\x12\x1e\n\x06worker\x18\x01 \x01(\x0b\x32\x0e.ateapi.Worker*\x80\x01\n\x14SnapshotContentScope\x12&\n\"SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_FULL\x10\x01\x12\x1f\n\x1bSNAPSHOT_CONTENT_SCOPE_DATA\x10\x02*V\n\x08TagScope\x12\x19\n\x15TAG_SCOPE_UNSPECIFIED\x10\x00\x12\x16\n\x12TAG_SCOPE_ATESPACE\x10\x01\x12\x17\n\x13TAG_SCOPE_PUBLISHED\x10\x02*\xf7\x01\n\nActorState\x12\x1b\n\x17\x41\x43TOR_STATE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TOR_STATE_RESUMING\x10\x01\x12\x17\n\x13\x41\x43TOR_STATE_RUNNING\x10\x02\x12\x1a\n\x16\x41\x43TOR_STATE_SUSPENDING\x10\x03\x12\x19\n\x15\x41\x43TOR_STATE_SUSPENDED\x10\x04\x12\x17\n\x13\x41\x43TOR_STATE_PAUSING\x10\x05\x12\x16\n\x12\x41\x43TOR_STATE_PAUSED\x10\x06\x12\x17\n\x13\x41\x43TOR_STATE_CRASHED\x10\x07\x12\x18\n\x14\x41\x43TOR_STATE_DELETING\x10\x08*b\n\x0cSandboxClass\x12\x1d\n\x19SANDBOX_CLASS_UNSPECIFIED\x10\x00\x12\x18\n\x14SANDBOX_CLASS_GVISOR\x10\x01\x12\x19\n\x15SANDBOX_CLASS_MICROVM\x10\x02*d\n\x0cResumeSource\x12\x1d\n\x19RESUME_SOURCE_UNSPECIFIED\x10\x00\x12\x1b\n\x17RESUME_SOURCE_COLD_BOOT\x10\x01\x12\x18\n\x14RESUME_SOURCE_GOLDEN\x10\x02*\x9a\x01\n\x12\x41\x63torMetadataField\x12$\n ACTOR_METADATA_FIELD_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41\x43TOR_METADATA_FIELD_NAME\x10\x01\x12!\n\x1d\x41\x43TOR_METADATA_FIELD_ATESPACE\x10\x02\x12\x1c\n\x18\x41\x43TOR_METADATA_FIELD_UID\x10\x03*k\n\x17\x41\x63torCertificatePurpose\x12)\n%ACTOR_CERTIFICATE_PURPOSE_UNSPECIFIED\x10\x00\x12%\n!ACTOR_CERTIFICATE_PURPOSE_ATUNNEL\x10\x01*_\n\x0bWorkerState\x12\x1c\n\x18WORKER_STATE_UNSPECIFIED\x10\x00\x12\x17\n\x13WORKER_STATE_ACTIVE\x10\x01\x12\x19\n\x15WORKER_STATE_DRAINING\x10\x02\x32\xa5\x13\n\x07\x43ontrol\x12\x34\n\x08GetActor\x12\x17.ateapi.GetActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0b\x43reateActor\x12\x1a.ateapi.CreateActorRequest\x1a\r.ateapi.Actor\"\x00\x12:\n\x0bUpdateActor\x12\x1a.ateapi.UpdateActorRequest\x1a\r.ateapi.Actor\"\x00\x12K\n\x0cSuspendActor\x12\x1b.ateapi.SuspendActorRequest\x1a\x1c.ateapi.SuspendActorResponse\"\x00\x12\x45\n\nPauseActor\x12\x19.ateapi.PauseActorRequest\x1a\x1a.ateapi.PauseActorResponse\"\x00\x12H\n\x0bResumeActor\x12\x1a.ateapi.ResumeActorRequest\x1a\x1b.ateapi.ResumeActorResponse\"\x00\x12:\n\x0b\x44\x65leteActor\x12\x1a.ateapi.DeleteActorRequest\x1a\r.ateapi.Actor\"\x00\x12S\n\x14GetActorEgressPolicy\x12#.ateapi.GetActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x43reateActorEgressPolicy\x12&.ateapi.CreateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17UpdateActorEgressPolicy\x12&.ateapi.UpdateActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12Y\n\x17\x44\x65leteActorEgressPolicy\x12&.ateapi.DeleteActorEgressPolicyRequest\x1a\x14.ateapi.EgressPolicy\"\x00\x12K\n\x0cMintActorJWT\x12\x1b.ateapi.MintActorJWTRequest\x1a\x1c.ateapi.MintActorJWTResponse\"\x00\x12\x63\n\x14MintActorCertificate\x12#.ateapi.MintActorCertificateRequest\x1a$.ateapi.MintActorCertificateResponse\"\x00\x12\x34\n\tCreateTag\x12\x18.ateapi.CreateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12.\n\x06GetTag\x12\x15.ateapi.GetTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12?\n\x08ListTags\x12\x17.ateapi.ListTagsRequest\x1a\x18.ateapi.ListTagsResponse\"\x00\x12\x34\n\tUpdateTag\x12\x18.ateapi.UpdateTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12\x34\n\tDeleteTag\x12\x18.ateapi.DeleteTagRequest\x1a\x0b.ateapi.Tag\"\x00\x12H\n\x0bListWorkers\x12\x1a.ateapi.ListWorkersRequest\x1a\x1b.ateapi.ListWorkersResponse\"\x00\x12\x37\n\tGetWorker\x12\x18.ateapi.GetWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x43reateWorker\x12\x1b.ateapi.CreateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0cUpdateWorker\x12\x1b.ateapi.UpdateWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12=\n\x0c\x44\x65leteWorker\x12\x1b.ateapi.DeleteWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12;\n\x0b\x44rainWorker\x12\x1a.ateapi.DrainWorkerRequest\x1a\x0e.ateapi.Worker\"\x00\x12u\n\x1aListWorkerActorAssignments\x12).ateapi.ListWorkerActorAssignmentsRequest\x1a*.ateapi.ListWorkerActorAssignmentsResponse\"\x00\x12\x45\n\nListActors\x12\x19.ateapi.ListActorsRequest\x1a\x1a.ateapi.ListActorsResponse\"\x00\x12\x43\n\x0e\x43reateAtespace\x12\x1d.ateapi.CreateAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12=\n\x0bGetAtespace\x12\x1a.ateapi.GetAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12N\n\rListAtespaces\x12\x1c.ateapi.ListAtespacesRequest\x1a\x1d.ateapi.ListAtespacesResponse\"\x00\x12\x43\n\x0e\x44\x65leteAtespace\x12\x1d.ateapi.DeleteAtespaceRequest\x1a\x10.ateapi.Atespace\"\x00\x12R\n\x13\x43reateActorTemplate\x12\".ateapi.CreateActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12L\n\x10GetActorTemplate\x12\x1f.ateapi.GetActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x12]\n\x12ListActorTemplates\x12!.ateapi.ListActorTemplatesRequest\x1a\".ateapi.ListActorTemplatesResponse\"\x00\x12R\n\x13\x44\x65leteActorTemplate\x12\".ateapi.DeleteActorTemplateRequest\x1a\x15.ateapi.ActorTemplate\"\x00\x32i\n\rWorkerService\x12X\n\x11SetWorkerCapacity\x12 .ateapi.SetWorkerCapacityRequest\x1a!.ateapi.SetWorkerCapacityResponseB9Z7github.com/agent-substrate/substrate/pkg/proto/ateapipbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -54,224 +54,224 @@ _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_options = b'8\001' _globals['_WORKER_LABELSENTRY']._loaded_options = None _globals['_WORKER_LABELSENTRY']._serialized_options = b'8\001' - _globals['_SNAPSHOTCONTENTSCOPE']._serialized_start=9414 - _globals['_SNAPSHOTCONTENTSCOPE']._serialized_end=9542 - _globals['_TAGSCOPE']._serialized_start=9544 - _globals['_TAGSCOPE']._serialized_end=9630 - _globals['_ACTORSTATE']._serialized_start=9633 - _globals['_ACTORSTATE']._serialized_end=9880 - _globals['_SANDBOXCLASS']._serialized_start=9882 - _globals['_SANDBOXCLASS']._serialized_end=9980 - _globals['_RESUMESOURCE']._serialized_start=9982 - _globals['_RESUMESOURCE']._serialized_end=10082 - _globals['_ACTORMETADATAFIELD']._serialized_start=10085 - _globals['_ACTORMETADATAFIELD']._serialized_end=10239 - _globals['_ACTORCERTIFICATEPURPOSE']._serialized_start=10241 - _globals['_ACTORCERTIFICATEPURPOSE']._serialized_end=10348 - _globals['_WORKERSTATE']._serialized_start=10350 - _globals['_WORKERSTATE']._serialized_end=10445 + _globals['_SNAPSHOTCONTENTSCOPE']._serialized_start=9386 + _globals['_SNAPSHOTCONTENTSCOPE']._serialized_end=9514 + _globals['_TAGSCOPE']._serialized_start=9516 + _globals['_TAGSCOPE']._serialized_end=9602 + _globals['_ACTORSTATE']._serialized_start=9605 + _globals['_ACTORSTATE']._serialized_end=9852 + _globals['_SANDBOXCLASS']._serialized_start=9854 + _globals['_SANDBOXCLASS']._serialized_end=9952 + _globals['_RESUMESOURCE']._serialized_start=9954 + _globals['_RESUMESOURCE']._serialized_end=10054 + _globals['_ACTORMETADATAFIELD']._serialized_start=10057 + _globals['_ACTORMETADATAFIELD']._serialized_end=10211 + _globals['_ACTORCERTIFICATEPURPOSE']._serialized_start=10213 + _globals['_ACTORCERTIFICATEPURPOSE']._serialized_end=10320 + _globals['_WORKERSTATE']._serialized_start=10322 + _globals['_WORKERSTATE']._serialized_end=10417 _globals['_EXTERNALSNAPSHOT']._serialized_start=86 _globals['_EXTERNALSNAPSHOT']._serialized_end=207 _globals['_LOCALSNAPSHOTINFO']._serialized_start=210 - _globals['_LOCALSNAPSHOTINFO']._serialized_end=372 - _globals['_SELECTOR']._serialized_start=374 - _globals['_SELECTOR']._serialized_end=493 - _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_start=443 - _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_end=493 - _globals['_RESOURCEMETADATA']._serialized_start=496 - _globals['_RESOURCEMETADATA']._serialized_end=674 - _globals['_EXTERNALVOLUME']._serialized_start=677 - _globals['_EXTERNALVOLUME']._serialized_end=1025 - _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_start=878 - _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_end=930 - _globals['_EXTERNALVOLUME_STATUS']._serialized_start=932 - _globals['_EXTERNALVOLUME_STATUS']._serialized_end=1025 - _globals['_ACTOR']._serialized_start=1028 - _globals['_ACTOR']._serialized_end=1241 - _globals['_EGRESSPOLICY']._serialized_start=1243 - _globals['_EGRESSPOLICY']._serialized_end=1336 - _globals['_EGRESSRULE']._serialized_start=1338 - _globals['_EGRESSRULE']._serialized_end=1461 - _globals['_HOSTNAMERULE']._serialized_start=1463 - _globals['_HOSTNAMERULE']._serialized_end=1539 - _globals['_CIDRRULE']._serialized_start=1541 - _globals['_CIDRRULE']._serialized_end=1566 - _globals['_EGRESSRULEEFFECTS']._serialized_start=1568 - _globals['_EGRESSRULEEFFECTS']._serialized_end=1653 - _globals['_CREDENTIALHEADERINJECTION']._serialized_start=1655 - _globals['_CREDENTIALHEADERINJECTION']._serialized_end=1738 - _globals['_ACTORSTATUS']._serialized_start=1741 - _globals['_ACTORSTATUS']._serialized_end=2109 - _globals['_WORKERASSIGNMENT']._serialized_start=2112 - _globals['_WORKERASSIGNMENT']._serialized_end=2279 - _globals['_TAGSTATUS']._serialized_start=2282 - _globals['_TAGSTATUS']._serialized_end=2417 - _globals['_TAG']._serialized_start=2420 - _globals['_TAG']._serialized_end=2578 - _globals['_ATESPACE']._serialized_start=2580 - _globals['_ATESPACE']._serialized_end=2634 - _globals['_OBJECTREF']._serialized_start=2636 - _globals['_OBJECTREF']._serialized_end=2679 - _globals['_ACTORTEMPLATE']._serialized_start=2682 - _globals['_ACTORTEMPLATE']._serialized_end=3037 - _globals['_RESOURCES']._serialized_start=3039 - _globals['_RESOURCES']._serialized_end=3082 - _globals['_LIMITS']._serialized_start=3084 - _globals['_LIMITS']._serialized_end=3124 - _globals['_GOLDENSNAPSHOTSTATUS']._serialized_start=3127 - _globals['_GOLDENSNAPSHOTSTATUS']._serialized_end=3272 - _globals['_ACTORTEMPLATESTATUS']._serialized_start=3274 - _globals['_ACTORTEMPLATESTATUS']._serialized_end=3357 - _globals['_SANDBOXCONFIG']._serialized_start=3359 - _globals['_SANDBOXCONFIG']._serialized_end=3440 - _globals['_SNAPSHOTSCONFIG']._serialized_start=3443 - _globals['_SNAPSHOTSCONFIG']._serialized_end=3626 - _globals['_ONRESUMECONFIG']._serialized_start=3628 - _globals['_ONRESUMECONFIG']._serialized_end=3685 - _globals['_CONTAINER']._serialized_start=3688 - _globals['_CONTAINER']._serialized_end=3962 - _globals['_SECURITYCONTEXT']._serialized_start=3964 - _globals['_SECURITYCONTEXT']._serialized_end=4025 - _globals['_CAPABILITIES']._serialized_start=4027 - _globals['_CAPABILITIES']._serialized_end=4068 - _globals['_ENVVAR']._serialized_start=4070 - _globals['_ENVVAR']._serialized_end=4107 - _globals['_CONTAINERREADYZ']._serialized_start=4109 - _globals['_CONTAINERREADYZ']._serialized_end=4192 - _globals['_HTTPGETACTION']._serialized_start=4194 - _globals['_HTTPGETACTION']._serialized_end=4237 - _globals['_VOLUME']._serialized_start=4240 - _globals['_VOLUME']._serialized_end=4476 - _globals['_IMAGEVOLUMESOURCE']._serialized_start=4478 - _globals['_IMAGEVOLUMESOURCE']._serialized_end=4516 - _globals['_DURABLEDIRVOLUMESOURCE']._serialized_start=4518 - _globals['_DURABLEDIRVOLUMESOURCE']._serialized_end=4542 - _globals['_EXTERNALVOLUMETEMPLATE']._serialized_start=4544 - _globals['_EXTERNALVOLUMETEMPLATE']._serialized_end=4614 - _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_start=4616 - _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_end=4692 - _globals['_SYSTEMINFODATASOURCE']._serialized_start=4695 - _globals['_SYSTEMINFODATASOURCE']._serialized_end=4827 - _globals['_ACTORMETADATADATASOURCE']._serialized_start=4829 - _globals['_ACTORMETADATADATASOURCE']._serialized_end=4896 - _globals['_ACTORMETADATAITEM']._serialized_start=4898 - _globals['_ACTORMETADATAITEM']._serialized_end=4974 - _globals['_TRUSTBUNDLEDATASOURCE']._serialized_start=4976 - _globals['_TRUSTBUNDLEDATASOURCE']._serialized_end=5027 - _globals['_VOLUMEMOUNT']._serialized_start=5029 - _globals['_VOLUMEMOUNT']._serialized_end=5076 - _globals['_CREATEATESPACEREQUEST']._serialized_start=5078 - _globals['_CREATEATESPACEREQUEST']._serialized_end=5137 - _globals['_GETATESPACEREQUEST']._serialized_start=5139 - _globals['_GETATESPACEREQUEST']._serialized_end=5196 - _globals['_LISTATESPACESREQUEST']._serialized_start=5198 - _globals['_LISTATESPACESREQUEST']._serialized_end=5259 - _globals['_LISTATESPACESRESPONSE']._serialized_start=5261 - _globals['_LISTATESPACESRESPONSE']._serialized_end=5346 - _globals['_DELETEATESPACEREQUEST']._serialized_start=5348 - _globals['_DELETEATESPACEREQUEST']._serialized_end=5408 - _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_start=5410 - _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_end=5485 - _globals['_GETACTORTEMPLATEREQUEST']._serialized_start=5487 - _globals['_GETACTORTEMPLATEREQUEST']._serialized_end=5555 - _globals['_LISTACTORTEMPLATESREQUEST']._serialized_start=5557 - _globals['_LISTACTORTEMPLATESREQUEST']._serialized_end=5641 - _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_start=5643 - _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_end=5744 - _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_start=5746 - _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_end=5817 - _globals['_GETACTORREQUEST']._serialized_start=5819 - _globals['_GETACTORREQUEST']._serialized_end=5870 - _globals['_CREATEACTORREQUEST']._serialized_start=5872 - _globals['_CREATEACTORREQUEST']._serialized_end=5922 - _globals['_UPDATEACTORREQUEST']._serialized_start=5924 - _globals['_UPDATEACTORREQUEST']._serialized_end=5974 - _globals['_SUSPENDACTORREQUEST']._serialized_start=5976 - _globals['_SUSPENDACTORREQUEST']._serialized_end=6031 - _globals['_SUSPENDACTORRESPONSE']._serialized_start=6033 - _globals['_SUSPENDACTORRESPONSE']._serialized_end=6085 - _globals['_PAUSEACTORREQUEST']._serialized_start=6087 - _globals['_PAUSEACTORREQUEST']._serialized_end=6140 - _globals['_PAUSEACTORRESPONSE']._serialized_start=6142 - _globals['_PAUSEACTORRESPONSE']._serialized_end=6192 - _globals['_RESUMEACTORREQUEST']._serialized_start=6194 - _globals['_RESUMEACTORREQUEST']._serialized_end=6248 - _globals['_RESUMEACTORRESPONSE']._serialized_start=6250 - _globals['_RESUMEACTORRESPONSE']._serialized_end=6318 - _globals['_DELETEACTORREQUEST']._serialized_start=6320 - _globals['_DELETEACTORREQUEST']._serialized_end=6393 - _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_start=6395 - _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_end=6458 - _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_start=6460 - _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_end=6571 - _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_start=6573 - _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_end=6684 - _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_start=6686 - _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_end=6752 - _globals['_GETTAGREQUEST']._serialized_start=6754 - _globals['_GETTAGREQUEST']._serialized_end=6801 - _globals['_MINTACTORJWTREQUEST']._serialized_start=6803 - _globals['_MINTACTORJWTREQUEST']._serialized_end=6895 - _globals['_MINTACTORJWTRESPONSE']._serialized_start=6897 - _globals['_MINTACTORJWTRESPONSE']._serialized_end=6938 - _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_start=6941 - _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_end=7110 - _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_start=7112 - _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_end=7170 - _globals['_GETACTORSNAPSHOTREQUEST']._serialized_start=7172 - _globals['_GETACTORSNAPSHOTREQUEST']._serialized_end=7240 - _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_start=7242 - _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_end=7317 - _globals['_LISTTAGSREQUEST']._serialized_start=7319 - _globals['_LISTTAGSREQUEST']._serialized_end=7393 - _globals['_LISTTAGSRESPONSE']._serialized_start=7395 - _globals['_LISTTAGSRESPONSE']._serialized_end=7465 - _globals['_CREATETAGREQUEST']._serialized_start=7467 - _globals['_CREATETAGREQUEST']._serialized_end=7511 - _globals['_UPDATETAGREQUEST']._serialized_start=7513 - _globals['_UPDATETAGREQUEST']._serialized_end=7557 - _globals['_DELETETAGREQUEST']._serialized_start=7559 - _globals['_DELETETAGREQUEST']._serialized_end=7609 - _globals['_DELETEOPTIONS']._serialized_start=7611 - _globals['_DELETEOPTIONS']._serialized_end=7656 - _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_start=7658 - _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_end=7767 - _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_start=7769 - _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_end=7882 - _globals['_LISTWORKERSREQUEST']._serialized_start=7884 - _globals['_LISTWORKERSREQUEST']._serialized_end=7943 - _globals['_LISTWORKERSRESPONSE']._serialized_start=7945 - _globals['_LISTWORKERSRESPONSE']._serialized_end=8024 - _globals['_GETWORKERREQUEST']._serialized_start=8026 - _globals['_GETWORKERREQUEST']._serialized_end=8079 - _globals['_CREATEWORKERREQUEST']._serialized_start=8081 - _globals['_CREATEWORKERREQUEST']._serialized_end=8134 - _globals['_UPDATEWORKERREQUEST']._serialized_start=8136 - _globals['_UPDATEWORKERREQUEST']._serialized_end=8189 - _globals['_DELETEWORKERREQUEST']._serialized_start=8191 - _globals['_DELETEWORKERREQUEST']._serialized_end=8287 - _globals['_DRAINWORKERREQUEST']._serialized_start=8289 - _globals['_DRAINWORKERREQUEST']._serialized_end=8344 - _globals['_LISTACTORSREQUEST']._serialized_start=8346 - _globals['_LISTACTORSREQUEST']._serialized_end=8422 - _globals['_LISTACTORSRESPONSE']._serialized_start=8424 - _globals['_LISTACTORSRESPONSE']._serialized_end=8500 - _globals['_WORKER']._serialized_start=8503 - _globals['_WORKER']._serialized_end=8829 - _globals['_WORKER_LABELSENTRY']._serialized_start=8784 - _globals['_WORKER_LABELSENTRY']._serialized_end=8829 - _globals['_WORKERSTATUS']._serialized_start=8832 - _globals['_WORKERSTATUS']._serialized_end=8969 - _globals['_WORKERRESOURCES']._serialized_start=8971 - _globals['_WORKERRESOURCES']._serialized_end=9042 - _globals['_ACTORASSIGNMENT']._serialized_start=9045 - _globals['_ACTORASSIGNMENT']._serialized_end=9244 - _globals['_SETWORKERCAPACITYREQUEST']._serialized_start=9246 - _globals['_SETWORKERCAPACITYREQUEST']._serialized_end=9350 - _globals['_SETWORKERCAPACITYRESPONSE']._serialized_start=9352 - _globals['_SETWORKERCAPACITYRESPONSE']._serialized_end=9411 - _globals['_CONTROL']._serialized_start=10448 - _globals['_CONTROL']._serialized_end=12917 - _globals['_WORKERSERVICE']._serialized_start=12919 - _globals['_WORKERSERVICE']._serialized_end=13024 + _globals['_LOCALSNAPSHOTINFO']._serialized_end=344 + _globals['_SELECTOR']._serialized_start=346 + _globals['_SELECTOR']._serialized_end=465 + _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_start=415 + _globals['_SELECTOR_MATCHLABELSENTRY']._serialized_end=465 + _globals['_RESOURCEMETADATA']._serialized_start=468 + _globals['_RESOURCEMETADATA']._serialized_end=646 + _globals['_EXTERNALVOLUME']._serialized_start=649 + _globals['_EXTERNALVOLUME']._serialized_end=997 + _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_start=850 + _globals['_EXTERNALVOLUME_VOLUMECONTEXTENTRY']._serialized_end=902 + _globals['_EXTERNALVOLUME_STATUS']._serialized_start=904 + _globals['_EXTERNALVOLUME_STATUS']._serialized_end=997 + _globals['_ACTOR']._serialized_start=1000 + _globals['_ACTOR']._serialized_end=1213 + _globals['_EGRESSPOLICY']._serialized_start=1215 + _globals['_EGRESSPOLICY']._serialized_end=1308 + _globals['_EGRESSRULE']._serialized_start=1310 + _globals['_EGRESSRULE']._serialized_end=1433 + _globals['_HOSTNAMERULE']._serialized_start=1435 + _globals['_HOSTNAMERULE']._serialized_end=1511 + _globals['_CIDRRULE']._serialized_start=1513 + _globals['_CIDRRULE']._serialized_end=1538 + _globals['_EGRESSRULEEFFECTS']._serialized_start=1540 + _globals['_EGRESSRULEEFFECTS']._serialized_end=1625 + _globals['_CREDENTIALHEADERINJECTION']._serialized_start=1627 + _globals['_CREDENTIALHEADERINJECTION']._serialized_end=1710 + _globals['_ACTORSTATUS']._serialized_start=1713 + _globals['_ACTORSTATUS']._serialized_end=2081 + _globals['_WORKERASSIGNMENT']._serialized_start=2084 + _globals['_WORKERASSIGNMENT']._serialized_end=2251 + _globals['_TAGSTATUS']._serialized_start=2254 + _globals['_TAGSTATUS']._serialized_end=2389 + _globals['_TAG']._serialized_start=2392 + _globals['_TAG']._serialized_end=2550 + _globals['_ATESPACE']._serialized_start=2552 + _globals['_ATESPACE']._serialized_end=2606 + _globals['_OBJECTREF']._serialized_start=2608 + _globals['_OBJECTREF']._serialized_end=2651 + _globals['_ACTORTEMPLATE']._serialized_start=2654 + _globals['_ACTORTEMPLATE']._serialized_end=3009 + _globals['_RESOURCES']._serialized_start=3011 + _globals['_RESOURCES']._serialized_end=3054 + _globals['_LIMITS']._serialized_start=3056 + _globals['_LIMITS']._serialized_end=3096 + _globals['_GOLDENSNAPSHOTSTATUS']._serialized_start=3099 + _globals['_GOLDENSNAPSHOTSTATUS']._serialized_end=3244 + _globals['_ACTORTEMPLATESTATUS']._serialized_start=3246 + _globals['_ACTORTEMPLATESTATUS']._serialized_end=3329 + _globals['_SANDBOXCONFIG']._serialized_start=3331 + _globals['_SANDBOXCONFIG']._serialized_end=3412 + _globals['_SNAPSHOTSCONFIG']._serialized_start=3415 + _globals['_SNAPSHOTSCONFIG']._serialized_end=3598 + _globals['_ONRESUMECONFIG']._serialized_start=3600 + _globals['_ONRESUMECONFIG']._serialized_end=3657 + _globals['_CONTAINER']._serialized_start=3660 + _globals['_CONTAINER']._serialized_end=3934 + _globals['_SECURITYCONTEXT']._serialized_start=3936 + _globals['_SECURITYCONTEXT']._serialized_end=3997 + _globals['_CAPABILITIES']._serialized_start=3999 + _globals['_CAPABILITIES']._serialized_end=4040 + _globals['_ENVVAR']._serialized_start=4042 + _globals['_ENVVAR']._serialized_end=4079 + _globals['_CONTAINERREADYZ']._serialized_start=4081 + _globals['_CONTAINERREADYZ']._serialized_end=4164 + _globals['_HTTPGETACTION']._serialized_start=4166 + _globals['_HTTPGETACTION']._serialized_end=4209 + _globals['_VOLUME']._serialized_start=4212 + _globals['_VOLUME']._serialized_end=4448 + _globals['_IMAGEVOLUMESOURCE']._serialized_start=4450 + _globals['_IMAGEVOLUMESOURCE']._serialized_end=4488 + _globals['_DURABLEDIRVOLUMESOURCE']._serialized_start=4490 + _globals['_DURABLEDIRVOLUMESOURCE']._serialized_end=4514 + _globals['_EXTERNALVOLUMETEMPLATE']._serialized_start=4516 + _globals['_EXTERNALVOLUMETEMPLATE']._serialized_end=4586 + _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_start=4588 + _globals['_SYSTEMINFOVOLUMESOURCE']._serialized_end=4664 + _globals['_SYSTEMINFODATASOURCE']._serialized_start=4667 + _globals['_SYSTEMINFODATASOURCE']._serialized_end=4799 + _globals['_ACTORMETADATADATASOURCE']._serialized_start=4801 + _globals['_ACTORMETADATADATASOURCE']._serialized_end=4868 + _globals['_ACTORMETADATAITEM']._serialized_start=4870 + _globals['_ACTORMETADATAITEM']._serialized_end=4946 + _globals['_TRUSTBUNDLEDATASOURCE']._serialized_start=4948 + _globals['_TRUSTBUNDLEDATASOURCE']._serialized_end=4999 + _globals['_VOLUMEMOUNT']._serialized_start=5001 + _globals['_VOLUMEMOUNT']._serialized_end=5048 + _globals['_CREATEATESPACEREQUEST']._serialized_start=5050 + _globals['_CREATEATESPACEREQUEST']._serialized_end=5109 + _globals['_GETATESPACEREQUEST']._serialized_start=5111 + _globals['_GETATESPACEREQUEST']._serialized_end=5168 + _globals['_LISTATESPACESREQUEST']._serialized_start=5170 + _globals['_LISTATESPACESREQUEST']._serialized_end=5231 + _globals['_LISTATESPACESRESPONSE']._serialized_start=5233 + _globals['_LISTATESPACESRESPONSE']._serialized_end=5318 + _globals['_DELETEATESPACEREQUEST']._serialized_start=5320 + _globals['_DELETEATESPACEREQUEST']._serialized_end=5380 + _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_start=5382 + _globals['_CREATEACTORTEMPLATEREQUEST']._serialized_end=5457 + _globals['_GETACTORTEMPLATEREQUEST']._serialized_start=5459 + _globals['_GETACTORTEMPLATEREQUEST']._serialized_end=5527 + _globals['_LISTACTORTEMPLATESREQUEST']._serialized_start=5529 + _globals['_LISTACTORTEMPLATESREQUEST']._serialized_end=5613 + _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_start=5615 + _globals['_LISTACTORTEMPLATESRESPONSE']._serialized_end=5716 + _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_start=5718 + _globals['_DELETEACTORTEMPLATEREQUEST']._serialized_end=5789 + _globals['_GETACTORREQUEST']._serialized_start=5791 + _globals['_GETACTORREQUEST']._serialized_end=5842 + _globals['_CREATEACTORREQUEST']._serialized_start=5844 + _globals['_CREATEACTORREQUEST']._serialized_end=5894 + _globals['_UPDATEACTORREQUEST']._serialized_start=5896 + _globals['_UPDATEACTORREQUEST']._serialized_end=5946 + _globals['_SUSPENDACTORREQUEST']._serialized_start=5948 + _globals['_SUSPENDACTORREQUEST']._serialized_end=6003 + _globals['_SUSPENDACTORRESPONSE']._serialized_start=6005 + _globals['_SUSPENDACTORRESPONSE']._serialized_end=6057 + _globals['_PAUSEACTORREQUEST']._serialized_start=6059 + _globals['_PAUSEACTORREQUEST']._serialized_end=6112 + _globals['_PAUSEACTORRESPONSE']._serialized_start=6114 + _globals['_PAUSEACTORRESPONSE']._serialized_end=6164 + _globals['_RESUMEACTORREQUEST']._serialized_start=6166 + _globals['_RESUMEACTORREQUEST']._serialized_end=6220 + _globals['_RESUMEACTORRESPONSE']._serialized_start=6222 + _globals['_RESUMEACTORRESPONSE']._serialized_end=6290 + _globals['_DELETEACTORREQUEST']._serialized_start=6292 + _globals['_DELETEACTORREQUEST']._serialized_end=6365 + _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_start=6367 + _globals['_GETACTOREGRESSPOLICYREQUEST']._serialized_end=6430 + _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_start=6432 + _globals['_CREATEACTOREGRESSPOLICYREQUEST']._serialized_end=6543 + _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_start=6545 + _globals['_UPDATEACTOREGRESSPOLICYREQUEST']._serialized_end=6656 + _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_start=6658 + _globals['_DELETEACTOREGRESSPOLICYREQUEST']._serialized_end=6724 + _globals['_GETTAGREQUEST']._serialized_start=6726 + _globals['_GETTAGREQUEST']._serialized_end=6773 + _globals['_MINTACTORJWTREQUEST']._serialized_start=6775 + _globals['_MINTACTORJWTREQUEST']._serialized_end=6867 + _globals['_MINTACTORJWTRESPONSE']._serialized_start=6869 + _globals['_MINTACTORJWTRESPONSE']._serialized_end=6910 + _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_start=6913 + _globals['_MINTACTORCERTIFICATEREQUEST']._serialized_end=7082 + _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_start=7084 + _globals['_MINTACTORCERTIFICATERESPONSE']._serialized_end=7142 + _globals['_GETACTORSNAPSHOTREQUEST']._serialized_start=7144 + _globals['_GETACTORSNAPSHOTREQUEST']._serialized_end=7212 + _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_start=7214 + _globals['_GETACTORSNAPSHOTTAGREQUEST']._serialized_end=7289 + _globals['_LISTTAGSREQUEST']._serialized_start=7291 + _globals['_LISTTAGSREQUEST']._serialized_end=7365 + _globals['_LISTTAGSRESPONSE']._serialized_start=7367 + _globals['_LISTTAGSRESPONSE']._serialized_end=7437 + _globals['_CREATETAGREQUEST']._serialized_start=7439 + _globals['_CREATETAGREQUEST']._serialized_end=7483 + _globals['_UPDATETAGREQUEST']._serialized_start=7485 + _globals['_UPDATETAGREQUEST']._serialized_end=7529 + _globals['_DELETETAGREQUEST']._serialized_start=7531 + _globals['_DELETETAGREQUEST']._serialized_end=7581 + _globals['_DELETEOPTIONS']._serialized_start=7583 + _globals['_DELETEOPTIONS']._serialized_end=7628 + _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_start=7630 + _globals['_LISTWORKERACTORASSIGNMENTSREQUEST']._serialized_end=7739 + _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_start=7741 + _globals['_LISTWORKERACTORASSIGNMENTSRESPONSE']._serialized_end=7854 + _globals['_LISTWORKERSREQUEST']._serialized_start=7856 + _globals['_LISTWORKERSREQUEST']._serialized_end=7915 + _globals['_LISTWORKERSRESPONSE']._serialized_start=7917 + _globals['_LISTWORKERSRESPONSE']._serialized_end=7996 + _globals['_GETWORKERREQUEST']._serialized_start=7998 + _globals['_GETWORKERREQUEST']._serialized_end=8051 + _globals['_CREATEWORKERREQUEST']._serialized_start=8053 + _globals['_CREATEWORKERREQUEST']._serialized_end=8106 + _globals['_UPDATEWORKERREQUEST']._serialized_start=8108 + _globals['_UPDATEWORKERREQUEST']._serialized_end=8161 + _globals['_DELETEWORKERREQUEST']._serialized_start=8163 + _globals['_DELETEWORKERREQUEST']._serialized_end=8259 + _globals['_DRAINWORKERREQUEST']._serialized_start=8261 + _globals['_DRAINWORKERREQUEST']._serialized_end=8316 + _globals['_LISTACTORSREQUEST']._serialized_start=8318 + _globals['_LISTACTORSREQUEST']._serialized_end=8394 + _globals['_LISTACTORSRESPONSE']._serialized_start=8396 + _globals['_LISTACTORSRESPONSE']._serialized_end=8472 + _globals['_WORKER']._serialized_start=8475 + _globals['_WORKER']._serialized_end=8801 + _globals['_WORKER_LABELSENTRY']._serialized_start=8756 + _globals['_WORKER_LABELSENTRY']._serialized_end=8801 + _globals['_WORKERSTATUS']._serialized_start=8804 + _globals['_WORKERSTATUS']._serialized_end=8941 + _globals['_WORKERRESOURCES']._serialized_start=8943 + _globals['_WORKERRESOURCES']._serialized_end=9014 + _globals['_ACTORASSIGNMENT']._serialized_start=9017 + _globals['_ACTORASSIGNMENT']._serialized_end=9216 + _globals['_SETWORKERCAPACITYREQUEST']._serialized_start=9218 + _globals['_SETWORKERCAPACITYREQUEST']._serialized_end=9322 + _globals['_SETWORKERCAPACITYRESPONSE']._serialized_start=9324 + _globals['_SETWORKERCAPACITYRESPONSE']._serialized_end=9383 + _globals['_CONTROL']._serialized_start=10420 + _globals['_CONTROL']._serialized_end=12889 + _globals['_WORKERSERVICE']._serialized_start=12891 + _globals['_WORKERSERVICE']._serialized_end=12996 # @@protoc_insertion_point(module_scope) diff --git a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go index cd781c1caf..a18d5d1283 100644 --- a/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go +++ b/cmd/ateapi/internal/controlapi/functionaltest/actor_test.go @@ -2631,7 +2631,6 @@ func TestPauseActor(t *testing.T) { LocalSnapshotInfo: &ateapipb.LocalSnapshotInfo{ NodeVmsWithLocalSnapshots: []string{"node1"}, ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, - ActorTemplateUid: tmpl.GetMetadata().GetUid(), }, CurrentActorTemplateUid: tmpl.GetMetadata().GetUid(), ExternalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: goldenSnapshotURI(t), ContentScope: ateapipb.SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_FULL, ActorTemplateUid: tmpl.GetMetadata().GetUid()}, diff --git a/cmd/ateapi/internal/controlapi/workflow_pause.go b/cmd/ateapi/internal/controlapi/workflow_pause.go index e3e4be4e88..3fc4a77c84 100644 --- a/cmd/ateapi/internal/controlapi/workflow_pause.go +++ b/cmd/ateapi/internal/controlapi/workflow_pause.go @@ -277,9 +277,8 @@ func (w *ActorWorkflow) ensurePausedFinalized(ctx context.Context, actorRef reso // TODO(dberkov) - what if InProgressLocalSnapshotName is empty? That shouldn't be possible. if toUpdate.GetStatus().GetInProgressLocalSnapshotName() != "" { localInfo := &ateapipb.LocalSnapshotInfo{ - SnapshotName: toUpdate.GetStatus().GetInProgressLocalSnapshotName(), - ContentScope: contentScope, - ActorTemplateUid: toUpdate.GetStatus().GetCurrentActorTemplateUid(), + SnapshotName: toUpdate.GetStatus().GetInProgressLocalSnapshotName(), + ContentScope: contentScope, } if newState != ateapipb.ActorState_ACTOR_STATE_CRASHED { localInfo.NodeVmsWithLocalSnapshots = []string{nodeName} diff --git a/cmd/ateapi/internal/controlapi/workflow_pause_test.go b/cmd/ateapi/internal/controlapi/workflow_pause_test.go index 3cd69fa075..d12f59e687 100644 --- a/cmd/ateapi/internal/controlapi/workflow_pause_test.go +++ b/cmd/ateapi/internal/controlapi/workflow_pause_test.go @@ -134,7 +134,6 @@ func TestEnsurePausedFinalized_RecordsContentScope(t *testing.T) { WorkerPodUid: workerName, }, InProgressLocalSnapshotName: "snap-prefix", - CurrentActorTemplateUid: "tmpl-uid-1", }, }) if _, err := st.CreateWorker(ctx, &ateapipb.Worker{ @@ -168,9 +167,6 @@ func TestEnsurePausedFinalized_RecordsContentScope(t *testing.T) { if scope := got.GetStatus().GetLocalSnapshotInfo().GetContentScope(); scope != tc.want { t.Errorf("LocalSnapshotInfo.ContentScope = %v, want %v", scope, tc.want) } - if uid := got.GetStatus().GetLocalSnapshotInfo().GetActorTemplateUid(); uid != "tmpl-uid-1" { - t.Errorf("LocalSnapshotInfo.ActorTemplateUid = %q, want %q", uid, "tmpl-uid-1") - } }) } } diff --git a/cmd/ateapi/internal/controlapi/workflow_resume.go b/cmd/ateapi/internal/controlapi/workflow_resume.go index 4c1dabc419..f7235a5880 100644 --- a/cmd/ateapi/internal/controlapi/workflow_resume.go +++ b/cmd/ateapi/internal/controlapi/workflow_resume.go @@ -48,13 +48,9 @@ type resumeSnapshotSource struct { // selects the golden snapshot as the boot source for the pending restore: // restore then combines the golden snapshot with the actor's data. GoldenSnapshotURI resources.SnapshotURI - // LocalTemplateReplaced and ExternalTemplateReplaced are true when the - // actor's local pause checkpoint, respectively its external snapshot, was - // captured under a template other than the actor's current one. They are - // tracked separately because the two can have been captured under - // different templates, and each restore path reads only its own. - LocalTemplateReplaced bool - ExternalTemplateReplaced bool + // TemplateReplaced is true when the external snapshot's recorded template + // UID differs from the actor's current template. + TemplateReplaced bool } // restoreTelemetry labels the restore operation for the resume lifecycle @@ -183,22 +179,13 @@ func (w *ActorWorkflow) loadActorForResume(ctx context.Context, actorRef resourc if err != nil { return nil, nil, src, err } - // Each captured guest state records the template whose sandbox it came - // from, so judge each against the actor's current template on its own: a - // repointed Actor's local checkpoint and its external snapshot need not - // have been captured under the same one. - templateReplaced := func(capturedUnder string) bool { - return capturedUnder != "" && capturedUnder != actorTemplate.GetMetadata().GetUid() - } - if local := actor.GetStatus().GetLocalSnapshotInfo(); local != nil { - src.LocalTemplateReplaced = templateReplaced(local.GetActorTemplateUid()) - } if uri := actor.GetStatus().GetExternalSnapshot().GetSnapshotUri(); uri != "" { if src.SnapshotURI, err = resources.ParseSnapshotURI(uri); err != nil { return nil, nil, src, status.Errorf(codes.DataLoss, "Actor %s external snapshot: %v", actorRef, err) } src.Scope = actor.GetStatus().GetExternalSnapshot().GetContentScope() - src.ExternalTemplateReplaced = templateReplaced(actor.GetStatus().GetExternalSnapshot().GetActorTemplateUid()) + capturedUnder := actor.GetStatus().GetExternalSnapshot().GetActorTemplateUid() + src.TemplateReplaced = capturedUnder != "" && capturedUnder != actorTemplate.GetMetadata().GetUid() } // The template's onResume configuration selects the boot source for the @@ -708,8 +695,6 @@ func (w *ActorWorkflow) ensureAteletRestored(ctx context.Context, actorRef resou // loadActorForResume resolved a golden URI per the template's onResume // configuration, else what the pause captured. switch { - case src.LocalTemplateReplaced: - req.Scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA case !src.GoldenSnapshotURI.IsZero(): req.Scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA_ON_GOLDEN req.GoldenSnapshotUri = src.GoldenSnapshotURI.String() @@ -731,7 +716,7 @@ func (w *ActorWorkflow) ensureAteletRestored(ctx context.Context, actorRef resou var scope ateletpb.SnapshotScope var goldenSnapshotURI string switch { - case src.ExternalTemplateReplaced: + case src.TemplateReplaced: scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA case !src.GoldenSnapshotURI.IsZero(): scope = ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA_ON_GOLDEN diff --git a/cmd/ateapi/internal/controlapi/workflow_resume_test.go b/cmd/ateapi/internal/controlapi/workflow_resume_test.go index c2c547c329..d2b5a74eee 100644 --- a/cmd/ateapi/internal/controlapi/workflow_resume_test.go +++ b/cmd/ateapi/internal/controlapi/workflow_resume_test.go @@ -1090,9 +1090,9 @@ func TestLoadActorForResume_DoesNotDefaultGolden(t *testing.T) { } // TestLoadActorForResume_TemplateReplaced covers the detection of a repointed -// actor. Each captured guest state records the template it came from and is -// judged against the actor's current template on its own provenance; a -// mismatch forces that restore to data-only. +// actor: when ExternalSnapshot.actor_template_uid differs from the actor's +// current template UID, TemplateReplaced is set so the external restore +// downgrades to data-only. func TestLoadActorForResume_TemplateReplaced(t *testing.T) { actorRef := resources.ActorRef{Atespace: "team-a", Name: "id1"} @@ -1100,24 +1100,19 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { const current = "current" tests := []struct { - name string - // snapshotUID and localUID are the per-snapshot provenance. localUID - // is only seeded when withLocal is set. - snapshotUID string - localUID string - noSnapshot bool - withLocal bool - wantExternal bool - wantLocal bool + name string + snapshotUID string + noSnapshot bool + want bool }{ { name: "snapshot taken under the current template", snapshotUID: current, }, { - name: "snapshot taken under a replaced template", - snapshotUID: "some-other-uid", - wantExternal: true, + name: "snapshot taken under a replaced template", + snapshotUID: "some-other-uid", + want: true, }, { name: "snapshot without a recorded template UID", @@ -1127,23 +1122,6 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { name: "no durable snapshot", noSnapshot: true, }, - { - // The pause path: a repointed Actor resumed on the new template - // and then paused, so its checkpoint is current while the external - // snapshot it still holds is not. - name: "local checkpoint and external snapshot differ", - snapshotUID: "some-other-uid", - withLocal: true, - localUID: current, - wantExternal: true, - }, - { - name: "local checkpoint taken under a replaced template", - snapshotUID: current, - withLocal: true, - localUID: "some-other-uid", - wantLocal: true, - }, } for _, tt := range tests { @@ -1178,14 +1156,6 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { } }) } - if tt.withLocal { - seedOpts = append(seedOpts, func(a *ateapipb.Actor) { - a.Status.LocalSnapshotInfo = &ateapipb.LocalSnapshotInfo{ - SnapshotName: "local-1", - ActorTemplateUid: resolve(tt.localUID), - } - }) - } seedWorkflowActor(t, ctx, persistence, actorRef, "ns", "tmpl1", ateapipb.ActorState_ACTOR_STATE_SUSPENDED, seedOpts...) w := &ActorWorkflow{store: persistence} @@ -1193,11 +1163,8 @@ func TestLoadActorForResume_TemplateReplaced(t *testing.T) { if err != nil { t.Fatalf("loadActorForResume: %v", err) } - if src.ExternalTemplateReplaced != tt.wantExternal { - t.Errorf("src.ExternalTemplateReplaced = %v, want %v", src.ExternalTemplateReplaced, tt.wantExternal) - } - if src.LocalTemplateReplaced != tt.wantLocal { - t.Errorf("src.LocalTemplateReplaced = %v, want %v", src.LocalTemplateReplaced, tt.wantLocal) + if src.TemplateReplaced != tt.want { + t.Errorf("src.TemplateReplaced = %v, want %v", src.TemplateReplaced, tt.want) } }) } @@ -1731,9 +1698,11 @@ func TestResumeActor_AteletWireRequest(t *testing.T) { }, }, { - // TemplateReplaced wins in the local branch too: the pause - // checkpoint restores as plain Data, the golden overlay dropped. - name: "29 template repoint beats the golden policy on the local path", + // An older external snapshot's template mismatch does not affect a + // local pause restore: templates can only be updated while + // SUSPENDED, so a pause checkpoint is always from the current + // template. + name: "29 local snapshot ignores an older external snapshot's template mismatch", actor: actorSeed{ localSnapshot: &ateapipb.LocalSnapshotInfo{SnapshotName: localSnapshotName, NodeVmsWithLocalSnapshots: []string{"node-1"}}, externalSnapshot: &ateapipb.ExternalSnapshot{SnapshotUri: actorURI, ContentScope: fullScope}, @@ -1747,7 +1716,8 @@ func TestResumeActor_AteletWireRequest(t *testing.T) { want: restoreWant{ checkpointType: ateletpb.CheckpointType_CHECKPOINT_TYPE_LOCAL, snapshotName: localSnapshotName, - scope: ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA, + scope: ateletpb.SnapshotScope_SNAPSHOT_SCOPE_DATA_ON_GOLDEN, + goldenURI: goldenURI, }, }, } @@ -1803,18 +1773,12 @@ func TestResumeActor_AteletWireRequest(t *testing.T) { actorRef := resources.ActorRef{Atespace: "team-a", Name: "id1"} seedWorkflowActor(t, ctx, persistence, actorRef, "ns", "tmpl1", actorState, func(a *ateapipb.Actor) { a.Status.WorkerAssignment = wireTestAssignment() + a.Status.LocalSnapshotInfo = tt.actor.localSnapshot uid := tt.actor.tmplUID if uid == "current" { uid = createdTmpl.GetMetadata().GetUid() } a.Status.CurrentActorTemplateUid = uid - if tt.actor.localSnapshot != nil { - local := proto.CloneOf(tt.actor.localSnapshot) - if local.ActorTemplateUid == "" { - local.ActorTemplateUid = uid - } - a.Status.LocalSnapshotInfo = local - } if tt.actor.externalSnapshot != nil { ext := proto.CloneOf(tt.actor.externalSnapshot) if ext.ActorTemplateUid == "" { diff --git a/cmd/ateapi/internal/controlapi/zz_generated.validation.go b/cmd/ateapi/internal/controlapi/zz_generated.validation.go index 57f832d317..f277d6ac7a 100644 --- a/cmd/ateapi/internal/controlapi/zz_generated.validation.go +++ b/cmd/ateapi/internal/controlapi/zz_generated.validation.go @@ -4645,34 +4645,6 @@ func Validate_LocalSnapshotInfo( errs = append(errs, fn(fldPath.Child("content_scope"), &obj.ContentScope, oldVal, oldObj != nil)...) } - { // field ateapipb.LocalSnapshotInfo.ActorTemplateUid - fn := func( - fldPath *field.Path, - obj, oldObj *string, - oldValueCorrelated bool) (errs field.ErrorList) { - // don't revalidate unchanged data - if oldValueCorrelated && op.Type == operation.Update { - if obj == oldObj || (obj != nil && oldObj != nil && *obj == *oldObj) { - return nil - } - } - // call field-attached validations - earlyReturn := false - if e := validate.OptionalValue(ctx, op, fldPath, obj, oldObj).MarkShortCircuit(); len(e) != 0 { - earlyReturn = true - } - if earlyReturn { - return // do not proceed - } - return - } - oldVal := safe.Field(oldObj, - func(oldObj *ateapipb.LocalSnapshotInfo) *string { - return &oldObj.ActorTemplateUid - }) - errs = append(errs, fn(fldPath.Child("actor_template_uid"), &obj.ActorTemplateUid, oldVal, oldObj != nil)...) - } - return errs } diff --git a/internal/e2e/suites/demo/updatetemplate_test.go b/internal/e2e/suites/demo/updatetemplate_test.go index dc2c9583a7..08a3cd5538 100644 --- a/internal/e2e/suites/demo/updatetemplate_test.go +++ b/internal/e2e/suites/demo/updatetemplate_test.go @@ -191,11 +191,11 @@ func runUpdateTemplateTestCase(t *testing.T, onCommit ateapipb.SnapshotContentSc } // - // Pause under template B while the external snapshot is still from - // template A: LocalSnapshotInfo records template B while ExternalSnapshot - // retains template A. Resuming from PAUSED must judge by the local - // checkpoint's provenance (template B) and restore in FULL when onPause is - // FULL, preserving the in-memory counter rather than resetting it. + // Pause under template B while status.external_snapshot still holds the last + // committed snapshot from template A. Resuming from PAUSED restores the + // local checkpoint (which was captured under template B, since templates + // can only be updated while SUSPENDED) and preserves the in-memory counter + // when onPause is FULL. // t.Logf("Pausing Actor %q under template B...", actorID) if _, err := clients.SubstrateAPI.PauseActor(ctx, &ateapipb.PauseActorRequest{ @@ -211,9 +211,6 @@ func runUpdateTemplateTestCase(t *testing.T, onCommit ateapipb.SnapshotContentSc if err != nil { t.Fatalf("failed to get paused Actor: %v", err) } - if got, want := paused.GetStatus().GetLocalSnapshotInfo().GetActorTemplateUid(), createdB.GetMetadata().GetUid(); got != want { - t.Errorf("paused Actor local_snapshot_info.actor_template_uid = %q, want template B's %q", got, want) - } if got, want := paused.GetStatus().GetExternalSnapshot().GetActorTemplateUid(), createdA.GetMetadata().GetUid(); got != want { t.Errorf("paused Actor external_snapshot.actor_template_uid = %q, want template A's %q", got, want) } diff --git a/pkg/proto/ateapipb/ateapi.pb.go b/pkg/proto/ateapipb/ateapi.pb.go index d546e4bbd5..fb3fbc83f2 100644 --- a/pkg/proto/ateapipb/ateapi.pb.go +++ b/pkg/proto/ateapipb/ateapi.pb.go @@ -623,14 +623,9 @@ type LocalSnapshotInfo struct { // +k8s:optional // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum - ContentScope SnapshotContentScope `protobuf:"varint,3,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` - // UID of the ActorTemplate whose sandbox this checkpoint's guest state was - // captured from. - // - // +k8s:optional - ActorTemplateUid string `protobuf:"bytes,4,opt,name=actor_template_uid,json=actorTemplateUid,proto3" json:"actor_template_uid,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + ContentScope SnapshotContentScope `protobuf:"varint,3,opt,name=content_scope,json=contentScope,proto3,enum=ateapi.SnapshotContentScope" json:"content_scope,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *LocalSnapshotInfo) Reset() { @@ -684,13 +679,6 @@ func (x *LocalSnapshotInfo) GetContentScope() SnapshotContentScope { return SnapshotContentScope_SNAPSHOT_CONTENT_SCOPE_UNSPECIFIED } -func (x *LocalSnapshotInfo) GetActorTemplateUid() string { - if x != nil { - return x.ActorTemplateUid - } - return "" -} - // Selector matches worker pools by label. // Only equality-based matching is supported. type Selector struct { @@ -6876,12 +6864,11 @@ const file_ateapi_proto_rawDesc = "" + "\x10ExternalSnapshot\x12!\n" + "\fsnapshot_uri\x18\x01 \x01(\tR\vsnapshotUri\x12A\n" + "\rcontent_scope\x18\x02 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\x12,\n" + - "\x12actor_template_uid\x18\x03 \x01(\tR\x10actorTemplateUid\"\xeb\x01\n" + + "\x12actor_template_uid\x18\x03 \x01(\tR\x10actorTemplateUid\"\xbd\x01\n" + "\x11LocalSnapshotInfo\x12#\n" + "\rsnapshot_name\x18\x01 \x01(\tR\fsnapshotName\x12@\n" + "\x1dnode_vms_with_local_snapshots\x18\x02 \x03(\tR\x19nodeVmsWithLocalSnapshots\x12A\n" + - "\rcontent_scope\x18\x03 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\x12,\n" + - "\x12actor_template_uid\x18\x04 \x01(\tR\x10actorTemplateUid\"\x90\x01\n" + + "\rcontent_scope\x18\x03 \x01(\x0e2\x1c.ateapi.SnapshotContentScopeR\fcontentScope\"\x90\x01\n" + "\bSelector\x12D\n" + "\fmatch_labels\x18\x01 \x03(\v2!.ateapi.Selector.MatchLabelsEntryR\vmatchLabels\x1a>\n" + "\x10MatchLabelsEntry\x12\x10\n" + diff --git a/pkg/proto/ateapipb/ateapi.proto b/pkg/proto/ateapipb/ateapi.proto index 7a638a69a8..f2fe862b29 100644 --- a/pkg/proto/ateapipb/ateapi.proto +++ b/pkg/proto/ateapipb/ateapi.proto @@ -190,12 +190,6 @@ message LocalSnapshotInfo { // +k8s:minimum=1 // +k8s:maximum=2 # keep this in sync with the SnapshotContentScope enum SnapshotContentScope content_scope = 3; - - // UID of the ActorTemplate whose sandbox this checkpoint's guest state was - // captured from. - // - // +k8s:optional - string actor_template_uid = 4; } enum SnapshotContentScope { From e159c9b589c5483d33b76fa9f3c62029589e8e5c Mon Sep 17 00:00:00 2001 From: shrutiyam-glitch Date: Fri, 18 Sep 2026 12:21:49 -0700 Subject: [PATCH 7/7] Trigger CI