public final class TimeWindow extends GeneratedMessageV3 implements TimeWindowOrBuilder
   
   Time windows constrain the time of an event, such as the arrival time at a
 visit, or the start and end time of a vehicle.
 Hard time window bounds, start_time and end_time, enforce the earliest
 and latest time of the event, such that start_time <= event_time <=
 end_time. The soft time window lower bound, soft_start_time, expresses a
 preference for the event to happen at or after soft_start_time by incurring
 a cost proportional to how long before soft_start_time the event occurs. The
 soft time window upper bound, soft_end_time, expresses a preference for the
 event to happen at or before soft_end_time by incurring a cost proportional
 to how long after soft_end_time the event occurs. start_time, end_time,
 soft_start_time and soft_end_time should be within the global time limits
 (see ShipmentModel.global_start_time and
 ShipmentModel.global_end_time) and should respect:
 <code><code>
   0 <= </code>start_time<code> <= </code>soft_start_time<code> <= </code>end_time<code> and
   0 <= </code>start_time<code> <= </code>soft_end_time<code> <= </code>end_time<code>.
 </code></code>
 Protobuf type google.cloud.optimization.v1.TimeWindow
 
  
  
  
  Static Fields
  
  COST_PER_HOUR_AFTER_SOFT_END_TIME_FIELD_NUMBER
  
    public static final int COST_PER_HOUR_AFTER_SOFT_END_TIME_FIELD_NUMBER
   
  Field Value
  
  COST_PER_HOUR_BEFORE_SOFT_START_TIME_FIELD_NUMBER
  
    public static final int COST_PER_HOUR_BEFORE_SOFT_START_TIME_FIELD_NUMBER
   
  Field Value
  
  END_TIME_FIELD_NUMBER
  
    public static final int END_TIME_FIELD_NUMBER
   
  Field Value
  
  SOFT_END_TIME_FIELD_NUMBER
  
    public static final int SOFT_END_TIME_FIELD_NUMBER
   
  Field Value
  
  SOFT_START_TIME_FIELD_NUMBER
  
    public static final int SOFT_START_TIME_FIELD_NUMBER
   
  Field Value
  
  START_TIME_FIELD_NUMBER
  
    public static final int START_TIME_FIELD_NUMBER
   
  Field Value
  
  Static Methods
  
  
  getDefaultInstance()
  
    public static TimeWindow getDefaultInstance()
   
  Returns
  
  
  getDescriptor()
  
    public static final Descriptors.Descriptor getDescriptor()
   
  Returns
  
  
  newBuilder()
  
    public static TimeWindow.Builder newBuilder()
   
  Returns
  
  
  newBuilder(TimeWindow prototype)
  
    public static TimeWindow.Builder newBuilder(TimeWindow prototype)
   
  Parameter
  
  Returns
  
  
  
  
    public static TimeWindow parseDelimitedFrom(InputStream input)
   
  Parameter
  
  Returns
  
  Exceptions
  
  
  
  
    public static TimeWindow parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  parseFrom(byte[] data)
  
    public static TimeWindow parseFrom(byte[] data)
   
  Parameter
  
    
      
        | Name | 
        Description | 
      
      
        | data | 
        byte[]
  | 
      
    
  
  Returns
  
  Exceptions
  
  
  parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
  
    public static TimeWindow parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  parseFrom(ByteString data)
  
    public static TimeWindow parseFrom(ByteString data)
   
  Parameter
  
  Returns
  
  Exceptions
  
  
  parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
  
    public static TimeWindow parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  
  
    public static TimeWindow parseFrom(CodedInputStream input)
   
  Parameter
  
  Returns
  
  Exceptions
  
  
  
  
    public static TimeWindow parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  
  
    public static TimeWindow parseFrom(InputStream input)
   
  Parameter
  
  Returns
  
  Exceptions
  
  
  
  
    public static TimeWindow parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  parseFrom(ByteBuffer data)
  
    public static TimeWindow parseFrom(ByteBuffer data)
   
  Parameter
  
  Returns
  
  Exceptions
  
  
  parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
  
    public static TimeWindow parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
   
  Parameters
  
  Returns
  
  Exceptions
  
  
  parser()
  
    public static Parser<TimeWindow> parser()
   
  Returns
  
  Methods
  
  
  equals(Object obj)
  
    public boolean equals(Object obj)
   
  Parameter
  
  Returns
  
  Overrides
  
  
  getCostPerHourAfterSoftEndTime()
  
    public double getCostPerHourAfterSoftEndTime()
   
   A cost per hour added to other costs in the model if the event occurs after
 soft_end_time, computed as:
 `
    max(0, t.seconds - soft_end_time.seconds)
- cost_per_hour_after_soft_end_time / 3600,
t being the time of the event.
 
This cost must be positive, and the field can only be set if
soft_end_time` has been set.
 optional double cost_per_hour_after_soft_end_time = 6;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | double | 
        The costPerHourAfterSoftEndTime. 
 | 
      
    
  
  
  getCostPerHourBeforeSoftStartTime()
  
    public double getCostPerHourBeforeSoftStartTime()
   
   A cost per hour added to other costs in the model if the event occurs
 before soft_start_time, computed as:
 `
    max(0, soft_start_time - t.seconds)
- cost_per_hour_before_soft_start_time / 3600,
t being the time of the event.
 
`
This cost must be positive, and the field can only be set if
soft_start_time has been set.
 optional double cost_per_hour_before_soft_start_time = 5;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | double | 
        The costPerHourBeforeSoftStartTime. 
 | 
      
    
  
  
  getDefaultInstanceForType()
  
    public TimeWindow getDefaultInstanceForType()
   
  Returns
  
  
  getEndTime()
  
    public Timestamp getEndTime()
   
   The hard time window end time. If unspecified it will be set to
 ShipmentModel.global_end_time.
 .google.protobuf.Timestamp end_time = 2;
 
  Returns
  
  
  getEndTimeOrBuilder()
  
    public TimestampOrBuilder getEndTimeOrBuilder()
   
   The hard time window end time. If unspecified it will be set to
 ShipmentModel.global_end_time.
 .google.protobuf.Timestamp end_time = 2;
 
  Returns
  
  
  getParserForType()
  
    public Parser<TimeWindow> getParserForType()
   
  Returns
  
  Overrides
  
  
  getSerializedSize()
  
    public int getSerializedSize()
   
  Returns
  
  Overrides
  
  
  getSoftEndTime()
  
    public Timestamp getSoftEndTime()
   
   The soft end time of the time window.
 .google.protobuf.Timestamp soft_end_time = 4;
 
  Returns
  
  
  getSoftEndTimeOrBuilder()
  
    public TimestampOrBuilder getSoftEndTimeOrBuilder()
   
   The soft end time of the time window.
 .google.protobuf.Timestamp soft_end_time = 4;
 
  Returns
  
  
  getSoftStartTime()
  
    public Timestamp getSoftStartTime()
   
   The soft start time of the time window.
 .google.protobuf.Timestamp soft_start_time = 3;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | Timestamp | 
        The softStartTime. 
 | 
      
    
  
  
  getSoftStartTimeOrBuilder()
  
    public TimestampOrBuilder getSoftStartTimeOrBuilder()
   
   The soft start time of the time window.
 .google.protobuf.Timestamp soft_start_time = 3;
 
  Returns
  
  
  getStartTime()
  
    public Timestamp getStartTime()
   
   The hard time window start time. If unspecified it will be set to
 ShipmentModel.global_start_time.
 .google.protobuf.Timestamp start_time = 1;
 
  Returns
  
  
  getStartTimeOrBuilder()
  
    public TimestampOrBuilder getStartTimeOrBuilder()
   
   The hard time window start time. If unspecified it will be set to
 ShipmentModel.global_start_time.
 .google.protobuf.Timestamp start_time = 1;
 
  Returns
  
  
  getUnknownFields()
  
    public final UnknownFieldSet getUnknownFields()
   
  Returns
  
  Overrides
  
  
  hasCostPerHourAfterSoftEndTime()
  
    public boolean hasCostPerHourAfterSoftEndTime()
   
   A cost per hour added to other costs in the model if the event occurs after
 soft_end_time, computed as:
 `
    max(0, t.seconds - soft_end_time.seconds)
- cost_per_hour_after_soft_end_time / 3600,
t being the time of the event.
 
This cost must be positive, and the field can only be set if
soft_end_time` has been set.
 optional double cost_per_hour_after_soft_end_time = 6;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the costPerHourAfterSoftEndTime field is set. 
 | 
      
    
  
  
  hasCostPerHourBeforeSoftStartTime()
  
    public boolean hasCostPerHourBeforeSoftStartTime()
   
   A cost per hour added to other costs in the model if the event occurs
 before soft_start_time, computed as:
 `
    max(0, soft_start_time - t.seconds)
- cost_per_hour_before_soft_start_time / 3600,
t being the time of the event.
 
`
This cost must be positive, and the field can only be set if
soft_start_time has been set.
 optional double cost_per_hour_before_soft_start_time = 5;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the costPerHourBeforeSoftStartTime field is set. 
 | 
      
    
  
  
  hasEndTime()
  
    public boolean hasEndTime()
   
   The hard time window end time. If unspecified it will be set to
 ShipmentModel.global_end_time.
 .google.protobuf.Timestamp end_time = 2;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the endTime field is set. 
 | 
      
    
  
  
  hasSoftEndTime()
  
    public boolean hasSoftEndTime()
   
   The soft end time of the time window.
 .google.protobuf.Timestamp soft_end_time = 4;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the softEndTime field is set. 
 | 
      
    
  
  
  hasSoftStartTime()
  
    public boolean hasSoftStartTime()
   
   The soft start time of the time window.
 .google.protobuf.Timestamp soft_start_time = 3;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the softStartTime field is set. 
 | 
      
    
  
  
  hasStartTime()
  
    public boolean hasStartTime()
   
   The hard time window start time. If unspecified it will be set to
 ShipmentModel.global_start_time.
 .google.protobuf.Timestamp start_time = 1;
 
  Returns
  
    
      
        | Type | 
        Description | 
      
      
        | boolean | 
        Whether the startTime field is set. 
 | 
      
    
  
  
  hashCode()
  
  Returns
  
  Overrides
  
  
  internalGetFieldAccessorTable()
  
    protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
   
  Returns
  
  Overrides
  
  
  isInitialized()
  
    public final boolean isInitialized()
   
  Returns
  
  Overrides
  
  
  newBuilderForType()
  
    public TimeWindow.Builder newBuilderForType()
   
  Returns
  
  
  newBuilderForType(GeneratedMessageV3.BuilderParent parent)
  
    protected TimeWindow.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
   
  Parameter
  
  Returns
  
  Overrides
  
  
  newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
  
    protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
   
  Parameter
  
  Returns
  
  Overrides
  
  
  toBuilder()
  
    public TimeWindow.Builder toBuilder()
   
  Returns
  
  
  writeTo(CodedOutputStream output)
  
    public void writeTo(CodedOutputStream output)
   
  Parameter
  
  Overrides
  
  Exceptions