Interface InstanceServiceGrpc.AsyncService

All Known Implementing Classes:
InstanceServiceGrpc.InstanceServiceImplBase, InstanceServiceImpl
Enclosing class:
InstanceServiceGrpc

public static interface InstanceServiceGrpc.AsyncService
Service for managing SoulFire instances.
An instance represents a collection of Minecraft bots that can be started,
stopped, and configured together. Each instance has its own configuration
including settings, Minecraft accounts, and proxies.
All operations require appropriate permissions:
- CREATE_INSTANCE (global): Required to create new instances
- READ_INSTANCE: Required to list and view instance details
- UPDATE_INSTANCE_META: Required to change instance name/icon
- UPDATE_INSTANCE_CONFIG: Required to modify settings, accounts, and proxies
- DELETE_INSTANCE: Required to delete an instance
- CHANGE_INSTANCE_STATE: Required to start/stop/pause the instance
- READ_INSTANCE_AUDIT_LOGS: Required to view audit logs
- READ_BOT_INFO: Required to read account metadata
  • Method Details

    • createInstance

      default void createInstance(InstanceCreateRequest request, io.grpc.stub.StreamObserver<InstanceCreateResponse> responseObserver)
      Creates a new instance with the given friendly name.
      The instance starts in STOPPED state with default configuration.
      Requires: CREATE_INSTANCE global permission
      Returns: The UUID of the newly created instance
      Errors: INTERNAL if creation fails
      
    • deleteInstance

      default void deleteInstance(InstanceDeleteRequest request, io.grpc.stub.StreamObserver<InstanceDeleteResponse> responseObserver)
      Permanently deletes an instance and all its data.
      If the instance is running, it will be stopped first.
      This operation cannot be undone.
      Requires: DELETE_INSTANCE permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • listInstances

      default void listInstances(InstanceListRequest request, io.grpc.stub.StreamObserver<InstanceListResponse> responseObserver)
      Lists all instances the current user has permission to view.
      Only instances where the user has READ_INSTANCE permission are returned.
      Returns summary information for each instance.
      
    • getInstanceInfo

      default void getInstanceInfo(InstanceInfoRequest request, io.grpc.stub.StreamObserver<InstanceInfoResponse> responseObserver)
      Gets detailed information about a specific instance.
      Supports conditional requests via if_modified_since to reduce bandwidth.
      Requires: READ_INSTANCE permission on the instance
      Returns: Full instance info or not_modified status
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceMeta

      default void updateInstanceMeta(InstanceUpdateMetaRequest request, io.grpc.stub.StreamObserver<InstanceUpdateMetaResponse> responseObserver)
      Updates instance metadata (friendly name or icon).
      Only one field can be updated per request.
      Requires: UPDATE_INSTANCE_META permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceConfig

      default void updateInstanceConfig(InstanceUpdateConfigRequest request, io.grpc.stub.StreamObserver<InstanceUpdateConfigResponse> responseObserver)
      Replaces the entire instance configuration.
      Used primarily for profile import operations.
      For individual setting changes, use UpdateInstanceConfigEntry instead.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceConfigEntry

      default void updateInstanceConfigEntry(InstanceUpdateConfigEntryRequest request, io.grpc.stub.StreamObserver<InstanceUpdateConfigEntryResponse> responseObserver)
      Updates a single configuration entry by namespace and key.
      More efficient than UpdateInstanceConfig for individual changes.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceAccount

      default void addInstanceAccount(InstanceAddAccountRequest request, io.grpc.stub.StreamObserver<InstanceAddAccountResponse> responseObserver)
      Adds a Minecraft account to the instance.
      The account's profile_id must be unique within the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceAccount

      default void removeInstanceAccount(InstanceRemoveAccountRequest request, io.grpc.stub.StreamObserver<InstanceRemoveAccountResponse> responseObserver)
      Removes a Minecraft account from the instance by profile_id.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • updateInstanceAccount

      default void updateInstanceAccount(InstanceUpdateAccountRequest request, io.grpc.stub.StreamObserver<InstanceUpdateAccountResponse> responseObserver)
      Updates an existing Minecraft account in the instance.
      The account is matched by profile_id and replaced.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceAccountsBatch

      default void addInstanceAccountsBatch(InstanceAddAccountsBatchRequest request, io.grpc.stub.StreamObserver<InstanceAddAccountsBatchResponse> responseObserver)
      Adds multiple Minecraft accounts to the instance in a single operation.
      More efficient than multiple AddInstanceAccount calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceAccountsBatch

      default void removeInstanceAccountsBatch(InstanceRemoveAccountsBatchRequest request, io.grpc.stub.StreamObserver<InstanceRemoveAccountsBatchResponse> responseObserver)
      Removes multiple Minecraft accounts from the instance by their profile_ids.
      More efficient than multiple RemoveInstanceAccount calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • addInstanceProxy

      default void addInstanceProxy(InstanceAddProxyRequest request, io.grpc.stub.StreamObserver<InstanceAddProxyResponse> responseObserver)
      Adds a proxy to the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxy

      default void removeInstanceProxy(InstanceRemoveProxyRequest request, io.grpc.stub.StreamObserver<InstanceRemoveProxyResponse> responseObserver)
      Removes a proxy from the instance by its index.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      Errors: INVALID_ARGUMENT if index is out of bounds
      
    • updateInstanceProxy

      default void updateInstanceProxy(InstanceUpdateProxyRequest request, io.grpc.stub.StreamObserver<InstanceUpdateProxyResponse> responseObserver)
      Updates an existing proxy in the instance by its index.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      Errors: INVALID_ARGUMENT if index is out of bounds
      
    • addInstanceProxiesBatch

      default void addInstanceProxiesBatch(InstanceAddProxiesBatchRequest request, io.grpc.stub.StreamObserver<InstanceAddProxiesBatchResponse> responseObserver)
      Adds multiple proxies to the instance in a single operation.
      More efficient than multiple AddInstanceProxy calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxiesBatch

      default void removeInstanceProxiesBatch(InstanceRemoveProxiesBatchRequest request, io.grpc.stub.StreamObserver<InstanceRemoveProxiesBatchResponse> responseObserver)
      Removes multiple proxies from the instance by their addresses.
      More efficient than multiple RemoveInstanceProxy calls.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • changeInstanceState

      default void changeInstanceState(InstanceStateChangeRequest request, io.grpc.stub.StreamObserver<InstanceStateChangeResponse> responseObserver)
      Changes the lifecycle state of an instance.
      Used to start, pause, resume, or stop bot sessions.
      The operation blocks until the state transition is complete.
      Requires: CHANGE_INSTANCE_STATE permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • getAuditLog

      default void getAuditLog(InstanceAuditLogRequest request, io.grpc.stub.StreamObserver<InstanceAuditLogResponse> responseObserver)
      Retrieves the audit log for an instance.
      Returns a list of recorded actions ordered by timestamp (newest first).
      Requires: READ_INSTANCE_AUDIT_LOGS permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • getAccountMetadata

      default void getAccountMetadata(GetAccountMetadataRequest request, io.grpc.stub.StreamObserver<GetAccountMetadataResponse> responseObserver)
      Gets persistent metadata for a Minecraft account.
      Persistent metadata survives bot restarts and session changes.
      Requires: READ_BOT_INFO permission on the instance
      Errors: NOT_FOUND if instance or account does not exist
      
    • setAccountMetadataEntry

      default void setAccountMetadataEntry(SetAccountMetadataEntryRequest request, io.grpc.stub.StreamObserver<SetAccountMetadataEntryResponse> responseObserver)
      Sets a single persistent metadata entry for a Minecraft account.
      Creates the namespace and key if they don't exist, or updates if they do.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • deleteAccountMetadataEntry

      default void deleteAccountMetadataEntry(DeleteAccountMetadataEntryRequest request, io.grpc.stub.StreamObserver<DeleteAccountMetadataEntryResponse> responseObserver)
      Deletes a persistent metadata entry from a Minecraft account.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist