use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Location {
pub name: String,
pub location_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
}
impl Location {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-location".into(),
location_id: "test-location_id".into(),
display_name: Some("test-display_name".into()),
labels: Default::default(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct KeyRing {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
}
impl KeyRing {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-key_ring".into(),
create_time: Some("test-create_time".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CryptoKeyVersionTemplate {
#[serde(skip_serializing_if = "Option::is_none")]
pub protection_level: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub algorithm: Option<String>,
}
impl CryptoKeyVersionTemplate {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
protection_level: Some("test-protection_level".into()),
algorithm: Some("test-algorithm".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CryptoKeyVersion {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub algorithm: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub protection_level: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
}
impl CryptoKeyVersion {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-crypto_key_version".into(),
state: Some("test-state".into()),
algorithm: Some("test-algorithm".into()),
protection_level: Some("test-protection_level".into()),
create_time: Some("test-create_time".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CryptoKey {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub purpose: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_rotation_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rotation_period: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "HashMap::is_empty")]
pub labels: HashMap<String, String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub primary: Option<CryptoKeyVersion>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version_template: Option<CryptoKeyVersionTemplate>,
#[serde(skip_serializing_if = "Option::is_none")]
pub import_only: Option<bool>,
}
impl CryptoKey {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: "test-crypto_key".into(),
purpose: Some("test-purpose".into()),
create_time: Some("test-create_time".into()),
next_rotation_time: Some("test-next_rotation_time".into()),
rotation_period: Some("test-rotation_period".into()),
labels: Default::default(),
primary: Some(CryptoKeyVersion::fixture()),
version_template: Some(CryptoKeyVersionTemplate::fixture()),
import_only: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Expr {
#[serde(skip_serializing_if = "Option::is_none")]
pub expression: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<String>,
}
impl Expr {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
expression: Some("test-expression".into()),
title: Some("test-title".into()),
description: Some("test-description".into()),
location: Some("test-location".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Binding {
pub role: String,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub members: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub condition: Option<Expr>,
}
impl Binding {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
role: "test-role".into(),
members: vec![],
condition: Some(Expr::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AuditLogConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub log_type: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub exempted_members: Vec<String>,
}
impl AuditLogConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
log_type: Some("test-log_type".into()),
exempted_members: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AuditConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub service: Option<String>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub audit_log_configs: Vec<AuditLogConfig>,
}
impl AuditConfig {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
service: Some("test-service".into()),
audit_log_configs: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Policy {
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<i32>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub bindings: Vec<Binding>,
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub audit_configs: Vec<AuditConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub etag: Option<String>,
}
impl Policy {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
version: Some(100),
bindings: vec![],
audit_configs: vec![],
etag: Some("test-etag".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SetIamPolicyRequest {
pub policy: Policy,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_mask: Option<String>,
}
impl SetIamPolicyRequest {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
policy: Policy::fixture(),
update_mask: Some("test-update_mask".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListLocationsResponse {
#[serde(default)]
pub locations: Vec<Location>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListLocationsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
locations: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListKeyRingsResponse {
#[serde(default)]
pub key_rings: Vec<KeyRing>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListKeyRingsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
key_rings: vec![],
next_page_token: None,
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListCryptoKeysResponse {
#[serde(default)]
pub crypto_keys: Vec<CryptoKey>,
#[serde(skip_serializing_if = "Option::is_none")]
pub next_page_token: Option<String>,
}
impl ListCryptoKeysResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
crypto_keys: vec![],
next_page_token: None,
}
}
}