in alicloud/resource_alicloud_fcv3_function.go [16:584]
func resourceAliCloudFcv3Function() *schema.Resource {
return &schema.Resource{
Create: resourceAliCloudFcv3FunctionCreate,
Read: resourceAliCloudFcv3FunctionRead,
Update: resourceAliCloudFcv3FunctionUpdate,
Delete: resourceAliCloudFcv3FunctionDelete,
Importer: &schema.ResourceImporter{
State: schema.ImportStatePassthrough,
},
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(5 * time.Minute),
Update: schema.DefaultTimeout(5 * time.Minute),
Delete: schema.DefaultTimeout(5 * time.Minute),
},
Schema: map[string]*schema.Schema{
"code": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"zip_file": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
},
"checksum": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
},
"oss_object_name": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
},
"oss_bucket_name": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
},
},
},
},
"code_size": {
Type: schema.TypeInt,
Computed: true,
},
"cpu": {
Type: schema.TypeFloat,
Optional: true,
Computed: true,
ValidateFunc: FloatBetween(0.05, 16),
},
"create_time": {
Type: schema.TypeString,
Computed: true,
},
"custom_container_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"resolved_image_uri": {
Type: schema.TypeString,
Computed: true,
},
"entrypoint": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"acr_instance_id": {
Type: schema.TypeString,
Optional: true,
Deprecated: "Field 'acr_instance_id' has been deprecated from provider version 1.228.0. ACR Enterprise version Image Repository ID, which must be entered when using ACR Enterprise version image. (Obsolete)",
},
"acceleration_info": {
Type: schema.TypeList,
Computed: true,
Deprecated: "Field 'acceleration_info' has been deprecated from provider version 1.228.0. Image Acceleration Information (Obsolete)",
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"status": {
Type: schema.TypeString,
Computed: true,
Deprecated: "Field 'status' has been deprecated from provider version 1.228.0. Image Acceleration Status (Deprecated)",
},
},
},
},
"command": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"acceleration_type": {
Type: schema.TypeString,
Optional: true,
Deprecated: "Field 'acceleration_type' has been deprecated from provider version 1.228.0. Whether to enable Image acceleration. Default: The Default value, indicating that image acceleration is enabled. None: indicates that image acceleration is disabled. (Obsolete)",
ValidateFunc: StringInSlice([]string{"Default", "None"}, false),
},
"port": {
Type: schema.TypeInt,
Optional: true,
},
"health_check_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"initial_delay_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
"timeout_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 3),
},
"http_get_url": {
Type: schema.TypeString,
Optional: true,
},
"period_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
"failure_threshold": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
"success_threshold": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
},
},
},
"image": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"custom_dns": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"searches": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"dns_options": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"value": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"name_servers": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
},
},
},
"custom_runtime_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"args": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"command": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"port": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntBetween(0, 65535),
},
"health_check_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"initial_delay_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
"timeout_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 3),
},
"http_get_url": {
Type: schema.TypeString,
Optional: true,
},
"period_seconds": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
"failure_threshold": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntBetween(0, 120),
},
"success_threshold": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 120),
},
},
},
},
},
},
},
"description": {
Type: schema.TypeString,
Optional: true,
},
"disk_size": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntAtLeast(512),
},
"environment_variables": {
Type: schema.TypeMap,
Optional: true,
},
"function_arn": {
Type: schema.TypeString,
Computed: true,
},
"function_id": {
Type: schema.TypeString,
Computed: true,
},
"function_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
ValidateFunc: StringMatch(regexp.MustCompile("^[0-9a-zA-Z_-]+$"), "The function name. Consists of uppercase and lowercase letters, digits (0 to 9), underscores (_), and dashes (-). It must begin with an English letter (a ~ z), (A ~ Z), or an underscore (_). Case sensitive. The length is 1~128 characters."),
},
"gpu_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"gpu_memory_size": {
Type: schema.TypeInt,
Optional: true,
},
"gpu_type": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: StringInSlice([]string{"fc.gpu.tesla.1", "fc.gpu.ampere.1", "fc.gpu.ada.1", "g1"}, false),
},
},
},
},
"handler": {
Type: schema.TypeString,
Required: true,
},
"instance_concurrency": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntBetween(0, 200),
},
"instance_lifecycle_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"pre_stop": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"timeout": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 900),
},
"handler": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"initializer": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"timeout": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: IntBetween(0, 600),
},
"handler": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"internet_access": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
},
"last_modified_time": {
Type: schema.TypeString,
Computed: true,
},
"last_update_status": {
Type: schema.TypeString,
Computed: true,
},
"last_update_status_reason": {
Type: schema.TypeString,
Computed: true,
},
"last_update_status_reason_code": {
Type: schema.TypeString,
Computed: true,
},
"layers": {
Type: schema.TypeList,
Optional: true,
Sensitive: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"log_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"project": {
Type: schema.TypeString,
Optional: true,
},
"log_begin_rule": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: StringInSlice([]string{"None", "DefaultRegex"}, false),
},
"logstore": {
Type: schema.TypeString,
Optional: true,
},
"enable_instance_metrics": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
},
"enable_request_metrics": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
},
},
},
},
"memory_size": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntBetween(64, 32768),
},
"nas_config": {
Type: schema.TypeList,
Optional: true,
Computed: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"mount_points": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"enable_tls": {
Type: schema.TypeBool,
Optional: true,
},
"server_addr": {
Type: schema.TypeString,
Optional: true,
},
"mount_dir": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"user_id": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"group_id": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
},
},
},
"oss_mount_config": {
Type: schema.TypeList,
Optional: true,
Computed: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"mount_points": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"read_only": {
Type: schema.TypeBool,
Optional: true,
},
"bucket_name": {
Type: schema.TypeString,
Optional: true,
},
"endpoint": {
Type: schema.TypeString,
Optional: true,
},
"bucket_path": {
Type: schema.TypeString,
Optional: true,
},
"mount_dir": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
},
},
"role": {
Type: schema.TypeString,
Optional: true,
},
"runtime": {
Type: schema.TypeString,
Required: true,
ValidateFunc: StringInSlice([]string{"python3.10", "python3.9", "python3", "nodejs20", "nodejs18", "nodejs16", "nodejs14", "java11", "java8", "php7.2", "dotnetcore3.1", "go1", "custom.debian10", "custom", "custom-container"}, false),
},
"state": {
Type: schema.TypeString,
Computed: true,
},
"state_reason": {
Type: schema.TypeString,
Computed: true,
},
"state_reason_code": {
Type: schema.TypeString,
Computed: true,
},
"tags": tagsSchema(),
"timeout": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: IntBetween(0, 86400),
},
"tracing_config": {
Type: schema.TypeList,
Computed: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"type": {
Type: schema.TypeString,
Computed: true,
},
"params": {
Type: schema.TypeMap,
Computed: true,
},
},
},
},
"vpc_config": {
Type: schema.TypeList,
Optional: true,
Computed: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"vpc_id": {
Type: schema.TypeString,
Optional: true,
},
"vswitch_ids": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"security_group_id": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
},
}
}