monitor_client/api/write/
api_key.rs

1use derive_empty_traits::EmptyTraits;
2use resolver_api::derive::Request;
3use serde::{Deserialize, Serialize};
4use typeshare::typeshare;
5
6use crate::{
7  api::user::CreateApiKeyResponse,
8  entities::{NoData, I64},
9};
10
11use super::MonitorWriteRequest;
12
13//
14
15/// Admin only method to create an api key for a service user.
16/// Response: [CreateApiKeyResponse].
17#[typeshare]
18#[derive(
19  Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
20)]
21#[empty_traits(MonitorWriteRequest)]
22#[response(CreateApiKeyForServiceUserResponse)]
23pub struct CreateApiKeyForServiceUser {
24  /// Must be service user
25  pub user_id: String,
26  /// The name for the api key
27  pub name: String,
28  /// A unix timestamp in millseconds specifying api key expire time.
29  /// Default is 0, which means no expiry.
30  #[serde(default)]
31  pub expires: I64,
32}
33
34#[typeshare]
35pub type CreateApiKeyForServiceUserResponse = CreateApiKeyResponse;
36
37//
38
39/// Admin only method to delete an api key for a service user.
40/// Response: [NoData].
41#[typeshare]
42#[derive(
43  Serialize, Deserialize, Debug, Clone, Request, EmptyTraits,
44)]
45#[empty_traits(MonitorWriteRequest)]
46#[response(DeleteApiKeyForServiceUserResponse)]
47pub struct DeleteApiKeyForServiceUser {
48  pub key: String,
49}
50
51#[typeshare]
52pub type DeleteApiKeyForServiceUserResponse = NoData;