/
getRegistryImage.go
159 lines (138 loc) · 5.69 KB
/
getRegistryImage.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package container
import (
"context"
"reflect"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// This data source fetches the project name, and provides the appropriate URLs to use for container registry for this project.
//
// The URLs are computed entirely offline - as long as the project exists, they will be valid, but this data source does not contact Google Container Registry (GCR) at any point.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
//
// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/container"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
//
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// debian, err := container.GetRegistryImage(ctx, &container.GetRegistryImageArgs{
// Name: "debian",
// }, nil)
// if err != nil {
// return err
// }
// ctx.Export("gcrLocation", debian.ImageUrl)
// return nil
// })
// }
//
// ```
func GetRegistryImage(ctx *pulumi.Context, args *GetRegistryImageArgs, opts ...pulumi.InvokeOption) (*GetRegistryImageResult, error) {
opts = internal.PkgInvokeDefaultOpts(opts)
var rv GetRegistryImageResult
err := ctx.Invoke("gcp:container/getRegistryImage:getRegistryImage", args, &rv, opts...)
if err != nil {
return nil, err
}
return &rv, nil
}
// A collection of arguments for invoking getRegistryImage.
type GetRegistryImageArgs struct {
// The image digest to fetch, if any.
Digest *string `pulumi:"digest"`
// The image name.
Name string `pulumi:"name"`
// The project ID that this image is attached to. If not provider, provider project will be used instead.
Project *string `pulumi:"project"`
// The GCR region to use. As of this writing, one of `asia`, `eu`, and `us`. See [the documentation](https://cloud.google.com/container-registry/docs/pushing-and-pulling) for additional information.
Region *string `pulumi:"region"`
// The tag to fetch, if any.
Tag *string `pulumi:"tag"`
}
// A collection of values returned by getRegistryImage.
type GetRegistryImageResult struct {
Digest *string `pulumi:"digest"`
// The provider-assigned unique ID for this managed resource.
Id string `pulumi:"id"`
// The URL at which the image can be accessed.
ImageUrl string `pulumi:"imageUrl"`
Name string `pulumi:"name"`
Project string `pulumi:"project"`
Region *string `pulumi:"region"`
Tag *string `pulumi:"tag"`
}
func GetRegistryImageOutput(ctx *pulumi.Context, args GetRegistryImageOutputArgs, opts ...pulumi.InvokeOption) GetRegistryImageResultOutput {
return pulumi.ToOutputWithContext(context.Background(), args).
ApplyT(func(v interface{}) (GetRegistryImageResult, error) {
args := v.(GetRegistryImageArgs)
r, err := GetRegistryImage(ctx, &args, opts...)
var s GetRegistryImageResult
if r != nil {
s = *r
}
return s, err
}).(GetRegistryImageResultOutput)
}
// A collection of arguments for invoking getRegistryImage.
type GetRegistryImageOutputArgs struct {
// The image digest to fetch, if any.
Digest pulumi.StringPtrInput `pulumi:"digest"`
// The image name.
Name pulumi.StringInput `pulumi:"name"`
// The project ID that this image is attached to. If not provider, provider project will be used instead.
Project pulumi.StringPtrInput `pulumi:"project"`
// The GCR region to use. As of this writing, one of `asia`, `eu`, and `us`. See [the documentation](https://cloud.google.com/container-registry/docs/pushing-and-pulling) for additional information.
Region pulumi.StringPtrInput `pulumi:"region"`
// The tag to fetch, if any.
Tag pulumi.StringPtrInput `pulumi:"tag"`
}
func (GetRegistryImageOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*GetRegistryImageArgs)(nil)).Elem()
}
// A collection of values returned by getRegistryImage.
type GetRegistryImageResultOutput struct{ *pulumi.OutputState }
func (GetRegistryImageResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*GetRegistryImageResult)(nil)).Elem()
}
func (o GetRegistryImageResultOutput) ToGetRegistryImageResultOutput() GetRegistryImageResultOutput {
return o
}
func (o GetRegistryImageResultOutput) ToGetRegistryImageResultOutputWithContext(ctx context.Context) GetRegistryImageResultOutput {
return o
}
func (o GetRegistryImageResultOutput) Digest() pulumi.StringPtrOutput {
return o.ApplyT(func(v GetRegistryImageResult) *string { return v.Digest }).(pulumi.StringPtrOutput)
}
// The provider-assigned unique ID for this managed resource.
func (o GetRegistryImageResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v GetRegistryImageResult) string { return v.Id }).(pulumi.StringOutput)
}
// The URL at which the image can be accessed.
func (o GetRegistryImageResultOutput) ImageUrl() pulumi.StringOutput {
return o.ApplyT(func(v GetRegistryImageResult) string { return v.ImageUrl }).(pulumi.StringOutput)
}
func (o GetRegistryImageResultOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v GetRegistryImageResult) string { return v.Name }).(pulumi.StringOutput)
}
func (o GetRegistryImageResultOutput) Project() pulumi.StringOutput {
return o.ApplyT(func(v GetRegistryImageResult) string { return v.Project }).(pulumi.StringOutput)
}
func (o GetRegistryImageResultOutput) Region() pulumi.StringPtrOutput {
return o.ApplyT(func(v GetRegistryImageResult) *string { return v.Region }).(pulumi.StringPtrOutput)
}
func (o GetRegistryImageResultOutput) Tag() pulumi.StringPtrOutput {
return o.ApplyT(func(v GetRegistryImageResult) *string { return v.Tag }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterOutputType(GetRegistryImageResultOutput{})
}