run_definition_pb2

run_definition_pb2#

Generated protocol buffer code.

Full path: iqm.data_definitions.station_control.v1.run_definition_pb2

Protobuf source code#
// Copyright 2019-2025 IQM
//
// Licensed 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.

/*
 Run definition, fully defining what should be executed in the run.
*/

syntax = "proto3";

package iqm.data_definitions.station_control.v1;


import "iqm/data_definitions/common/v1/sweep.proto";
import "iqm/data_definitions/station_control/v1/sweep_request.proto";
import "google/protobuf/struct.proto";


// The instructions required to perform a run.
message RunDefinition {
  // Unique identifier (UUID) of the run.
  string run_id = 1;
  // User who defined the run.
  string username = 2;
  // Identifier of the experiment name.
  string experiment_name = 3;
  // Freeform label of the Experiment. As opposed to `experiment_name`, no core logic relies on this value.
  string experiment_label = 4;
  // Experiment-specific options or toggles that generated the run.
  google.protobuf.Struct options = 5;
  // A free-form dictionary of data, used to store information that does not fall into other categories.
  google.protobuf.Struct additional_run_properties = 6;
  // Unique identifier of the software version set of the current Python runtime.
  uint64 software_version_set_id = 7;
  //  Maps `return_parameters` to hardware sweep specification which specifies
  //  how the data measured at each spot should be interpreted and shaped.
  //  The hard sweep specification is in the same format as `sweeps`,
  //  which means that the returned data can be interpreted as an N-dimensional sweep inside the spot.
  //  An empty list is interpreted such that the return parameter is a scalar.
  //  The hard sweep specification can also be `None`,
  //  in which case the shape will be whatever the instrument returns.
  map<string, iqm.data_definitions.common.v1.CartesianSweep> hard_sweeps = 8;
    // Chip components (qubits, couplers) that are active in the run.
  repeated string components = 9;
  // Which of the parameters in `sweep` were added by default. The rest were added by user.
  repeated string default_sweep_parameters = 10;
  // Which of the parameters in `return_parameters` were added by default. The rest were added by user.
  repeated string default_data_parameters = 11;
  // The instructions required to perform a sweep.
  iqm.data_definitions.station_control.v1.SweepRequest sweep_definition = 12;
}

Classes