4 use proxmox_router
::{cli::*, ApiHandler, RpcEnvironment}
;
5 use proxmox_schema
::api
;
7 use pbs_api_types
::REALM_ID_SCHEMA
;
9 use proxmox_backup
::api2
;
16 schema
: OUTPUT_FORMAT
,
22 /// List configured OpenId realms
23 fn list_openid_realms(param
: Value
, rpcenv
: &mut dyn RpcEnvironment
) -> Result
<Value
, Error
> {
25 let output_format
= get_output_format(¶m
);
27 let info
= &api2
::config
::access
::openid
::API_METHOD_LIST_OPENID_REALMS
;
28 let mut data
= match info
.handler
{
29 ApiHandler
::Sync(handler
) => (handler
)(param
, info
, rpcenv
)?
,
33 let options
= default_table_format_options()
34 .column(ColumnConfig
::new("realm"))
35 .column(ColumnConfig
::new("issuer-url"))
36 .column(ColumnConfig
::new("comment"));
38 format_and_print_result_full(&mut data
, &info
.returns
, &output_format
, &options
);
46 schema
: REALM_ID_SCHEMA
,
49 schema
: OUTPUT_FORMAT
,
56 /// Show OpenID realm configuration
57 fn show_openid_realm(param
: Value
, rpcenv
: &mut dyn RpcEnvironment
) -> Result
<Value
, Error
> {
59 let output_format
= get_output_format(¶m
);
61 let info
= &api2
::config
::access
::openid
::API_METHOD_READ_OPENID_REALM
;
62 let mut data
= match info
.handler
{
63 ApiHandler
::Sync(handler
) => (handler
)(param
, info
, rpcenv
)?
,
67 let options
= default_table_format_options();
68 format_and_print_result_full(&mut data
, &info
.returns
, &output_format
, &options
);
73 pub fn openid_commands() -> CommandLineInterface
{
75 let cmd_def
= CliCommandMap
::new()
76 .insert("list", CliCommand
::new(&API_METHOD_LIST_OPENID_REALMS
))
77 .insert("show", CliCommand
::new(&API_METHOD_SHOW_OPENID_REALM
)
78 .arg_param(&["realm"])
79 .completion_cb("realm", pbs_config
::domains
::complete_openid_realm_name
)
82 CliCommand
::new(&api2
::config
::access
::openid
::API_METHOD_CREATE_OPENID_REALM
)
83 .arg_param(&["realm"])
84 .arg_param(&["realm"])
85 .completion_cb("realm", pbs_config
::domains
::complete_openid_realm_name
)
88 CliCommand
::new(&api2
::config
::access
::openid
::API_METHOD_UPDATE_OPENID_REALM
)
89 .arg_param(&["realm"])
90 .arg_param(&["realm"])
91 .completion_cb("realm", pbs_config
::domains
::complete_openid_realm_name
)
94 CliCommand
::new(&api2
::config
::access
::openid
::API_METHOD_DELETE_OPENID_REALM
)
95 .arg_param(&["realm"])
96 .arg_param(&["realm"])
97 .completion_cb("realm", pbs_config
::domains
::complete_openid_realm_name
)