package awscdkapprunneralpha

import (
	"github.com/aws/aws-cdk-go/awscdk/v2/awsec2"
)

// Properties of the AppRunner VPC Ingress Connection.
//
// Example:
//   import "github.com/aws/aws-cdk-go/awscdk"
//
//   var vpc vpc
//
//
//   interfaceVpcEndpoint := ec2.NewInterfaceVpcEndpoint(this, jsii.String("MyVpcEndpoint"), &InterfaceVpcEndpointProps{
//   	Vpc: Vpc,
//   	Service: ec2.InterfaceVpcEndpointAwsService_APP_RUNNER_REQUESTS(),
//   	PrivateDnsEnabled: jsii.Boolean(false),
//   })
//
//   service := apprunner.NewService(this, jsii.String("Service"), &ServiceProps{
//   	Source: apprunner.Source_FromEcrPublic(&EcrPublicProps{
//   		ImageConfiguration: &ImageConfiguration{
//   			Port: jsii.Number(8000),
//   		},
//   		ImageIdentifier: jsii.String("public.ecr.aws/aws-containers/hello-app-runner:latest"),
//   	}),
//   	IsPubliclyAccessible: jsii.Boolean(false),
//   })
//
//   apprunner.NewVpcIngressConnection(this, jsii.String("VpcIngressConnection"), &VpcIngressConnectionProps{
//   	Vpc: Vpc,
//   	InterfaceVpcEndpoint: InterfaceVpcEndpoint,
//   	Service: Service,
//   })
//
// Experimental.
type VpcIngressConnectionProps struct {
	// The VPC Interface Endpoint for the VPC Ingress Connection.
	// Experimental.
	InterfaceVpcEndpoint awsec2.IInterfaceVpcEndpoint `field:"required" json:"interfaceVpcEndpoint" yaml:"interfaceVpcEndpoint"`
	// The service to connect.
	// Experimental.
	Service IService `field:"required" json:"service" yaml:"service"`
	// The VPC for the VPC Ingress Connection.
	// Experimental.
	Vpc awsec2.IVpc `field:"required" json:"vpc" yaml:"vpc"`
	// The name for the VPC Ingress Connection.
	// Default: - a name generated by CloudFormation.
	//
	// Experimental.
	VpcIngressConnectionName *string `field:"optional" json:"vpcIngressConnectionName" yaml:"vpcIngressConnectionName"`
}

