All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.openlineage.client.transports.gcplineage.GcpLineageTransportConfig Maven / Gradle / Ivy

There is a newer version: 1.26.0
Show newest version
/*
/* Copyright 2018-2024 contributors to the OpenLineage project
/* SPDX-License-Identifier: Apache-2.0
*/
package io.openlineage.client.transports.gcplineage;

import io.openlineage.client.MergeConfig;
import io.openlineage.client.transports.TransportConfig;
import javax.annotation.Nullable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@NoArgsConstructor
@AllArgsConstructor
@ToString
public class GcpLineageTransportConfig
    implements TransportConfig, MergeConfig {

  enum Mode {
    sync,
    async
  }

  @Getter @Setter private @Nullable String endpoint;

  @Getter @Setter private @Nullable String projectId;

  @Getter @Setter private @Nullable String credentialsFile;

  @Getter @Setter private @Nullable String location;

  @Getter @Setter private @Nullable Mode mode;

  @Override
  public GcpLineageTransportConfig mergeWithNonNull(GcpLineageTransportConfig other) {
    return new GcpLineageTransportConfig(
        mergePropertyWith(endpoint, other.endpoint),
        mergePropertyWith(projectId, other.projectId),
        mergePropertyWith(credentialsFile, other.credentialsFile),
        mergePropertyWith(location, other.location),
        mergePropertyWith(mode, other.mode));
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy