models

package
v0.0.0-...-c2fab7e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2019 License: GPL-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Data stored in MongoDB.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	// Name to display to users
	Name string `json:"name" bson:"name" validate:"required"`

	// HomepageURL is a link to the website for this app.
	HomepageURL string `json:"homepage_url" bson:"homepage_url" validate:"required"`

	// Tagline is a short description of the app
	Tagline string `json:"tagline" bson:"tagline" validate:"required"`

	// Tags is a lists of tags
	Tags []string `json:"tags" bson:"tags" validate:"required,lowercase"`

	// Categories is a list of categories
	Categories []string `json:"categories" bson:"categories" validate:"required,lowercase,categories"`

	// Author is the person who created the app
	Author ContactInfo `yaml:"author" json:"author" bson:"author" validate:"required"`

	// AppID is a human and computer readable identifier for the application
	AppID string `json:"app_id" bson:"app_id" validate:"required"`

	// Description is more detailed markdown formatted information about the app
	Description string `json:"description" bson:"description" validate:"required"`

	// ScreenshotURLs are links to app screenshots
	ScreenshotURLs []string `json:"screenshot_urls" bson:"screenshot_urls"`

	// LogoURL is a link to the app logo
	LogoURL string `json:"logo_url" bson:"logo_url" validate:"required,url"`

	// VerificationStatus indicates the stage of the verification process the app
	// is currently in. Can be one of: "pending", "verifying", "good", "bad"
	VerificationStatus string `json:"verification_status" bson:"verification_status" validate:"required"`

	// GitHubURL is a link to the GitHub files for the app in the serverless apps registry repository
	GitHubURL string `json:"github_url" bson:"github_url" validate:"required,url"`

	// Deployment datan
	Deployment AppDeployment `json:"deployment" bson:"deployment" validate:"required"`

	// Version is the semantic version of the app
	Version string `json:"version" bson:"version" validate:"required"`

	// SiteURL is a link to the application on the website
	SiteURL string `json:"site_url" bson:"site_url" validate:"required"`
}

App is a serverless application from the repository Stores the json file format of the response

type AppDeployParameter

type AppDeployParameter struct {
	// Substitution is the value which should be substitured for the parameter's value
	Substitution string `json:"substitution" bson:"substitution" validate:"required"`

	// DisplayName is a user friendly name to describe the parameter
	DisplayName string `json:"display_name" bson:"display_name" validate:"required"`

	// DefaultValue of parameter
	DefaultValue string `json:"default_value" bson:"default_value" validate:"required"`

	// RequiresBase64 indicates if the parameter should be encoded in base64 before being
	// placed in the template
	RequiresBase64 bool `json:"requires_base64" bson:"requires_base64" validate:"required"`
}

AppDeployParameter holds information about a parameter in an app's deployment resources

type AppDeployment

type AppDeployment struct {
	// Resources is the raw JSON for each deployment resource
	Resources []string `json:"resources" bson:"resources" validate:"required"`

	// ParameterizedResources is the JSON for each deployment resource, except values in
	// ConfigMap and Secret resources are replaced with their
	// AppDeployParameter.SubstituionVariable value
	ParameterizedResources []string `json:"parameterized_resources" bson:"parameterized_resources" validate:"required"`

	// Parameters holds metadata about the parameters in PrameterizedYAML
	Parameters []AppDeployParameter `json:"parameters" bson:"parameters" validate:"required"`

	// DeployScript is a custom deployment script for the app
	DeployScript string `json:"deploy_script" bson:"deploy_script" validate:"required"`
}

AppDeployment holds deployment information about an app

type AppManifestFile

type AppManifestFile struct {
	// Name to display to users
	Name string `yaml:"name"`

	// HomepageURL is a link to the website for this app.
	HomepageURL string `yaml:"homepageUrl"`

	// Tagline is a short description of the app
	Tagline string `yaml:"tagline"`

	// Tags is a lists of tags
	Tags []string `yaml:"tags"`

	// Categories is a list of categories
	Categories []string `yaml:"categories"`

	// Author is the person who created the app
	Author ContactInfo `yaml:"author"`
}

AppManifestFile is the format of an app's manifest file in the registry repository. This structure holds metadata about an application. This data will be merged into the App model.

type AppVerificationStatus

type AppVerificationStatus struct {
	// FormatCorrect indicates if the app submission files are formatted correctly
	FormatCorrect bool `bson:"format_correct"`
}

AppVerificationStatus holds the verification status of an app

type ContactInfo

type ContactInfo struct {
	// Name
	Name string `json:"name" bson:"name" validate:"required"`

	// Email
	Email string `json:"email" bson:"email" validate:"required,email"`
}

ContactInfo

type Submission

type Submission struct {
	// PRNumber is the user facing ID number of the pull request
	PRNumber int `bson:"pr_number"`

	// Apps are the applications which are currently in the pull request.
	// Keys are app IDs.
	// A value can be nil if an internal system error occurred while parsing /
	// loading the app.
	Apps map[string]*SubmissionApp `bson:"apps"`
}

Submission holds information about a serverless application which is being submitted to the registry repository. Currently applications are submitted via pull requests.

type SubmissionApp

type SubmissionApp struct {
	// App is an app which is present in the submission, nil if
	// the VerificationStatus.FormatCorrect field is false.
	App *App `bson:"app"`

	// VerificationStatus of the App
	VerificationStatus AppVerificationStatus `bson:"verification_status"`
}

SubmissionApp associates an app in a submission with a verification status entry

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL