gogol-remotebuildexecution-0.5.0: Google Remote Build Execution SDK.

Copyright(c) 2015-2016 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Contents

Description

Execute an action remotely. In order to execute an action, the client must first upload all of the inputs, the Command to run, and the Action into the ContentAddressableStorage. It then calls `Execute` with an `action_digest` referring to them. The server will run the action and eventually return the result. The input `Action`'s fields MUST meet the various canonicalization requirements specified in the documentation for their types so that it has the same digest as other logically equivalent `Action`s. The server MAY enforce the requirements and return errors if a non-canonical input is received. It MAY also proceed without verifying some or all of the requirements, such as for performance reasons. If the server does not verify the requirement, then it will treat the `Action` as distinct from another logically equivalent action if they hash differently. Returns a stream of google.longrunning.Operation messages describing the resulting execution, with eventual `response` ExecuteResponse. The `metadata` on the operation is of type ExecuteOperationMetadata. If the client remains connected after the first response is returned after the server, then updates are streamed as if the client had called WaitExecution until the execution completes or the request reaches an error. The operation can also be queried using Operations API. The server NEED NOT implement other methods or functionality of the Operations API. Errors discovered during creation of the `Operation` will be reported as gRPC Status errors, while errors that occurred while running the action will be reported in the `status` field of the `ExecuteResponse`. The server MUST NOT set the `error` field of the `Operation` proto. The possible errors include: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in setting up the action requested, such as a missing input or command or no worker being available. The client may be able to fix the errors and retry. * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run the action. * `UNAVAILABLE`: Due to a transient condition, such as all workers being occupied (and the server does not support a queue), the action could not be started. The client should retry. * `INTERNAL`: An internal error occurred in the execution engine or the worker. * `DEADLINE_EXCEEDED`: The execution timed out. * `CANCELLED`: The operation was cancelled by the client. This status is only possible if the server implements the Operations API CancelOperation method, and it was called for the current execution. In the case of a missing input or command, the server SHOULD additionally send a PreconditionFailure error detail where, for each requested blob not present in the CAS, there is a `Violation` with a `type` of `MISSING` and a `subject` of `"blobs/{hash}/{size}"` indicating the digest of the missing blob.

See: Remote Build Execution API Reference for remotebuildexecution.actions.execute.

Synopsis

REST Resource

type ActionsExecuteResource = "v2" :> (Capture "instanceName" Text :> ("actions:execute" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] BuildBazelRemoteExecutionV2ExecuteRequest :> Post '[JSON] GoogleLongrunningOperation))))))))) Source #

A resource alias for remotebuildexecution.actions.execute method which the ActionsExecute request conforms to.

Creating a Request

actionsExecute Source #

Creates a value of ActionsExecute with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

data ActionsExecute Source #

Execute an action remotely. In order to execute an action, the client must first upload all of the inputs, the Command to run, and the Action into the ContentAddressableStorage. It then calls `Execute` with an `action_digest` referring to them. The server will run the action and eventually return the result. The input `Action`'s fields MUST meet the various canonicalization requirements specified in the documentation for their types so that it has the same digest as other logically equivalent `Action`s. The server MAY enforce the requirements and return errors if a non-canonical input is received. It MAY also proceed without verifying some or all of the requirements, such as for performance reasons. If the server does not verify the requirement, then it will treat the `Action` as distinct from another logically equivalent action if they hash differently. Returns a stream of google.longrunning.Operation messages describing the resulting execution, with eventual `response` ExecuteResponse. The `metadata` on the operation is of type ExecuteOperationMetadata. If the client remains connected after the first response is returned after the server, then updates are streamed as if the client had called WaitExecution until the execution completes or the request reaches an error. The operation can also be queried using Operations API. The server NEED NOT implement other methods or functionality of the Operations API. Errors discovered during creation of the `Operation` will be reported as gRPC Status errors, while errors that occurred while running the action will be reported in the `status` field of the `ExecuteResponse`. The server MUST NOT set the `error` field of the `Operation` proto. The possible errors include: * `INVALID_ARGUMENT`: One or more arguments are invalid. * `FAILED_PRECONDITION`: One or more errors occurred in setting up the action requested, such as a missing input or command or no worker being available. The client may be able to fix the errors and retry. * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run the action. * `UNAVAILABLE`: Due to a transient condition, such as all workers being occupied (and the server does not support a queue), the action could not be started. The client should retry. * `INTERNAL`: An internal error occurred in the execution engine or the worker. * `DEADLINE_EXCEEDED`: The execution timed out. * `CANCELLED`: The operation was cancelled by the client. This status is only possible if the server implements the Operations API CancelOperation method, and it was called for the current execution. In the case of a missing input or command, the server SHOULD additionally send a PreconditionFailure error detail where, for each requested blob not present in the CAS, there is a `Violation` with a `type` of `MISSING` and a `subject` of `"blobs/{hash}/{size}"` indicating the digest of the missing blob.

See: actionsExecute smart constructor.

Instances
Eq ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Data ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ActionsExecute -> c ActionsExecute #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ActionsExecute #

toConstr :: ActionsExecute -> Constr #

dataTypeOf :: ActionsExecute -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ActionsExecute) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ActionsExecute) #

gmapT :: (forall b. Data b => b -> b) -> ActionsExecute -> ActionsExecute #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ActionsExecute -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ActionsExecute -> r #

gmapQ :: (forall d. Data d => d -> u) -> ActionsExecute -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ActionsExecute -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ActionsExecute -> m ActionsExecute #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ActionsExecute -> m ActionsExecute #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ActionsExecute -> m ActionsExecute #

Show ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Generic ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Associated Types

type Rep ActionsExecute :: Type -> Type #

GoogleRequest ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Associated Types

type Rs ActionsExecute :: Type #

type Scopes ActionsExecute :: [Symbol] #

type Rep ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

type Rep ActionsExecute = D1 (MetaData "ActionsExecute" "Network.Google.Resource.RemoteBuildExecution.Actions.Execute" "gogol-remotebuildexecution-0.5.0-FTmPv3yIimd7vwvSASsukd" False) (C1 (MetaCons "ActionsExecute'" PrefixI True) ((S1 (MetaSel (Just "_aeXgafv") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Xgafv)) :*: (S1 (MetaSel (Just "_aeUploadProtocol") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "_aeAccessToken") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)))) :*: ((S1 (MetaSel (Just "_aeUploadType") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "_aePayload") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 BuildBazelRemoteExecutionV2ExecuteRequest)) :*: (S1 (MetaSel (Just "_aeInstanceName") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text) :*: S1 (MetaSel (Just "_aeCallback") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text))))))
type Scopes ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

type Scopes ActionsExecute = "https://www.googleapis.com/auth/cloud-platform" ': ([] :: [Symbol])
type Rs ActionsExecute Source # 
Instance details

Defined in Network.Google.Resource.RemoteBuildExecution.Actions.Execute

Request Lenses

aeUploadProtocol :: Lens' ActionsExecute (Maybe Text) Source #

Upload protocol for media (e.g. "raw", "multipart").

aeUploadType :: Lens' ActionsExecute (Maybe Text) Source #

Legacy upload protocol for media (e.g. "media", "multipart").

aeInstanceName :: Lens' ActionsExecute Text Source #

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.