nominal-api 0.1239.0

API bindings for the Nominal platform
Documentation
use conjure_http::endpoint;
/// Cluster-internal endpoint that mints short-lived access tokens for a
/// preconfigured sandbox workspace + sandbox user. The intended caller is an
/// in-cluster integration test Job; access is gated by a shared-secret header
/// and a NetworkPolicy that restricts the source pods.
///
/// This service must not be exposed via the public ingress.
#[conjure_http::conjure_endpoints(
    name = "InternalSandboxTokenService",
    use_legacy_error_serialization
)]
pub trait InternalSandboxTokenService {
    /// Issue a Nominal-signed bearer token bound to the configured sandbox
    /// user + org. The TTL is capped at 1 hour server-side regardless of the
    /// requested value. The shared-secret header must match the value
    /// configured on gatekeeper or the call is rejected.
    #[endpoint(
        method = POST,
        path = "/sandbox-token-internal/v1/issue",
        name = "issueSandboxToken",
        produces = conjure_http::server::StdResponseSerializer
    )]
    fn issue_sandbox_token(
        &self,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::objects::authorization::IssueSandboxTokenRequest,
        #[header(
            name = "X-Nominal-Sandbox-Shared-Secret",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "sharedSecret"
        )]
        shared_secret: String,
    ) -> Result<
        super::super::super::objects::authorization::IssueSandboxTokenResponse,
        conjure_http::private::Error,
    >;
}
/// Cluster-internal endpoint that mints short-lived access tokens for a
/// preconfigured sandbox workspace + sandbox user. The intended caller is an
/// in-cluster integration test Job; access is gated by a shared-secret header
/// and a NetworkPolicy that restricts the source pods.
///
/// This service must not be exposed via the public ingress.
#[conjure_http::conjure_endpoints(
    name = "InternalSandboxTokenService",
    use_legacy_error_serialization
)]
pub trait AsyncInternalSandboxTokenService {
    /// Issue a Nominal-signed bearer token bound to the configured sandbox
    /// user + org. The TTL is capped at 1 hour server-side regardless of the
    /// requested value. The shared-secret header must match the value
    /// configured on gatekeeper or the call is rejected.
    #[endpoint(
        method = POST,
        path = "/sandbox-token-internal/v1/issue",
        name = "issueSandboxToken",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn issue_sandbox_token(
        &self,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::objects::authorization::IssueSandboxTokenRequest,
        #[header(
            name = "X-Nominal-Sandbox-Shared-Secret",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "sharedSecret"
        )]
        shared_secret: String,
    ) -> Result<
        super::super::super::objects::authorization::IssueSandboxTokenResponse,
        conjure_http::private::Error,
    >;
}
/// Cluster-internal endpoint that mints short-lived access tokens for a
/// preconfigured sandbox workspace + sandbox user. The intended caller is an
/// in-cluster integration test Job; access is gated by a shared-secret header
/// and a NetworkPolicy that restricts the source pods.
///
/// This service must not be exposed via the public ingress.
#[conjure_http::conjure_endpoints(
    name = "InternalSandboxTokenService",
    use_legacy_error_serialization,
    local
)]
pub trait LocalAsyncInternalSandboxTokenService {
    /// Issue a Nominal-signed bearer token bound to the configured sandbox
    /// user + org. The TTL is capped at 1 hour server-side regardless of the
    /// requested value. The shared-secret header must match the value
    /// configured on gatekeeper or the call is rejected.
    #[endpoint(
        method = POST,
        path = "/sandbox-token-internal/v1/issue",
        name = "issueSandboxToken",
        produces = conjure_http::server::StdResponseSerializer
    )]
    async fn issue_sandbox_token(
        &self,
        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
        request: super::super::super::objects::authorization::IssueSandboxTokenRequest,
        #[header(
            name = "X-Nominal-Sandbox-Shared-Secret",
            decoder = conjure_http::server::conjure::FromPlainDecoder,
            log_as = "sharedSecret"
        )]
        shared_secret: String,
    ) -> Result<
        super::super::super::objects::authorization::IssueSandboxTokenResponse,
        conjure_http::private::Error,
    >;
}