in alibabacloudstack/resource_apsarastack_apigateway_api.go [21:309]
func resourceAlibabacloudStackApigatewayApi() *schema.Resource {
resource := &schema.Resource{
Schema: map[string]*schema.Schema{
"group_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Deprecated: "Field 'name' is deprecated and will be removed in a future release. Please use new field 'api_name' instead.",
ConflictsWith: []string{"api_name"},
},
"api_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: validation.StringLenBetween(2, 128),
ConflictsWith: []string{"name"},
},
"description": {
Type: schema.TypeString,
Required: true,
},
"auth_type": {
Type: schema.TypeString,
Required: true,
},
"request_config": {
Type: schema.TypeList,
Required: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"protocol": {
Type: schema.TypeString,
Required: true,
},
"method": {
Type: schema.TypeString,
Required: true,
},
"path": {
Type: schema.TypeString,
Required: true,
},
"mode": {
Type: schema.TypeString,
Required: true,
},
"body_format": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"service_type": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"MOCK", "HTTP-VPC", "FunctionCompute", "HTTP"}, false),
},
"http_service_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"address": {
Type: schema.TypeString,
Required: true,
},
"path": {
Type: schema.TypeString,
Required: true,
},
"method": {
Type: schema.TypeString,
Required: true,
},
"timeout": {
Type: schema.TypeInt,
Required: true,
},
"aone_name": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"http_vpc_service_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"path": {
Type: schema.TypeString,
Required: true,
},
"method": {
Type: schema.TypeString,
Required: true,
},
"timeout": {
Type: schema.TypeInt,
Required: true,
},
"aone_name": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"fc_service_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"region": {
Type: schema.TypeString,
Required: true,
},
"function_name": {
Type: schema.TypeString,
Required: true,
},
"service_name": {
Type: schema.TypeString,
Required: true,
},
"arn_role": {
Type: schema.TypeString,
Optional: true,
},
"timeout": {
Type: schema.TypeInt,
Required: true,
},
},
},
},
"mock_service_config": {
Type: schema.TypeList,
Optional: true,
MaxItems: 1,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"result": {
Type: schema.TypeString,
Required: true,
},
"aone_name": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"request_parameters": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"type": {
Type: schema.TypeString,
Required: true,
},
"required": {
Type: schema.TypeString,
Required: true,
},
"in": {
Type: schema.TypeString,
Required: true,
},
"in_service": {
Type: schema.TypeString,
Required: true,
},
"name_service": {
Type: schema.TypeString,
Required: true,
},
"description": {
Type: schema.TypeString,
Optional: true,
},
"default_value": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"constant_parameters": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"in": {
Type: schema.TypeString,
Required: true,
},
"value": {
Type: schema.TypeString,
Required: true,
},
"description": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"system_parameters": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"name_service": {
Type: schema.TypeString,
Required: true,
},
"in": {
Type: schema.TypeString,
Required: true,
},
},
},
},
"stage_names": {
Type: schema.TypeSet,
Elem: &schema.Schema{
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{"PRE", "RELEASE", "TEST"}, false),
},
Optional: true,
},
"api_id": {
Type: schema.TypeString,
Computed: true,
},
"force_nonce_check": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackApigatewayApiCreate, resourceAlibabacloudStackApigatewayApiRead, resourceAlibabacloudStackApigatewayApiUpdate, resourceAlibabacloudStackApigatewayApiDelete)
return resource
}