Documentation ¶
Index ¶
Constants ¶
const ( APIStatusAvailable APIStatus = "available" APIStatusRemoved = "removed" APIStatusDeprecated = "deprecated" )
Variables ¶
var ( ErrNoServiceMetadataFile = errors.New("expected metadata file path, none provided") ErrNoAvailableVersions = errors.New("service metadata contains no available versions") )
Functions ¶
func CreateGenerationMetadata ¶
func CreateGenerationMetadata( apiVersion string, apisPath string, modificationReason UpdateReason, awsSDKGo string, generatorFileName string, ) error
CreateGenerationMetadata gathers information about the generated code and save a yaml version in the API version directory
Types ¶
type APIInfo ¶
type APIInfo struct { // The API status. Can be one of Available, Removed and Deprecated. Status APIStatus // the aws-sdk-go version used to generated the apiVersion. AWSSDKVersion string // Full path of the generator config file. GeneratorConfigPath string // The API version. APIVersion string }
APIInfo contains information related a specific apiVersion.
type GenerationMetadata ¶
type GenerationMetadata struct { // The APIs version e.g v1alpha2 APIVersion string `json:"api_version"` // The checksum of all the combined files generated within the APIs directory APIDirectoryChecksum string `json:"api_directory_checksum"` // Last modification reason LastModification lastModificationInfo `json:"last_modification"` // AWS SDK Go version used generate the APIs AWSSDKGoVersion string `json:"aws_sdk_go_version"` // Informatiom about the ack-generate binary used to generate the APIs ACKGenerateInfo ackGenerateInfo `json:"ack_generate_info"` // Information about the generator config file used to generate the APIs GeneratorConfigInfo generatorConfigInfo `json:"generator_config_info"` }
GenerationMetadata represents the parameters used to generate/update the API version directory.
This type is public because soon it will be used by conversion generators to load APIs generation metadata. TODO(hilalymh) Add functions to load/edit metadata files.
type ServiceDetails ¶
type ServiceDetails struct { // The full display name for the service. eg. Amazon Elastic Kubernetes // Service FullName string `json:"full_name"` // The short name (abbreviation) for the service. eg. S3 ShortName string `json:"short_name"` // The URL of the service's homepage Link string `json:"link"` // The URL of the service's main documentation/user guide Documentation string `json:"documentation"` }
ServiceDetails contains string identifiers and relevant links for the service
type ServiceMetadata ¶
type ServiceMetadata struct { Service ServiceDetails `json:"service"` // A list of all generated API versions of the service APIVersions []ServiceVersion `json:"api_versions"` }
ServiceMetadata consists of information about the service and relative links as well as a list of supported/deprecated versions
func NewServiceMetadata ¶
func NewServiceMetadata( metadataPath string, ) (ServiceMetadata, error)
NewServiceMetadata returns a new Metadata object given a supplied path to a metadata file
func (*ServiceMetadata) GetAvailableAPIVersions ¶
func (m *ServiceMetadata) GetAvailableAPIVersions() []string
GetAvailableAPIVersions returns all API versions that have been marked as available
func (*ServiceMetadata) GetDeprecatedAPIVersions ¶
func (m *ServiceMetadata) GetDeprecatedAPIVersions() []string
GetDeprecatedAPIVersions returns all API versions that have been marked as deprecated
func (*ServiceMetadata) GetLatestAPIVersion ¶
func (m *ServiceMetadata) GetLatestAPIVersion() (string, error)
GetLatestAPIVersion returns the latest available API version. This should always be used by the generators as the source of truth for what version to build.
func (*ServiceMetadata) GetRemovedAPIVersions ¶
func (m *ServiceMetadata) GetRemovedAPIVersions() []string
GetRemovedAPIVersions returns all API versions that have been marked as removed
type ServiceVersion ¶
type ServiceVersion struct { APIVersion string `json:"api_version"` Status APIStatus `json:"status"` }
ServiceVersion describes the status of all existing version of the controller
type UpdateReason ¶
type UpdateReason string
UpdateReason is the reason a package got modified.
const ( // UpdateReasonAPIGeneration should be used when an API package // is modified by the APIs generator (ack-generate apis). UpdateReasonAPIGeneration UpdateReason = "API generation" // UpdateReasonConversionFunctionsGeneration Should be used when // an API package is modified by conversion functions generator. // TODO(hilalymh) ack-generate conversion-functions UpdateReasonConversionFunctionsGeneration UpdateReason = "Conversion functions generation" )