From 6557fc87ab26da76e59aa9297ef98824eba9fa2c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 9 Oct 2023 21:20:03 -0400 Subject: [PATCH] feat: [dataplex] DataQualityDimension is now part of the DataQualityDimensionResult message (#9949) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: DataQualityDimension is now part of the DataQualityDimensionResult message PiperOrigin-RevId: 571976684 Source-Link: https://github.com/googleapis/googleapis/commit/38d8c5db3f8e2b1bf89520f4e8dc3d22297ca873 Source-Link: https://github.com/googleapis/googleapis-gen/commit/2132f5e1a44b693c74b3ce53b03ed4f6721bc1da Copy-Tag: eyJwIjoiamF2YS1kYXRhcGxleC8uT3dsQm90LnlhbWwiLCJoIjoiMjEzMmY1ZTFhNDRiNjkzYzc0YjNjZTUzYjAzZWQ0ZjY3MjFiYzFkYSJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- java-dataplex/README.md | 4 +- .../reflect-config.json | 18 + .../dataplex/v1/DataQualityDimension.java | 640 ++++++++++++++++++ .../v1/DataQualityDimensionOrBuilder.java | 54 ++ .../v1/DataQualityDimensionResult.java | 296 +++++++- .../DataQualityDimensionResultOrBuilder.java | 41 ++ .../cloud/dataplex/v1/DataQualityProto.java | 117 ++-- .../cloud/dataplex/v1/data_quality.proto | 13 + 8 files changed, 1127 insertions(+), 56 deletions(-) create mode 100644 java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimension.java create mode 100644 java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionOrBuilder.java diff --git a/java-dataplex/README.md b/java-dataplex/README.md index 1effa3397e77..d694c663c123 100644 --- a/java-dataplex/README.md +++ b/java-dataplex/README.md @@ -20,7 +20,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: com.google.cloud libraries-bom - 26.23.0 + 26.24.0 pom import @@ -195,7 +195,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-dataplex.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-dataplex/1.22.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-dataplex/1.25.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/java-dataplex/google-cloud-dataplex/src/main/resources/META-INF/native-image/com.google.cloud.dataplex.v1/reflect-config.json b/java-dataplex/google-cloud-dataplex/src/main/resources/META-INF/native-image/com.google.cloud.dataplex.v1/reflect-config.json index 2cbf16a59810..2e72deab7f83 100644 --- a/java-dataplex/google-cloud-dataplex/src/main/resources/META-INF/native-image/com.google.cloud.dataplex.v1/reflect-config.json +++ b/java-dataplex/google-cloud-dataplex/src/main/resources/META-INF/native-image/com.google.cloud.dataplex.v1/reflect-config.json @@ -1430,6 +1430,24 @@ "allDeclaredClasses": true, "allPublicClasses": true }, + { + "name": "com.google.cloud.dataplex.v1.DataQualityDimension", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, + { + "name": "com.google.cloud.dataplex.v1.DataQualityDimension$Builder", + "queryAllDeclaredConstructors": true, + "queryAllPublicConstructors": true, + "queryAllDeclaredMethods": true, + "allPublicMethods": true, + "allDeclaredClasses": true, + "allPublicClasses": true + }, { "name": "com.google.cloud.dataplex.v1.DataQualityDimensionResult", "queryAllDeclaredConstructors": true, diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimension.java b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimension.java new file mode 100644 index 000000000000..9a17a8e8f296 --- /dev/null +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimension.java @@ -0,0 +1,640 @@ +/* + * Copyright 2023 Google LLC + * + * 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/dataplex/v1/data_quality.proto + +package com.google.cloud.dataplex.v1; + +/** + * + * + *
+ * A dimension captures data quality intent about a defined subset of the rules
+ * specified.
+ * 
+ * + * Protobuf type {@code google.cloud.dataplex.v1.DataQualityDimension} + */ +public final class DataQualityDimension extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.cloud.dataplex.v1.DataQualityDimension) + DataQualityDimensionOrBuilder { + private static final long serialVersionUID = 0L; + // Use DataQualityDimension.newBuilder() to construct. + private DataQualityDimension(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private DataQualityDimension() { + name_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new DataQualityDimension(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.dataplex.v1.DataQualityProto + .internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.dataplex.v1.DataQualityProto + .internal_static_google_cloud_dataplex_v1_DataQualityDimension_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.dataplex.v1.DataQualityDimension.class, + com.google.cloud.dataplex.v1.DataQualityDimension.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + * + * + *
+   * The dimension name a rule belongs to. Supported dimensions are
+   * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+   * "INTEGRITY"]
+   * 
+ * + * string name = 1; + * + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + * + * + *
+   * The dimension name a rule belongs to. Supported dimensions are
+   * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+   * "INTEGRITY"]
+   * 
+ * + * string name = 1; + * + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.cloud.dataplex.v1.DataQualityDimension)) { + return super.equals(obj); + } + com.google.cloud.dataplex.v1.DataQualityDimension other = + (com.google.cloud.dataplex.v1.DataQualityDimension) obj; + + if (!getName().equals(other.getName())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseDelimitedFrom( + java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.cloud.dataplex.v1.DataQualityDimension prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+   * A dimension captures data quality intent about a defined subset of the rules
+   * specified.
+   * 
+ * + * Protobuf type {@code google.cloud.dataplex.v1.DataQualityDimension} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.cloud.dataplex.v1.DataQualityDimension) + com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.cloud.dataplex.v1.DataQualityProto + .internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.cloud.dataplex.v1.DataQualityProto + .internal_static_google_cloud_dataplex_v1_DataQualityDimension_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.cloud.dataplex.v1.DataQualityDimension.class, + com.google.cloud.dataplex.v1.DataQualityDimension.Builder.class); + } + + // Construct using com.google.cloud.dataplex.v1.DataQualityDimension.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.cloud.dataplex.v1.DataQualityProto + .internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor; + } + + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimension getDefaultInstanceForType() { + return com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance(); + } + + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimension build() { + com.google.cloud.dataplex.v1.DataQualityDimension result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimension buildPartial() { + com.google.cloud.dataplex.v1.DataQualityDimension result = + new com.google.cloud.dataplex.v1.DataQualityDimension(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.cloud.dataplex.v1.DataQualityDimension result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.cloud.dataplex.v1.DataQualityDimension) { + return mergeFrom((com.google.cloud.dataplex.v1.DataQualityDimension) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.cloud.dataplex.v1.DataQualityDimension other) { + if (other == com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance()) + return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + * + * + *
+     * The dimension name a rule belongs to. Supported dimensions are
+     * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+     * "INTEGRITY"]
+     * 
+ * + * string name = 1; + * + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * + * + *
+     * The dimension name a rule belongs to. Supported dimensions are
+     * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+     * "INTEGRITY"]
+     * 
+ * + * string name = 1; + * + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * + * + *
+     * The dimension name a rule belongs to. Supported dimensions are
+     * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+     * "INTEGRITY"]
+     * 
+ * + * string name = 1; + * + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * The dimension name a rule belongs to. Supported dimensions are
+     * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+     * "INTEGRITY"]
+     * 
+ * + * string name = 1; + * + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * + * + *
+     * The dimension name a rule belongs to. Supported dimensions are
+     * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+     * "INTEGRITY"]
+     * 
+ * + * string name = 1; + * + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.cloud.dataplex.v1.DataQualityDimension) + } + + // @@protoc_insertion_point(class_scope:google.cloud.dataplex.v1.DataQualityDimension) + private static final com.google.cloud.dataplex.v1.DataQualityDimension DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.cloud.dataplex.v1.DataQualityDimension(); + } + + public static com.google.cloud.dataplex.v1.DataQualityDimension getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DataQualityDimension parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimension getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionOrBuilder.java b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionOrBuilder.java new file mode 100644 index 000000000000..9105b848a7c3 --- /dev/null +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionOrBuilder.java @@ -0,0 +1,54 @@ +/* + * Copyright 2023 Google LLC + * + * 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/cloud/dataplex/v1/data_quality.proto + +package com.google.cloud.dataplex.v1; + +public interface DataQualityDimensionOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.cloud.dataplex.v1.DataQualityDimension) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * The dimension name a rule belongs to. Supported dimensions are
+   * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+   * "INTEGRITY"]
+   * 
+ * + * string name = 1; + * + * @return The name. + */ + java.lang.String getName(); + /** + * + * + *
+   * The dimension name a rule belongs to. Supported dimensions are
+   * ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS",
+   * "INTEGRITY"]
+   * 
+ * + * string name = 1; + * + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); +} diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResult.java b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResult.java index ee770cc8b359..eace2e080182 100644 --- a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResult.java +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResult.java @@ -61,6 +61,62 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { com.google.cloud.dataplex.v1.DataQualityDimensionResult.Builder.class); } + public static final int DIMENSION_FIELD_NUMBER = 1; + private com.google.cloud.dataplex.v1.DataQualityDimension dimension_; + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the dimension field is set. + */ + @java.lang.Override + public boolean hasDimension() { + return dimension_ != null; + } + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The dimension. + */ + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimension getDimension() { + return dimension_ == null + ? com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance() + : dimension_; + } + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + @java.lang.Override + public com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder getDimensionOrBuilder() { + return dimension_ == null + ? com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance() + : dimension_; + } + public static final int PASSED_FIELD_NUMBER = 3; private boolean passed_ = false; /** @@ -93,6 +149,9 @@ public final boolean isInitialized() { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (dimension_ != null) { + output.writeMessage(1, getDimension()); + } if (passed_ != false) { output.writeBool(3, passed_); } @@ -105,6 +164,9 @@ public int getSerializedSize() { if (size != -1) return size; size = 0; + if (dimension_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDimension()); + } if (passed_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, passed_); } @@ -124,6 +186,10 @@ public boolean equals(final java.lang.Object obj) { com.google.cloud.dataplex.v1.DataQualityDimensionResult other = (com.google.cloud.dataplex.v1.DataQualityDimensionResult) obj; + if (hasDimension() != other.hasDimension()) return false; + if (hasDimension()) { + if (!getDimension().equals(other.getDimension())) return false; + } if (getPassed() != other.getPassed()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -136,6 +202,10 @@ public int hashCode() { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); + if (hasDimension()) { + hash = (37 * hash) + DIMENSION_FIELD_NUMBER; + hash = (53 * hash) + getDimension().hashCode(); + } hash = (37 * hash) + PASSED_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPassed()); hash = (29 * hash) + getUnknownFields().hashCode(); @@ -279,6 +349,11 @@ private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { public Builder clear() { super.clear(); bitField0_ = 0; + dimension_ = null; + if (dimensionBuilder_ != null) { + dimensionBuilder_.dispose(); + dimensionBuilder_ = null; + } passed_ = false; return this; } @@ -317,6 +392,9 @@ public com.google.cloud.dataplex.v1.DataQualityDimensionResult buildPartial() { private void buildPartial0(com.google.cloud.dataplex.v1.DataQualityDimensionResult result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { + result.dimension_ = dimensionBuilder_ == null ? dimension_ : dimensionBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { result.passed_ = passed_; } } @@ -367,6 +445,9 @@ public Builder mergeFrom(com.google.protobuf.Message other) { public Builder mergeFrom(com.google.cloud.dataplex.v1.DataQualityDimensionResult other) { if (other == com.google.cloud.dataplex.v1.DataQualityDimensionResult.getDefaultInstance()) return this; + if (other.hasDimension()) { + mergeDimension(other.getDimension()); + } if (other.getPassed() != false) { setPassed(other.getPassed()); } @@ -396,10 +477,16 @@ public Builder mergeFrom( case 0: done = true; break; + case 10: + { + input.readMessage(getDimensionFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 case 24: { passed_ = input.readBool(); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000002; break; } // case 24 default: @@ -421,6 +508,209 @@ public Builder mergeFrom( private int bitField0_; + private com.google.cloud.dataplex.v1.DataQualityDimension dimension_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.dataplex.v1.DataQualityDimension, + com.google.cloud.dataplex.v1.DataQualityDimension.Builder, + com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder> + dimensionBuilder_; + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the dimension field is set. + */ + public boolean hasDimension() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The dimension. + */ + public com.google.cloud.dataplex.v1.DataQualityDimension getDimension() { + if (dimensionBuilder_ == null) { + return dimension_ == null + ? com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance() + : dimension_; + } else { + return dimensionBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setDimension(com.google.cloud.dataplex.v1.DataQualityDimension value) { + if (dimensionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + dimension_ = value; + } else { + dimensionBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder setDimension( + com.google.cloud.dataplex.v1.DataQualityDimension.Builder builderForValue) { + if (dimensionBuilder_ == null) { + dimension_ = builderForValue.build(); + } else { + dimensionBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder mergeDimension(com.google.cloud.dataplex.v1.DataQualityDimension value) { + if (dimensionBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && dimension_ != null + && dimension_ + != com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance()) { + getDimensionBuilder().mergeFrom(value); + } else { + dimension_ = value; + } + } else { + dimensionBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public Builder clearDimension() { + bitField0_ = (bitField0_ & ~0x00000001); + dimension_ = null; + if (dimensionBuilder_ != null) { + dimensionBuilder_.dispose(); + dimensionBuilder_ = null; + } + onChanged(); + return this; + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.dataplex.v1.DataQualityDimension.Builder getDimensionBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDimensionFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + public com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder getDimensionOrBuilder() { + if (dimensionBuilder_ != null) { + return dimensionBuilder_.getMessageOrBuilder(); + } else { + return dimension_ == null + ? com.google.cloud.dataplex.v1.DataQualityDimension.getDefaultInstance() + : dimension_; + } + } + /** + * + * + *
+     * Output only. The dimension config specified in the DataQualitySpec, as is.
+     * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.dataplex.v1.DataQualityDimension, + com.google.cloud.dataplex.v1.DataQualityDimension.Builder, + com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder> + getDimensionFieldBuilder() { + if (dimensionBuilder_ == null) { + dimensionBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.cloud.dataplex.v1.DataQualityDimension, + com.google.cloud.dataplex.v1.DataQualityDimension.Builder, + com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder>( + getDimension(), getParentForChildren(), isClean()); + dimension_ = null; + } + return dimensionBuilder_; + } + private boolean passed_; /** * @@ -452,7 +742,7 @@ public boolean getPassed() { public Builder setPassed(boolean value) { passed_ = value; - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -468,7 +758,7 @@ public Builder setPassed(boolean value) { * @return This builder for chaining. */ public Builder clearPassed() { - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); passed_ = false; onChanged(); return this; diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResultOrBuilder.java b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResultOrBuilder.java index a0f3d4d15ca3..358e1792b670 100644 --- a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResultOrBuilder.java +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityDimensionResultOrBuilder.java @@ -23,6 +23,47 @@ public interface DataQualityDimensionResultOrBuilder // @@protoc_insertion_point(interface_extends:google.cloud.dataplex.v1.DataQualityDimensionResult) com.google.protobuf.MessageOrBuilder { + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return Whether the dimension field is set. + */ + boolean hasDimension(); + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + * + * @return The dimension. + */ + com.google.cloud.dataplex.v1.DataQualityDimension getDimension(); + /** + * + * + *
+   * Output only. The dimension config specified in the DataQualitySpec, as is.
+   * 
+ * + * + * .google.cloud.dataplex.v1.DataQualityDimension dimension = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; + * + */ + com.google.cloud.dataplex.v1.DataQualityDimensionOrBuilder getDimensionOrBuilder(); + /** * * diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityProto.java b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityProto.java index 0536b2b754b0..00219dea582a 100644 --- a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityProto.java +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/java/com/google/cloud/dataplex/v1/DataQualityProto.java @@ -59,6 +59,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_cloud_dataplex_v1_DataQualityDimensionResult_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_cloud_dataplex_v1_DataQualityDimensionResult_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_cloud_dataplex_v1_DataQualityDimension_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_cloud_dataplex_v1_DataQualityRule_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -142,55 +146,58 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "taQualityRule\022\016\n\006passed\030\007 \001(\010\022\027\n\017evaluat" + "ed_count\030\t \001(\003\022\024\n\014passed_count\030\010 \001(\003\022\022\n\n" + "null_count\030\005 \001(\003\022\022\n\npass_ratio\030\006 \001(\001\022\032\n\022" - + "failing_rows_query\030\n \001(\t\",\n\032DataQualityD" - + "imensionResult\022\016\n\006passed\030\003 \001(\010\"\211\r\n\017DataQ" - + "ualityRule\022W\n\021range_expectation\030\001 \001(\0132:." - + "google.cloud.dataplex.v1.DataQualityRule" - + ".RangeExpectationH\000\022\\\n\024non_null_expectat" - + "ion\030\002 \001(\0132<.google.cloud.dataplex.v1.Dat" - + "aQualityRule.NonNullExpectationH\000\022S\n\017set" - + "_expectation\030\003 \001(\01328.google.cloud.datapl" - + "ex.v1.DataQualityRule.SetExpectationH\000\022W" - + "\n\021regex_expectation\030\004 \001(\0132:.google.cloud" - + ".dataplex.v1.DataQualityRule.RegexExpect" - + "ationH\000\022a\n\026uniqueness_expectation\030d \001(\0132" - + "?.google.cloud.dataplex.v1.DataQualityRu" - + "le.UniquenessExpectationH\000\022j\n\033statistic_" - + "range_expectation\030e \001(\0132C.google.cloud.d" - + "ataplex.v1.DataQualityRule.StatisticRang" - + "eExpectationH\000\022g\n\031row_condition_expectat" - + "ion\030\310\001 \001(\0132A.google.cloud.dataplex.v1.Da" - + "taQualityRule.RowConditionExpectationH\000\022" - + "k\n\033table_condition_expectation\030\311\001 \001(\0132C." - + "google.cloud.dataplex.v1.DataQualityRule" - + ".TableConditionExpectationH\000\022\025\n\006column\030\364" - + "\003 \001(\tB\004\342A\001\001\022\032\n\013ignore_null\030\365\003 \001(\010B\004\342A\001\001\022" - + "\030\n\tdimension\030\366\003 \001(\tB\004\342A\001\002\022\030\n\tthreshold\030\367" - + "\003 \001(\001B\004\342A\001\001\022\023\n\004name\030\370\003 \001(\tB\004\342A\001\001\022\032\n\013desc" - + "ription\030\371\003 \001(\tB\004\342A\001\001\032\210\001\n\020RangeExpectatio" - + "n\022\027\n\tmin_value\030\001 \001(\tB\004\342A\001\001\022\027\n\tmax_value\030" - + "\002 \001(\tB\004\342A\001\001\022 \n\022strict_min_enabled\030\003 \001(\010B" - + "\004\342A\001\001\022 \n\022strict_max_enabled\030\004 \001(\010B\004\342A\001\001\032" - + "\024\n\022NonNullExpectation\032&\n\016SetExpectation\022" - + "\024\n\006values\030\001 \003(\tB\004\342A\001\001\032\'\n\020RegexExpectatio" - + "n\022\023\n\005regex\030\001 \001(\tB\004\342A\001\001\032\027\n\025UniquenessExpe" - + "ctation\032\307\002\n\031StatisticRangeExpectation\022l\n" - + "\tstatistic\030\001 \001(\0162S.google.cloud.dataplex" - + ".v1.DataQualityRule.StatisticRangeExpect" - + "ation.ColumnStatisticB\004\342A\001\001\022\027\n\tmin_value" - + "\030\002 \001(\tB\004\342A\001\001\022\027\n\tmax_value\030\003 \001(\tB\004\342A\001\001\022 \n" - + "\022strict_min_enabled\030\004 \001(\010B\004\342A\001\001\022 \n\022stric" - + "t_max_enabled\030\005 \001(\010B\004\342A\001\001\"F\n\017ColumnStati" - + "stic\022\027\n\023STATISTIC_UNDEFINED\020\000\022\010\n\004MEAN\020\001\022" - + "\007\n\003MIN\020\002\022\007\n\003MAX\020\003\0327\n\027RowConditionExpecta" - + "tion\022\034\n\016sql_expression\030\001 \001(\tB\004\342A\001\001\0329\n\031Ta" - + "bleConditionExpectation\022\034\n\016sql_expressio" - + "n\030\001 \001(\tB\004\342A\001\001B\013\n\trule_typeB\304\001\n\034com.googl" - + "e.cloud.dataplex.v1B\020DataQualityProtoP\001Z" - + "8cloud.google.com/go/dataplex/apiv1/data" - + "plexpb;dataplexpb\352AU\n\035bigquery.googleapi" - + "s.com/Table\0224projects/{project}/datasets" - + "/{dataset}/tables/{table}b\006proto3" + + "failing_rows_query\030\n \001(\t\"u\n\032DataQualityD" + + "imensionResult\022G\n\tdimension\030\001 \001(\0132..goog" + + "le.cloud.dataplex.v1.DataQualityDimensio" + + "nB\004\342A\001\003\022\016\n\006passed\030\003 \001(\010\"$\n\024DataQualityDi" + + "mension\022\014\n\004name\030\001 \001(\t\"\211\r\n\017DataQualityRul" + + "e\022W\n\021range_expectation\030\001 \001(\0132:.google.cl" + + "oud.dataplex.v1.DataQualityRule.RangeExp" + + "ectationH\000\022\\\n\024non_null_expectation\030\002 \001(\013" + + "2<.google.cloud.dataplex.v1.DataQualityR" + + "ule.NonNullExpectationH\000\022S\n\017set_expectat" + + "ion\030\003 \001(\01328.google.cloud.dataplex.v1.Dat" + + "aQualityRule.SetExpectationH\000\022W\n\021regex_e" + + "xpectation\030\004 \001(\0132:.google.cloud.dataplex" + + ".v1.DataQualityRule.RegexExpectationH\000\022a" + + "\n\026uniqueness_expectation\030d \001(\0132?.google." + + "cloud.dataplex.v1.DataQualityRule.Unique" + + "nessExpectationH\000\022j\n\033statistic_range_exp" + + "ectation\030e \001(\0132C.google.cloud.dataplex.v" + + "1.DataQualityRule.StatisticRangeExpectat" + + "ionH\000\022g\n\031row_condition_expectation\030\310\001 \001(" + + "\0132A.google.cloud.dataplex.v1.DataQuality" + + "Rule.RowConditionExpectationH\000\022k\n\033table_" + + "condition_expectation\030\311\001 \001(\0132C.google.cl" + + "oud.dataplex.v1.DataQualityRule.TableCon" + + "ditionExpectationH\000\022\025\n\006column\030\364\003 \001(\tB\004\342A" + + "\001\001\022\032\n\013ignore_null\030\365\003 \001(\010B\004\342A\001\001\022\030\n\tdimens" + + "ion\030\366\003 \001(\tB\004\342A\001\002\022\030\n\tthreshold\030\367\003 \001(\001B\004\342A" + + "\001\001\022\023\n\004name\030\370\003 \001(\tB\004\342A\001\001\022\032\n\013description\030\371" + + "\003 \001(\tB\004\342A\001\001\032\210\001\n\020RangeExpectation\022\027\n\tmin_" + + "value\030\001 \001(\tB\004\342A\001\001\022\027\n\tmax_value\030\002 \001(\tB\004\342A" + + "\001\001\022 \n\022strict_min_enabled\030\003 \001(\010B\004\342A\001\001\022 \n\022" + + "strict_max_enabled\030\004 \001(\010B\004\342A\001\001\032\024\n\022NonNul" + + "lExpectation\032&\n\016SetExpectation\022\024\n\006values" + + "\030\001 \003(\tB\004\342A\001\001\032\'\n\020RegexExpectation\022\023\n\005rege" + + "x\030\001 \001(\tB\004\342A\001\001\032\027\n\025UniquenessExpectation\032\307" + + "\002\n\031StatisticRangeExpectation\022l\n\tstatisti" + + "c\030\001 \001(\0162S.google.cloud.dataplex.v1.DataQ" + + "ualityRule.StatisticRangeExpectation.Col" + + "umnStatisticB\004\342A\001\001\022\027\n\tmin_value\030\002 \001(\tB\004\342" + + "A\001\001\022\027\n\tmax_value\030\003 \001(\tB\004\342A\001\001\022 \n\022strict_m" + + "in_enabled\030\004 \001(\010B\004\342A\001\001\022 \n\022strict_max_ena" + + "bled\030\005 \001(\010B\004\342A\001\001\"F\n\017ColumnStatistic\022\027\n\023S" + + "TATISTIC_UNDEFINED\020\000\022\010\n\004MEAN\020\001\022\007\n\003MIN\020\002\022" + + "\007\n\003MAX\020\003\0327\n\027RowConditionExpectation\022\034\n\016s" + + "ql_expression\030\001 \001(\tB\004\342A\001\001\0329\n\031TableCondit" + + "ionExpectation\022\034\n\016sql_expression\030\001 \001(\tB\004" + + "\342A\001\001B\013\n\trule_typeB\304\001\n\034com.google.cloud.d" + + "ataplex.v1B\020DataQualityProtoP\001Z8cloud.go" + + "ogle.com/go/dataplex/apiv1/dataplexpb;da" + + "taplexpb\352AU\n\035bigquery.googleapis.com/Tab" + + "le\0224projects/{project}/datasets/{dataset" + + "}/tables/{table}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -274,10 +281,18 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_dataplex_v1_DataQualityDimensionResult_descriptor, new java.lang.String[] { - "Passed", + "Dimension", "Passed", }); - internal_static_google_cloud_dataplex_v1_DataQualityRule_descriptor = + internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor = getDescriptor().getMessageTypes().get(4); + internal_static_google_cloud_dataplex_v1_DataQualityDimension_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_cloud_dataplex_v1_DataQualityDimension_descriptor, + new java.lang.String[] { + "Name", + }); + internal_static_google_cloud_dataplex_v1_DataQualityRule_descriptor = + getDescriptor().getMessageTypes().get(5); internal_static_google_cloud_dataplex_v1_DataQualityRule_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_cloud_dataplex_v1_DataQualityRule_descriptor, diff --git a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/proto/google/cloud/dataplex/v1/data_quality.proto b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/proto/google/cloud/dataplex/v1/data_quality.proto index 86c760097f06..8f0eb1759f73 100644 --- a/java-dataplex/proto-google-cloud-dataplex-v1/src/main/proto/google/cloud/dataplex/v1/data_quality.proto +++ b/java-dataplex/proto-google-cloud-dataplex-v1/src/main/proto/google/cloud/dataplex/v1/data_quality.proto @@ -166,10 +166,23 @@ message DataQualityRuleResult { // DataQualityDimensionResult provides a more detailed, per-dimension view of // the results. message DataQualityDimensionResult { + // Output only. The dimension config specified in the DataQualitySpec, as is. + DataQualityDimension dimension = 1 + [(google.api.field_behavior) = OUTPUT_ONLY]; + // Whether the dimension passed or failed. bool passed = 3; } +// A dimension captures data quality intent about a defined subset of the rules +// specified. +message DataQualityDimension { + // The dimension name a rule belongs to. Supported dimensions are + // ["COMPLETENESS", "ACCURACY", "CONSISTENCY", "VALIDITY", "UNIQUENESS", + // "INTEGRITY"] + string name = 1; +} + // A rule captures data quality intent about a data source. message DataQualityRule { // Evaluates whether each column value lies between a specified range.