ComputeResourceSet#
- pydantic model ansys.hps.client.rms.ComputeResourceSet#
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
Show JSON schema
{ "title": "ComputeResourceSet", "type": "object", "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "default", "description": "Name of the compute resource set.", "title": "Name" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "ID for the resource set.", "title": "Id" }, "scaler_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Temporary. To be removed after transitioning to client_id.", "title": "Scaler Id" }, "last_modified": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "default": null, "description": "Last modified time.", "title": "Last Modified" }, "backend": { "anyOf": [ { "discriminator": { "mapping": { "kubernetes": "#/$defs/KubernetesKedaBackend", "local": "#/$defs/LocalBackend", "mockup": "#/$defs/MockupBackend", "ocm": "#/$defs/OCMBackend", "orchestration_interfaces": "#/$defs/OrchestrationInterfacesBackend" }, "propertyName": "plugin_name" }, "oneOf": [ { "$ref": "#/$defs/KubernetesKedaBackend" }, { "$ref": "#/$defs/OrchestrationInterfacesBackend" }, { "$ref": "#/$defs/OCMBackend" }, { "$ref": "#/$defs/LocalBackend" }, { "$ref": "#/$defs/MockupBackend" } ] }, { "type": "null" } ], "default": { "debug": false, "plugin_name": "local" }, "description": "Backend to use in the compute resource set.", "title": "Backend" }, "scaling_strategy": { "anyOf": [ { "discriminator": { "mapping": { "kubernetes_resource_scaling": "#/$defs/KubernetesResourceScaling", "max_available_resource_scaling": "#/$defs/MaxAvailableResourceScaling" }, "propertyName": "plugin_name" }, "oneOf": [ { "$ref": "#/$defs/MaxAvailableResourceScaling" }, { "$ref": "#/$defs/KubernetesResourceScaling" } ] }, { "type": "null" } ], "default": { "match_all_requirements": false, "plugin_name": "max_available_resource_scaling" }, "description": "Scaling strategy to use in the compute resource set.", "title": "Scaling Strategy" }, "available_resources": { "anyOf": [ { "$ref": "#/$defs/Resources" }, { "type": "null" } ], "default": { "custom": {} }, "description": "Available resources in the compute resource set." }, "available_applications": { "anyOf": [ { "items": { "$ref": "#/$defs/ScalerApplicationInfo" }, "type": "array" }, { "type": "null" } ], "default": [], "description": "List of available applications.", "title": "Available Applications" }, "evaluator_requirements_matching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether the evaluators should do matching of resource and software requirements.", "title": "Evaluator Requirements Matching" }, "evaluator_task_directory_cleanup": { "anyOf": [ { "$ref": "#/$defs/EvaluatorTaskDirectoryCleanup" }, { "type": "null" } ], "default": "always", "description": "Cleanup policy for task directories that are passed to evaluators.", "title": "Evaluator Task Directory Cleanup" }, "evaluator_auto_shutdown_time": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 20, "description": "Time after which to shut down the evaluator if it is not running any jobs.", "title": "Evaluator Auto Shutdown Time" }, "evaluator_loop_interval": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 5, "description": "Number of seconds between each iteration of the evaluator's main loop.", "title": "Evaluator Loop Interval" } }, "$defs": { "EvaluatorTaskDirectoryCleanup": { "enum": [ "always", "on_success", "never" ], "title": "EvaluatorTaskDirectoryCleanup", "type": "string" }, "KubernetesKedaBackend": { "properties": { "plugin_name": { "const": "kubernetes", "title": "Plugin Name", "type": "string" }, "debug": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to enable additional debugging of the backend.", "title": "Debug" }, "job_script_template_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the job script template to use in the backend.", "title": "Job Script Template Path" }, "shared_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Working directory to use in the backend.", "title": "Shared Dir" }, "env": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Static environment variables needed for job execution.", "title": "Env" }, "cpu_limit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "1.0", "description": "CPU limit applied to each evaluator instance.", "title": "Cpu Limit" }, "memory_limit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "250M", "description": "Memory limit applied to each evaluator instance.", "title": "Memory Limit" }, "namespace": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "default", "description": "Kubernetes namespace to use to scale evaluators.", "title": "Namespace" }, "target_resource_kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "job", "description": "Kubernetes resource kind that the scaler should target. Options are ``deployment``, ``job``, and ``statefulset``.", "title": "Target Resource Kind" } }, "required": [ "plugin_name" ], "title": "KubernetesKedaBackend", "type": "object" }, "KubernetesResourceScaling": { "properties": { "plugin_name": { "const": "kubernetes_resource_scaling", "title": "Plugin Name", "type": "string" }, "target_resource_kind": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "job", "description": "Kubernetes resource kind that the scaler should target. Options are ``deployment``, ``job``, and ``statefulset``.", "title": "Target Resource Kind" } }, "required": [ "plugin_name" ], "title": "KubernetesResourceScaling", "type": "object" }, "LocalBackend": { "properties": { "plugin_name": { "const": "local", "title": "Plugin Name", "type": "string" }, "debug": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to enable additional debugging of the backend.", "title": "Debug" }, "shared_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Working directory to use in the backend.", "title": "Shared Dir" }, "env": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Static environment variables needed for job execution.", "title": "Env" } }, "required": [ "plugin_name" ], "title": "LocalBackend", "type": "object" }, "MaxAvailableResourceScaling": { "properties": { "plugin_name": { "const": "max_available_resource_scaling", "title": "Plugin Name", "type": "string" }, "match_all_requirements": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether scaling should work with available resource properties specified in the compute resource set (default) or require a match of all requirements of the task definition.", "title": "Match All Requirements" } }, "required": [ "plugin_name" ], "title": "MaxAvailableResourceScaling", "type": "object" }, "MockupBackend": { "properties": { "plugin_name": { "const": "mockup", "title": "Plugin Name", "type": "string" }, "debug": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to enable additional debugging of the backend.", "title": "Debug" } }, "required": [ "plugin_name" ], "title": "MockupBackend", "type": "object" }, "OCMBackend": { "properties": { "plugin_name": { "const": "ocm", "title": "Plugin Name", "type": "string" }, "debug": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to enable additional debugging of the backend.", "title": "Debug" }, "working_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Working directory to use in the backend.", "title": "Working Dir" }, "onscale_username": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Username to use for OnScale API authentication.", "title": "Onscale Username" }, "onscale_password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Password to use for OnScale API authentication.", "title": "Onscale Password" }, "ocm_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "URL to use for OCM API authentication.", "title": "Ocm Url" } }, "required": [ "plugin_name" ], "title": "OCMBackend", "type": "object" }, "OrchestrationInterfacesBackend": { "properties": { "plugin_name": { "const": "orchestration_interfaces", "title": "Plugin Name", "type": "string" }, "debug": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to enable additional debugging of the backend.", "title": "Debug" }, "scheduler_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "slurm", "description": "Job scheduler type, such as ``slurm``, ``pbs``, ``uge``, or ``lsf``, to use in the backend.", "title": "Scheduler Type" }, "enable_api": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to use the scheduler REST API feature.", "title": "Enable Api" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "http://localhost:5050", "description": "REST API URL.", "title": "Base Url" }, "api_ver": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "v0.0.39", "description": "REST API version.", "title": "Api Ver" }, "scheduler_queue_default": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Job scheduler queue to use for submission.", "title": "Scheduler Queue Default" }, "scheduler_command_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the JSON file with custom scheduler command definitions.", "title": "Scheduler Command Override" }, "scheduler_script_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the shell script to template for the scheduler.", "title": "Scheduler Script Override" }, "exclusive_default": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether the scheduler is to hold the nodes exclusively for one request.", "title": "Exclusive Default" }, "distributed_default": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": true, "description": "Whether the scheduler is to provide multiple machines to fulfill the request.", "title": "Distributed Default" }, "num_cores_default": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 1, "description": "Number of cores to request from the scheduler for a task.", "title": "Num Cores Default" }, "shared_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Working directory to use in the backend.", "title": "Shared Dir" }, "env": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Static environment variables needed for job execution.", "title": "Env" }, "process_runner": { "anyOf": [ { "discriminator": { "mapping": { "process_launcher_module": "#/$defs/ProcessLauncherProcessRunner", "process_launcher_service": "#/$defs/RestLauncherProcessRunner", "service_user_module": "#/$defs/ServiceUserProcessRunner" }, "propertyName": "plugin_name" }, "oneOf": [ { "$ref": "#/$defs/ServiceUserProcessRunner" }, { "$ref": "#/$defs/ProcessLauncherProcessRunner" }, { "$ref": "#/$defs/RestLauncherProcessRunner" } ] }, { "type": "null" } ], "default": { "plugin_name": "service_user_module" }, "description": "Process runner to execute commands.", "title": "Process Runner" }, "create_workdir": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": true, "description": "Whether to create base and/or user-specific working directories at runtime.", "title": "Create Workdir" }, "use_local_scratch": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "description": "Whether to use local storage as the working directory for jobs.", "title": "Use Local Scratch" }, "local_scratch_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the local scratch directory to use as the jobs' working directory.", "title": "Local Scratch Dir" } }, "required": [ "plugin_name" ], "title": "OrchestrationInterfacesBackend", "type": "object" }, "PlatformEnum": { "enum": [ "windows", "linux", "darwin" ], "title": "PlatformEnum", "type": "string" }, "ProcessLauncherProcessRunner": { "properties": { "plugin_name": { "const": "process_launcher_module", "title": "Plugin Name", "type": "string" }, "default_user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "User to default to when no user is specified.", "title": "Default User" }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 30, "description": "Timeout in seconds before the request is stopped.", "title": "Timeout" }, "allowed_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Users allowed to launch processes.", "title": "Allowed Users" }, "disallowed_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": [ "root" ], "description": "Users not allowed to launch processes.", "title": "Disallowed Users" }, "user_mapping": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": {}, "description": "Map of the calling user to the system user.", "title": "User Mapping" }, "minimum_uid": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 1000, "description": "Minimum UID of users allowed to launch processes.", "title": "Minimum Uid" }, "minimum_gid": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 1000, "description": "Minimum GID of users allowed to launch processes.", "title": "Minimum Gid" } }, "required": [ "plugin_name" ], "title": "ProcessLauncherProcessRunner", "type": "object" }, "Resources": { "properties": { "num_cores": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of cores.", "title": "Num Cores" }, "platform": { "anyOf": [ { "$ref": "#/$defs/PlatformEnum" }, { "type": "null" } ], "default": null, "description": "Basic platform information. Options are ``'linux'`` and ``'windows'``." }, "memory": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Amount of RAM in bytes.", "title": "Memory" }, "disk_space": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Amount of disk space in bytes.", "title": "Disk Space" }, "custom": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "boolean" }, { "type": "string" }, { "type": "number" }, { "type": "null" } ] }, "type": "object" }, { "type": "null" } ], "default": {}, "description": "Custom resource properties.", "title": "Custom" }, "num_instances": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "description": "Number of instances/jobs that can be created on the compute resource set.", "title": "Num Instances" } }, "title": "Resources", "type": "object" }, "RestLauncherProcessRunner": { "properties": { "plugin_name": { "const": "process_launcher_service", "title": "Plugin Name", "type": "string" }, "launcher_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "http://localhost:4911", "description": "URL to use when no URL is specified.", "title": "Launcher Url" }, "verify_ssl": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": true, "description": "Whether to verify the SSL certificate for HTTPS launchers.", "title": "Verify Ssl" }, "timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 30, "description": "Timeout in seconds before the request is stopped.", "title": "Timeout" }, "shell": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": true, "description": "Whether to enable the shell interpretation on a subprocess run.", "title": "Shell" } }, "required": [ "plugin_name" ], "title": "RestLauncherProcessRunner", "type": "object" }, "ScalerApplicationInfo": { "properties": { "name": { "description": "Application name.", "title": "Name", "type": "string" }, "version": { "description": "Application version.", "title": "Version", "type": "string" }, "install_path": { "description": "Installation path of the application.", "title": "Install Path", "type": "string" }, "executable": { "description": "Executable path to run the application.", "title": "Executable", "type": "string" }, "environment": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Environment setup for the process.", "title": "Environment" }, "capabilities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "description": "Capabilities of the application.", "title": "Capabilities" }, "customization_hook": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Custom hook dictionary for modifying the configuration before performing runs.", "title": "Customization Hook" }, "resource_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Kubernetes object (deployment/statefulset) name or solver image that KEDA (Kubernetes Event-driven Autoscaling) is to use as the target resource.", "title": "Resource Name" }, "use_local_scratch": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether to use local storage as the working directory for jobs.", "title": "Use Local Scratch" }, "local_scratch_dir": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Path to the local scratch directory to use as the jobs' working directory.", "title": "Local Scratch Dir" }, "exclusive": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether the scheduler is to hold the nodes exclusively for one request.", "title": "Exclusive" }, "distributed": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "description": "Whether the scheduler is to provide multiple machines to fulfill the request.", "title": "Distributed" }, "evaluator_image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "Evaluator image to use.", "title": "Evaluator Image" }, "queue": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "A default queue to request when starting this application on a scheduler.", "title": "Queue" }, "scaling_max_eval_instances": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 1, "description": "Maximum number of instances that can be created when scaling up.", "title": "Scaling Max Eval Instances" }, "scaling_min_eval_instances": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 0, "description": "Minimum number of instances than can be terminated when scaling down.", "title": "Scaling Min Eval Instances" }, "scaling_threshold": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 1, "description": "Threshold value to determine when Kubernetes deployments should be scaled up or down.", "title": "Scaling Threshold" }, "cool_down_period": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 60, "description": "Period to wait before scaling down the resource to 0 instances.", "title": "Cool Down Period" } }, "required": [ "name", "version", "install_path", "executable" ], "title": "ScalerApplicationInfo", "type": "object" }, "ServiceUserProcessRunner": { "properties": { "plugin_name": { "const": "service_user_module", "title": "Plugin Name", "type": "string" } }, "required": [ "plugin_name" ], "title": "ServiceUserProcessRunner", "type": "object" } } }
- Fields:
available_applications (List[ansys.hps.client.rms.models.ScalerApplicationInfo] | None)
available_resources (ansys.hps.client.rms.models.Resources | None)
backend (ansys.hps.client.rms.models.KubernetesKedaBackend | ansys.hps.client.rms.models.OrchestrationInterfacesBackend | ansys.hps.client.rms.models.OCMBackend | ansys.hps.client.rms.models.LocalBackend | ansys.hps.client.rms.models.MockupBackend | None)
evaluator_auto_shutdown_time (int | None)
evaluator_loop_interval (int | None)
evaluator_requirements_matching (bool | None)
evaluator_task_directory_cleanup (ansys.hps.client.rms.models.EvaluatorTaskDirectoryCleanup | None)
id (str | None)
last_modified (datetime.datetime | None)
name (str | None)
scaler_id (str | None)
scaling_strategy (ansys.hps.client.rms.models.MaxAvailableResourceScaling | ansys.hps.client.rms.models.KubernetesResourceScaling | None)
- field available_applications: Optional[List[ScalerApplicationInfo]] = []#
List of available applications.
- field available_resources: Optional[Resources] = {'custom': {}}#
Available resources in the compute resource set.
- field backend: Optional[Union[KubernetesKedaBackend, OrchestrationInterfacesBackend, OCMBackend, LocalBackend, MockupBackend]] = {'debug': False, 'plugin_name': 'local'}#
Backend to use in the compute resource set.
- field evaluator_auto_shutdown_time: Optional[int] = 20#
Time after which to shut down the evaluator if it is not running any jobs.
- field evaluator_loop_interval: Optional[int] = 5#
Number of seconds between each iteration of the evaluator’s main loop.
- field evaluator_requirements_matching: Optional[bool] = False#
Whether the evaluators should do matching of resource and software requirements.
- field evaluator_task_directory_cleanup: Optional[EvaluatorTaskDirectoryCleanup] = 'always'#
Cleanup policy for task directories that are passed to evaluators.
- field id: Optional[str] = None#
ID for the resource set.
- field last_modified: Optional[datetime] = None#
Last modified time.
- field name: Optional[str] = 'default'#
Name of the compute resource set.
- field scaler_id: Optional[str] = None#
Temporary. To be removed after transitioning to client_id.
- field scaling_strategy: Optional[Union[MaxAvailableResourceScaling, KubernetesResourceScaling]] = {'match_all_requirements': False, 'plugin_name': 'max_available_resource_scaling'}#
Scaling strategy to use in the compute resource set.