Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
60 lines (50 sloc) 2.3 KB
syntax = "proto3";
package aws.plugins.gloo.solo.io;
option go_package = "github.com/solo-io/gloo/projects/gloo/pkg/api/v1/plugins/aws";
import "gogoproto/gogo.proto";
option (gogoproto.equal_all) = true;
import "github.com/solo-io/solo-kit/api/v1/ref.proto";
// Upstream Spec for AWS Lambda Upstreams
// AWS Upstreams represent a collection of Lambda Functions for a particular AWS Account (IAM Role or User account)
// in a particular region
message UpstreamSpec {
// The AWS Region where the desired Lambda Functions exxist
string region = 1;
// A [Gloo Secret Ref](https://gloo.solo.io/introduction/concepts/#Secrets) to an AWS Secret
// AWS Secrets can be created with `glooctl secret create aws ...`
// If the secret is created manually, it must conform to the following structure:
// ```
// access_key: <aws access key>
// secret_key: <aws secret key>
// ```
core.solo.io.ResourceRef secret_ref = 2 [(gogoproto.nullable) = false];
// The list of Lambda Functions contained within this region.
// This list will be automatically populated by Gloo if discovery is enabled for AWS Lambda Functions
repeated LambdaFunctionSpec lambda_functions = 3;
}
// Each Lambda Function Spec contains data necessary for Gloo to invoke Lambda functions:
// - name of the function
// - qualifier for the function
message LambdaFunctionSpec {
// the logical name gloo should associate with this function. if left empty, it will default to
// lambda_function_name+qualifier
string logical_name = 1;
// The Name of the Lambda Function as it appears in the AWS Lambda Portal
string lambda_function_name = 2;
// The Qualifier for the Lambda Function. Qualifiers act as a kind of version
// for Lambda Functions. See https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html for more info.
string qualifier = 3;
}
// Each Lambda Function Spec contains data necessary for Gloo to invoke Lambda functions
message DestinationSpec {
// The Logical Name of the LambdaFunctionSpec to be invoked.
string logical_name = 1;
// Can be either Sync or Async.
InvocationStyle invocation_style = 2;
enum InvocationStyle {
SYNC = 0;
ASYNC = 1;
}
// de-jsonify response bodies returned from aws lambda
bool response_transformation = 5;
}