Add Rust domain kernel and wire contracts
This commit is contained in:
parent
ff379fb002
commit
4da5a980ed
1 changed files with 3757 additions and 1 deletions
149
crates/remora-contracts/src/credentials.rs
Normal file
149
crates/remora-contracts/src/credentials.rs
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
use std::collections::BTreeMap;
|
||||
|
||||
use remora_domain::OpaqueId;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{DateTimeDto, NullableDto};
|
||||
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum SourceCredentialKindDto {
|
||||
BasicAuth,
|
||||
BearerToken,
|
||||
HttpHeaders,
|
||||
ObjectStore,
|
||||
HuggingFace,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct BasicAuthMaterialDto {
|
||||
pub username: String,
|
||||
pub password: String,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct TokenMaterialDto {
|
||||
pub token: String,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct HttpHeadersMaterialDto {
|
||||
pub headers: BTreeMap<String, String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct ObjectStoreCredentialMaterialDto {
|
||||
pub access_key_id: String,
|
||||
pub secret_access_key: String,
|
||||
#[serde(
|
||||
default,
|
||||
deserialize_with = "crate::dto::optional_non_null",
|
||||
skip_serializing_if = "Option::is_none"
|
||||
)]
|
||||
pub session_token: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum CredentialMaterialDto {
|
||||
BasicAuth(BasicAuthMaterialDto),
|
||||
Token(TokenMaterialDto),
|
||||
HttpHeaders(HttpHeadersMaterialDto),
|
||||
ObjectStore(ObjectStoreCredentialMaterialDto),
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(tag = "kind", rename_all = "snake_case")]
|
||||
pub enum SourceCredentialCreateDto {
|
||||
BasicAuth(BasicAuthCredentialCreateDto),
|
||||
BearerToken(BearerTokenCredentialCreateDto),
|
||||
HttpHeaders(HttpHeadersCredentialCreateDto),
|
||||
ObjectStore(ObjectStoreCredentialCreateDto),
|
||||
HuggingFace(HuggingFaceCredentialCreateDto),
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct BasicAuthCredentialCreateDto {
|
||||
pub label: String,
|
||||
pub material: BasicAuthMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct BearerTokenCredentialCreateDto {
|
||||
pub label: String,
|
||||
pub material: TokenMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct HttpHeadersCredentialCreateDto {
|
||||
pub label: String,
|
||||
pub material: HttpHeadersMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct ObjectStoreCredentialCreateDto {
|
||||
pub label: String,
|
||||
pub material: ObjectStoreCredentialMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct HuggingFaceCredentialCreateDto {
|
||||
pub label: String,
|
||||
pub material: TokenMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct SourceCredentialRotateDto {
|
||||
pub material: CredentialMaterialDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct SourceCredentialVersionDto {
|
||||
pub id: OpaqueId,
|
||||
pub created_at: DateTimeDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct CredentialGrantVersionDto {
|
||||
pub credential_id: OpaqueId,
|
||||
pub version_id: OpaqueId,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum SourceCredentialStatusDto {
|
||||
Active,
|
||||
Revoked,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct SourceCredentialDto {
|
||||
pub id: OpaqueId,
|
||||
pub owner: OpaqueId,
|
||||
pub label: String,
|
||||
pub kind: SourceCredentialKindDto,
|
||||
pub status: SourceCredentialStatusDto,
|
||||
pub active_version: NullableDto<SourceCredentialVersionDto>,
|
||||
pub created_at: DateTimeDto,
|
||||
pub updated_at: DateTimeDto,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct SourceCredentialPageDto {
|
||||
pub items: Vec<SourceCredentialDto>,
|
||||
pub next_cursor: NullableDto<String>,
|
||||
}
|
||||
Loading…
Reference in a new issue