in mmv1/openapi_generate/parser.go [228:276]
func buildResource(filePath, resourcePath, resourceName string, root *openapi3.T) api.Resource {
resource := api.Resource{}
parsedObjects := parseOpenApi(resourcePath, resourceName, root)
parameters := parsedObjects[0].([]*api.Type)
properties := parsedObjects[1].([]*api.Type)
queryParam := parsedObjects[2].(string)
baseUrl := baseUrl(resourcePath)
selfLink := fmt.Sprintf("%s/{{%s}}", baseUrl, google.Underscore(queryParam))
resource.Name = resourceName
resource.BaseUrl = baseUrl
resource.Parameters = parameters
resource.Properties = properties
resource.SelfLink = selfLink
resource.IdFormat = selfLink
resource.ImportFormat = []string{selfLink}
resource.CreateUrl = fmt.Sprintf("%s?%s={{%s}}", baseUrl, queryParam, google.Underscore(queryParam))
resource.Description = "Description"
resource.AutogenAsync = true
async := api.NewAsync()
async.Operation.BaseUrl = "{{op_id}}"
async.Result.ResourceInsideResponse = true
resource.Async = async
if hasUpdate(resourceName, root) {
resource.UpdateVerb = "PATCH"
resource.UpdateMask = true
} else {
resource.Immutable = true
}
example := r.Examples{}
example.Name = "name_of_example_file"
example.PrimaryResourceId = "example"
example.Vars = map[string]string{"resource_name": "test-resource"}
resource.Examples = []r.Examples{example}
resourceNameBytes := []byte(resourceName)
// Write the status as an encoded string to flag when a YAML file has been
// copy and pasted without actually using this tool
resource.AutogenStatus = base64.StdEncoding.EncodeToString(resourceNameBytes)
return resource
}