Class InstanceServiceGrpc.InstanceServiceBlockingStub

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

public static final class InstanceServiceGrpc.InstanceServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<InstanceServiceGrpc.InstanceServiceBlockingStub>
A stub to allow clients to do limited synchronous 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.InstanceServiceBlockingStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions)
      Specified by:
      build in class io.grpc.stub.AbstractStub<InstanceServiceGrpc.InstanceServiceBlockingStub>
    • createInstance

      public InstanceCreateResponse createInstance(InstanceCreateRequest request)
      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 InstanceDeleteResponse deleteInstance(InstanceDeleteRequest request)
      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 InstanceListResponse listInstances(InstanceListRequest request)
      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 InstanceInfoResponse getInstanceInfo(InstanceInfoRequest request)
      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 InstanceUpdateMetaResponse updateInstanceMeta(InstanceUpdateMetaRequest request)
      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 InstanceUpdateConfigResponse updateInstanceConfig(InstanceUpdateConfigRequest request)
      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 InstanceUpdateConfigEntryResponse updateInstanceConfigEntry(InstanceUpdateConfigEntryRequest request)
      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 InstanceAddAccountResponse addInstanceAccount(InstanceAddAccountRequest request)
      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 InstanceRemoveAccountResponse removeInstanceAccount(InstanceRemoveAccountRequest request)
      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 InstanceUpdateAccountResponse updateInstanceAccount(InstanceUpdateAccountRequest request)
      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 InstanceAddAccountsBatchResponse addInstanceAccountsBatch(InstanceAddAccountsBatchRequest request)
      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 InstanceRemoveAccountsBatchResponse removeInstanceAccountsBatch(InstanceRemoveAccountsBatchRequest request)
      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 InstanceAddProxyResponse addInstanceProxy(InstanceAddProxyRequest request)
      Adds a proxy to the instance.
      Requires: UPDATE_INSTANCE_CONFIG permission on the instance
      Errors: NOT_FOUND if instance does not exist
      
    • removeInstanceProxy

      public InstanceRemoveProxyResponse removeInstanceProxy(InstanceRemoveProxyRequest request)
      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 InstanceUpdateProxyResponse updateInstanceProxy(InstanceUpdateProxyRequest request)
      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 InstanceAddProxiesBatchResponse addInstanceProxiesBatch(InstanceAddProxiesBatchRequest request)
      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 InstanceRemoveProxiesBatchResponse removeInstanceProxiesBatch(InstanceRemoveProxiesBatchRequest request)
      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 InstanceStateChangeResponse changeInstanceState(InstanceStateChangeRequest request)
      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 InstanceAuditLogResponse getAuditLog(InstanceAuditLogRequest request)
      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 GetAccountMetadataResponse getAccountMetadata(GetAccountMetadataRequest request)
      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 SetAccountMetadataEntryResponse setAccountMetadataEntry(SetAccountMetadataEntryRequest request)
      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 DeleteAccountMetadataEntryResponse deleteAccountMetadataEntry(DeleteAccountMetadataEntryRequest request)
      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