Skip to main content

qualia_cli/cli/
qpu.rs

1use clap::Subcommand;
2
3#[derive(Subcommand, Debug)]
4pub enum QpuAction {
5    ListProviders,
6
7    Configure {
8        provider: String,
9        #[arg(
10            long,
11            help = "API key / bearer token (IBM, D-Wave, IonQ, Rigetti, Quantinuum)"
12        )]
13        api_key: Option<String>,
14        #[arg(long, help = "Custom API endpoint URL (overrides provider default)")]
15        endpoint: Option<String>,
16        #[arg(long, help = "IBM Quantum Network hub (e.g. ibm-q)")]
17        hub: Option<String>,
18        #[arg(long, help = "IBM Quantum Network group (e.g. open)")]
19        group: Option<String>,
20        #[arg(long, help = "IBM Quantum Network project (e.g. main)")]
21        project: Option<String>,
22        #[arg(long, help = "IBM instance string (alternate to hub/group/project)")]
23        instance: Option<String>,
24        #[arg(long, help = "Azure subscription ID")]
25        subscription_id: Option<String>,
26        #[arg(long, help = "Azure resource group name")]
27        resource_group: Option<String>,
28        #[arg(long, help = "Azure Quantum workspace name")]
29        workspace: Option<String>,
30        #[arg(long, help = "Azure region (e.g. eastus)")]
31        location: Option<String>,
32        #[arg(long, help = "AWS access key ID (IAM with AmazonBraketFullAccess)")]
33        access_key_id: Option<String>,
34        #[arg(long, help = "AWS secret access key")]
35        secret_access_key: Option<String>,
36        #[arg(long, help = "AWS region (e.g. us-east-1)")]
37        region: Option<String>,
38        #[arg(long, help = "S3 bucket for Braket job results")]
39        s3_bucket: Option<String>,
40        #[arg(long, help = "Google Cloud project ID")]
41        project_id: Option<String>,
42        #[arg(long, help = "Quantum processor ID (e.g. rainbow, weber)")]
43        processor_id: Option<String>,
44        #[arg(long, help = "Path to service account JSON key file")]
45        service_account_key_path: Option<String>,
46        #[arg(long, help = "Rigetti QCS user ID")]
47        user_id: Option<String>,
48        #[arg(long, help = "Rigetti QPU ID (e.g. Ankaa-2)")]
49        qpu_id: Option<String>,
50        #[arg(
51            long,
52            help = "IonQ backend (ionq_sim | ionq_qpu | qpu.aria-1 | qpu.forte-1)"
53        )]
54        backend: Option<String>,
55        #[arg(
56            long,
57            help = "Quantinuum machine (H1-1 | H1-2 | H2-1 | H1-1E | H1-1SC)"
58        )]
59        machine: Option<String>,
60    },
61
62    Show {
63        #[arg(long)]
64        provider: Option<String>,
65    },
66
67    Clear {
68        provider: String,
69    },
70
71    TestConnection {
72        provider: String,
73    },
74
75    Submit {
76        provider: String,
77        #[arg(long, default_value = "annealing")]
78        problem_type: String,
79        #[arg(long, default_value = "4")]
80        qubits: u32,
81        #[arg(long, default_value = "1000")]
82        shots: u32,
83    },
84}