awslambdav1

package
v0.0.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

README

Overview

The AWS Lambda API resource provides a consistent and streamlined interface for deploying and managing AWS Lambda functions within our cloud infrastructure. By abstracting the complexities of AWS Lambda configurations, this resource allows you to define and deploy serverless functions effortlessly while ensuring consistency and compliance across different environments.

Why We Created This API Resource

Deploying AWS Lambda functions can be complex due to the numerous configuration options, dependencies, and best practices involved. To simplify this process and promote a standardized approach, we developed this API resource. It enables you to:

  • Simplify Deployment: Easily configure and deploy Lambda functions without dealing with low-level AWS details.
  • Ensure Consistency: Maintain uniform configurations across different environments and functions.
  • Improve Productivity: Reduce the time and effort required to set up Lambda functions, allowing you to focus on writing code.

Key Features

Environment Integration
  • Environment Info: Integrates seamlessly with our environment management system to deploy Lambda functions within specific environments.
  • Stack Job Settings: Supports custom stack job settings for infrastructure-as-code deployments.
AWS Credential Management
  • AWS Credential ID: Utilizes specified AWS credentials to ensure secure and authorized deployments.
Customizable Lambda Function Specifications
  • Function Configuration: Define essential settings such as function name, handler, runtime, and description.
  • Architectures: Support for multiple instruction set architectures, including x86_64 and arm64.
  • Memory and Timeout Settings: Configure memory allocation and execution timeout to optimize performance.
  • Environment Variables: Set environment variables accessible during function execution.
  • VPC Integration: Configure VPC settings to run the Lambda function within a specified VPC for network isolation.
Advanced Configurations
  • File System Access: Configure access to Amazon EFS file systems for functions that require persistent storage.
  • Layers Support: Attach up to five Lambda layers to include additional code or content in your function.
  • Dead Letter Queues: Specify SNS topics or SQS queues to handle failed invocations.
  • Image Support: Deploy Lambda functions using container images from Amazon ECR.
IAM Role Management
  • Custom IAM Policies: Attach custom IAM policies to the Lambda execution role for fine-grained access control.
  • Permissions Boundary: Set permissions boundaries for the IAM role to limit its effective permissions.
  • Lambda@Edge Support: Enable Lambda@Edge for functions that need to run at AWS edge locations.
Monitoring and Logging
  • CloudWatch Log Group Configuration: Customize log group settings, including retention period and encryption.
  • Tracing: Enable AWS X-Ray tracing to monitor and troubleshoot function execution.
  • CloudWatch Lambda Insights: Enable enhanced monitoring for deeper visibility into function performance.
Security and Compliance
  • KMS Key Integration: Use AWS KMS keys to encrypt environment variables and log data.
  • SSM Parameter Access: Grant the function permission to read specific AWS Systems Manager Parameter Store parameters.
Invocation Permissions
  • Fine-Grained Access Control: Define which external sources (principals) can invoke the Lambda function.
  • Source ARN Specification: Restrict invocation permissions to specific resources, such as S3 buckets or EventBridge rules.

Benefits

  • Simplified Deployment: Abstracts the complexities of AWS Lambda configurations into an easy-to-use API.
  • Consistency: Ensures all Lambda functions adhere to organizational standards and best practices.
  • Scalability: Leverage Lambda's inherent scalability without worrying about server management.
  • Security: Integrate with AWS IAM, KMS, and VPCs to enhance security and compliance.
  • Flexibility: Customize functions extensively to meet specific application requirements.
  • Cost Efficiency: Optimize resource allocation and billing by configuring memory size and execution timeouts.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_project_planton_provider_aws_awslambda_v1_api_proto protoreflect.FileDescriptor
View Source
var File_project_planton_provider_aws_awslambda_v1_documentation_proto protoreflect.FileDescriptor
View Source
var File_project_planton_provider_aws_awslambda_v1_spec_proto protoreflect.FileDescriptor
View Source
var File_project_planton_provider_aws_awslambda_v1_stack_input_proto protoreflect.FileDescriptor
View Source
var File_project_planton_provider_aws_awslambda_v1_stack_outputs_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type AwsLambda

type AwsLambda struct {

	// api-version
	ApiVersion string `protobuf:"bytes,1,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
	// resource-kind
	Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"`
	// metadata
	Metadata *shared.ApiResourceMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// spec
	Spec *AwsLambdaSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
	// status
	Status *AwsLambdaStatus `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
	// contains filtered or unexported fields
}

aws-lambda

func (*AwsLambda) Descriptor deprecated

func (*AwsLambda) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambda.ProtoReflect.Descriptor instead.

func (*AwsLambda) GetApiVersion

func (x *AwsLambda) GetApiVersion() string

func (*AwsLambda) GetKind

func (x *AwsLambda) GetKind() string

func (*AwsLambda) GetMetadata

func (x *AwsLambda) GetMetadata() *shared.ApiResourceMetadata

func (*AwsLambda) GetSpec

func (x *AwsLambda) GetSpec() *AwsLambdaSpec

func (*AwsLambda) GetStatus

func (x *AwsLambda) GetStatus() *AwsLambdaStatus

func (*AwsLambda) ProtoMessage

func (*AwsLambda) ProtoMessage()

func (*AwsLambda) ProtoReflect

func (x *AwsLambda) ProtoReflect() protoreflect.Message

func (*AwsLambda) Reset

func (x *AwsLambda) Reset()

func (*AwsLambda) String

func (x *AwsLambda) String() string

type AwsLambdaCloudwatchLogGroup

type AwsLambdaCloudwatchLogGroup struct {

	// The ARN of the KMS Key to use when encrypting log data.
	// Please note, after the AWS KMS CMK is disassociated from the log group, AWS CloudWatch Logs stops encrypting newly
	// ingested data for the log group.
	// All previously ingested data remains encrypted, and AWS CloudWatch Logs requires permissions for the CMK whenever
	// the encrypted data is requested.
	KmsKeyArn string `protobuf:"bytes,1,opt,name=kms_key_arn,json=kmsKeyArn,proto3" json:"kms_key_arn,omitempty"`
	// Number of days you want to retain log events in the log group
	RetentionInDays int32 `protobuf:"varint,2,opt,name=retention_in_days,json=retentionInDays,proto3" json:"retention_in_days,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaCloudwatchLogGroup configures the CloudWatch Log Group for the Lambda function, including retention settings and KMS key for encrypting log data.

func (*AwsLambdaCloudwatchLogGroup) Descriptor deprecated

func (*AwsLambdaCloudwatchLogGroup) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaCloudwatchLogGroup.ProtoReflect.Descriptor instead.

func (*AwsLambdaCloudwatchLogGroup) GetKmsKeyArn

func (x *AwsLambdaCloudwatchLogGroup) GetKmsKeyArn() string

func (*AwsLambdaCloudwatchLogGroup) GetRetentionInDays

func (x *AwsLambdaCloudwatchLogGroup) GetRetentionInDays() int32

func (*AwsLambdaCloudwatchLogGroup) ProtoMessage

func (*AwsLambdaCloudwatchLogGroup) ProtoMessage()

func (*AwsLambdaCloudwatchLogGroup) ProtoReflect

func (*AwsLambdaCloudwatchLogGroup) Reset

func (x *AwsLambdaCloudwatchLogGroup) Reset()

func (*AwsLambdaCloudwatchLogGroup) String

func (x *AwsLambdaCloudwatchLogGroup) String() string

type AwsLambdaFunction

type AwsLambdaFunction struct {

	// Instruction set architecture for your Lambda function. Valid values are `["x8664"]` and `["arm64"]`.
	// Default is `["x8664"]`. Removing this attribute, function's architecture stay the same.
	Architectures []string `protobuf:"bytes,1,rep,name=architectures,proto3" json:"architectures,omitempty"`
	// Description of what your Lambda Function does.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Configuration block. Detailed below.
	FileSystemConfig *AwsLambdaFunctionFileSystemConfig `protobuf:"bytes,3,opt,name=file_system_config,json=fileSystemConfig,proto3" json:"file_system_config,omitempty"`
	// Function [entrypoint](https://docs.aws.amazon.com/lambda/latest/dg/walkthrough-custom-events-create-test-function.html) in your code.
	Handler string `protobuf:"bytes,4,opt,name=handler,proto3" json:"handler,omitempty"`
	// ECR image URI containing the function's deployment package. Exactly one of `filename`, `imageUri`,  or `s3Bucket` must be specified.
	ImageUri string `protobuf:"bytes,5,opt,name=image_uri,json=imageUri,proto3" json:"image_uri,omitempty"`
	// Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key that is used to encrypt environment variables.
	// If this configuration is not provided when environment variables are in use, AWS Lambda uses a default service key.
	// If this configuration is provided when environment variables are not in use,
	// the AWS Lambda API does not save this configuration and the provider will show a perpetual difference of adding
	// the key. To fix the perpetual difference, remove this configuration.
	KmsKeyArn string `protobuf:"bytes,6,opt,name=kms_key_arn,json=kmsKeyArn,proto3" json:"kms_key_arn,omitempty"`
	// List of Lambda Layer Version ARNs (maximum of 5) to attach to your Lambda Function.
	// See [Lambda Layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)
	Layers []string `protobuf:"bytes,7,rep,name=layers,proto3" json:"layers,omitempty"`
	// Amount of memory in MB your Lambda Function can use at runtime. Defaults to `128`.
	// See [Limits](https://docs.aws.amazon.com/lambda/latest/dg/limits.html)
	MemorySize int32 `protobuf:"varint,8,opt,name=memory_size,json=memorySize,proto3" json:"memory_size,omitempty"`
	// Lambda deployment package type. Valid values are `Zip` and `Image`. Defaults to `Zip`.
	PackageType string `protobuf:"bytes,9,opt,name=package_type,json=packageType,proto3" json:"package_type,omitempty"`
	// Whether to publish creation/change as new Lambda Function Version. Defaults to `false`.
	Publish bool `protobuf:"varint,10,opt,name=publish,proto3" json:"publish,omitempty"`
	// Amount of reserved concurrent executions for this lambda function. A value of `0` disables lambda from
	// being triggered and `-1` removes any concurrency limitations. Defaults to Unreserved Concurrency Limits `-1`.
	// See [Managing Concurrency](https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html)
	ReservedConcurrentExecutions int32 `` /* 149-byte string literal not displayed */
	// Identifier of the function's runtime.
	// See [Runtimes](https://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunction.html#SSS-CreateFunction-request-Runtime) for valid values.
	Runtime string `protobuf:"bytes,12,opt,name=runtime,proto3" json:"runtime,omitempty"`
	// S3 bucket location containing the function's deployment package. This bucket must reside in the same AWS region
	// where you are creating the Lambda function. Exactly one of `filename`, `imageUri`, or `s3Bucket` must be specified.
	// When `s3Bucket` is set, `s3Key` is required.
	S3Bucket string `protobuf:"bytes,13,opt,name=s3_bucket,json=s3Bucket,proto3" json:"s3_bucket,omitempty"`
	// S3 key of an object containing the function's deployment package. When `s3Bucket` is set, `s3Key` is required.
	S3Key string `protobuf:"bytes,14,opt,name=s3_key,json=s3Key,proto3" json:"s3_key,omitempty"`
	// Object version containing the function's deployment package. Conflicts with `filename` and `imageUri`.
	S3ObjectVersion string `protobuf:"bytes,15,opt,name=s3_object_version,json=s3ObjectVersion,proto3" json:"s3_object_version,omitempty"`
	// Used to trigger updates. Must be set to a base64-encoded SHA256 hash of the package file specified with either
	// filename or s3_key. The usual way to set this is filebase64sha256('file.zip') where 'file.zip' is the local filename
	// of the lambda function source archive.
	SourceCodeHash string `protobuf:"bytes,16,opt,name=source_code_hash,json=sourceCodeHash,proto3" json:"source_code_hash,omitempty"`
	// Amount of time your Lambda Function has to run in seconds. Defaults to `3`.
	// See [Limits](https://docs.aws.amazon.com/lambda/latest/dg/limits.html).
	Timeout int32 `protobuf:"varint,17,opt,name=timeout,proto3" json:"timeout,omitempty"`
	// Map of environment variables that are accessible from the function code during execution. If provided at least one key must be present.
	Variables map[string]string `` /* 160-byte string literal not displayed */
	// ARN of an SNS topic or SQS queue to notify when an invocation fails. If this option is used, the function's IAM
	// role must be granted suitable access to write to the target object, which means allowing either
	// the `sns:Publish` or `sqs:SendMessage` action on this ARN, depending on which service is targeted.
	DeadLetterConfigTargetArn string `` /* 143-byte string literal not displayed */
	// The Lambda OCI [image configurations](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function#image_config)
	ImageConfig *AwsLambdaFunctionImageConfig `protobuf:"bytes,20,opt,name=image_config,json=imageConfig,proto3" json:"image_config,omitempty"`
	// Whether to sample and trace a subset of incoming requests with AWS X-Ray. Valid values are `PassThrough` and `Active`.
	// If `PassThrough`, Lambda will only trace the request from an upstream service if it contains a tracing header
	// with "sampled=1". If `Active`, Lambda will respect any tracing header it receives from an upstream service.
	// If no tracing header is received, Lambda will call X-Ray for a tracing decision.
	TracingConfigMode string `protobuf:"bytes,21,opt,name=tracing_config_mode,json=tracingConfigMode,proto3" json:"tracing_config_mode,omitempty"`
	// VPC configuration
	VpcConfig *AwsLambdaFunctionVpcConfig `protobuf:"bytes,22,opt,name=vpc_config,json=vpcConfig,proto3" json:"vpc_config,omitempty"`
	// The size of the Lambda function Ephemeral storage(`/tmp`) represented in MB.
	// The minimum supported `ephemeralStorage` value defaults to `512`MB and the maximum supported value is `10240`MB.
	EphemeralStorageSize int32 `protobuf:"varint,23,opt,name=ephemeral_storage_size,json=ephemeralStorageSize,proto3" json:"ephemeral_storage_size,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaFunction represents the configuration of an AWS Lambda function, including properties such as architectures, handler, runtime, memory size, timeouts, environment variables, VPC configuration, and other optional settings.

func (*AwsLambdaFunction) Descriptor deprecated

func (*AwsLambdaFunction) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaFunction.ProtoReflect.Descriptor instead.

func (*AwsLambdaFunction) GetArchitectures

func (x *AwsLambdaFunction) GetArchitectures() []string

func (*AwsLambdaFunction) GetDeadLetterConfigTargetArn

func (x *AwsLambdaFunction) GetDeadLetterConfigTargetArn() string

func (*AwsLambdaFunction) GetDescription

func (x *AwsLambdaFunction) GetDescription() string

func (*AwsLambdaFunction) GetEphemeralStorageSize

func (x *AwsLambdaFunction) GetEphemeralStorageSize() int32

func (*AwsLambdaFunction) GetFileSystemConfig

func (x *AwsLambdaFunction) GetFileSystemConfig() *AwsLambdaFunctionFileSystemConfig

func (*AwsLambdaFunction) GetHandler

func (x *AwsLambdaFunction) GetHandler() string

func (*AwsLambdaFunction) GetImageConfig

func (x *AwsLambdaFunction) GetImageConfig() *AwsLambdaFunctionImageConfig

func (*AwsLambdaFunction) GetImageUri

func (x *AwsLambdaFunction) GetImageUri() string

func (*AwsLambdaFunction) GetKmsKeyArn

func (x *AwsLambdaFunction) GetKmsKeyArn() string

func (*AwsLambdaFunction) GetLayers

func (x *AwsLambdaFunction) GetLayers() []string

func (*AwsLambdaFunction) GetMemorySize

func (x *AwsLambdaFunction) GetMemorySize() int32

func (*AwsLambdaFunction) GetPackageType

func (x *AwsLambdaFunction) GetPackageType() string

func (*AwsLambdaFunction) GetPublish

func (x *AwsLambdaFunction) GetPublish() bool

func (*AwsLambdaFunction) GetReservedConcurrentExecutions

func (x *AwsLambdaFunction) GetReservedConcurrentExecutions() int32

func (*AwsLambdaFunction) GetRuntime

func (x *AwsLambdaFunction) GetRuntime() string

func (*AwsLambdaFunction) GetS3Bucket

func (x *AwsLambdaFunction) GetS3Bucket() string

func (*AwsLambdaFunction) GetS3Key

func (x *AwsLambdaFunction) GetS3Key() string

func (*AwsLambdaFunction) GetS3ObjectVersion

func (x *AwsLambdaFunction) GetS3ObjectVersion() string

func (*AwsLambdaFunction) GetSourceCodeHash

func (x *AwsLambdaFunction) GetSourceCodeHash() string

func (*AwsLambdaFunction) GetTimeout

func (x *AwsLambdaFunction) GetTimeout() int32

func (*AwsLambdaFunction) GetTracingConfigMode

func (x *AwsLambdaFunction) GetTracingConfigMode() string

func (*AwsLambdaFunction) GetVariables

func (x *AwsLambdaFunction) GetVariables() map[string]string

func (*AwsLambdaFunction) GetVpcConfig

func (x *AwsLambdaFunction) GetVpcConfig() *AwsLambdaFunctionVpcConfig

func (*AwsLambdaFunction) ProtoMessage

func (*AwsLambdaFunction) ProtoMessage()

func (*AwsLambdaFunction) ProtoReflect

func (x *AwsLambdaFunction) ProtoReflect() protoreflect.Message

func (*AwsLambdaFunction) Reset

func (x *AwsLambdaFunction) Reset()

func (*AwsLambdaFunction) String

func (x *AwsLambdaFunction) String() string

type AwsLambdaFunctionFileSystemConfig

type AwsLambdaFunctionFileSystemConfig struct {

	// Amazon Resource Name (ARN) of the Amazon EFS Access Point that provides access to the file system.
	Arn string `protobuf:"bytes,1,opt,name=arn,proto3" json:"arn,omitempty"`
	// Path where the function can access the file system, starting with /mnt/.
	LocalMountPath string `protobuf:"bytes,2,opt,name=local_mount_path,json=localMountPath,proto3" json:"local_mount_path,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaFunctionFileSystemConfig configures the file system access for the Lambda function, allowing it to access an Amazon EFS file system via an Access Point.

func (*AwsLambdaFunctionFileSystemConfig) Descriptor deprecated

func (*AwsLambdaFunctionFileSystemConfig) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaFunctionFileSystemConfig.ProtoReflect.Descriptor instead.

func (*AwsLambdaFunctionFileSystemConfig) GetArn

func (*AwsLambdaFunctionFileSystemConfig) GetLocalMountPath

func (x *AwsLambdaFunctionFileSystemConfig) GetLocalMountPath() string

func (*AwsLambdaFunctionFileSystemConfig) ProtoMessage

func (*AwsLambdaFunctionFileSystemConfig) ProtoMessage()

func (*AwsLambdaFunctionFileSystemConfig) ProtoReflect

func (*AwsLambdaFunctionFileSystemConfig) Reset

func (*AwsLambdaFunctionFileSystemConfig) String

type AwsLambdaFunctionImageConfig

type AwsLambdaFunctionImageConfig struct {

	// Parameters that you want to pass in with `entryPoint`.
	Commands []string `protobuf:"bytes,1,rep,name=commands,proto3" json:"commands,omitempty"`
	// Entry point to your application, which is typically the location of the runtime executable.
	EntryPoints []string `protobuf:"bytes,2,rep,name=entry_points,json=entryPoints,proto3" json:"entry_points,omitempty"`
	// Working directory.
	WorkingDirectory string `protobuf:"bytes,3,opt,name=working_directory,json=workingDirectory,proto3" json:"working_directory,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaFunctionImageConfig specifies the image configuration values for a container image Lambda function, including command overrides, entry point, and working directory.

func (*AwsLambdaFunctionImageConfig) Descriptor deprecated

func (*AwsLambdaFunctionImageConfig) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaFunctionImageConfig.ProtoReflect.Descriptor instead.

func (*AwsLambdaFunctionImageConfig) GetCommands

func (x *AwsLambdaFunctionImageConfig) GetCommands() []string

func (*AwsLambdaFunctionImageConfig) GetEntryPoints

func (x *AwsLambdaFunctionImageConfig) GetEntryPoints() []string

func (*AwsLambdaFunctionImageConfig) GetWorkingDirectory

func (x *AwsLambdaFunctionImageConfig) GetWorkingDirectory() string

func (*AwsLambdaFunctionImageConfig) ProtoMessage

func (*AwsLambdaFunctionImageConfig) ProtoMessage()

func (*AwsLambdaFunctionImageConfig) ProtoReflect

func (*AwsLambdaFunctionImageConfig) Reset

func (x *AwsLambdaFunctionImageConfig) Reset()

func (*AwsLambdaFunctionImageConfig) String

type AwsLambdaFunctionVpcConfig

type AwsLambdaFunctionVpcConfig struct {

	// List of security group IDs associated with the Lambda function.
	SecurityGroupIds []string `protobuf:"bytes,1,rep,name=security_group_ids,json=securityGroupIds,proto3" json:"security_group_ids,omitempty"`
	// List of subnet IDs associated with the Lambda function.
	SubnetIds []string `protobuf:"bytes,2,rep,name=subnet_ids,json=subnetIds,proto3" json:"subnet_ids,omitempty"`
	// ID of the VPC.
	VpcId string `protobuf:"bytes,3,opt,name=vpc_id,json=vpcId,proto3" json:"vpc_id,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaFunctionVpcConfig provides VPC configuration for the Lambda function, specifying the VPC, subnets, and security groups for the function's network interface.

func (*AwsLambdaFunctionVpcConfig) Descriptor deprecated

func (*AwsLambdaFunctionVpcConfig) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaFunctionVpcConfig.ProtoReflect.Descriptor instead.

func (*AwsLambdaFunctionVpcConfig) GetSecurityGroupIds

func (x *AwsLambdaFunctionVpcConfig) GetSecurityGroupIds() []string

func (*AwsLambdaFunctionVpcConfig) GetSubnetIds

func (x *AwsLambdaFunctionVpcConfig) GetSubnetIds() []string

func (*AwsLambdaFunctionVpcConfig) GetVpcId

func (x *AwsLambdaFunctionVpcConfig) GetVpcId() string

func (*AwsLambdaFunctionVpcConfig) ProtoMessage

func (*AwsLambdaFunctionVpcConfig) ProtoMessage()

func (*AwsLambdaFunctionVpcConfig) ProtoReflect

func (*AwsLambdaFunctionVpcConfig) Reset

func (x *AwsLambdaFunctionVpcConfig) Reset()

func (*AwsLambdaFunctionVpcConfig) String

func (x *AwsLambdaFunctionVpcConfig) String() string

type AwsLambdaIamRole

type AwsLambdaIamRole struct {

	// ARN of the policy that is used to set the permissions boundary for the role
	PermissionsBoundary string `protobuf:"bytes,1,opt,name=permissions_boundary,json=permissionsBoundary,proto3" json:"permissions_boundary,omitempty"`
	// Enable Lambda@Edge for your Node.js or Python functions. The required trust relationship and publishing of
	// function versions will be configured in this module.
	LambdaAtEdgeEnabled bool `protobuf:"varint,2,opt,name=lambda_at_edge_enabled,json=lambdaAtEdgeEnabled,proto3" json:"lambda_at_edge_enabled,omitempty"`
	// Enable CloudWatch Lambda Insights for the Lambda Function.
	CloudwatchLambdaInsightsEnabled bool `` /* 159-byte string literal not displayed */
	// List of AWS Systems Manager Parameter Store parameter names. The IAM role of this Lambda function will be enhanced
	// with read permissions for those parameters. Parameters must start with a forward slash and can be encrypted with the
	// default KMS key.
	SsmParameterNames []string `protobuf:"bytes,4,rep,name=ssm_parameter_names,json=ssmParameterNames,proto3" json:"ssm_parameter_names,omitempty"`
	// ARNs of custom policies to be attached to the lambda role
	CustomIamPolicyArns []string `protobuf:"bytes,5,rep,name=custom_iam_policy_arns,json=customIamPolicyArns,proto3" json:"custom_iam_policy_arns,omitempty"`
	// Inline policy document (JSON) to attach to the lambda role
	InlineIamPolicy string `protobuf:"bytes,6,opt,name=inline_iam_policy,json=inlineIamPolicy,proto3" json:"inline_iam_policy,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaIamRole defines the IAM role configuration for the Lambda function, including permissions boundaries, custom policies, and settings for Lambda@Edge and CloudWatch Lambda Insights.

func (*AwsLambdaIamRole) Descriptor deprecated

func (*AwsLambdaIamRole) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaIamRole.ProtoReflect.Descriptor instead.

func (*AwsLambdaIamRole) GetCloudwatchLambdaInsightsEnabled

func (x *AwsLambdaIamRole) GetCloudwatchLambdaInsightsEnabled() bool

func (*AwsLambdaIamRole) GetCustomIamPolicyArns

func (x *AwsLambdaIamRole) GetCustomIamPolicyArns() []string

func (*AwsLambdaIamRole) GetInlineIamPolicy

func (x *AwsLambdaIamRole) GetInlineIamPolicy() string

func (*AwsLambdaIamRole) GetLambdaAtEdgeEnabled

func (x *AwsLambdaIamRole) GetLambdaAtEdgeEnabled() bool

func (*AwsLambdaIamRole) GetPermissionsBoundary

func (x *AwsLambdaIamRole) GetPermissionsBoundary() string

func (*AwsLambdaIamRole) GetSsmParameterNames

func (x *AwsLambdaIamRole) GetSsmParameterNames() []string

func (*AwsLambdaIamRole) ProtoMessage

func (*AwsLambdaIamRole) ProtoMessage()

func (*AwsLambdaIamRole) ProtoReflect

func (x *AwsLambdaIamRole) ProtoReflect() protoreflect.Message

func (*AwsLambdaIamRole) Reset

func (x *AwsLambdaIamRole) Reset()

func (*AwsLambdaIamRole) String

func (x *AwsLambdaIamRole) String() string

type AwsLambdaInvokeFunctionPermission

type AwsLambdaInvokeFunctionPermission struct {

	//	The principal who is getting this permission e.g., `s3.amazonaws.com`,
	//
	// an AWS account ID, or AWS IAM principal, or AWS service principal such as `events.amazonaws.com` or `sns.amazonaws.com`.
	Principal string `protobuf:"bytes,1,opt,name=principal,proto3" json:"principal,omitempty"`
	// When the principal is an AWS service, the ARN of the specific resource within that service to grant permission to.
	// Without this, any resource from `principal` will be granted permission – even if that resource is from another account.
	// For S3, this should be the ARN of the S3 Bucket.
	// For EventBridge events, this should be the ARN of the EventBridge Rule.
	// For API Gateway, this should be the ARN of the API, as described
	// [here](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html).
	SourceArn string `protobuf:"bytes,2,opt,name=source_arn,json=sourceArn,proto3" json:"source_arn,omitempty"`
	// contains filtered or unexported fields
}

AwsLambdaInvokeFunctionPermission defines which external sources can invoke the Lambda function, specifying the principal and source ARN.

func (*AwsLambdaInvokeFunctionPermission) Descriptor deprecated

func (*AwsLambdaInvokeFunctionPermission) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaInvokeFunctionPermission.ProtoReflect.Descriptor instead.

func (*AwsLambdaInvokeFunctionPermission) GetPrincipal

func (x *AwsLambdaInvokeFunctionPermission) GetPrincipal() string

func (*AwsLambdaInvokeFunctionPermission) GetSourceArn

func (x *AwsLambdaInvokeFunctionPermission) GetSourceArn() string

func (*AwsLambdaInvokeFunctionPermission) ProtoMessage

func (*AwsLambdaInvokeFunctionPermission) ProtoMessage()

func (*AwsLambdaInvokeFunctionPermission) ProtoReflect

func (*AwsLambdaInvokeFunctionPermission) Reset

func (*AwsLambdaInvokeFunctionPermission) String

type AwsLambdaSpec

type AwsLambdaSpec struct {

	// aws lambda function spec
	Function *AwsLambdaFunction `protobuf:"bytes,1,opt,name=function,proto3" json:"function,omitempty"`
	// aws lambda function iam spec
	IamRole *AwsLambdaIamRole `protobuf:"bytes,2,opt,name=iam_role,json=iamRole,proto3" json:"iam_role,omitempty"`
	// aws lambda cloud watch log group
	CloudwatchLogGroup *AwsLambdaCloudwatchLogGroup `protobuf:"bytes,3,opt,name=cloudwatch_log_group,json=cloudwatchLogGroup,proto3" json:"cloudwatch_log_group,omitempty"`
	// Defines which external source(s) can invoke this function (action 'lambda:InvokeFunction'). Attributes map to
	// those of https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission.
	// NOTE: to keep things simple, we only expose a subset of said attributes. If a more complex configuration is
	// needed, declare the necessary lambda permissions outside of this module
	InvokeFunctionPermissions []*AwsLambdaInvokeFunctionPermission `` /* 138-byte string literal not displayed */
	// contains filtered or unexported fields
}

AwsLambdaSpec defines the specification required to deploy an AWS Lambda function, encapsulating all configurations including the function itself, IAM roles, logging configurations, and permissions for invoking the function.

func (*AwsLambdaSpec) Descriptor deprecated

func (*AwsLambdaSpec) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaSpec.ProtoReflect.Descriptor instead.

func (*AwsLambdaSpec) GetCloudwatchLogGroup

func (x *AwsLambdaSpec) GetCloudwatchLogGroup() *AwsLambdaCloudwatchLogGroup

func (*AwsLambdaSpec) GetFunction

func (x *AwsLambdaSpec) GetFunction() *AwsLambdaFunction

func (*AwsLambdaSpec) GetIamRole

func (x *AwsLambdaSpec) GetIamRole() *AwsLambdaIamRole

func (*AwsLambdaSpec) GetInvokeFunctionPermissions

func (x *AwsLambdaSpec) GetInvokeFunctionPermissions() []*AwsLambdaInvokeFunctionPermission

func (*AwsLambdaSpec) ProtoMessage

func (*AwsLambdaSpec) ProtoMessage()

func (*AwsLambdaSpec) ProtoReflect

func (x *AwsLambdaSpec) ProtoReflect() protoreflect.Message

func (*AwsLambdaSpec) Reset

func (x *AwsLambdaSpec) Reset()

func (*AwsLambdaSpec) String

func (x *AwsLambdaSpec) String() string

type AwsLambdaStackInput

type AwsLambdaStackInput struct {

	// pulumi input
	Pulumi *pulumi.PulumiStackInfo `protobuf:"bytes,1,opt,name=pulumi,proto3" json:"pulumi,omitempty"`
	// target api-resource
	Target *AwsLambda `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
	// aws-credential
	AwsCredential *v1.AwsCredentialSpec `protobuf:"bytes,3,opt,name=aws_credential,json=awsCredential,proto3" json:"aws_credential,omitempty"`
	// contains filtered or unexported fields
}

aws-lambda stack-input

func (*AwsLambdaStackInput) Descriptor deprecated

func (*AwsLambdaStackInput) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaStackInput.ProtoReflect.Descriptor instead.

func (*AwsLambdaStackInput) GetAwsCredential

func (x *AwsLambdaStackInput) GetAwsCredential() *v1.AwsCredentialSpec

func (*AwsLambdaStackInput) GetPulumi

func (x *AwsLambdaStackInput) GetPulumi() *pulumi.PulumiStackInfo

func (*AwsLambdaStackInput) GetTarget

func (x *AwsLambdaStackInput) GetTarget() *AwsLambda

func (*AwsLambdaStackInput) ProtoMessage

func (*AwsLambdaStackInput) ProtoMessage()

func (*AwsLambdaStackInput) ProtoReflect

func (x *AwsLambdaStackInput) ProtoReflect() protoreflect.Message

func (*AwsLambdaStackInput) Reset

func (x *AwsLambdaStackInput) Reset()

func (*AwsLambdaStackInput) String

func (x *AwsLambdaStackInput) String() string

type AwsLambdaStackOutputs

type AwsLambdaStackOutputs struct {

	// id of the lambda function created on aws
	LambdaFunctionId string `protobuf:"bytes,1,opt,name=lambda_function_id,json=lambdaFunctionId,proto3" json:"lambda_function_id,omitempty"`
	// contains filtered or unexported fields
}

aws-lambda stack outputs

func (*AwsLambdaStackOutputs) Descriptor deprecated

func (*AwsLambdaStackOutputs) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaStackOutputs.ProtoReflect.Descriptor instead.

func (*AwsLambdaStackOutputs) GetLambdaFunctionId

func (x *AwsLambdaStackOutputs) GetLambdaFunctionId() string

func (*AwsLambdaStackOutputs) ProtoMessage

func (*AwsLambdaStackOutputs) ProtoMessage()

func (*AwsLambdaStackOutputs) ProtoReflect

func (x *AwsLambdaStackOutputs) ProtoReflect() protoreflect.Message

func (*AwsLambdaStackOutputs) Reset

func (x *AwsLambdaStackOutputs) Reset()

func (*AwsLambdaStackOutputs) String

func (x *AwsLambdaStackOutputs) String() string

type AwsLambdaStatus

type AwsLambdaStatus struct {

	// lifecycle
	Lifecycle *shared.ApiResourceLifecycle `protobuf:"bytes,99,opt,name=lifecycle,proto3" json:"lifecycle,omitempty"`
	// audit-info
	Audit *shared.ApiResourceAudit `protobuf:"bytes,98,opt,name=audit,proto3" json:"audit,omitempty"`
	// stack-job id
	StackJobId string `protobuf:"bytes,97,opt,name=stack_job_id,json=stackJobId,proto3" json:"stack_job_id,omitempty"`
	// stack-outputs
	StackOutputs *AwsLambdaStackOutputs `protobuf:"bytes,1,opt,name=stack_outputs,json=stackOutputs,proto3" json:"stack_outputs,omitempty"`
	// contains filtered or unexported fields
}

aws-lambda status

func (*AwsLambdaStatus) Descriptor deprecated

func (*AwsLambdaStatus) Descriptor() ([]byte, []int)

Deprecated: Use AwsLambdaStatus.ProtoReflect.Descriptor instead.

func (*AwsLambdaStatus) GetAudit

func (x *AwsLambdaStatus) GetAudit() *shared.ApiResourceAudit

func (*AwsLambdaStatus) GetLifecycle

func (x *AwsLambdaStatus) GetLifecycle() *shared.ApiResourceLifecycle

func (*AwsLambdaStatus) GetStackJobId

func (x *AwsLambdaStatus) GetStackJobId() string

func (*AwsLambdaStatus) GetStackOutputs

func (x *AwsLambdaStatus) GetStackOutputs() *AwsLambdaStackOutputs

func (*AwsLambdaStatus) ProtoMessage

func (*AwsLambdaStatus) ProtoMessage()

func (*AwsLambdaStatus) ProtoReflect

func (x *AwsLambdaStatus) ProtoReflect() protoreflect.Message

func (*AwsLambdaStatus) Reset

func (x *AwsLambdaStatus) Reset()

func (*AwsLambdaStatus) String

func (x *AwsLambdaStatus) String() string

Directories

Path Synopsis
iac

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL