#[allow(unused_imports)]
mod prelude {
pub use kube::CustomResource;
pub use serde::{Serialize, Deserialize};
pub use std::collections::BTreeMap;
pub use k8s_openapi::apimachinery::pkg::apis::meta::v1::Condition;
}
use self::prelude::*;
#[derive(CustomResource, Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
#[kube(group = "lambda.services.k8s.aws", version = "v1alpha1", kind = "Function", plural = "functions")]
#[kube(namespaced)]
#[kube(status = "FunctionStatus")]
#[kube(schema = "disabled")]
#[kube(derive="Default")]
#[kube(derive="PartialEq")]
pub struct FunctionSpec {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub architectures: Option<Vec<String>>,
pub code: FunctionCode,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "codeSigningConfigARN")]
pub code_signing_config_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "deadLetterConfig")]
pub dead_letter_config: Option<FunctionDeadLetterConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "durableConfig")]
pub durable_config: Option<FunctionDurableConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub environment: Option<FunctionEnvironment>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ephemeralStorage")]
pub ephemeral_storage: Option<FunctionEphemeralStorage>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "fileSystemConfigs")]
pub file_system_configs: Option<Vec<FunctionFileSystemConfigs>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "functionEventInvokeConfig")]
pub function_event_invoke_config: Option<FunctionFunctionEventInvokeConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub handler: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageConfig")]
pub image_config: Option<FunctionImageConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kmsKeyARN")]
pub kms_key_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "kmsKeyRef")]
pub kms_key_ref: Option<FunctionKmsKeyRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub layers: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "loggingConfig")]
pub logging_config: Option<FunctionLoggingConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "memorySize")]
pub memory_size: Option<i64>,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "packageType")]
pub package_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub publish: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "reservedConcurrentExecutions")]
pub reserved_concurrent_executions: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "roleRef")]
pub role_ref: Option<FunctionRoleRef>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub runtime: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "snapStart")]
pub snap_start: Option<FunctionSnapStart>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<BTreeMap<String, String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tenancyConfig")]
pub tenancy_config: Option<FunctionTenancyConfig>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timeout: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tracingConfig")]
pub tracing_config: Option<FunctionTracingConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "vpcConfig")]
pub vpc_config: Option<FunctionVpcConfig>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionCode {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageURI")]
pub image_uri: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3Bucket")]
pub s3_bucket: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3BucketRef")]
pub s3_bucket_ref: Option<FunctionCodeS3BucketRef>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3Key")]
pub s3_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "s3ObjectVersion")]
pub s3_object_version: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sha256: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "zipFile")]
pub zip_file: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionCodeS3BucketRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<FunctionCodeS3BucketRefFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionCodeS3BucketRefFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionDeadLetterConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "targetARN")]
pub target_arn: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionDurableConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "executionTimeout")]
pub execution_timeout: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "retentionPeriodInDays")]
pub retention_period_in_days: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionEnvironment {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub variables: Option<BTreeMap<String, String>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionEphemeralStorage {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionFileSystemConfigs {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "localMountPath")]
pub local_mount_path: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionFunctionEventInvokeConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "destinationConfig")]
pub destination_config: Option<FunctionFunctionEventInvokeConfigDestinationConfig>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "functionName")]
pub function_name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maximumEventAgeInSeconds")]
pub maximum_event_age_in_seconds: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "maximumRetryAttempts")]
pub maximum_retry_attempts: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub qualifier: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionFunctionEventInvokeConfigDestinationConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onFailure")]
pub on_failure: Option<FunctionFunctionEventInvokeConfigDestinationConfigOnFailure>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "onSuccess")]
pub on_success: Option<FunctionFunctionEventInvokeConfigDestinationConfigOnSuccess>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionFunctionEventInvokeConfigDestinationConfigOnFailure {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub destination: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionFunctionEventInvokeConfigDestinationConfigOnSuccess {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub destination: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionImageConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "entryPoint")]
pub entry_point: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "workingDirectory")]
pub working_directory: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionKmsKeyRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<FunctionKmsKeyRefFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionKmsKeyRefFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionLoggingConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "applicationLogLevel")]
pub application_log_level: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logFormat")]
pub log_format: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "logGroup")]
pub log_group: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "systemLogLevel")]
pub system_log_level: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionRoleRef {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<FunctionRoleRefFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionRoleRefFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionSnapStart {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "applyOn")]
pub apply_on: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionTenancyConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "tenantIsolationMode")]
pub tenant_isolation_mode: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionTracingConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionVpcConfig {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityGroupIDs")]
pub security_group_i_ds: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "securityGroupRefs")]
pub security_group_refs: Option<Vec<FunctionVpcConfigSecurityGroupRefs>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subnetIDs")]
pub subnet_i_ds: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "subnetRefs")]
pub subnet_refs: Option<Vec<FunctionVpcConfigSubnetRefs>>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionVpcConfigSecurityGroupRefs {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<FunctionVpcConfigSecurityGroupRefsFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionVpcConfigSecurityGroupRefsFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionVpcConfigSubnetRefs {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub from: Option<FunctionVpcConfigSubnetRefsFrom>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionVpcConfigSubnetRefsFrom {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatus {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "ackResourceMetadata")]
pub ack_resource_metadata: Option<FunctionStatusAckResourceMetadata>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "codeSHA256")]
pub code_sha256: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "codeSize")]
pub code_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub conditions: Option<Vec<Condition>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageConfigResponse")]
pub image_config_response: Option<FunctionStatusImageConfigResponse>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastModified")]
pub last_modified: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdateStatus")]
pub last_update_status: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdateStatusReason")]
pub last_update_status_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "lastUpdateStatusReasonCode")]
pub last_update_status_reason_code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "layerStatuses")]
pub layer_statuses: Option<Vec<FunctionStatusLayerStatuses>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "masterARN")]
pub master_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "revisionID")]
pub revision_id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signingJobARN")]
pub signing_job_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signingProfileVersionARN")]
pub signing_profile_version_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stateReason")]
pub state_reason: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "stateReasonCode")]
pub state_reason_code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatusAckResourceMetadata {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(rename = "ownerAccountID")]
pub owner_account_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub partition: Option<String>,
pub region: String,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatusImageConfigResponse {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub error: Option<FunctionStatusImageConfigResponseError>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "imageConfig")]
pub image_config: Option<FunctionStatusImageConfigResponseImageConfig>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatusImageConfigResponseError {
#[serde(default, skip_serializing_if = "Option::is_none", rename = "errorCode")]
pub error_code: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatusImageConfigResponseImageConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub command: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "entryPoint")]
pub entry_point: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "workingDirectory")]
pub working_directory: Option<String>,
}
#[derive(Serialize, Deserialize, Clone, Debug, Default, PartialEq)]
pub struct FunctionStatusLayerStatuses {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "codeSize")]
pub code_size: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signingJobARN")]
pub signing_job_arn: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "signingProfileVersionARN")]
pub signing_profile_version_arn: Option<String>,
}