Documentation ¶
Index ¶
- func RegisterFetchServer(s *grpc.Server, srv FetchServer)
- func RegisterPushServer(s *grpc.Server, srv PushServer)
- type FetchBlobRequest
- func (*FetchBlobRequest) Descriptor() ([]byte, []int)
- func (m *FetchBlobRequest) GetInstanceName() string
- func (m *FetchBlobRequest) GetOldestContentAccepted() *timestamp.Timestamp
- func (m *FetchBlobRequest) GetQualifiers() []*Qualifier
- func (m *FetchBlobRequest) GetTimeout() *duration.Duration
- func (m *FetchBlobRequest) GetUris() []string
- func (*FetchBlobRequest) ProtoMessage()
- func (m *FetchBlobRequest) Reset()
- func (m *FetchBlobRequest) String() string
- func (m *FetchBlobRequest) XXX_DiscardUnknown()
- func (m *FetchBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FetchBlobRequest) XXX_Merge(src proto.Message)
- func (m *FetchBlobRequest) XXX_Size() int
- func (m *FetchBlobRequest) XXX_Unmarshal(b []byte) error
- type FetchBlobResponse
- func (*FetchBlobResponse) Descriptor() ([]byte, []int)
- func (m *FetchBlobResponse) GetBlobDigest() *v2.Digest
- func (m *FetchBlobResponse) GetExpiresAt() *timestamp.Timestamp
- func (m *FetchBlobResponse) GetQualifiers() []*Qualifier
- func (m *FetchBlobResponse) GetStatus() *status.Status
- func (m *FetchBlobResponse) GetUri() string
- func (*FetchBlobResponse) ProtoMessage()
- func (m *FetchBlobResponse) Reset()
- func (m *FetchBlobResponse) String() string
- func (m *FetchBlobResponse) XXX_DiscardUnknown()
- func (m *FetchBlobResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FetchBlobResponse) XXX_Merge(src proto.Message)
- func (m *FetchBlobResponse) XXX_Size() int
- func (m *FetchBlobResponse) XXX_Unmarshal(b []byte) error
- type FetchClient
- type FetchDirectoryRequest
- func (*FetchDirectoryRequest) Descriptor() ([]byte, []int)
- func (m *FetchDirectoryRequest) GetInstanceName() string
- func (m *FetchDirectoryRequest) GetOldestContentAccepted() *timestamp.Timestamp
- func (m *FetchDirectoryRequest) GetQualifiers() []*Qualifier
- func (m *FetchDirectoryRequest) GetTimeout() *duration.Duration
- func (m *FetchDirectoryRequest) GetUris() []string
- func (*FetchDirectoryRequest) ProtoMessage()
- func (m *FetchDirectoryRequest) Reset()
- func (m *FetchDirectoryRequest) String() string
- func (m *FetchDirectoryRequest) XXX_DiscardUnknown()
- func (m *FetchDirectoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FetchDirectoryRequest) XXX_Merge(src proto.Message)
- func (m *FetchDirectoryRequest) XXX_Size() int
- func (m *FetchDirectoryRequest) XXX_Unmarshal(b []byte) error
- type FetchDirectoryResponse
- func (*FetchDirectoryResponse) Descriptor() ([]byte, []int)
- func (m *FetchDirectoryResponse) GetExpiresAt() *timestamp.Timestamp
- func (m *FetchDirectoryResponse) GetQualifiers() []*Qualifier
- func (m *FetchDirectoryResponse) GetRootDirectoryDigest() *v2.Digest
- func (m *FetchDirectoryResponse) GetStatus() *status.Status
- func (m *FetchDirectoryResponse) GetUri() string
- func (*FetchDirectoryResponse) ProtoMessage()
- func (m *FetchDirectoryResponse) Reset()
- func (m *FetchDirectoryResponse) String() string
- func (m *FetchDirectoryResponse) XXX_DiscardUnknown()
- func (m *FetchDirectoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *FetchDirectoryResponse) XXX_Merge(src proto.Message)
- func (m *FetchDirectoryResponse) XXX_Size() int
- func (m *FetchDirectoryResponse) XXX_Unmarshal(b []byte) error
- type FetchServer
- type PushBlobRequest
- func (*PushBlobRequest) Descriptor() ([]byte, []int)
- func (m *PushBlobRequest) GetBlobDigest() *v2.Digest
- func (m *PushBlobRequest) GetExpireAt() *timestamp.Timestamp
- func (m *PushBlobRequest) GetInstanceName() string
- func (m *PushBlobRequest) GetQualifiers() []*Qualifier
- func (m *PushBlobRequest) GetReferencesBlobs() []*v2.Digest
- func (m *PushBlobRequest) GetReferencesDirectories() []*v2.Digest
- func (m *PushBlobRequest) GetUris() []string
- func (*PushBlobRequest) ProtoMessage()
- func (m *PushBlobRequest) Reset()
- func (m *PushBlobRequest) String() string
- func (m *PushBlobRequest) XXX_DiscardUnknown()
- func (m *PushBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PushBlobRequest) XXX_Merge(src proto.Message)
- func (m *PushBlobRequest) XXX_Size() int
- func (m *PushBlobRequest) XXX_Unmarshal(b []byte) error
- type PushBlobResponse
- func (*PushBlobResponse) Descriptor() ([]byte, []int)
- func (*PushBlobResponse) ProtoMessage()
- func (m *PushBlobResponse) Reset()
- func (m *PushBlobResponse) String() string
- func (m *PushBlobResponse) XXX_DiscardUnknown()
- func (m *PushBlobResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PushBlobResponse) XXX_Merge(src proto.Message)
- func (m *PushBlobResponse) XXX_Size() int
- func (m *PushBlobResponse) XXX_Unmarshal(b []byte) error
- type PushClient
- type PushDirectoryRequest
- func (*PushDirectoryRequest) Descriptor() ([]byte, []int)
- func (m *PushDirectoryRequest) GetExpireAt() *timestamp.Timestamp
- func (m *PushDirectoryRequest) GetInstanceName() string
- func (m *PushDirectoryRequest) GetQualifiers() []*Qualifier
- func (m *PushDirectoryRequest) GetReferencesBlobs() []*v2.Digest
- func (m *PushDirectoryRequest) GetReferencesDirectories() []*v2.Digest
- func (m *PushDirectoryRequest) GetRootDirectoryDigest() *v2.Digest
- func (m *PushDirectoryRequest) GetUris() []string
- func (*PushDirectoryRequest) ProtoMessage()
- func (m *PushDirectoryRequest) Reset()
- func (m *PushDirectoryRequest) String() string
- func (m *PushDirectoryRequest) XXX_DiscardUnknown()
- func (m *PushDirectoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PushDirectoryRequest) XXX_Merge(src proto.Message)
- func (m *PushDirectoryRequest) XXX_Size() int
- func (m *PushDirectoryRequest) XXX_Unmarshal(b []byte) error
- type PushDirectoryResponse
- func (*PushDirectoryResponse) Descriptor() ([]byte, []int)
- func (*PushDirectoryResponse) ProtoMessage()
- func (m *PushDirectoryResponse) Reset()
- func (m *PushDirectoryResponse) String() string
- func (m *PushDirectoryResponse) XXX_DiscardUnknown()
- func (m *PushDirectoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PushDirectoryResponse) XXX_Merge(src proto.Message)
- func (m *PushDirectoryResponse) XXX_Size() int
- func (m *PushDirectoryResponse) XXX_Unmarshal(b []byte) error
- type PushServer
- type Qualifier
- func (*Qualifier) Descriptor() ([]byte, []int)
- func (m *Qualifier) GetName() string
- func (m *Qualifier) GetValue() string
- func (*Qualifier) ProtoMessage()
- func (m *Qualifier) Reset()
- func (m *Qualifier) String() string
- func (m *Qualifier) XXX_DiscardUnknown()
- func (m *Qualifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Qualifier) XXX_Merge(src proto.Message)
- func (m *Qualifier) XXX_Size() int
- func (m *Qualifier) XXX_Unmarshal(b []byte) error
- type UnimplementedFetchServer
- type UnimplementedPushServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterFetchServer ¶
func RegisterFetchServer(s *grpc.Server, srv FetchServer)
func RegisterPushServer ¶
func RegisterPushServer(s *grpc.Server, srv PushServer)
Types ¶
type FetchBlobRequest ¶
type FetchBlobRequest struct { // The instance of the execution system to operate against. A server may // support multiple instances of the execution system (with their own workers, // storage, caches, etc.). The server MAY require use of this field to select // between them in an implementation-defined fashion, otherwise it can be // omitted. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"` // The timeout for the underlying fetch, if content needs to be retrieved from // origin. // // If unset, the server *MAY* apply an implementation-defined timeout. // // If set, and the user-provided timeout exceeds the RPC deadline, the server // *SHOULD* keep the fetch going after the RPC completes, to be made // available for future Fetch calls. The server may also enforce (via clamping // and/or an INVALID_ARGUMENT error) implementation-defined minimum and // maximum timeout values. // // If this timeout is exceeded on an attempt to retrieve content from origin // the client will receive DEADLINE_EXCEEDED in [FetchBlobResponse.status]. Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"` // The oldest content the client is willing to accept, as measured from the // time it was Push'd or when the underlying retrieval from origin was // started. // Upon retries of Fetch requests that cannot be completed within a single // RPC, clients *SHOULD* provide the same value for subsequent requests as the // original, to simplify combining the request with the previous attempt. // // If unset, the client *SHOULD* accept content of any age. OldestContentAccepted *timestamp.Timestamp `` /* 126-byte string literal not displayed */ // The URI(s) of the content to fetch. These may be resources that the server // can directly fetch from origin, in which case multiple URIs *SHOULD* // represent the same content available at different locations (such as an // origin and secondary mirrors). These may also be URIs for content known to // the server through other mechanisms, e.g. pushed via the [Push][build.bazel.remote.asset.v1.Push] // service. // // Clients *MUST* supply at least one URI. Servers *MAY* match any one of the // supplied URIs. Uris []string `protobuf:"bytes,4,rep,name=uris,proto3" json:"uris,omitempty"` // Qualifiers sub-specifying the content to fetch - see comments on // [Qualifier][build.bazel.remote.asset.v1.Qualifier]. // The same qualifiers apply to all URIs. // // Specified qualifier names *MUST* be unique. Qualifiers []*Qualifier `protobuf:"bytes,5,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A request message for [Fetch.FetchBlob][build.bazel.remote.asset.v1.Fetch.FetchBlob].
func (*FetchBlobRequest) Descriptor ¶
func (*FetchBlobRequest) Descriptor() ([]byte, []int)
func (*FetchBlobRequest) GetInstanceName ¶
func (m *FetchBlobRequest) GetInstanceName() string
func (*FetchBlobRequest) GetOldestContentAccepted ¶
func (m *FetchBlobRequest) GetOldestContentAccepted() *timestamp.Timestamp
func (*FetchBlobRequest) GetQualifiers ¶
func (m *FetchBlobRequest) GetQualifiers() []*Qualifier
func (*FetchBlobRequest) GetTimeout ¶
func (m *FetchBlobRequest) GetTimeout() *duration.Duration
func (*FetchBlobRequest) GetUris ¶
func (m *FetchBlobRequest) GetUris() []string
func (*FetchBlobRequest) ProtoMessage ¶
func (*FetchBlobRequest) ProtoMessage()
func (*FetchBlobRequest) Reset ¶
func (m *FetchBlobRequest) Reset()
func (*FetchBlobRequest) String ¶
func (m *FetchBlobRequest) String() string
func (*FetchBlobRequest) XXX_DiscardUnknown ¶
func (m *FetchBlobRequest) XXX_DiscardUnknown()
func (*FetchBlobRequest) XXX_Marshal ¶
func (m *FetchBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FetchBlobRequest) XXX_Merge ¶
func (m *FetchBlobRequest) XXX_Merge(src proto.Message)
func (*FetchBlobRequest) XXX_Size ¶
func (m *FetchBlobRequest) XXX_Size() int
func (*FetchBlobRequest) XXX_Unmarshal ¶
func (m *FetchBlobRequest) XXX_Unmarshal(b []byte) error
type FetchBlobResponse ¶
type FetchBlobResponse struct { // If the status has a code other than `OK`, it indicates that the operation // was unable to be completed for reasons outside the servers' control. // The possible fetch errors include: // * `DEADLINE_EXCEEDED`: The operation could not be completed within the // specified timeout. // * `NOT_FOUND`: The requested asset was not found at the specified location. // * `PERMISSION_DENIED`: The request was rejected by a remote server, or // requested an asset from a disallowed origin. // * `ABORTED`: The operation could not be completed, typically due to a // failed consistency check. Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // The uri from the request that resulted in a successful retrieval, or from // which the error indicated in `status` was obtained. Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` // Any qualifiers known to the server and of interest to clients. Qualifiers []*Qualifier `protobuf:"bytes,3,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` // A minimum timestamp the content is expected to be available through. // Servers *MAY* omit this field, if not known with confidence. ExpiresAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // The result of the fetch, if the status had code `OK`. // The digest of the file's contents, available for download through the CAS. BlobDigest *v2.Digest `protobuf:"bytes,5,opt,name=blob_digest,json=blobDigest,proto3" json:"blob_digest,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A response message for [Fetch.FetchBlob][build.bazel.remote.asset.v1.Fetch.FetchBlob].
func (*FetchBlobResponse) Descriptor ¶
func (*FetchBlobResponse) Descriptor() ([]byte, []int)
func (*FetchBlobResponse) GetBlobDigest ¶
func (m *FetchBlobResponse) GetBlobDigest() *v2.Digest
func (*FetchBlobResponse) GetExpiresAt ¶
func (m *FetchBlobResponse) GetExpiresAt() *timestamp.Timestamp
func (*FetchBlobResponse) GetQualifiers ¶
func (m *FetchBlobResponse) GetQualifiers() []*Qualifier
func (*FetchBlobResponse) GetStatus ¶
func (m *FetchBlobResponse) GetStatus() *status.Status
func (*FetchBlobResponse) GetUri ¶
func (m *FetchBlobResponse) GetUri() string
func (*FetchBlobResponse) ProtoMessage ¶
func (*FetchBlobResponse) ProtoMessage()
func (*FetchBlobResponse) Reset ¶
func (m *FetchBlobResponse) Reset()
func (*FetchBlobResponse) String ¶
func (m *FetchBlobResponse) String() string
func (*FetchBlobResponse) XXX_DiscardUnknown ¶
func (m *FetchBlobResponse) XXX_DiscardUnknown()
func (*FetchBlobResponse) XXX_Marshal ¶
func (m *FetchBlobResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FetchBlobResponse) XXX_Merge ¶
func (m *FetchBlobResponse) XXX_Merge(src proto.Message)
func (*FetchBlobResponse) XXX_Size ¶
func (m *FetchBlobResponse) XXX_Size() int
func (*FetchBlobResponse) XXX_Unmarshal ¶
func (m *FetchBlobResponse) XXX_Unmarshal(b []byte) error
type FetchClient ¶
type FetchClient interface { // Resolve or fetch referenced assets, making them available to the caller and // other consumers in the [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]. // // Servers *MAY* fetch content that they do not already have cached, for any // URLs they support. // // Servers *SHOULD* ensure that referenced files are present in the CAS at the // time of the response, and (if supported) that they will remain available // for a reasonable period of time. The lifetimes of the referenced blobs *SHOULD* // be increased if necessary and applicable. // In the event that a client receives a reference to content that is no // longer present, it *MAY* re-issue the request with // `oldest_content_accepted` set to a more recent timestamp than the original // attempt, to induce a re-fetch from origin. // // Servers *MAY* cache fetched content and reuse it for subsequent requests, // subject to `oldest_content_accepted`. // // Servers *MAY* support the complementary [Push][build.bazel.remote.asset.v1.Push] // API and allow content to be directly inserted for use in future fetch // responses. // // Servers *MUST* ensure Fetch'd content matches all the specified // qualifiers except in the case of previously Push'd resources, for which // the server *MAY* trust the pushing client to have set the qualifiers // correctly, without validation. // // Servers not implementing the complementary [Push][build.bazel.remote.asset.v1.Push] // API *MUST* reject requests containing qualifiers it does not support. // // Servers *MAY* transform assets as part of the fetch. For example a // tarball fetched by [FetchDirectory][build.bazel.remote.asset.v1.Fetch.FetchDirectory] // might be unpacked, or a Git repository // fetched by [FetchBlob][build.bazel.remote.asset.v1.Fetch.FetchBlob] // might be passed through `git-archive`. // // Errors handling the requested assets will be returned as gRPC Status errors // here; errors outside the server's control will be returned inline in the // `status` field of the response (see comment there for details). // The possible RPC errors include: // * `INVALID_ARGUMENT`: One or more arguments were invalid, such as a // qualifier that is not supported by the server. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to // perform the requested operation. The client may retry after a delay. // * `UNAVAILABLE`: Due to a transient condition the operation could not be // completed. The client should retry. // * `INTERNAL`: An internal error occurred while performing the operation. // The client should retry. // * `DEADLINE_EXCEEDED`: The fetch could not be completed within the given // RPC deadline. The client should retry for at least as long as the value // provided in `timeout` field of the request. // // In the case of unsupported qualifiers, the server *SHOULD* additionally // send a [BadRequest][google.rpc.BadRequest] error detail where, for each // unsupported qualifier, there is a `FieldViolation` with a `field` of // `qualifiers.name` and a `description` of `"{qualifier}" not supported` // indicating the name of the unsupported qualifier. FetchBlob(ctx context.Context, in *FetchBlobRequest, opts ...grpc.CallOption) (*FetchBlobResponse, error) FetchDirectory(ctx context.Context, in *FetchDirectoryRequest, opts ...grpc.CallOption) (*FetchDirectoryResponse, error) }
FetchClient is the client API for Fetch service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewFetchClient ¶
func NewFetchClient(cc *grpc.ClientConn) FetchClient
type FetchDirectoryRequest ¶
type FetchDirectoryRequest struct { // The instance of the execution system to operate against. A server may // support multiple instances of the execution system (with their own workers, // storage, caches, etc.). The server MAY require use of this field to select // between them in an implementation-defined fashion, otherwise it can be // omitted. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"` // The timeout for the underlying fetch, if content needs to be retrieved from // origin. This value is allowed to exceed the RPC deadline, in which case the // server *SHOULD* keep the fetch going after the RPC completes, to be made // available for future Fetch calls. // // If this timeout is exceeded on an attempt to retrieve content from origin // the client will receive DEADLINE_EXCEEDED in [FetchDirectoryResponse.status]. Timeout *duration.Duration `protobuf:"bytes,2,opt,name=timeout,proto3" json:"timeout,omitempty"` // The oldest content the client is willing to accept, as measured from the // time it was Push'd or when the underlying retrieval from origin was // started. // Upon retries of Fetch requests that cannot be completed within a single // RPC, clients *SHOULD* provide the same value for subsequent requests as the // original, to simplify combining the request with the previous attempt. // // If unset, the client *SHOULD* accept content of any age. OldestContentAccepted *timestamp.Timestamp `` /* 126-byte string literal not displayed */ // The URI(s) of the content to fetch. These may be resources that the server // can directly fetch from origin, in which case multiple URIs *SHOULD* // represent the same content available at different locations (such as an // origin and secondary mirrors). These may also be URIs for content known to // the server through other mechanisms, e.g. pushed via the [Push][build.bazel.remote.asset.v1.Push] // service. // // Clients *MUST* supply at least one URI. Servers *MAY* match any one of the // supplied URIs. Uris []string `protobuf:"bytes,4,rep,name=uris,proto3" json:"uris,omitempty"` // Qualifiers sub-specifying the content to fetch - see comments on // [Qualifier][build.bazel.remote.asset.v1.Qualifier]. // The same qualifiers apply to all URIs. // // Specified qualifier names *MUST* be unique. Qualifiers []*Qualifier `protobuf:"bytes,5,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A request message for [Fetch.FetchDirectory][build.bazel.remote.asset.v1.Fetch.FetchDirectory].
func (*FetchDirectoryRequest) Descriptor ¶
func (*FetchDirectoryRequest) Descriptor() ([]byte, []int)
func (*FetchDirectoryRequest) GetInstanceName ¶
func (m *FetchDirectoryRequest) GetInstanceName() string
func (*FetchDirectoryRequest) GetOldestContentAccepted ¶
func (m *FetchDirectoryRequest) GetOldestContentAccepted() *timestamp.Timestamp
func (*FetchDirectoryRequest) GetQualifiers ¶
func (m *FetchDirectoryRequest) GetQualifiers() []*Qualifier
func (*FetchDirectoryRequest) GetTimeout ¶
func (m *FetchDirectoryRequest) GetTimeout() *duration.Duration
func (*FetchDirectoryRequest) GetUris ¶
func (m *FetchDirectoryRequest) GetUris() []string
func (*FetchDirectoryRequest) ProtoMessage ¶
func (*FetchDirectoryRequest) ProtoMessage()
func (*FetchDirectoryRequest) Reset ¶
func (m *FetchDirectoryRequest) Reset()
func (*FetchDirectoryRequest) String ¶
func (m *FetchDirectoryRequest) String() string
func (*FetchDirectoryRequest) XXX_DiscardUnknown ¶
func (m *FetchDirectoryRequest) XXX_DiscardUnknown()
func (*FetchDirectoryRequest) XXX_Marshal ¶
func (m *FetchDirectoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FetchDirectoryRequest) XXX_Merge ¶
func (m *FetchDirectoryRequest) XXX_Merge(src proto.Message)
func (*FetchDirectoryRequest) XXX_Size ¶
func (m *FetchDirectoryRequest) XXX_Size() int
func (*FetchDirectoryRequest) XXX_Unmarshal ¶
func (m *FetchDirectoryRequest) XXX_Unmarshal(b []byte) error
type FetchDirectoryResponse ¶
type FetchDirectoryResponse struct { // If the status has a code other than `OK`, it indicates that the operation // was unable to be completed for reasons outside the servers' control. // The possible fetch errors include: // * `DEADLINE_EXCEEDED`: The operation could not be completed within the // specified timeout. // * `NOT_FOUND`: The requested asset was not found at the specified location. // * `PERMISSION_DENIED`: The request was rejected by a remote server, or // requested an asset from a disallowed origin. // * `ABORTED`: The operation could not be completed, typically due to a // failed consistency check. Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` // The uri from the request that resulted in a successful retrieval, or from // which the error indicated in `status` was obtained. Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` // Any qualifiers known to the server and of interest to clients. Qualifiers []*Qualifier `protobuf:"bytes,3,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` // A minimum timestamp the content is expected to be available through. // Servers *MAY* omit this field, if not known with confidence. ExpiresAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` // The result of the fetch, if the status had code `OK`. // the root digest of a directory tree, suitable for fetching via // [ContentAddressableStorage.GetTree]. RootDirectoryDigest *v2.Digest `protobuf:"bytes,5,opt,name=root_directory_digest,json=rootDirectoryDigest,proto3" json:"root_directory_digest,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A response message for [Fetch.FetchDirectory][build.bazel.remote.asset.v1.Fetch.FetchDirectory].
func (*FetchDirectoryResponse) Descriptor ¶
func (*FetchDirectoryResponse) Descriptor() ([]byte, []int)
func (*FetchDirectoryResponse) GetExpiresAt ¶
func (m *FetchDirectoryResponse) GetExpiresAt() *timestamp.Timestamp
func (*FetchDirectoryResponse) GetQualifiers ¶
func (m *FetchDirectoryResponse) GetQualifiers() []*Qualifier
func (*FetchDirectoryResponse) GetRootDirectoryDigest ¶
func (m *FetchDirectoryResponse) GetRootDirectoryDigest() *v2.Digest
func (*FetchDirectoryResponse) GetStatus ¶
func (m *FetchDirectoryResponse) GetStatus() *status.Status
func (*FetchDirectoryResponse) GetUri ¶
func (m *FetchDirectoryResponse) GetUri() string
func (*FetchDirectoryResponse) ProtoMessage ¶
func (*FetchDirectoryResponse) ProtoMessage()
func (*FetchDirectoryResponse) Reset ¶
func (m *FetchDirectoryResponse) Reset()
func (*FetchDirectoryResponse) String ¶
func (m *FetchDirectoryResponse) String() string
func (*FetchDirectoryResponse) XXX_DiscardUnknown ¶
func (m *FetchDirectoryResponse) XXX_DiscardUnknown()
func (*FetchDirectoryResponse) XXX_Marshal ¶
func (m *FetchDirectoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*FetchDirectoryResponse) XXX_Merge ¶
func (m *FetchDirectoryResponse) XXX_Merge(src proto.Message)
func (*FetchDirectoryResponse) XXX_Size ¶
func (m *FetchDirectoryResponse) XXX_Size() int
func (*FetchDirectoryResponse) XXX_Unmarshal ¶
func (m *FetchDirectoryResponse) XXX_Unmarshal(b []byte) error
type FetchServer ¶
type FetchServer interface { // Resolve or fetch referenced assets, making them available to the caller and // other consumers in the [ContentAddressableStorage][build.bazel.remote.execution.v2.ContentAddressableStorage]. // // Servers *MAY* fetch content that they do not already have cached, for any // URLs they support. // // Servers *SHOULD* ensure that referenced files are present in the CAS at the // time of the response, and (if supported) that they will remain available // for a reasonable period of time. The lifetimes of the referenced blobs *SHOULD* // be increased if necessary and applicable. // In the event that a client receives a reference to content that is no // longer present, it *MAY* re-issue the request with // `oldest_content_accepted` set to a more recent timestamp than the original // attempt, to induce a re-fetch from origin. // // Servers *MAY* cache fetched content and reuse it for subsequent requests, // subject to `oldest_content_accepted`. // // Servers *MAY* support the complementary [Push][build.bazel.remote.asset.v1.Push] // API and allow content to be directly inserted for use in future fetch // responses. // // Servers *MUST* ensure Fetch'd content matches all the specified // qualifiers except in the case of previously Push'd resources, for which // the server *MAY* trust the pushing client to have set the qualifiers // correctly, without validation. // // Servers not implementing the complementary [Push][build.bazel.remote.asset.v1.Push] // API *MUST* reject requests containing qualifiers it does not support. // // Servers *MAY* transform assets as part of the fetch. For example a // tarball fetched by [FetchDirectory][build.bazel.remote.asset.v1.Fetch.FetchDirectory] // might be unpacked, or a Git repository // fetched by [FetchBlob][build.bazel.remote.asset.v1.Fetch.FetchBlob] // might be passed through `git-archive`. // // Errors handling the requested assets will be returned as gRPC Status errors // here; errors outside the server's control will be returned inline in the // `status` field of the response (see comment there for details). // The possible RPC errors include: // * `INVALID_ARGUMENT`: One or more arguments were invalid, such as a // qualifier that is not supported by the server. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to // perform the requested operation. The client may retry after a delay. // * `UNAVAILABLE`: Due to a transient condition the operation could not be // completed. The client should retry. // * `INTERNAL`: An internal error occurred while performing the operation. // The client should retry. // * `DEADLINE_EXCEEDED`: The fetch could not be completed within the given // RPC deadline. The client should retry for at least as long as the value // provided in `timeout` field of the request. // // In the case of unsupported qualifiers, the server *SHOULD* additionally // send a [BadRequest][google.rpc.BadRequest] error detail where, for each // unsupported qualifier, there is a `FieldViolation` with a `field` of // `qualifiers.name` and a `description` of `"{qualifier}" not supported` // indicating the name of the unsupported qualifier. FetchBlob(context.Context, *FetchBlobRequest) (*FetchBlobResponse, error) FetchDirectory(context.Context, *FetchDirectoryRequest) (*FetchDirectoryResponse, error) }
FetchServer is the server API for Fetch service.
type PushBlobRequest ¶
type PushBlobRequest struct { // The instance of the execution system to operate against. A server may // support multiple instances of the execution system (with their own workers, // storage, caches, etc.). The server MAY require use of this field to select // between them in an implementation-defined fashion, otherwise it can be // omitted. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"` // The URI(s) of the content to associate. If multiple URIs are specified, the // pushed content will be available to fetch by specifying any of them. Uris []string `protobuf:"bytes,2,rep,name=uris,proto3" json:"uris,omitempty"` // Qualifiers sub-specifying the content that is being pushed - see comments // on [Qualifier][build.bazel.remote.asset.v1.Qualifier]. // The same qualifiers apply to all URIs. Qualifiers []*Qualifier `protobuf:"bytes,3,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` // A time after which this content should stop being returned via [FetchBlob][build.bazel.remote.asset.v1.Fetch.FetchBlob]. // Servers *MAY* expire content early, e.g. due to storage pressure. ExpireAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expire_at,json=expireAt,proto3" json:"expire_at,omitempty"` // The blob to associate. BlobDigest *v2.Digest `protobuf:"bytes,5,opt,name=blob_digest,json=blobDigest,proto3" json:"blob_digest,omitempty"` // Referenced blobs or directories that need to not expire before expiration // of this association, in addition to `blob_digest` itself. // These fields are hints - clients *MAY* omit them, and servers *SHOULD* // respect them, at the risk of increased incidents of Fetch responses // indirectly referencing unavailable blobs. ReferencesBlobs []*v2.Digest `protobuf:"bytes,6,rep,name=references_blobs,json=referencesBlobs,proto3" json:"references_blobs,omitempty"` ReferencesDirectories []*v2.Digest `protobuf:"bytes,7,rep,name=references_directories,json=referencesDirectories,proto3" json:"references_directories,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A request message for [Push.PushBlob][build.bazel.remote.asset.v1.Push.PushBlob].
func (*PushBlobRequest) Descriptor ¶
func (*PushBlobRequest) Descriptor() ([]byte, []int)
func (*PushBlobRequest) GetBlobDigest ¶
func (m *PushBlobRequest) GetBlobDigest() *v2.Digest
func (*PushBlobRequest) GetExpireAt ¶
func (m *PushBlobRequest) GetExpireAt() *timestamp.Timestamp
func (*PushBlobRequest) GetInstanceName ¶
func (m *PushBlobRequest) GetInstanceName() string
func (*PushBlobRequest) GetQualifiers ¶
func (m *PushBlobRequest) GetQualifiers() []*Qualifier
func (*PushBlobRequest) GetReferencesBlobs ¶
func (m *PushBlobRequest) GetReferencesBlobs() []*v2.Digest
func (*PushBlobRequest) GetReferencesDirectories ¶
func (m *PushBlobRequest) GetReferencesDirectories() []*v2.Digest
func (*PushBlobRequest) GetUris ¶
func (m *PushBlobRequest) GetUris() []string
func (*PushBlobRequest) ProtoMessage ¶
func (*PushBlobRequest) ProtoMessage()
func (*PushBlobRequest) Reset ¶
func (m *PushBlobRequest) Reset()
func (*PushBlobRequest) String ¶
func (m *PushBlobRequest) String() string
func (*PushBlobRequest) XXX_DiscardUnknown ¶
func (m *PushBlobRequest) XXX_DiscardUnknown()
func (*PushBlobRequest) XXX_Marshal ¶
func (m *PushBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*PushBlobRequest) XXX_Merge ¶
func (m *PushBlobRequest) XXX_Merge(src proto.Message)
func (*PushBlobRequest) XXX_Size ¶
func (m *PushBlobRequest) XXX_Size() int
func (*PushBlobRequest) XXX_Unmarshal ¶
func (m *PushBlobRequest) XXX_Unmarshal(b []byte) error
type PushBlobResponse ¶
type PushBlobResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A response message for [Push.PushBlob][build.bazel.remote.asset.v1.Push.PushBlob].
func (*PushBlobResponse) Descriptor ¶
func (*PushBlobResponse) Descriptor() ([]byte, []int)
func (*PushBlobResponse) ProtoMessage ¶
func (*PushBlobResponse) ProtoMessage()
func (*PushBlobResponse) Reset ¶
func (m *PushBlobResponse) Reset()
func (*PushBlobResponse) String ¶
func (m *PushBlobResponse) String() string
func (*PushBlobResponse) XXX_DiscardUnknown ¶
func (m *PushBlobResponse) XXX_DiscardUnknown()
func (*PushBlobResponse) XXX_Marshal ¶
func (m *PushBlobResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*PushBlobResponse) XXX_Merge ¶
func (m *PushBlobResponse) XXX_Merge(src proto.Message)
func (*PushBlobResponse) XXX_Size ¶
func (m *PushBlobResponse) XXX_Size() int
func (*PushBlobResponse) XXX_Unmarshal ¶
func (m *PushBlobResponse) XXX_Unmarshal(b []byte) error
type PushClient ¶
type PushClient interface { // These APIs associate the identifying information of a resource, as // indicated by URI and optionally Qualifiers, with content available in the // CAS. For example, associating a repository url and a commit id with a // Directory Digest. // // Servers *SHOULD* only allow trusted clients to associate content, and *MAY* // only allow certain URIs to be pushed. // // Clients *MUST* ensure associated content is available in CAS prior to // pushing. // // Clients *MUST* ensure the Qualifiers listed correctly match the contents, // and Servers *MAY* trust these values without validation. // Fetch servers *MAY* require exact match of all qualifiers when returning // content previously pushed, or allow fetching content with only a subset of // the qualifiers specified on Push. // // Clients can specify expiration information that the server *SHOULD* // respect. Subsequent requests can be used to alter the expiration time. // // A minimal compliant Fetch implementation may support only Push'd content // and return `NOT_FOUND` for any resource that was not pushed first. // Alternatively, a compliant implementation may choose to not support Push // and only return resources that can be Fetch'd from origin. // // Errors will be returned as gRPC Status errors. // The possible RPC errors include: // * `INVALID_ARGUMENT`: One or more arguments to the RPC were invalid. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to // perform the requested operation. The client may retry after a delay. // * `UNAVAILABLE`: Due to a transient condition the operation could not be // completed. The client should retry. // * `INTERNAL`: An internal error occurred while performing the operation. // The client should retry. PushBlob(ctx context.Context, in *PushBlobRequest, opts ...grpc.CallOption) (*PushBlobResponse, error) PushDirectory(ctx context.Context, in *PushDirectoryRequest, opts ...grpc.CallOption) (*PushDirectoryResponse, error) }
PushClient is the client API for Push service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewPushClient ¶
func NewPushClient(cc *grpc.ClientConn) PushClient
type PushDirectoryRequest ¶
type PushDirectoryRequest struct { // The instance of the execution system to operate against. A server may // support multiple instances of the execution system (with their own workers, // storage, caches, etc.). The server MAY require use of this field to select // between them in an implementation-defined fashion, otherwise it can be // omitted. InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"` // The URI(s) of the content to associate. If multiple URIs are specified, the // pushed content will be available to fetch by specifying any of them. Uris []string `protobuf:"bytes,2,rep,name=uris,proto3" json:"uris,omitempty"` // Qualifiers sub-specifying the content that is being pushed - see comments // on [Qualifier][build.bazel.remote.asset.v1.Qualifier]. // The same qualifiers apply to all URIs. Qualifiers []*Qualifier `protobuf:"bytes,3,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` // A time after which this content should stop being returned via // [FetchDirectory][build.bazel.remote.asset.v1.Fetch.FetchDirectory]. // Servers *MAY* expire content early, e.g. due to storage pressure. ExpireAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=expire_at,json=expireAt,proto3" json:"expire_at,omitempty"` // Directory to associate RootDirectoryDigest *v2.Digest `protobuf:"bytes,5,opt,name=root_directory_digest,json=rootDirectoryDigest,proto3" json:"root_directory_digest,omitempty"` // Referenced blobs or directories that need to not expire before expiration // of this association, in addition to `root_directory_digest` itself. // These fields are hints - clients *MAY* omit them, and servers *SHOULD* // respect them, at the risk of increased incidents of Fetch responses // indirectly referencing unavailable blobs. ReferencesBlobs []*v2.Digest `protobuf:"bytes,6,rep,name=references_blobs,json=referencesBlobs,proto3" json:"references_blobs,omitempty"` ReferencesDirectories []*v2.Digest `protobuf:"bytes,7,rep,name=references_directories,json=referencesDirectories,proto3" json:"references_directories,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A request message for [Push.PushDirectory][build.bazel.remote.asset.v1.Push.PushDirectory].
func (*PushDirectoryRequest) Descriptor ¶
func (*PushDirectoryRequest) Descriptor() ([]byte, []int)
func (*PushDirectoryRequest) GetExpireAt ¶
func (m *PushDirectoryRequest) GetExpireAt() *timestamp.Timestamp
func (*PushDirectoryRequest) GetInstanceName ¶
func (m *PushDirectoryRequest) GetInstanceName() string
func (*PushDirectoryRequest) GetQualifiers ¶
func (m *PushDirectoryRequest) GetQualifiers() []*Qualifier
func (*PushDirectoryRequest) GetReferencesBlobs ¶
func (m *PushDirectoryRequest) GetReferencesBlobs() []*v2.Digest
func (*PushDirectoryRequest) GetReferencesDirectories ¶
func (m *PushDirectoryRequest) GetReferencesDirectories() []*v2.Digest
func (*PushDirectoryRequest) GetRootDirectoryDigest ¶
func (m *PushDirectoryRequest) GetRootDirectoryDigest() *v2.Digest
func (*PushDirectoryRequest) GetUris ¶
func (m *PushDirectoryRequest) GetUris() []string
func (*PushDirectoryRequest) ProtoMessage ¶
func (*PushDirectoryRequest) ProtoMessage()
func (*PushDirectoryRequest) Reset ¶
func (m *PushDirectoryRequest) Reset()
func (*PushDirectoryRequest) String ¶
func (m *PushDirectoryRequest) String() string
func (*PushDirectoryRequest) XXX_DiscardUnknown ¶
func (m *PushDirectoryRequest) XXX_DiscardUnknown()
func (*PushDirectoryRequest) XXX_Marshal ¶
func (m *PushDirectoryRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*PushDirectoryRequest) XXX_Merge ¶
func (m *PushDirectoryRequest) XXX_Merge(src proto.Message)
func (*PushDirectoryRequest) XXX_Size ¶
func (m *PushDirectoryRequest) XXX_Size() int
func (*PushDirectoryRequest) XXX_Unmarshal ¶
func (m *PushDirectoryRequest) XXX_Unmarshal(b []byte) error
type PushDirectoryResponse ¶
type PushDirectoryResponse struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
A response message for [Push.PushDirectory][build.bazel.remote.asset.v1.Push.PushDirectory].
func (*PushDirectoryResponse) Descriptor ¶
func (*PushDirectoryResponse) Descriptor() ([]byte, []int)
func (*PushDirectoryResponse) ProtoMessage ¶
func (*PushDirectoryResponse) ProtoMessage()
func (*PushDirectoryResponse) Reset ¶
func (m *PushDirectoryResponse) Reset()
func (*PushDirectoryResponse) String ¶
func (m *PushDirectoryResponse) String() string
func (*PushDirectoryResponse) XXX_DiscardUnknown ¶
func (m *PushDirectoryResponse) XXX_DiscardUnknown()
func (*PushDirectoryResponse) XXX_Marshal ¶
func (m *PushDirectoryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*PushDirectoryResponse) XXX_Merge ¶
func (m *PushDirectoryResponse) XXX_Merge(src proto.Message)
func (*PushDirectoryResponse) XXX_Size ¶
func (m *PushDirectoryResponse) XXX_Size() int
func (*PushDirectoryResponse) XXX_Unmarshal ¶
func (m *PushDirectoryResponse) XXX_Unmarshal(b []byte) error
type PushServer ¶
type PushServer interface { // These APIs associate the identifying information of a resource, as // indicated by URI and optionally Qualifiers, with content available in the // CAS. For example, associating a repository url and a commit id with a // Directory Digest. // // Servers *SHOULD* only allow trusted clients to associate content, and *MAY* // only allow certain URIs to be pushed. // // Clients *MUST* ensure associated content is available in CAS prior to // pushing. // // Clients *MUST* ensure the Qualifiers listed correctly match the contents, // and Servers *MAY* trust these values without validation. // Fetch servers *MAY* require exact match of all qualifiers when returning // content previously pushed, or allow fetching content with only a subset of // the qualifiers specified on Push. // // Clients can specify expiration information that the server *SHOULD* // respect. Subsequent requests can be used to alter the expiration time. // // A minimal compliant Fetch implementation may support only Push'd content // and return `NOT_FOUND` for any resource that was not pushed first. // Alternatively, a compliant implementation may choose to not support Push // and only return resources that can be Fetch'd from origin. // // Errors will be returned as gRPC Status errors. // The possible RPC errors include: // * `INVALID_ARGUMENT`: One or more arguments to the RPC were invalid. // * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to // perform the requested operation. The client may retry after a delay. // * `UNAVAILABLE`: Due to a transient condition the operation could not be // completed. The client should retry. // * `INTERNAL`: An internal error occurred while performing the operation. // The client should retry. PushBlob(context.Context, *PushBlobRequest) (*PushBlobResponse, error) PushDirectory(context.Context, *PushDirectoryRequest) (*PushDirectoryResponse, error) }
PushServer is the server API for Push service.
type Qualifier ¶
type Qualifier struct { // The "name" of the qualifier, for example "resource_type". // No separation is made between 'standard' and 'nonstandard' // qualifiers, in accordance with https://tools.ietf.org/html/rfc6648, // however implementers *SHOULD* take care to avoid ambiguity. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The "value" of the qualifier. Semantics will be dictated by the name. Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
Qualifiers are used to disambiguate or sub-select content that shares a URI. This may include specifying a particular commit or branch, in the case of URIs referencing a repository; they could also be used to specify a particular subdirectory of a repository or tarball. Qualifiers may also be used to ensure content matches what the client expects, even when there is no ambiguity to be had - for example, a qualifier specifying a checksum value.
In cases where the semantics of the request are not immediately clear from the URL and/or qualifiers - e.g. dictated by URL scheme - it is recommended to use an additional qualifier to remove the ambiguity. The `resource_type` qualifier is recommended for this purpose.
Qualifiers may be supplied in any order.
func (*Qualifier) Descriptor ¶
func (*Qualifier) ProtoMessage ¶
func (*Qualifier) ProtoMessage()
func (*Qualifier) XXX_DiscardUnknown ¶
func (m *Qualifier) XXX_DiscardUnknown()
func (*Qualifier) XXX_Marshal ¶
func (*Qualifier) XXX_Unmarshal ¶
type UnimplementedFetchServer ¶
type UnimplementedFetchServer struct { }
UnimplementedFetchServer can be embedded to have forward compatible implementations.
func (*UnimplementedFetchServer) FetchBlob ¶
func (*UnimplementedFetchServer) FetchBlob(ctx context.Context, req *FetchBlobRequest) (*FetchBlobResponse, error)
func (*UnimplementedFetchServer) FetchDirectory ¶
func (*UnimplementedFetchServer) FetchDirectory(ctx context.Context, req *FetchDirectoryRequest) (*FetchDirectoryResponse, error)
type UnimplementedPushServer ¶
type UnimplementedPushServer struct { }
UnimplementedPushServer can be embedded to have forward compatible implementations.
func (*UnimplementedPushServer) PushBlob ¶
func (*UnimplementedPushServer) PushBlob(ctx context.Context, req *PushBlobRequest) (*PushBlobResponse, error)
func (*UnimplementedPushServer) PushDirectory ¶
func (*UnimplementedPushServer) PushDirectory(ctx context.Context, req *PushDirectoryRequest) (*PushDirectoryResponse, error)