/*
Copyright 2018 The Kubernetes Authors.

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.
*/


// This file was autogenerated by go-to-protobuf. Do not edit it manually!

syntax = 'proto2';

package k8s.io.api.events.v1beta1;

import "k8s.io/api/core/v1/generated.proto";
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
import "k8s.io/apimachinery/pkg/util/intstr/generated.proto";

// Package-wide variables from generator "generated".
option go_package = "v1beta1";

// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.
message Event {
  // +optional
  optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;

  // Required. Time when this Event was first observed.
  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2;

  // Data about the Event series this event represents or nil if it's a singleton Event.
  // +optional
  optional EventSeries series = 3;

  // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
  // +optional
  optional string reportingController = 4;

  // ID of the controller instance, e.g. `kubelet-xyzf`.
  // +optional
  optional string reportingInstance = 5;

  // What action was taken/failed regarding to the regarding object.
  // +optional
  optional string action = 6;

  // Why the action was taken.
  optional string reason = 7;

  // The object this Event is about. In most cases it's an Object reporting controller implements.
  // E.g. ReplicaSetController implements ReplicaSets and this event is emitted because
  // it acts on some changes in a ReplicaSet object.
  // +optional
  optional k8s.io.api.core.v1.ObjectReference regarding = 8;

  // Optional secondary object for more complex actions. E.g. when regarding object triggers
  // a creation or deletion of related object.
  // +optional
  optional k8s.io.api.core.v1.ObjectReference related = 9;

  // Optional. A human-readable description of the status of this operation.
  // Maximal length of the note is 1kB, but libraries should be prepared to
  // handle values up to 64kB.
  // +optional
  optional string note = 10;

  // Type of this event (Normal, Warning), new types could be added in the
  // future.
  // +optional
  optional string type = 11;

  // Deprecated field assuring backward compatibility with core.v1 Event type
  // +optional
  optional k8s.io.api.core.v1.EventSource deprecatedSource = 12;

  // Deprecated field assuring backward compatibility with core.v1 Event type
  // +optional
  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13;

  // Deprecated field assuring backward compatibility with core.v1 Event type
  // +optional
  optional k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14;

  // Deprecated field assuring backward compatibility with core.v1 Event type
  // +optional
  optional int32 deprecatedCount = 15;
}

// EventList is a list of Event objects.
message EventList {
  // Standard list metadata.
  // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
  // +optional
  optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;

  // Items is a list of schema objects.
  repeated Event items = 2;
}

// EventSeries contain information on series of events, i.e. thing that was/is happening
// continously for some time.
message EventSeries {
  // Number of occurrences in this series up to the last heartbeat time
  optional int32 count = 1;

  // Time when last Event from the series was seen before last heartbeat.
  optional k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;

  // Information whether this series is ongoing or finished.
  optional string state = 3;
}

