Class InstanceServiceGrpc.InstanceServiceStub

java.lang.Object
io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceStub>
io.grpc.stub.AbstractAsyncStub<InstanceServiceGrpc.InstanceServiceStub>
com.soulfiremc.grpc.generated.InstanceServiceGrpc.InstanceServiceStub
Enclosing class:
InstanceServiceGrpc

public static final class InstanceServiceGrpc.InstanceServiceStub extends io.grpc.stub.AbstractAsyncStub<InstanceServiceGrpc.InstanceServiceStub>
A stub to allow clients to do asynchronous rpc calls to service InstanceService.
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

    • build

      protected InstanceServiceGrpc.InstanceServiceStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceStub>
    • createInstance

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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

      public 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