diff --git a/progenitor-impl/src/cli.rs b/progenitor-impl/src/cli.rs index 05cdc056..5ccde05f 100644 --- a/progenitor-impl/src/cli.rs +++ b/progenitor-impl/src/cli.rs @@ -74,6 +74,10 @@ impl Generator { .iter() .map(|method| format_ident!("{}", sanitize(&method.operation_id, Case::Pascal))) .collect::>(); + let operation_ids = raw_methods + .iter() + .map(|method| &method.operation_id) + .collect::>(); let crate_path = syn::TypePath { qself: None, @@ -169,6 +173,14 @@ impl Generator { )* ].into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + #( + CliCommand::#cli_variants => #operation_ids, + )* + } + } } }; diff --git a/progenitor-impl/tests/output/src/buildomat_cli.rs b/progenitor-impl/tests/output/src/buildomat_cli.rs index 78445f66..bd6decc5 100644 --- a/progenitor-impl/tests/output/src/buildomat_cli.rs +++ b/progenitor-impl/tests/output/src/buildomat_cli.rs @@ -1145,4 +1145,30 @@ impl CliCommand { ] .into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::ControlHold => "control_hold", + CliCommand::ControlResume => "control_resume", + CliCommand::TaskGet => "task_get", + CliCommand::TasksGet => "tasks_get", + CliCommand::TaskSubmit => "task_submit", + CliCommand::TaskEventsGet => "task_events_get", + CliCommand::TaskOutputsGet => "task_outputs_get", + CliCommand::TaskOutputDownload => "task_output_download", + CliCommand::UserCreate => "user_create", + CliCommand::Whoami => "whoami", + CliCommand::WhoamiPutName => "whoami_put_name", + CliCommand::WorkerBootstrap => "worker_bootstrap", + CliCommand::WorkerPing => "worker_ping", + CliCommand::WorkerTaskAppend => "worker_task_append", + CliCommand::WorkerTaskUploadChunk => "worker_task_upload_chunk", + CliCommand::WorkerTaskComplete => "worker_task_complete", + CliCommand::WorkerTaskAddOutput => "worker_task_add_output", + CliCommand::WorkersList => "workers_list", + CliCommand::WorkersRecycle => "workers_recycle", + CliCommand::GetThingOrThings => "get_thing_or_things", + CliCommand::HeaderArg => "header_arg", + } + } } diff --git a/progenitor-impl/tests/output/src/cli_gen_cli.rs b/progenitor-impl/tests/output/src/cli_gen_cli.rs index 2b060a9d..57115341 100644 --- a/progenitor-impl/tests/output/src/cli_gen_cli.rs +++ b/progenitor-impl/tests/output/src/cli_gen_cli.rs @@ -116,4 +116,10 @@ impl CliCommand { pub fn iter() -> impl Iterator { vec![CliCommand::Uno].into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::Uno => "uno", + } + } } diff --git a/progenitor-impl/tests/output/src/keeper_cli.rs b/progenitor-impl/tests/output/src/keeper_cli.rs index f1616003..879ea3b3 100644 --- a/progenitor-impl/tests/output/src/keeper_cli.rs +++ b/progenitor-impl/tests/output/src/keeper_cli.rs @@ -478,4 +478,15 @@ impl CliCommand { ] .into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::Enrol => "enrol", + CliCommand::GlobalJobs => "global_jobs", + CliCommand::Ping => "ping", + CliCommand::ReportFinish => "report_finish", + CliCommand::ReportOutput => "report_output", + CliCommand::ReportStart => "report_start", + } + } } diff --git a/progenitor-impl/tests/output/src/nexus_cli.rs b/progenitor-impl/tests/output/src/nexus_cli.rs index 6c87e4f7..f6f80b01 100644 --- a/progenitor-impl/tests/output/src/nexus_cli.rs +++ b/progenitor-impl/tests/output/src/nexus_cli.rs @@ -14502,4 +14502,202 @@ impl CliCommand { ] .into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::DiskViewById => "disk_view_by_id", + CliCommand::ImageViewById => "image_view_by_id", + CliCommand::InstanceViewById => "instance_view_by_id", + CliCommand::InstanceNetworkInterfaceViewById => "instance_network_interface_view_by_id", + CliCommand::OrganizationViewById => "organization_view_by_id", + CliCommand::ProjectViewById => "project_view_by_id", + CliCommand::SnapshotViewById => "snapshot_view_by_id", + CliCommand::VpcRouterRouteViewById => "vpc_router_route_view_by_id", + CliCommand::VpcRouterViewById => "vpc_router_view_by_id", + CliCommand::VpcSubnetViewById => "vpc_subnet_view_by_id", + CliCommand::VpcViewById => "vpc_view_by_id", + CliCommand::DeviceAuthRequest => "device_auth_request", + CliCommand::DeviceAuthConfirm => "device_auth_confirm", + CliCommand::DeviceAccessToken => "device_access_token", + CliCommand::GroupList => "group_list", + CliCommand::LoginSpoof => "login_spoof", + CliCommand::LoginLocal => "login_local", + CliCommand::LoginSamlBegin => "login_saml_begin", + CliCommand::LoginSaml => "login_saml", + CliCommand::Logout => "logout", + CliCommand::OrganizationList => "organization_list", + CliCommand::OrganizationCreate => "organization_create", + CliCommand::OrganizationView => "organization_view", + CliCommand::OrganizationUpdate => "organization_update", + CliCommand::OrganizationDelete => "organization_delete", + CliCommand::OrganizationPolicyView => "organization_policy_view", + CliCommand::OrganizationPolicyUpdate => "organization_policy_update", + CliCommand::ProjectList => "project_list", + CliCommand::ProjectCreate => "project_create", + CliCommand::ProjectView => "project_view", + CliCommand::ProjectUpdate => "project_update", + CliCommand::ProjectDelete => "project_delete", + CliCommand::DiskList => "disk_list", + CliCommand::DiskCreate => "disk_create", + CliCommand::DiskView => "disk_view", + CliCommand::DiskDelete => "disk_delete", + CliCommand::DiskMetricsList => "disk_metrics_list", + CliCommand::ImageList => "image_list", + CliCommand::ImageCreate => "image_create", + CliCommand::ImageView => "image_view", + CliCommand::ImageDelete => "image_delete", + CliCommand::InstanceList => "instance_list", + CliCommand::InstanceCreate => "instance_create", + CliCommand::InstanceView => "instance_view", + CliCommand::InstanceDelete => "instance_delete", + CliCommand::InstanceDiskList => "instance_disk_list", + CliCommand::InstanceDiskAttach => "instance_disk_attach", + CliCommand::InstanceDiskDetach => "instance_disk_detach", + CliCommand::InstanceExternalIpList => "instance_external_ip_list", + CliCommand::InstanceMigrate => "instance_migrate", + CliCommand::InstanceNetworkInterfaceList => "instance_network_interface_list", + CliCommand::InstanceNetworkInterfaceCreate => "instance_network_interface_create", + CliCommand::InstanceNetworkInterfaceView => "instance_network_interface_view", + CliCommand::InstanceNetworkInterfaceUpdate => "instance_network_interface_update", + CliCommand::InstanceNetworkInterfaceDelete => "instance_network_interface_delete", + CliCommand::InstanceReboot => "instance_reboot", + CliCommand::InstanceSerialConsole => "instance_serial_console", + CliCommand::InstanceSerialConsoleStream => "instance_serial_console_stream", + CliCommand::InstanceSerialConsoleStreamV2 => "instance_serial_console_stream_v2", + CliCommand::InstanceStart => "instance_start", + CliCommand::InstanceStop => "instance_stop", + CliCommand::ProjectPolicyView => "project_policy_view", + CliCommand::ProjectPolicyUpdate => "project_policy_update", + CliCommand::SnapshotList => "snapshot_list", + CliCommand::SnapshotCreate => "snapshot_create", + CliCommand::SnapshotView => "snapshot_view", + CliCommand::SnapshotDelete => "snapshot_delete", + CliCommand::VpcList => "vpc_list", + CliCommand::VpcCreate => "vpc_create", + CliCommand::VpcView => "vpc_view", + CliCommand::VpcUpdate => "vpc_update", + CliCommand::VpcDelete => "vpc_delete", + CliCommand::VpcFirewallRulesView => "vpc_firewall_rules_view", + CliCommand::VpcFirewallRulesUpdate => "vpc_firewall_rules_update", + CliCommand::VpcRouterList => "vpc_router_list", + CliCommand::VpcRouterCreate => "vpc_router_create", + CliCommand::VpcRouterView => "vpc_router_view", + CliCommand::VpcRouterUpdate => "vpc_router_update", + CliCommand::VpcRouterDelete => "vpc_router_delete", + CliCommand::VpcRouterRouteList => "vpc_router_route_list", + CliCommand::VpcRouterRouteCreate => "vpc_router_route_create", + CliCommand::VpcRouterRouteView => "vpc_router_route_view", + CliCommand::VpcRouterRouteUpdate => "vpc_router_route_update", + CliCommand::VpcRouterRouteDelete => "vpc_router_route_delete", + CliCommand::VpcSubnetList => "vpc_subnet_list", + CliCommand::VpcSubnetCreate => "vpc_subnet_create", + CliCommand::VpcSubnetView => "vpc_subnet_view", + CliCommand::VpcSubnetUpdate => "vpc_subnet_update", + CliCommand::VpcSubnetDelete => "vpc_subnet_delete", + CliCommand::VpcSubnetListNetworkInterfaces => "vpc_subnet_list_network_interfaces", + CliCommand::PolicyView => "policy_view", + CliCommand::PolicyUpdate => "policy_update", + CliCommand::RoleList => "role_list", + CliCommand::RoleView => "role_view", + CliCommand::SessionMe => "session_me", + CliCommand::SessionMeGroups => "session_me_groups", + CliCommand::SessionSshkeyList => "session_sshkey_list", + CliCommand::SessionSshkeyCreate => "session_sshkey_create", + CliCommand::SessionSshkeyView => "session_sshkey_view", + CliCommand::SessionSshkeyDelete => "session_sshkey_delete", + CliCommand::SystemImageViewById => "system_image_view_by_id", + CliCommand::IpPoolViewById => "ip_pool_view_by_id", + CliCommand::SiloViewById => "silo_view_by_id", + CliCommand::CertificateList => "certificate_list", + CliCommand::CertificateCreate => "certificate_create", + CliCommand::CertificateView => "certificate_view", + CliCommand::CertificateDelete => "certificate_delete", + CliCommand::PhysicalDiskList => "physical_disk_list", + CliCommand::RackList => "rack_list", + CliCommand::RackView => "rack_view", + CliCommand::SledList => "sled_list", + CliCommand::SledView => "sled_view", + CliCommand::SledPhysicalDiskList => "sled_physical_disk_list", + CliCommand::SystemImageList => "system_image_list", + CliCommand::SystemImageCreate => "system_image_create", + CliCommand::SystemImageView => "system_image_view", + CliCommand::SystemImageDelete => "system_image_delete", + CliCommand::IpPoolList => "ip_pool_list", + CliCommand::IpPoolCreate => "ip_pool_create", + CliCommand::IpPoolView => "ip_pool_view", + CliCommand::IpPoolUpdate => "ip_pool_update", + CliCommand::IpPoolDelete => "ip_pool_delete", + CliCommand::IpPoolRangeList => "ip_pool_range_list", + CliCommand::IpPoolRangeAdd => "ip_pool_range_add", + CliCommand::IpPoolRangeRemove => "ip_pool_range_remove", + CliCommand::IpPoolServiceView => "ip_pool_service_view", + CliCommand::IpPoolServiceRangeList => "ip_pool_service_range_list", + CliCommand::IpPoolServiceRangeAdd => "ip_pool_service_range_add", + CliCommand::IpPoolServiceRangeRemove => "ip_pool_service_range_remove", + CliCommand::SystemMetric => "system_metric", + CliCommand::SystemPolicyView => "system_policy_view", + CliCommand::SystemPolicyUpdate => "system_policy_update", + CliCommand::SagaList => "saga_list", + CliCommand::SagaView => "saga_view", + CliCommand::SiloList => "silo_list", + CliCommand::SiloCreate => "silo_create", + CliCommand::SiloView => "silo_view", + CliCommand::SiloDelete => "silo_delete", + CliCommand::SiloIdentityProviderList => "silo_identity_provider_list", + CliCommand::LocalIdpUserCreate => "local_idp_user_create", + CliCommand::LocalIdpUserDelete => "local_idp_user_delete", + CliCommand::LocalIdpUserSetPassword => "local_idp_user_set_password", + CliCommand::SamlIdentityProviderCreate => "saml_identity_provider_create", + CliCommand::SamlIdentityProviderView => "saml_identity_provider_view", + CliCommand::SiloPolicyView => "silo_policy_view", + CliCommand::SiloPolicyUpdate => "silo_policy_update", + CliCommand::SiloUsersList => "silo_users_list", + CliCommand::SiloUserView => "silo_user_view", + CliCommand::SystemUserList => "system_user_list", + CliCommand::SystemUserView => "system_user_view", + CliCommand::TimeseriesSchemaGet => "timeseries_schema_get", + CliCommand::UserList => "user_list", + CliCommand::DiskListV1 => "disk_list_v1", + CliCommand::DiskCreateV1 => "disk_create_v1", + CliCommand::DiskViewV1 => "disk_view_v1", + CliCommand::DiskDeleteV1 => "disk_delete_v1", + CliCommand::InstanceListV1 => "instance_list_v1", + CliCommand::InstanceCreateV1 => "instance_create_v1", + CliCommand::InstanceViewV1 => "instance_view_v1", + CliCommand::InstanceDeleteV1 => "instance_delete_v1", + CliCommand::InstanceDiskListV1 => "instance_disk_list_v1", + CliCommand::InstanceDiskAttachV1 => "instance_disk_attach_v1", + CliCommand::InstanceDiskDetachV1 => "instance_disk_detach_v1", + CliCommand::InstanceMigrateV1 => "instance_migrate_v1", + CliCommand::InstanceRebootV1 => "instance_reboot_v1", + CliCommand::InstanceSerialConsoleV1 => "instance_serial_console_v1", + CliCommand::InstanceSerialConsoleStreamV1 => "instance_serial_console_stream_v1", + CliCommand::InstanceStartV1 => "instance_start_v1", + CliCommand::InstanceStopV1 => "instance_stop_v1", + CliCommand::OrganizationListV1 => "organization_list_v1", + CliCommand::OrganizationCreateV1 => "organization_create_v1", + CliCommand::OrganizationViewV1 => "organization_view_v1", + CliCommand::OrganizationUpdateV1 => "organization_update_v1", + CliCommand::OrganizationDeleteV1 => "organization_delete_v1", + CliCommand::OrganizationPolicyViewV1 => "organization_policy_view_v1", + CliCommand::OrganizationPolicyUpdateV1 => "organization_policy_update_v1", + CliCommand::ProjectListV1 => "project_list_v1", + CliCommand::ProjectCreateV1 => "project_create_v1", + CliCommand::ProjectViewV1 => "project_view_v1", + CliCommand::ProjectUpdateV1 => "project_update_v1", + CliCommand::ProjectDeleteV1 => "project_delete_v1", + CliCommand::ProjectPolicyViewV1 => "project_policy_view_v1", + CliCommand::ProjectPolicyUpdateV1 => "project_policy_update_v1", + CliCommand::SystemComponentVersionList => "system_component_version_list", + CliCommand::UpdateDeploymentsList => "update_deployments_list", + CliCommand::UpdateDeploymentView => "update_deployment_view", + CliCommand::SystemUpdateRefresh => "system_update_refresh", + CliCommand::SystemUpdateStart => "system_update_start", + CliCommand::SystemUpdateStop => "system_update_stop", + CliCommand::SystemUpdateList => "system_update_list", + CliCommand::SystemUpdateView => "system_update_view", + CliCommand::SystemUpdateComponentsList => "system_update_components_list", + CliCommand::SystemVersion => "system_version", + } + } } diff --git a/progenitor-impl/tests/output/src/param_collision_cli.rs b/progenitor-impl/tests/output/src/param_collision_cli.rs index 4a191033..5addc05e 100644 --- a/progenitor-impl/tests/output/src/param_collision_cli.rs +++ b/progenitor-impl/tests/output/src/param_collision_cli.rs @@ -152,4 +152,10 @@ impl CliCommand { pub fn iter() -> impl Iterator { vec![CliCommand::KeyGet].into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::KeyGet => "key_get", + } + } } diff --git a/progenitor-impl/tests/output/src/param_overrides_cli.rs b/progenitor-impl/tests/output/src/param_overrides_cli.rs index f7902296..ea351758 100644 --- a/progenitor-impl/tests/output/src/param_overrides_cli.rs +++ b/progenitor-impl/tests/output/src/param_overrides_cli.rs @@ -108,4 +108,10 @@ impl CliCommand { pub fn iter() -> impl Iterator { vec![CliCommand::KeyGet].into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::KeyGet => "key_get", + } + } } diff --git a/progenitor-impl/tests/output/src/propolis_server_cli.rs b/progenitor-impl/tests/output/src/propolis_server_cli.rs index a942e1a0..540ae4d0 100644 --- a/progenitor-impl/tests/output/src/propolis_server_cli.rs +++ b/progenitor-impl/tests/output/src/propolis_server_cli.rs @@ -447,4 +447,18 @@ impl CliCommand { ] .into_iter() } + + pub fn operation_id(&self) -> &'static str { + match self { + CliCommand::InstanceGet => "instance_get", + CliCommand::InstanceEnsure => "instance_ensure", + CliCommand::InstanceIssueCrucibleSnapshotRequest => { + "instance_issue_crucible_snapshot_request" + } + CliCommand::InstanceMigrateStatus => "instance_migrate_status", + CliCommand::InstanceSerial => "instance_serial", + CliCommand::InstanceStatePut => "instance_state_put", + CliCommand::InstanceStateMonitor => "instance_state_monitor", + } + } }