concourse
Concourse is a continuous thing-doer.
Installation
dagger install github.com/vito/daggerverse/concourse@00f1ec7fa632f36aa5dec8e7b56c2d5ab7488302
Entrypoint
Return Type
Concourse !
Arguments
Name | Type | Description |
---|---|---|
image | String | The image to use for the Concourse container. |
container | Container | The Concourse container. |
postgresImage | String | The Postgres image to use for the database. |
postgres | Container | The Postgres container to use for the database. |
stateTag | String | A tag to use for the state of the Concourse cluster. |
port | Integer | The port to expose for the web node. |
runtime | String | The runtime to use on the worker nodes. |
Example
func (m *myModule) example() *Concourse {
return dag.
Concourse()
}
@function
def example() -> dag.Concourse:
return (
dag.concourse()
)
@func()
example(): Concourse {
return dag
.concourse()
}
Types
Concourse 🔗
container() 🔗
Return Type
Container !
Example
func (m *myModule) example() *Container {
return dag.
Concourse().
Container()
}
@function
def example() -> dagger.Container:
return (
dag.concourse()
.container()
)
@func()
example(): Container {
return dag
.concourse()
.container()
}
postgres() 🔗
Return Type
Container !
Example
func (m *myModule) example() *Container {
return dag.
Concourse().
Postgres()
}
@function
def example() -> dagger.Container:
return (
dag.concourse()
.postgres()
)
@func()
example(): Container {
return dag
.concourse()
.postgres()
}
stateTag() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context) string {
return dag.
Concourse().
StateTag(ctx)
}
@function
async def example() -> str:
return await (
dag.concourse()
.state_tag()
)
@func()
async example(): Promise<string> {
return dag
.concourse()
.stateTag()
}
webPort() 🔗
Return Type
Integer !
Example
func (m *myModule) example(ctx context.Context) int {
return dag.
Concourse().
WebPort(ctx)
}
@function
async def example() -> int:
return await (
dag.concourse()
.web_port()
)
@func()
async example(): Promise<number> {
return dag
.concourse()
.webPort()
}
runtime() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context) string {
return dag.
Concourse().
Runtime(ctx)
}
@function
async def example() -> str:
return await (
dag.concourse()
.runtime()
)
@func()
async example(): Promise<string> {
return dag
.concourse()
.runtime()
}
resourceTypes() 🔗
Return Type
[ResourceType ! ] !
Example
func (m *myModule) example() []*ConcourseResourceType {
return dag.
Concourse().
ResourceTypes()
}
@function
def example() -> List[dag.ConcourseResourceType]:
return (
dag.concourse()
.resource_types()
)
@func()
example(): ConcourseResourceType[] {
return dag
.concourse()
.resourceTypes()
}
vars() 🔗
Return Type
[Var ! ] !
Example
func (m *myModule) example() []*ConcourseVar {
return dag.
Concourse().
Vars()
}
@function
def example() -> List[dag.ConcourseVar]:
return (
dag.concourse()
.vars()
)
@func()
example(): ConcourseVar[] {
return dag
.concourse()
.vars()
}
secretVars() 🔗
Return Type
[SecretVar ! ] !
Example
func (m *myModule) example() []*ConcourseSecretVar {
return dag.
Concourse().
SecretVars()
}
@function
def example() -> List[dag.ConcourseSecretVar]:
return (
dag.concourse()
.secret_vars()
)
@func()
example(): ConcourseSecretVar[] {
return dag
.concourse()
.secretVars()
}
quickstart() 🔗
Runs an all-in-one Concourse cluster.
Return Type
Service !
Example
func (m *myModule) example() *Service {
return dag.
Concourse().
Quickstart()
}
@function
def example() -> dagger.Service:
return (
dag.concourse()
.quickstart()
)
@func()
example(): Service {
return dag
.concourse()
.quickstart()
}
database() 🔗
Runs the Concourse database.
Return Type
Service !
Example
func (m *myModule) example() *Service {
return dag.
Concourse().
Database()
}
@function
def example() -> dagger.Service:
return (
dag.concourse()
.database()
)
@func()
example(): Service {
return dag
.concourse()
.database()
}
resource() 🔗
Initialize a resource. Resources represent external versioned assets.
Resources are implemented as a container that implements the Concourse resource type interface.
See https://concourse-ci.org/implementing-resource-types.html for more information.
Return Type
Resource !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
container | Container ! | - | No description provided |
source | String ! | - | No description provided |
Example
func (m *myModule) example(name string, container *Container, source string) *ConcourseResource {
return dag.
Concourse().
Resource(name, container, source)
}
@function
def example(name: str, container: dagger.Container, source: str) -> dag.ConcourseResource:
return (
dag.concourse()
.resource(name, container, source)
)
@func()
example(name: string, container: Container, source: string): ConcourseResource {
return dag
.concourse()
.resource(name, container, source)
}
withSecretVar() 🔗
Adds a secret to use for a Concourse config ((variable)).
Return Type
Concourse !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
value | Secret ! | - | No description provided |
Example
func (m *myModule) example(name string, value *Secret) *Concourse {
return dag.
Concourse().
WithSecretVar(name, value)
}
@function
def example(name: str, value: dagger.Secret) -> dag.Concourse:
return (
dag.concourse()
.with_secret_var(name, value)
)
@func()
example(name: string, value: Secret): Concourse {
return dag
.concourse()
.withSecretVar(name, value)
}
withVar() 🔗
Adds a variable to use for a Concourse config.
See https://concourse-ci.org/vars.html for more information.
Return Type
Concourse !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
value | String ! | - | No description provided |
Example
func (m *myModule) example(name string, value string) *Concourse {
return dag.
Concourse().
WithVar(name, value)
}
@function
def example(name: str, value: str) -> dag.Concourse:
return (
dag.concourse()
.with_var(name, value)
)
@func()
example(name: string, value: string): Concourse {
return dag
.concourse()
.withVar(name, value)
}
interpolate() 🔗
Return Type
String !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
config | String ! | - | No description provided |
Example
func (m *myModule) example(ctx context.Context, config string) string {
return dag.
Concourse().
Interpolate(ctx, config)
}
@function
async def example(config: str) -> str:
return await (
dag.concourse()
.interpolate(config)
)
@func()
async example(config: string): Promise<string> {
return dag
.concourse()
.interpolate(config)
}
loadPipeline() 🔗
Load a pipeline configuration from a YAML configuration.
See https://concourse-ci.org/pipelines.html for more information.
Return Type
Pipeline !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
configFile | File ! | - | No description provided |
Example
func (m *myModule) example(configFile *File) *ConcoursePipeline {
return dag.
Concourse().
LoadPipeline(configFile)
}
@function
def example(config_file: dagger.File) -> dag.ConcoursePipeline:
return (
dag.concourse()
.load_pipeline(config_file)
)
@func()
example(configFile: File): ConcoursePipeline {
return dag
.concourse()
.loadPipeline(configFile)
}
Resource 🔗
A resource represents an external versioned asset to be published or consumed by your pipeline.
name() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Name(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.name()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.name()
}
container() 🔗
Return Type
Container !
Example
func (m *myModule) example(configFile *File, name string) *Container {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Container()
}
@function
def example(config_file: dagger.File, name: str) -> dagger.Container:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.container()
)
@func()
example(configFile: File, name: string): Container {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.container()
}
source() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Source(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.source()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.source()
}
check() 🔗
Check for new versions of a resource.
Return Type
[ResourceVersion ! ] !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
from | String | - | Check from this version. If not specified, only the latest version is returned. |
Example
func (m *myModule) example(configFile *File, name string) []*ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Check()
}
@function
def example(config_file: dagger.File, name: str) -> List[dag.ConcourseResourceVersion]:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.check()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion[] {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.check()
}
version() 🔗
Get a specific version of the resource.
Return Type
ResourceVersion !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
version | String ! | - | No description provided |
Example
func (m *myModule) example(configFile *File, name string, version string) *ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Version(version)
}
@function
def example(config_file: dagger.File, name: str, version: str) -> dag.ConcourseResourceVersion:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.version(version)
)
@func()
example(configFile: File, name: string, version: string): ConcourseResourceVersion {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.version(version)
}
get() 🔗
Fetch a version of the resource.
Return Type
Directory !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
version | String ! | - | The version to fetch. |
params | String | - | Arbitrary parameters to pass to the resource. |
Example
func (m *myModule) example(configFile *File, name string, version string) *Directory {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Get(version)
}
@function
def example(config_file: dagger.File, name: str, version: str) -> dagger.Directory:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.get(version)
)
@func()
example(configFile: File, name: string, version: string): Directory {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.get(version)
}
latestVersion() 🔗
Fetch a version of the resource.
Return Type
ResourceVersion !
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
LatestVersion()
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResourceVersion:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.latest_version()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.latestVersion()
}
put() 🔗
Create or update a version of the resource.
Return Type
ResourceVersion !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
params | String | - | Arbitrary parameters to pass to the resource. |
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put()
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResourceVersion:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
}
Pipeline 🔗
concourse() 🔗
Return Type
Concourse !
Example
func (m *myModule) example(configFile *File) *Concourse {
return dag.
Concourse().
LoadPipeline(configFile).
Concourse()
}
@function
def example(config_file: dagger.File) -> dag.Concourse:
return (
dag.concourse()
.load_pipeline(config_file)
.concourse()
)
@func()
example(configFile: File): Concourse {
return dag
.concourse()
.loadPipeline(configFile)
.concourse()
}
resourceTypes() 🔗
Return Type
[ResourceType ! ] !
Example
func (m *myModule) example(configFile *File) []*ConcourseResourceType {
return dag.
Concourse().
LoadPipeline(configFile).
ResourceTypes()
}
@function
def example(config_file: dagger.File) -> List[dag.ConcourseResourceType]:
return (
dag.concourse()
.load_pipeline(config_file)
.resource_types()
)
@func()
example(configFile: File): ConcourseResourceType[] {
return dag
.concourse()
.loadPipeline(configFile)
.resourceTypes()
}
resources() 🔗
Return Type
[Resource ! ] !
Example
func (m *myModule) example(configFile *File) []*ConcourseResource {
return dag.
Concourse().
LoadPipeline(configFile).
Resources()
}
@function
def example(config_file: dagger.File) -> List[dag.ConcourseResource]:
return (
dag.concourse()
.load_pipeline(config_file)
.resources()
)
@func()
example(configFile: File): ConcourseResource[] {
return dag
.concourse()
.loadPipeline(configFile)
.resources()
}
resourceType() 🔗
Return Type
ResourceType !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResourceType {
return dag.
Concourse().
LoadPipeline(configFile).
ResourceType(name)
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResourceType:
return (
dag.concourse()
.load_pipeline(config_file)
.resource_type(name)
)
@func()
example(configFile: File, name: string): ConcourseResourceType {
return dag
.concourse()
.loadPipeline(configFile)
.resourceType(name)
}
job() 🔗
Return Type
Job !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
Example
func (m *myModule) example(configFile *File, name string) *ConcourseJob {
return dag.
Concourse().
LoadPipeline(configFile).
Job(name)
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseJob:
return (
dag.concourse()
.load_pipeline(config_file)
.job(name)
)
@func()
example(configFile: File, name: string): ConcourseJob {
return dag
.concourse()
.loadPipeline(configFile)
.job(name)
}
resource() 🔗
Return Type
Resource !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
name | String ! | - | No description provided |
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResource {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name)
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResource:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
)
@func()
example(configFile: File, name: string): ConcourseResource {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
}
ResourceType 🔗
name() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
ResourceType(name).
Name(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.resource_type(name)
.name()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.resourceType(name)
.name()
}
container() 🔗
Return Type
Container !
Example
func (m *myModule) example(configFile *File, name string) *Container {
return dag.
Concourse().
LoadPipeline(configFile).
ResourceType(name).
Container()
}
@function
def example(config_file: dagger.File, name: str) -> dagger.Container:
return (
dag.concourse()
.load_pipeline(config_file)
.resource_type(name)
.container()
)
@func()
example(configFile: File, name: string): Container {
return dag
.concourse()
.loadPipeline(configFile)
.resourceType(name)
.container()
}
Var 🔗
A static value to use for a Concourse config ((variable)).
name() 🔗
Return Type
String !
Example
Function ConcourseVar.name is not accessible from the concourse module
Function ConcourseVar.name is not accessible from the concourse module
Function ConcourseVar.name is not accessible from the concourse module
value() 🔗
Return Type
String !
Example
Function ConcourseVar.value is not accessible from the concourse module
Function ConcourseVar.value is not accessible from the concourse module
Function ConcourseVar.value is not accessible from the concourse module
SecretVar 🔗
A secret to use for a Concourse config ((variable)).
name() 🔗
Return Type
String !
Example
Function ConcourseSecretVar.name is not accessible from the concourse module
Function ConcourseSecretVar.name is not accessible from the concourse module
Function ConcourseSecretVar.name is not accessible from the concourse module
value() 🔗
Return Type
Secret !
Example
Function ConcourseSecretVar.value is not accessible from the concourse module
Function ConcourseSecretVar.value is not accessible from the concourse module
Function ConcourseSecretVar.value is not accessible from the concourse module
ResourceVersion 🔗
A version of a resource, with optional metadata.
resource() 🔗
Return Type
Resource !
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResource {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Resource()
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResource:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.resource()
)
@func()
example(configFile: File, name: string): ConcourseResource {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.resource()
}
version() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Version(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.version()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.version()
}
metadata() 🔗
Return Type
[ResourceMetadata ! ] !
Example
func (m *myModule) example(configFile *File, name string) []*ConcourseResourceMetadata {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Metadata()
}
@function
def example(config_file: dagger.File, name: str) -> List[dag.ConcourseResourceMetadata]:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.metadata()
)
@func()
example(configFile: File, name: string): ConcourseResourceMetadata[] {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.metadata()
}
check() 🔗
Check for new versions of a resource.
Return Type
[ResourceVersion ! ] !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
from | String | - | Check from this version. If not specified, only the latest version is returned. |
Example
func (m *myModule) example(configFile *File, name string) []*ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Check()
}
@function
def example(config_file: dagger.File, name: str) -> List[dag.ConcourseResourceVersion]:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.check()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion[] {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.check()
}
latestVersion() 🔗
Fetch a version of the resource.
Return Type
ResourceVersion !
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
LatestVersion()
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResourceVersion:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.latest_version()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.latestVersion()
}
put() 🔗
Create or update a version of the resource.
Return Type
ResourceVersion !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
params | String | - | Arbitrary parameters to pass to the resource. |
Example
func (m *myModule) example(configFile *File, name string) *ConcourseResourceVersion {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Put()
}
@function
def example(config_file: dagger.File, name: str) -> dag.ConcourseResourceVersion:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.put()
)
@func()
example(configFile: File, name: string): ConcourseResourceVersion {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.put()
}
get() 🔗
Fetch the resource version’s content.
Return Type
Directory !
Arguments
Name | Type | Default Value | Description |
---|---|---|---|
params | String | - | Arbitrary parameters to pass to the resource. |
Example
func (m *myModule) example(configFile *File, name string) *Directory {
return dag.
Concourse().
LoadPipeline(configFile).
Resource(name).
Put().
Get()
}
@function
def example(config_file: dagger.File, name: str) -> dagger.Directory:
return (
dag.concourse()
.load_pipeline(config_file)
.resource(name)
.put()
.get()
)
@func()
example(configFile: File, name: string): Directory {
return dag
.concourse()
.loadPipeline(configFile)
.resource(name)
.put()
.get()
}
Job 🔗
Jobs configure a plan for interacting with resources and running tasks. See https://concourse-ci.org/jobs.html for more information.
name() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
Job(name).
Name(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.job(name)
.name()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.job(name)
.name()
}
config() 🔗
Return Type
String !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) string {
return dag.
Concourse().
LoadPipeline(configFile).
Job(name).
Config(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> str:
return await (
dag.concourse()
.load_pipeline(config_file)
.job(name)
.config()
)
@func()
async example(configFile: File, name: string): Promise<string> {
return dag
.concourse()
.loadPipeline(configFile)
.job(name)
.config()
}
run() 🔗
Return Type
Void !
Example
func (m *myModule) example(ctx context.Context, configFile *File, name string) {
return dag.
Concourse().
LoadPipeline(configFile).
Job(name).
Run(ctx)
}
@function
async def example(config_file: dagger.File, name: str) -> None:
return await (
dag.concourse()
.load_pipeline(config_file)
.job(name)
.run()
)
@func()
async example(configFile: File, name: string): Promise<void> {
return dag
.concourse()
.loadPipeline(configFile)
.job(name)
.run()
}
ResourceMetadata 🔗
name() 🔗
Return Type
String !
Example
Function ConcourseResourceMetadata.name is not accessible from the concourse module
Function ConcourseResourceMetadata.name is not accessible from the concourse module
Function ConcourseResourceMetadata.name is not accessible from the concourse module
value() 🔗
Return Type
String !
Example
Function ConcourseResourceMetadata.value is not accessible from the concourse module
Function ConcourseResourceMetadata.value is not accessible from the concourse module
Function ConcourseResourceMetadata.value is not accessible from the concourse module