jacquard_api/network_slices/slice/
create_o_auth_client.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: network.slices.slice.createOAuthClient
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[jacquard_derive::lexicon]
9#[derive(
10    serde::Serialize,
11    serde::Deserialize,
12    Debug,
13    Clone,
14    PartialEq,
15    Eq,
16    bon::Builder,
17    jacquard_derive::IntoStatic
18)]
19#[serde(rename_all = "camelCase")]
20#[builder(start_fn = new)]
21pub struct CreateOAuthClient<'a> {
22    ///Human-readable name of the OAuth client
23    #[serde(borrow)]
24    #[builder(into)]
25    pub client_name: jacquard_common::CowStr<'a>,
26    ///URI of the client application
27    #[serde(skip_serializing_if = "std::option::Option::is_none")]
28    #[serde(borrow)]
29    pub client_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>,
30    ///OAuth grant types
31    #[serde(skip_serializing_if = "std::option::Option::is_none")]
32    #[serde(borrow)]
33    pub grant_types: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
34    ///URI of the client logo
35    #[serde(skip_serializing_if = "std::option::Option::is_none")]
36    #[serde(borrow)]
37    pub logo_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>,
38    ///URI of the privacy policy
39    #[serde(skip_serializing_if = "std::option::Option::is_none")]
40    #[serde(borrow)]
41    pub policy_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>,
42    ///Allowed redirect URIs for OAuth flow (must use HTTP or HTTPS)
43    #[serde(borrow)]
44    pub redirect_uris: Vec<jacquard_common::types::string::Uri<'a>>,
45    ///OAuth response types
46    #[serde(skip_serializing_if = "std::option::Option::is_none")]
47    #[serde(borrow)]
48    pub response_types: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
49    ///OAuth scope
50    #[serde(skip_serializing_if = "std::option::Option::is_none")]
51    #[serde(borrow)]
52    #[builder(into)]
53    pub scope: std::option::Option<jacquard_common::CowStr<'a>>,
54    ///AT-URI of the slice to register the OAuth client for
55    #[serde(borrow)]
56    #[builder(into)]
57    pub slice_uri: jacquard_common::CowStr<'a>,
58    ///URI of the terms of service
59    #[serde(skip_serializing_if = "std::option::Option::is_none")]
60    #[serde(borrow)]
61    pub tos_uri: std::option::Option<jacquard_common::types::string::Uri<'a>>,
62    #[serde(flatten)]
63    #[serde(borrow)]
64    #[builder(default)]
65    pub extra_data: ::std::collections::BTreeMap<
66        ::jacquard_common::smol_str::SmolStr,
67        ::jacquard_common::types::value::Data<'a>,
68    >,
69}
70
71#[jacquard_derive::lexicon]
72#[derive(
73    serde::Serialize,
74    serde::Deserialize,
75    Debug,
76    Clone,
77    PartialEq,
78    Eq,
79    jacquard_derive::IntoStatic
80)]
81#[serde(rename_all = "camelCase")]
82pub struct CreateOAuthClientOutput<'a> {
83    #[serde(flatten)]
84    #[serde(borrow)]
85    pub value: crate::network_slices::slice::get_o_auth_clients::OauthClientDetails<'a>,
86}
87
88///Response type for
89///network.slices.slice.createOAuthClient
90pub struct CreateOAuthClientResponse;
91impl jacquard_common::xrpc::XrpcResp for CreateOAuthClientResponse {
92    const NSID: &'static str = "network.slices.slice.createOAuthClient";
93    const ENCODING: &'static str = "application/json";
94    type Output<'de> = CreateOAuthClientOutput<'de>;
95    type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
96}
97
98impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for CreateOAuthClient<'de> {
99    const NSID: &'static str = "network.slices.slice.createOAuthClient";
100    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
101        "application/json",
102    );
103    type Response = CreateOAuthClientResponse;
104}
105
106///Endpoint type for
107///network.slices.slice.createOAuthClient
108pub struct CreateOAuthClientRequest;
109impl jacquard_common::xrpc::XrpcEndpoint for CreateOAuthClientRequest {
110    const PATH: &'static str = "/xrpc/network.slices.slice.createOAuthClient";
111    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
112        "application/json",
113    );
114    type Request<'de> = CreateOAuthClient<'de>;
115    type Response = CreateOAuthClientResponse;
116}