blob: 9ddc8b470122ea3ed9c769f6bac2005ddfd274b0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* Protocol Buffers describing the Provision API, for communicating with a runner
* for job and environment provisioning information over GRPC.
*/
syntax = "proto3";
package org.apache.beam.model.fn_execution.v1;
option go_package = "github.com/apache/beam/sdks/v2/go/pkg/beam/model/fnexecution_v1;fnexecution_v1";
option java_package = "org.apache.beam.model.fnexecution.v1";
option java_outer_classname = "ProvisionApi";
import "beam_runner_api.proto";
import "endpoints.proto";
import "google/protobuf/struct.proto";
// A service to provide runtime provisioning information to the SDK harness
// worker instances -- such as pipeline options, resource constraints and
// other job metadata -- needed by an SDK harness instance to initialize.
service ProvisionService {
// Get provision information for the SDK harness worker instance.
rpc GetProvisionInfo(GetProvisionInfoRequest) returns (GetProvisionInfoResponse);
}
// A request to get the provision info of a SDK harness worker instance.
message GetProvisionInfoRequest { }
// A response containing the provision info of a SDK harness worker instance.
message GetProvisionInfoResponse {
ProvisionInfo info = 1;
}
// Runtime provisioning information for a SDK harness worker instance,
// such as pipeline options, resource constraints and other job metadata
message ProvisionInfo {
// (required) Pipeline options. For non-template jobs, the options are
// identical to what is passed to job submission.
google.protobuf.Struct pipeline_options = 3;
// (required) The artifact retrieval token produced by
// LegacyArtifactStagingService.CommitManifestResponse.
string retrieval_token = 6;
// (optional) The endpoint that the runner is hosting for the SDK to submit
// status reports to during pipeline execution. This field will only be
// populated if the runner supports SDK status reports. For more details see
// https://s.apache.org/beam-fn-api-harness-status
org.apache.beam.model.pipeline.v1.ApiServiceDescriptor status_endpoint = 7;
// (optional) The logging endpoint this SDK should use.
org.apache.beam.model.pipeline.v1.ApiServiceDescriptor logging_endpoint = 8;
// (optional) The artifact retrieval endpoint this SDK should use.
org.apache.beam.model.pipeline.v1.ApiServiceDescriptor artifact_endpoint = 9;
// (optional) The control endpoint this SDK should use.
org.apache.beam.model.pipeline.v1.ApiServiceDescriptor control_endpoint = 10;
// The set of dependencies that should be staged into this environment.
repeated org.apache.beam.model.pipeline.v1.ArtifactInformation dependencies = 11;
// (optional) A set of capabilities that this SDK is allowed to use in its
// interactions with this runner.
repeated string runner_capabilities = 12;
// (optional) Runtime environment metadata that are static throughout the
// pipeline execution.
map<string, string> metadata = 13;
}