Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GenerationConfig ¶
type GenerationConfig struct {
Specs []Spec `json:"specs"`
}
GenerationConfig configures the generation of the Terraform provider.
type ResourceConfig ¶
type ResourceConfig struct { TypeNameSuffix string `json:"type_name_suffix"` Description string `json:"description"` MarkdownDescription string `json:"markdown_description"` OpenapiSchema string `json:"openapi_schema"` RestCollectionPath string `json:"rest_collection_path"` RestResourcePath string `json:"rest_resource_path"` // Map path param names (e.g. "id") to the name of the OpenAPI schema // property whose value should be used to replace the path param in URLs. // Schema property names should be lower_snake_case PathParamsToSchemaProperty map[string]string `json:"path_params_to_schema_property"` }
ResourceConfig describes a resource that should be generated.
type SchemaOverride ¶ added in v0.1.4
type SchemaOverride struct { // Mark these schema properties as read-only. In theory, we should just mark everything readonly // via OpenAPI, but this doesn't work with object references: // https://usercloudsworkspace.slack.com/archives/C02A3HELPPU/p1695418020075049 // Furthermore, swaggest doesn't currently support a `readOnly` struct tag :( ReadonlyProperties []string `json:"readonly_properties"` // In addition to having read-only properties (properties whose value can // never be set), we have a notion of "immutable" properties (properties // that can be set upon `create`, but not upon `update`). This is a thing we // invented here, NOT an OpenAPI thing. The OpenAPI way to do things is to // have separate schemas for your create/update endpoints, where the update // schema doesn't include the immutable properties: // https://stackoverflow.com/a/60110172 However, that requires some // significant changes to the way our backend code is structured, so this // seems like a better solution for now. ImmutableProperties []string `json:"immutable_properties"` }
SchemaOverride allows us to tweak OpenAPI schemas before we generate Terraform schemas from them.
type Spec ¶
type Spec struct { File string `json:"file"` GeneratedFilePackage string `json:"generated_file_package"` Resources []ResourceConfig `json:"resources"` SchemaOverrides map[string]SchemaOverride `json:"schema_overrides"` }
Spec configures the generation of resources from a single OpenAPI spec.
Click to show internal directories.
Click to hide internal directories.