diff --git a/build.sbt b/build.sbt index 401126eabfaf..e9d965a1bdd0 100644 --- a/build.sbt +++ b/build.sbt @@ -607,11 +607,11 @@ val jline = Seq( ) // === Google ================================================================= -val googleApiClientVersion = "2.2.0" -val googleApiServicesSheetsVersion = "v4-rev612-1.25.0" -val googleAnalyticsAdminVersion = "0.62.0" -val googleAnalyticsDataVersion = "0.63.0" -val grpcVersion = "1.67.1" +val googleApiClientVersion = "2.7.1" +val googleApiServicesSheetsVersion = "v4-rev20250106-2.0.0" +val googleAnalyticsAdminVersion = "0.66.0" +val googleAnalyticsDataVersion = "0.67.0" +val grpcVersion = "1.69.0" // === Other ================================================================== @@ -5020,7 +5020,7 @@ lazy val `std-google-api` = project "com.google.apis" % "google-api-services-sheets" % googleApiServicesSheetsVersion exclude ("com.google.code.findbugs", "jsr305"), "com.google.analytics" % "google-analytics-admin" % googleAnalyticsAdminVersion exclude ("com.google.code.findbugs", "jsr305"), "com.google.analytics" % "google-analytics-data" % googleAnalyticsDataVersion exclude ("com.google.code.findbugs", "jsr305"), - "io.grpc" % "grpc-netty-shaded" % grpcVersion + "io.grpc" % "grpc-netty-shaded" % grpcVersion exclude ("com.google.code.findbugs", "jsr305") ), // Extract native libraries from grpc-netty-shaded-***.jar, and put them under // Standard/Google_Api/polyglot/lib directory. The minimized jar will @@ -5063,6 +5063,7 @@ lazy val `std-google-api` = project .dependsOn(cleanPolyglotRoot) .value ) + .dependsOn(`std-base` % "provided") .dependsOn(`std-table` % "provided") lazy val `std-database` = project diff --git a/build_tools/cli/src/lib.rs b/build_tools/cli/src/lib.rs index 2d0821575b9b..a044cdb91fd0 100644 --- a/build_tools/cli/src/lib.rs +++ b/build_tools/cli/src/lib.rs @@ -385,6 +385,9 @@ impl Processor { config.add_standard_library_test_selection( StandardLibraryTestsSelection::Selected(vec![ "Base_Tests".to_string(), + // Base Internal tests contain some cloud tests that need + // access to cloud internals + "Base_Internal_Tests".to_string(), // Table tests check integration of e.g. Postgres datalinks "Table_Tests".to_string(), // AWS tests check copying between Cloud and S3 diff --git a/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Enso_Cloud/Enso_Secret.md b/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Enso_Cloud/Enso_Secret.md index f05f1b8761b2..709454d79efb 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Enso_Cloud/Enso_Secret.md +++ b/distribution/lib/Standard/Base/0.0.0-dev/docs/api/Enso_Cloud/Enso_Secret.md @@ -12,9 +12,11 @@ - to_text self -> Standard.Base.Any.Any - type Enso_Secret - create name:Standard.Base.Data.Text.Text value:Standard.Base.Data.Text.Text parent:(Standard.Base.Enso_Cloud.Enso_File.Enso_File|Standard.Base.Nothing.Nothing)= -> Standard.Base.Any.Any + - credential_service_name self -> (Standard.Base.Data.Text.Text|Standard.Base.Nothing.Nothing) - delete self -> Standard.Base.Any.Any - exists name:Standard.Base.Data.Text.Text parent:(Standard.Base.Enso_Cloud.Enso_File.Enso_File|Standard.Base.Nothing.Nothing)= -> Standard.Base.Any.Any - get name:Standard.Base.Data.Text.Text parent:(Standard.Base.Enso_Cloud.Enso_File.Enso_File|Standard.Base.Nothing.Nothing)= -> Standard.Base.Any.Any + - is_credential self -> Standard.Base.Data.Boolean.Boolean - list parent:(Standard.Base.Enso_Cloud.Enso_File.Enso_File|Standard.Base.Nothing.Nothing)= -> Standard.Base.Any.Any - name self -> Standard.Base.Any.Any - path self -> Standard.Base.Any.Any @@ -28,6 +30,7 @@ - type Enso_Secret_Error - Access_Denied - to_display_text self -> Standard.Base.Any.Any +- as_credential_reference secret:Standard.Base.Enso_Cloud.Enso_Secret.Enso_Secret -> Standard.Base.Enso_Cloud.Enso_Secret.CredentialReference - as_hideable_value value:(Standard.Base.Data.Text.Text|Standard.Base.Enso_Cloud.Enso_Secret.Enso_Secret|Standard.Base.Enso_Cloud.Enso_Secret.Derived_Secret_Value) -> Standard.Base.Any.Any - secret_asset_uri secret:Standard.Base.Any.Any -> Standard.Base.Any.Any - secret_resource_uri secret:Standard.Base.Any.Any -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Enso_Secret.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Enso_Secret.enso index 698c3cba1cb8..81bd760ea964 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Enso_Secret.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Enso_Secret.enso @@ -6,6 +6,7 @@ import project.Data.Vector.Vector import project.Enso_Cloud.Enso_File.Enso_Asset_Type import project.Enso_Cloud.Enso_File.Enso_File import project.Enso_Cloud.Internal.Enso_Path.Enso_Path +import project.Enso_Cloud.Internal.Existing_Enso_Asset.Credential_Secret_Metadata import project.Enso_Cloud.Internal.Existing_Enso_Asset.Existing_Enso_Asset import project.Enso_Cloud.Internal.Utils import project.Error.Error @@ -15,6 +16,7 @@ import project.Network.HTTP.HTTP import project.Network.HTTP.HTTP_Method.HTTP_Method import project.Network.URI.URI import project.Nothing.Nothing +import project.Runtime import project.Runtime.Context from project.Data.Boolean import Boolean, False, True from project.Data.Text.Extensions import all @@ -27,11 +29,12 @@ polyglot java import org.enso.base.enso_cloud.HideableValue.Base64EncodeValue polyglot java import org.enso.base.enso_cloud.HideableValue.ConcatValues polyglot java import org.enso.base.enso_cloud.HideableValue.PlainValue polyglot java import org.enso.base.enso_cloud.HideableValue.SecretValue +polyglot java import org.enso.base.enso_cloud.ExternalLibraryCredentialHelper.CredentialReference ## A reference to a secret stored in the Enso Cloud. type Enso_Secret ## PRIVATE - private Value internal_name:Text id:Text internal_path:Enso_Path + private Value internal_name:Text id:Text internal_path:Enso_Path credential_metadata:Credential_Secret_Metadata|Nothing ## GROUP Metadata ICON metadata @@ -69,7 +72,9 @@ type Enso_Secret Error.throw (Illegal_Argument.Error message) error_handlers = Dictionary.from_vector [["resource_already_exists", handle_already_exists]] id = Utils.http_request_as_json HTTP_Method.Post Utils.secrets_api body error_handlers=error_handlers - Enso_Secret.Value name id path + # A secret created using the regular flow is a normal secret, so it does not contain credential metadata + credential_metadata = Nothing + Enso_Secret.Value name id path credential_metadata ## GROUP Output ICON trash @@ -93,7 +98,7 @@ type Enso_Secret effective_parent = parent.if_nothing Enso_File.current_working_directory secrets_as_assets = list_assets effective_parent . filter f-> f.asset_type == Enso_Asset_Type.Secret secrets_as_assets.map asset-> - Enso_Secret.Value asset.title asset.id (effective_parent.enso_path.resolve asset.title) + _from_asset asset (effective_parent.enso_path.resolve asset.title) ## GROUP EnsoCloud ICON key @@ -125,7 +130,7 @@ type Enso_Secret asset = Existing_Enso_Asset.resolve_path path if_not_found=(Error.throw Not_Found) parsed_path = Enso_Path.parse path parsed_path.if_not_error <| if asset.asset_type != Enso_Asset_Type.Secret then Error.throw (Illegal_Argument.Error "The provided path points to "+asset.asset_type.to_text+", not a Secret.") else - Enso_Secret.Value asset.title asset.id parsed_path + _from_asset asset parsed_path ## GROUP EnsoCloud ICON metadata @@ -162,18 +167,22 @@ type Enso_Secret ## PRIVATE Returns a text representation of the secret. to_text : Text - to_text self = "Enso_Secret " + self.path.to_text + to_text self = + "Enso_Secret" + (_credential_info_text self) + " " + self.path.to_text ## PRIVATE Returns a display text representation of the secret. to_display_text : Text - to_display_text self = "Enso_Secret {" + self.name + "}" + to_display_text self = + "Enso_Secret {" + self.name + (_credential_info_text self) + "}" ## PRIVATE Converts the secret to a JSON object. to_js_object : JS_Object to_js_object self = - JS_Object.from_pairs [["type", "Enso_Secret"], ["constructor", "get"], ["path", self.path.to_text]] + extra = if self.credential_metadata.is_nothing then [] else + [["credential_for", self.credential_metadata.service_name]] + JS_Object.from_pairs [["type", "Enso_Secret"], ["constructor", "get"], ["path", self.path.to_text]]+extra ## PRIVATE GROUP convert @@ -182,6 +191,21 @@ type Enso_Secret pretty : Text pretty self = "Enso_Secret.get " + self.path.to_text.pretty + ## PRIVATE + Checks if this secret is a regular text value or a credential used for + connecting with external services. + + Regular secrets and credentials can be used in different contexts. + is_credential self -> Boolean = self.credential_metadata.is_nothing.not + + ## PRIVATE + Returns the name of the service that this credential is associated with, or Nothing if this secret is not a credential. + + Useful in filtering credentials for widgets. + credential_service_name self -> Text | Nothing = + self.credential_metadata.if_not_nothing <| + self.credential_metadata.service_name + ## PRIVATE type Enso_Secret_Error ## PRIVATE @@ -214,8 +238,9 @@ type Derived_Secret_Value to_plain_text : Text ! Enso_Secret_Error to_plain_text self = java_repr = as_hideable_value self - if java_repr.containsSecrets then Error.throw Enso_Secret_Error.Access_Denied else - java_repr.safeResolve + if java_repr.containsSecrets then + Error.throw Enso_Secret_Error.Access_Denied + java_repr.safeResolve ## PRIVATE to_text : Text @@ -240,12 +265,24 @@ Derived_Secret_Value.from (that : Enso_Secret) = Derived_Secret_Value.Secret_Val as_hideable_value : Text | Enso_Secret | Derived_Secret_Value -> HideableValue as_hideable_value (value : Text | Enso_Secret | Derived_Secret_Value) = case value of text : Text -> HideableValue.PlainValue.new text - secret : Enso_Secret -> HideableValue.SecretValue.new secret.id + secret : Enso_Secret -> + if secret.is_credential then + Error.throw (Illegal_Argument.Error "A credential for "+secret.credential_service_name+" cannot be used as a regular secret value. Credentials can only be used in their corresponding services.") + HideableValue.SecretValue.new secret.id Derived_Secret_Value.Plain_Text text -> as_hideable_value text Derived_Secret_Value.Secret_Value secret -> as_hideable_value secret Derived_Secret_Value.Concat left right -> HideableValue.ConcatValues.new (as_hideable_value left) (as_hideable_value right) Derived_Secret_Value.Base_64_Encode inner -> HideableValue.Base64EncodeValue.new (as_hideable_value inner) +## PRIVATE + Used by library implementations to convert an Enso object into the Java counterpart. +as_credential_reference (secret : Enso_Secret) -> CredentialReference = + case secret.credential_metadata of + Nothing -> + Error.throw (Illegal_Argument.Error "Secret "+secret.name+" is not a credential.") + metadata -> + CredentialReference.new secret.id metadata.service_name + ## PRIVATE secret_resource_uri secret = Utils.secrets_api + "/" + secret.id @@ -253,3 +290,17 @@ secret_resource_uri secret = ## PRIVATE secret_asset_uri secret = Utils.assets_api + "/" + secret.id + +private _from_asset (asset : Existing_Enso_Asset) (path : Enso_Path) -> Enso_Secret = + Runtime.assert (asset.metadata != Nothing) + Enso_Secret.Value asset.title asset.id path asset.metadata.credential_metadata + +private _credential_info_text (secret : Enso_Secret) -> Text = + case secret.credential_metadata of + Nothing -> "" + credential_metadata -> + state_suffix = case credential_metadata.state of + "Expired" -> " (expired)" + "WaitingForAuthentication" -> " (waiting for authentication)" + _ -> "" + " (credentials for "+credential_metadata.service_name+state_suffix+")" diff --git a/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Internal/Existing_Enso_Asset.enso b/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Internal/Existing_Enso_Asset.enso index b95f9508d9d0..d8d139d2a992 100644 --- a/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Internal/Existing_Enso_Asset.enso +++ b/distribution/lib/Standard/Base/0.0.0-dev/src/Enso_Cloud/Internal/Existing_Enso_Asset.enso @@ -129,7 +129,7 @@ asset_type_from_id id:Text -> Enso_Asset_Type = The asset metadata that is currently automatically included as part of the path resolution response. type Asset_Metadata ## PRIVATE - Value modified_at:Date_Time description:Text|Nothing labels:Vector + Value modified_at:Date_Time description:Text|Nothing labels:Vector credential_metadata:Credential_Secret_Metadata|Nothing ## PRIVATE from_json json -> Asset_Metadata = @@ -138,7 +138,21 @@ type Asset_Metadata . catch Time_Error error-> Error.throw (Enso_Cloud_Error.Invalid_Response_Payload error) description = get_optional_field "description" json expected_type=Text labels = get_optional_field "labels" json expected_type=Vector if_missing=[] - Asset_Metadata.Value modified_at description labels + + credential_metadata_field = get_optional_field "credentialMetadata" json expected_type=JS_Object + credential_metadata = credential_metadata_field.if_not_nothing <| + service_name = get_required_field "serviceName" credential_metadata_field expected_type=Text + state = get_required_field "state" credential_metadata_field expected_type=Text + expiration_date_text = get_optional_field "expirationDate" credential_metadata_field expected_type=Text + expiration_date = expiration_date_text.if_not_nothing <| + Date_Time.parse expiration_date_text Date_Time_Formatter.iso_offset_date_time + . catch Time_Error error-> Error.throw (Enso_Cloud_Error.Invalid_Response_Payload error) + Credential_Secret_Metadata.Value service_name state expiration_date + Asset_Metadata.Value modified_at description labels credential_metadata + +## PRIVATE +type Credential_Secret_Metadata + Value service_name:Text state:Text expiration_date:Date_Time|Nothing ## PRIVATE type Asset_Cache diff --git a/distribution/lib/Standard/Database/0.0.0-dev/docs/api/Internal/JDBC_Connection.md b/distribution/lib/Standard/Database/0.0.0-dev/docs/api/Internal/JDBC_Connection.md index 8a23ea9f6438..6619625829f6 100644 --- a/distribution/lib/Standard/Database/0.0.0-dev/docs/api/Internal/JDBC_Connection.md +++ b/distribution/lib/Standard/Database/0.0.0-dev/docs/api/Internal/JDBC_Connection.md @@ -17,8 +17,10 @@ - with_prepared_statement self query:Standard.Base.Any.Any statement_setter:Standard.Base.Any.Any action:Standard.Base.Any.Any skip_log:Standard.Base.Any.Any= -> Standard.Base.Any.Any - close_connection connection:Standard.Base.Any.Any -> Standard.Base.Any.Any - create url:Standard.Base.Any.Any properties:Standard.Base.Any.Any -> Standard.Base.Any.Any +- from_java java_jdbc_connection:Standard.Base.Any.Any -> Standard.Base.Any.Any - get_pragma_value jdbc_connection:Standard.Base.Any.Any sql:Standard.Base.Any.Any -> Standard.Base.Any.Any - handle_sql_errors ~action:Standard.Base.Any.Any related_query:Standard.Base.Any.Any= -> Standard.Base.Any.Any - log_sql_if_enabled jdbc_connection:Standard.Base.Any.Any ~query_text:Standard.Base.Any.Any -> Standard.Base.Any.Any - profile_sql_if_enabled jdbc_connection:Standard.Database.Internal.JDBC_Connection.JDBC_Connection ~query_text:Standard.Base.Data.Text.Text ~action:Standard.Base.Any.Any -> Standard.Base.Any.Any +- properties_as_java_props properties:Standard.Base.Any.Any -> Standard.Base.Any.Any - set_statement_values stmt:Standard.Base.Any.Any statement_setter:Standard.Base.Any.Any values:Standard.Base.Any.Any expected_type_hints:Standard.Base.Any.Any= -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Database/0.0.0-dev/src/Internal/JDBC_Connection.enso b/distribution/lib/Standard/Database/0.0.0-dev/src/Internal/JDBC_Connection.enso index d1a68eacdd6d..52121b1af2aa 100644 --- a/distribution/lib/Standard/Database/0.0.0-dev/src/Internal/JDBC_Connection.enso +++ b/distribution/lib/Standard/Database/0.0.0-dev/src/Internal/JDBC_Connection.enso @@ -275,15 +275,22 @@ type JDBC_Connection - properties: A vector of properties for the connection. create : Text -> Vector -> JDBC_Connection create url properties = handle_sql_errors <| - java_props = properties.map pair-> + java_connection = JDBCProxy.getConnection url (properties_as_java_props properties) + from_java java_connection + +## PRIVATE +properties_as_java_props properties = + properties.map pair-> # Some parameters may be passed by the dialect as a `HideableValue` directly, so they do not need to be converted. value = pair.second java_value = if value.is_a HideableValue then value else as_hideable_value value Java_Pair.create pair.first java_value - java_connection = JDBCProxy.getConnection url java_props - resource = Managed_Resource.register java_connection close_connection +## PRIVATE + A special method used by dialects that construct a Java JDBC connection using some custom logic. +from_java java_jdbc_connection = + resource = Managed_Resource.register java_jdbc_connection close_connection synchronizer = OperationSynchronizer.new JDBC_Connection.Value resource synchronizer diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/NOTICE b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/NOTICE index 41a3f367abdf..192532602c46 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/NOTICE +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/NOTICE @@ -3,12 +3,12 @@ Copyright 2020 - 2025 New Byte Order sp. z o. o. 'google-analytics-admin', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.analytics.google-analytics-admin-0.62.0`. +Copyright notices related to this dependency can be found in the directory `com.google.analytics.google-analytics-admin-0.66.0`. 'google-analytics-data', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.analytics.google-analytics-data-0.63.0`. +Copyright notices related to this dependency can be found in the directory `com.google.analytics.google-analytics-data-0.67.0`. 'annotations', licensed under the Apache 2.0, is distributed with the Google_Api. @@ -18,67 +18,67 @@ Copyright notices related to this dependency can be found in the directory `com. 'google-api-client', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api-client.google-api-client-2.2.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api-client.google-api-client-2.7.1`. 'api-common', licensed under the BSD-3-Clause, is distributed with the Google_Api. The license information can be found along with the copyright notices. -Copyright notices related to this dependency can be found in the directory `com.google.api.api-common-2.38.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.api-common-2.42.1`. 'gax', licensed under the BSD-3-Clause, is distributed with the Google_Api. The license information can be found along with the copyright notices. -Copyright notices related to this dependency can be found in the directory `com.google.api.gax-2.55.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.gax-2.59.1`. 'gax-grpc', licensed under the BSD-3-Clause, is distributed with the Google_Api. The license file can be found at `licenses/BSD-3-Clause`. -Copyright notices related to this dependency can be found in the directory `com.google.api.gax-grpc-2.55.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.gax-grpc-2.59.1`. 'gax-httpjson', licensed under the BSD-3-Clause, is distributed with the Google_Api. The license file can be found at `licenses/BSD-3-Clause`. -Copyright notices related to this dependency can be found in the directory `com.google.api.gax-httpjson-2.55.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.gax-httpjson-2.59.1`. 'proto-google-analytics-admin-v1alpha', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0`. 'proto-google-analytics-admin-v1beta', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0`. 'proto-google-analytics-data-v1alpha', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0`. 'proto-google-analytics-data-v1beta', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0`. 'proto-google-common-protos', licensed under the Apache-2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-common-protos-2.46.0`. +Copyright notices related to this dependency can be found in the directory `com.google.api.grpc.proto-google-common-protos-2.50.1`. 'google-api-services-sheets', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.apis.google-api-services-sheets-v4-rev612-1.25.0`. +Copyright notices related to this dependency can be found in the directory `com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0`. 'google-auth-library-credentials', licensed under the BSD New license, is distributed with the Google_Api. The license file can be found at `licenses/BSD-3-Clause`. -Copyright notices related to this dependency can be found in the directory `com.google.auth.google-auth-library-credentials-1.28.0`. +Copyright notices related to this dependency can be found in the directory `com.google.auth.google-auth-library-credentials-1.30.1`. 'google-auth-library-oauth2-http', licensed under the BSD New license, is distributed with the Google_Api. The license file can be found at `licenses/BSD-3-Clause`. -Copyright notices related to this dependency can be found in the directory `com.google.auth.google-auth-library-oauth2-http-1.28.0`. +Copyright notices related to this dependency can be found in the directory `com.google.auth.google-auth-library-oauth2-http-1.30.1`. 'auto-value-annotations', licensed under the Apache 2.0, is distributed with the Google_Api. @@ -93,7 +93,7 @@ Copyright notices related to this dependency can be found in the directory `com. 'error_prone_annotations', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.errorprone.error_prone_annotations-2.33.0`. +Copyright notices related to this dependency can be found in the directory `com.google.errorprone.error_prone_annotations-2.36.0`. 'failureaccess', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. @@ -103,22 +103,22 @@ Copyright notices related to this dependency can be found in the directory `com. 'guava', licensed under the Apache License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.guava.guava-33.3.1-jre`. +Copyright notices related to this dependency can be found in the directory `com.google.guava.guava-33.4.0-jre`. 'google-http-client', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-1.45.0`. +Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-1.45.3`. 'google-http-client-apache-v2', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-apache-v2-1.42.3`. +Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-apache-v2-1.45.2`. 'google-http-client-gson', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-gson-1.45.0`. +Copyright notices related to this dependency can be found in the directory `com.google.http-client.google-http-client-gson-1.45.3`. 'j2objc-annotations', licensed under the Apache License, Version 2.0, is distributed with the Google_Api. @@ -128,7 +128,7 @@ Copyright notices related to this dependency can be found in the directory `com. 'google-oauth-client', licensed under the The Apache Software License, Version 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `com.google.oauth-client.google-oauth-client-1.34.1`. +Copyright notices related to this dependency can be found in the directory `com.google.oauth-client.google-oauth-client-1.36.0`. 'protobuf-java', licensed under the BSD-3-Clause, is distributed with the Google_Api. @@ -158,77 +158,77 @@ Copyright notices related to this dependency can be found in the directory `comm 'grpc-alts', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-alts-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-alts-1.69.0`. 'grpc-api', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-api-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-api-1.69.0`. 'grpc-auth', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-auth-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-auth-1.69.0`. 'grpc-context', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-context-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-context-1.69.0`. 'grpc-core', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-core-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-core-1.69.0`. 'grpc-googleapis', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-googleapis-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-googleapis-1.69.0`. 'grpc-grpclb', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-grpclb-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-grpclb-1.69.0`. 'grpc-inprocess', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-inprocess-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-inprocess-1.69.0`. 'grpc-netty-shaded', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-netty-shaded-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-netty-shaded-1.69.0`. 'grpc-protobuf', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-protobuf-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-protobuf-1.69.0`. 'grpc-protobuf-lite', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-protobuf-lite-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-protobuf-lite-1.69.0`. 'grpc-services', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-services-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-services-1.69.0`. 'grpc-stub', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-stub-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-stub-1.69.0`. 'grpc-util', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-util-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-util-1.69.0`. 'grpc-xds', licensed under the Apache 2.0, is distributed with the Google_Api. The license file can be found at `licenses/APACHE2.0`. -Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-xds-1.67.1`. +Copyright notices related to this dependency can be found in the directory `io.grpc.grpc-xds-1.69.0`. 'opencensus-api', licensed under the The Apache License, Version 2.0, is distributed with the Google_Api. @@ -263,7 +263,7 @@ Copyright notices related to this dependency can be found in the directory `org. 'checker-qual', licensed under the The MIT License, is distributed with the Google_Api. The license information can be found along with the copyright notices. -Copyright notices related to this dependency can be found in the directory `org.checkerframework.checker-qual-3.47.0`. +Copyright notices related to this dependency can be found in the directory `org.checkerframework.checker-qual-3.48.3`. 'animal-sniffer-annotations', licensed under the MIT license, is distributed with the Google_Api. diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.62.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.62.0/NOTICES deleted file mode 100644 index 962950013963..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.62.0/NOTICES +++ /dev/null @@ -1 +0,0 @@ -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.66.0/NOTICES similarity index 89% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.66.0/NOTICES index 691a4d40d382..7e8885cd4599 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/NOTICES +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-admin-0.66.0/NOTICES @@ -1,17 +1,15 @@ -/* - * 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. +/* + * Copyright 2025 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. */ - -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.63.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.63.0/NOTICES deleted file mode 100644 index 962950013963..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.63.0/NOTICES +++ /dev/null @@ -1 +0,0 @@ -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.67.0/NOTICES similarity index 89% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.67.0/NOTICES index 691a4d40d382..7e8885cd4599 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/NOTICES +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.analytics.google-analytics-data-0.67.0/NOTICES @@ -1,17 +1,15 @@ -/* - * 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. +/* + * Copyright 2025 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. */ - -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api-client.google-api-client-2.2.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api-client.google-api-client-2.7.1/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api-client.google-api-client-2.2.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api-client.google-api-client-2.7.1/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.38.0/BSD-3-LICENSE.txt b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.42.1/BSD-3-LICENSE.txt similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.38.0/BSD-3-LICENSE.txt rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.42.1/BSD-3-LICENSE.txt diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.38.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.42.1/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.38.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.api-common-2.42.1/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.55.0/BSD-3-LICENSE.txt b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.59.1/BSD-3-LICENSE.txt similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.55.0/BSD-3-LICENSE.txt rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.59.1/BSD-3-LICENSE.txt diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.55.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.59.1/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.55.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-2.59.1/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.59.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.59.1/NOTICES new file mode 100644 index 000000000000..2a10a99d7738 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.59.1/NOTICES @@ -0,0 +1,209 @@ +/* + * Copyright 2016 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2017 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2018 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2019 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2020 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2021 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2022 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.55.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.55.0/NOTICES deleted file mode 100644 index 9f56992b00c7..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.55.0/NOTICES +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2023 Google LLC - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google LLC nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - -Copyright 2017 Google LLC - -Copyright 2018 Google LLC - -Copyright 2020 Google LLC - -Copyright 2021 Google LLC - -Copyright 2022 Google LLC - -Redistributions of source code must retain the above copyright - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - -copyright notice, this list of conditions and the following disclaimer diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.59.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.59.1/NOTICES new file mode 100644 index 000000000000..d7b2d8537463 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-httpjson-2.59.1/NOTICES @@ -0,0 +1,179 @@ +/* + * Copyright 2017 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2018 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2020 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2021 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2022 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2023 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/NOTICES new file mode 100644 index 000000000000..d1ff258c4139 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/NOTICES @@ -0,0 +1,3 @@ +Copyright 2024 Google LLC + +Copyright 2025 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/NOTICES new file mode 100644 index 000000000000..d1ff258c4139 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/NOTICES @@ -0,0 +1,3 @@ +Copyright 2024 Google LLC + +Copyright 2025 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/NOTICES new file mode 100644 index 000000000000..d1ff258c4139 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/NOTICES @@ -0,0 +1,3 @@ +Copyright 2024 Google LLC + +Copyright 2025 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/NOTICES new file mode 100644 index 000000000000..d1ff258c4139 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/NOTICES @@ -0,0 +1,3 @@ +Copyright 2024 Google LLC + +Copyright 2025 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.46.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.46.0/NOTICES deleted file mode 100644 index 962950013963..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.46.0/NOTICES +++ /dev/null @@ -1 +0,0 @@ -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.50.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.50.1/NOTICES new file mode 100644 index 000000000000..d1ff258c4139 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-common-protos-2.50.1/NOTICES @@ -0,0 +1,3 @@ +Copyright 2024 Google LLC + +Copyright 2025 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/NOTICES new file mode 100644 index 000000000000..533c1bdf0474 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/NOTICES @@ -0,0 +1,2 @@ +Copyright 2011-2025 Google. All rights reserved. + diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/NOTICES deleted file mode 100644 index 894ad696748f..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/NOTICES +++ /dev/null @@ -1 +0,0 @@ -Copyright 2010 Google Inc. diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.28.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.28.0/NOTICES deleted file mode 100644 index dd8b99806184..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.28.0/NOTICES +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2015, Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -Copyright 2016, Google Inc. All rights reserved. - -Copyright 2022 Google LLC - -Copyright 2024 Google LLC - -Copyright 2024, Google Inc. All rights reserved. diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.30.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.30.1/NOTICES new file mode 100644 index 000000000000..d043307c419e --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-credentials-1.30.1/NOTICES @@ -0,0 +1,154 @@ +/* + * Copyright 2015, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2016, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2022 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2024 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2024, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.30.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.30.1/NOTICES new file mode 100644 index 000000000000..9f107c8164f5 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.30.1/NOTICES @@ -0,0 +1,435 @@ +/* + * Copyright 2015, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2016, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2017, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2018, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2019, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2019, Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2020, Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2021 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2022 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2022, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2023 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2023, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2024 Google LLC + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google LLC nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright 2024, Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +Redistributions of source code must retain the above copyright diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.errorprone.error_prone_annotations-2.33.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.errorprone.error_prone_annotations-2.36.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.errorprone.error_prone_annotations-2.33.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.errorprone.error_prone_annotations-2.36.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.3.1-jre/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.4.0-jre/NOTICES similarity index 76% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.3.1-jre/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.4.0-jre/NOTICES index ed98adc0ff15..92910343b56e 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.3.1-jre/NOTICES +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.guava.guava-33.4.0-jre/NOTICES @@ -21,13 +21,25 @@ * the License. */ +/* + * Copyright (C) 2006 The Guava 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. + */ + /* * MurmurHash3 was written by Austin Appleby, and is placed in the public * domain. The author hereby disclaims copyright to this source code. */ -Copyright (C) 2006 The Guava Authors - Copyright (C) 2007 The Guava Authors Copyright (C) 2008 The Guava Authors diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.0/NOTICES deleted file mode 100644 index 4c4519f9b61f..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.0/NOTICES +++ /dev/null @@ -1,3 +0,0 @@ -Copyright (c) 2010 Google Inc. - -Copyright 2012 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.3/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.3/NOTICES new file mode 100644 index 000000000000..f8abf04b14f3 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-1.45.3/NOTICES @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2011 Google Inc. + * + * 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. + */ + +Copyright (c) 2010 Google Inc. + +Copyright (c) 2010 Google Inc.J + +Copyright (c) 2012 Google Inc. + +Copyright (c) 2013 Google Inc. + +Copyright (c) 2014 Google Inc. + +Copyright (c) 2018 Google Inc. + +Copyright 2012 Google LLC + +Copyright 2012 Google LLC. + +Copyright 2019 Google LLC + +Copyright 2020 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-apache-v2-1.45.2/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-apache-v2-1.45.2/NOTICES new file mode 100644 index 000000000000..7a1e6742bee8 --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-apache-v2-1.45.2/NOTICES @@ -0,0 +1,13 @@ +/* + * Copyright 2019 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 + * + * 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. + */ diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-gson-1.45.3/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-gson-1.45.3/NOTICES new file mode 100644 index 000000000000..25229ac5950e --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-gson-1.45.3/NOTICES @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2011 Google Inc. + * + * 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. + */ diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.34.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.34.1/NOTICES deleted file mode 100644 index f375483ba2a8..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.34.1/NOTICES +++ /dev/null @@ -1,3 +0,0 @@ -Copyright (c) 2010 Google Inc. - -Copyright 2021 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.28.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.36.0/NOTICES similarity index 67% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.28.0/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.36.0/NOTICES index d397837e2030..1ad760f54e37 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.auth.google-auth-library-oauth2-http-1.28.0/NOTICES +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.oauth-client.google-oauth-client-1.36.0/NOTICES @@ -1,5 +1,19 @@ /* - * Copyright 2016, Google Inc. All rights reserved. + * Copyright (c) 2010 Google Inc. + * + * 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. + */ + +/* + * Copyright 2022, Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are @@ -29,26 +43,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -Copyright 2015, Google Inc. All rights reserved. - -Copyright 2017, Google Inc. All rights reserved. +Copyright (c) 2011 Google Inc. -Copyright 2018, Google Inc. All rights reserved. +Copyright (c) 2012 Google Inc. -Copyright 2019, Google Inc. All rights reserved. - -Copyright 2019, Google LLC - -Copyright 2020, Google LLC +Copyright (c) 2013 Google Inc. Copyright 2021 Google LLC - -Copyright 2022 Google LLC - -Copyright 2022, Google Inc. All rights reserved. - -Copyright 2023 Google LLC - -Copyright 2023, Google Inc. All rights reserved. - -Copyright 2024 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.69.0/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.69.0/NOTICES new file mode 100644 index 000000000000..81cf8ff0452e --- /dev/null +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.69.0/NOTICES @@ -0,0 +1,37 @@ +/* + * Copyright 2018 The gRPC 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. + */ + +/* + * Copyright 2024 The gRPC 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. + */ + +Copyright 2019 The gRPC Authors + +Copyright 2020 The gRPC Authors + +Copyright 2021 The gRPC Authors diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-api-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-api-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-api-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-api-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-auth-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-auth-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-auth-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-auth-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.67.1/AUTHORS b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.69.0/AUTHORS similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.67.1/AUTHORS rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.69.0/AUTHORS diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.67.1/NOTICE.txt b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.69.0/NOTICE.txt similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.67.1/NOTICE.txt rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-context-1.69.0/NOTICE.txt diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-core-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-core-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-core-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-core-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-googleapis-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-googleapis-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-googleapis-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-googleapis-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-grpclb-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-grpclb-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-grpclb-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-grpclb-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-inprocess-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-inprocess-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-inprocess-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-inprocess-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.67.1/AUTHORS b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.69.0/AUTHORS similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.67.1/AUTHORS rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.69.0/AUTHORS diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.67.1/NOTICE.txt b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.69.0/NOTICE.txt similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.67.1/NOTICE.txt rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-netty-shaded-1.69.0/NOTICE.txt diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.67.1/NOTICES deleted file mode 100644 index 8e9993638b0b..000000000000 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.67.1/NOTICES +++ /dev/null @@ -1,3 +0,0 @@ -Copyright 2014 The gRPC Authors - -Copyright 2017 The gRPC Authors diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.69.0/NOTICES similarity index 80% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.69.0/NOTICES index 85ef97f15a3a..7bbf9d27fcef 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-alts-1.67.1/NOTICES +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-protobuf-lite-1.69.0/NOTICES @@ -1,5 +1,5 @@ /* - * Copyright 2018 The gRPC Authors + * Copyright 2014 The gRPC Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,8 +14,4 @@ * limitations under the License. */ -Copyright 2019 The gRPC Authors - -Copyright 2020 The gRPC Authors - -Copyright 2021 The gRPC Authors +Copyright 2017 The gRPC Authors diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-services-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-services-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-services-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-services-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-stub-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-stub-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-stub-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-stub-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-util-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-util-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-util-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-util-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-xds-1.67.1/NOTICES b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-xds-1.69.0/NOTICES similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-xds-1.67.1/NOTICES rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/io.grpc.grpc-xds-1.69.0/NOTICES diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/org.checkerframework.checker-qual-3.47.0/LICENSE.txt b/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/org.checkerframework.checker-qual-3.48.3/LICENSE.txt similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/org.checkerframework.checker-qual-3.47.0/LICENSE.txt rename to distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/org.checkerframework.checker-qual-3.48.3/LICENSE.txt diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/docs/api/Google_Sheets.md b/distribution/lib/Standard/Google_Api/0.0.0-dev/docs/api/Google_Sheets.md index e3a5ce0f1f63..6aa04e6bce3c 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/docs/api/Google_Sheets.md +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/docs/api/Google_Sheets.md @@ -1,6 +1,8 @@ ## Enso Signatures 1.0 ## module Standard.Google_Api.Google_Sheets +- type Google_Api_Error + - Error message:Standard.Base.Any.Any cause:Standard.Base.Any.Any - type Google_Sheets - Service java_service:Standard.Base.Any.Any - get_table self sheet_id:Standard.Base.Any.Any sheet_range:Standard.Base.Any.Any -> Standard.Base.Any.Any - - initialize secret_file:Standard.Base.Any.Any -> Standard.Base.Any.Any + - initialize credentials:Standard.Base.Any.Any -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/src/Google_Sheets.enso b/distribution/lib/Standard/Google_Api/0.0.0-dev/src/Google_Sheets.enso index 81fad0ef566b..ce6f5960f248 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/src/Google_Sheets.enso +++ b/distribution/lib/Standard/Google_Api/0.0.0-dev/src/Google_Sheets.enso @@ -3,15 +3,14 @@ import Standard.Base.Data.Array_Proxy.Array_Proxy import Standard.Base.Metadata.Display from Standard.Base.Metadata import make_single_choice, Widget from Standard.Base.Metadata.Widget import Single_Choice, Vector_Editor +from Standard.Base.Enso_Cloud.Enso_Secret import as_credential_reference from Standard.Table import Table -polyglot java import com.google.api.client.googleapis.auth.oauth2.GoogleCredential -polyglot java import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport -polyglot java import com.google.api.client.json.gson.GsonFactory -polyglot java import com.google.api.services.sheets.v4.Sheets -polyglot java import com.google.api.services.sheets.v4.SheetsScopes -polyglot java import java.util.Collections +polyglot java import java.io.IOException + +polyglot java import org.enso.google.GoogleSheetsHelpers +polyglot java import org.enso.google.WrappedGoogleCredentials type Google_Sheets ## PRIVATE @@ -21,18 +20,12 @@ type Google_Sheets Initializes the Google Sheets instance using the given credentials file. Arguments: - - secret_file: a file containing Google Service Account credentials to use to + - credentials: a Cloud secret or a file containing Google Service Account credentials to use to access Google services. The credentials file can be downloaded from the Google Admin Console when generating a key. - initialize : File -> Google_Sheets - initialize secret_file = - app_name = 'Enso' - credential = secret_file.with_input_stream [File_Access.Read] stream-> - stream.with_java_stream is-> - GoogleCredential.fromStream is . createScoped (Collections.singleton SheetsScopes.SPREADSHEETS) - http_transport = GoogleNetHttpTransport.newTrustedTransport - json_factory = GsonFactory.getDefaultInstance - service = Sheets.Builder.new http_transport json_factory credential . setApplicationName app_name . build + initialize : File|Enso_Secret -> Google_Sheets + initialize credentials = + service = GoogleSheetsHelpers.createService (_wrap_credentials credentials) Google_Sheets.Service service ## ICON data_input @@ -45,8 +38,28 @@ type Google_Sheets `'Sheet1!A1:B7'`. get_table : Text -> Text -> Table get_table self sheet_id sheet_range = - request = self.java_service.spreadsheets.values.get sheet_id sheet_range . setMajorDimension 'COLUMNS' . setValueRenderOption 'UNFORMATTED_VALUE' - response = request.execute - values = Vector.from_polyglot_array response.getValues - columned = values.map v-> [v.first, v.drop 1] - Table.new columned + values = _handle_exceptions <| + self.java_service.getSheetRange sheet_id sheet_range + # The first entry is the column name (A, B, ...) and the rest are the values. + column_vectors = values.map v-> [v.first, v.drop 1] + # The column lengths may not necessarily be the same, but Table.new expects the same lengths, so we normalize: + row_count = column_vectors.map (p-> p.second.length) . compute ..Maximum + normalized = column_vectors.map p-> + [p.first, p.second.pad row_count Nothing] + Table.new normalized + +type Google_Api_Error + Error message cause + +private _handle_exceptions ~action = + Panic.catch IOException action caught_panic-> + Error.throw (Google_Api_Error.Error caught_panic.payload.to_text caught_panic.payload) + +private _wrap_credentials credential:File|Enso_Secret = + case credential of + secret : Enso_Secret -> + WrappedGoogleCredentials.SecretCredentials.new (as_credential_reference secret) + secret_file : File -> + secret_file.with_input_stream [File_Access.Read] stream-> + stream.with_java_stream java_input_stream-> + WrappedGoogleCredentials.LocalFileCredentials.fromStream java_input_stream diff --git a/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Connection/Snowflake_Details.md b/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Connection/Snowflake_Details.md index fcc549315cb7..12064cdf72fd 100644 --- a/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Connection/Snowflake_Details.md +++ b/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Connection/Snowflake_Details.md @@ -1,8 +1,7 @@ ## Enso Signatures 1.0 ## module Standard.Snowflake.Connection.Snowflake_Details - type Snowflake_Details - - Snowflake account:Standard.Base.Data.Text.Text= credentials:(Standard.Database.Connection.Credentials.Credentials|Standard.Snowflake.Connection.Key_Pair_Credentials.Key_Pair_Credentials)= database:Standard.Base.Data.Text.Text= schema:Standard.Base.Data.Text.Text= warehouse:Standard.Base.Data.Text.Text= + - Snowflake account:Standard.Base.Data.Text.Text= credentials:(Standard.Database.Connection.Credentials.Credentials|Standard.Snowflake.Connection.Key_Pair_Credentials.Key_Pair_Credentials|Standard.Base.Enso_Cloud.Enso_Secret.Enso_Secret)= database:Standard.Base.Data.Text.Text= schema:Standard.Base.Data.Text.Text= warehouse:Standard.Base.Data.Text.Text= - connect self options:Standard.Base.Any.Any allow_data_links:Standard.Base.Data.Boolean.Boolean= -> Standard.Base.Any.Any - - jdbc_properties self -> Standard.Base.Any.Any - jdbc_url self -> Standard.Base.Any.Any - resolve constructor:Standard.Base.Any.Any -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Snowflake_Connection.md b/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Snowflake_Connection.md index 2e105e6cee91..f8b64423c77b 100644 --- a/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Snowflake_Connection.md +++ b/distribution/lib/Standard/Snowflake/0.0.0-dev/docs/api/Snowflake_Connection.md @@ -1,10 +1,8 @@ ## Enso Signatures 1.0 ## module Standard.Snowflake.Snowflake_Connection - type Snowflake_Connection - - Value connection:Standard.Base.Any.Any make_new:Standard.Base.Any.Any - base_connection self -> Standard.Base.Any.Any - close self -> Standard.Base.Any.Any - - create url:Standard.Base.Any.Any properties:Standard.Base.Any.Any make_new:Standard.Base.Any.Any data_link_setup:Standard.Base.Any.Any -> Standard.Base.Any.Any - create_table self table_name:Standard.Base.Data.Text.Text structure:(Standard.Base.Any.Any|Standard.Database.DB_Table.DB_Table|Standard.Table.Table.Table) primary_key:(Standard.Base.Any.Any|Standard.Base.Nothing.Nothing)= temporary:Standard.Base.Data.Boolean.Boolean= allow_existing:Standard.Base.Data.Boolean.Boolean= on_problems:Standard.Base.Errors.Problem_Behavior.Problem_Behavior= -> Standard.Base.Any.Any - database self -> Standard.Base.Any.Any - databases self -> Standard.Base.Any.Any diff --git a/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Connection/Snowflake_Details.enso b/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Connection/Snowflake_Details.enso index eef1a4d2278e..86d9f9c60750 100644 --- a/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Connection/Snowflake_Details.enso +++ b/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Connection/Snowflake_Details.enso @@ -2,10 +2,8 @@ from Standard.Base import all import Standard.Base.Data.Numbers.Number_Parse_Error import Standard.Base.Errors.Common.Missing_Argument import Standard.Base.Errors.Common.Type_Error -import Standard.Base.Errors.Illegal_Argument.Illegal_Argument import Standard.Base.Errors.Illegal_State.Illegal_State import Standard.Base.Metadata.Widget.Text_Input -from Standard.Base.Enso_Cloud.Enso_Secret import as_hideable_value import Standard.Database.Connection.Connection_Options.Connection_Options import Standard.Database.Connection.Credentials.Credentials @@ -17,7 +15,6 @@ import project.Connection.Widgets import project.Snowflake_Connection.Snowflake_Connection polyglot java import net.snowflake.client.jdbc.SnowflakeDriver -polyglot java import org.enso.base.enso_cloud.InterpretAsPrivateKey type Snowflake_Details ## Connect to a Snowflake database. @@ -25,12 +22,14 @@ type Snowflake_Details Arguments: - account: The name of the account to connect to. - credentials: The credentials to use for the connection. + This can either be username/password pair, a `Key_Pair_Credentials` + for private key authentication or a credential created in the dashboard. - database: The name of the database to connect to. - schema: The name of the schema to connect to. - warehouse: The name of the warehouse to use. @account (Text_Input display=..Always) @credentials Widgets.password_or_keypair_widget - Snowflake (account:Text=(Missing_Argument.throw "account")) (credentials:Credentials|Key_Pair_Credentials=(Missing_Argument.throw "credentials")) database:Text="SNOWFLAKE" schema:Text="PUBLIC" warehouse:Text="" + Snowflake (account:Text=(Missing_Argument.throw "account")) (credentials:Credentials|Key_Pair_Credentials|Enso_Secret=(Missing_Argument.throw "credentials")) database:Text="SNOWFLAKE" schema:Text="PUBLIC" warehouse:Text="" ## PRIVATE Attempt to resolve the constructor. @@ -47,14 +46,14 @@ type Snowflake_Details connect self options (allow_data_links : Boolean = True) = data_link_setup = if allow_data_links then Data_Link_Setup.Available (create_data_link_structure self) else Data_Link_Setup.already_a_data_link - properties = options.merge self.jdbc_properties + properties = options.merge self.common_jdbc_properties ## Cannot use default argument values as gets in an infinite loop if you do. make_new database schema warehouse = Snowflake_Details.Snowflake self.account self.credentials (database.if_nothing self.database) (schema.if_nothing self.schema) (warehouse.if_nothing self.warehouse) . connect options allow_data_links _enhance_connection_errors self <| - Snowflake_Connection.create self.jdbc_url properties make_new data_link_setup + Snowflake_Connection.create self.jdbc_url properties self.credentials make_new data_link_setup ## PRIVATE Provides the jdbc url for the connection. @@ -63,37 +62,20 @@ type Snowflake_Details 'jdbc:snowflake://' + self.account + ".snowflakecomputing.com" ## PRIVATE - Provides the properties for the connection. - jdbc_properties : Vector (Pair Text Text) - jdbc_properties self = + Provides common properties for the connection, excluding the ones related to credentials. + private common_jdbc_properties self -> Vector (Pair Text Text) = ## If Arrow dependency is to be avoided (https://community.snowflake.com/s/article/SAP-BW-Java-lang-NoClassDefFoundError-for-Apache-arrow) ## [Pair.new 'jdbc_query_result_format' 'json'] ## should be prepended to properties. That would make it fallback to plain `json`. account = [Pair.new 'account' self.account] - credentials = case self.credentials of - Credentials.Username_And_Password username password -> [Pair.new 'user' username, Pair.new 'password' password] - Key_Pair_Credentials.Key_Pair username private_key passphrase -> - key_part = case private_key of - local_file : File -> - passphrase_part = if passphrase != Nothing then [Pair.new 'private_key_file_pwd' passphrase] else [] - [Pair.new 'private_key_file' local_file.absolute.path] + passphrase_part - _ : Enso_File -> - Error.throw (Illegal_Argument.Error "Currently only local files can be used as private keys. In Cloud, consider using a Secret instead of a file.") - secret : Enso_Secret -> - if passphrase != Nothing then - Error.throw (Illegal_Argument.Error "Passphrase is not applicable when using a secret as a private key.") - secret_as_private_key = InterpretAsPrivateKey.new (as_hideable_value secret) - [Pair.new 'privateKey' secret_as_private_key] - [Pair.new 'user' username] + key_part - database = [Pair.new 'db' self.database] schema = [Pair.new 'schema' self.schema] warehouse = if self.warehouse=="" then [] else [Pair.new 'warehouse' self.warehouse] ## Control the format of TIMESTAMP and TIME fields formats = [Pair.new "TIME_OUTPUT_FORMAT" "HH24:MI:SS.FF9", Pair.new "TIMESTAMP_OUTPUT_FORMAT" "YYYY-MM-DD HH24:MI:SS.FF9 TZHTZM", Pair.new "TIMESTAMP_NTZ_OUTPUT_FORMAT" "YYYY-MM-DD HH24:MI:SS.FF9", Pair.new "TIMESTAMP_LTZ_OUTPUT_FORMAT" "YYYY-MM-DD HH24:MI:SS.FF9"] - account + credentials + database + schema + warehouse + formats + account + database + schema + warehouse + formats ## PRIVATE private create_data_link_structure details:Snowflake_Details data_link_location:Enso_File -> JS_Object = diff --git a/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Snowflake_Connection.enso b/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Snowflake_Connection.enso index 49d1f2b74723..a2755efc7206 100644 --- a/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Snowflake_Connection.enso +++ b/distribution/lib/Standard/Snowflake/0.0.0-dev/src/Snowflake_Connection.enso @@ -1,13 +1,16 @@ from Standard.Base import all +import Standard.Base.Errors.Illegal_Argument.Illegal_Argument import Standard.Base.Metadata.Display from Standard.Base.Metadata.Choice import Option from Standard.Base.Metadata.Widget import Single_Choice +from Standard.Base.Enso_Cloud.Enso_Secret import as_hideable_value, as_credential_reference import Standard.Table.Rows_To_Read.Rows_To_Read from Standard.Table import Table import Standard.Database.Column_Description.Column_Description import Standard.Database.Connection.Connection.Connection +import Standard.Database.Connection.Credentials.Credentials import Standard.Database.DB_Table.DB_Table import Standard.Database.Internal.Common.Connections_Helpers import Standard.Database.Internal.Connection.Entity_Naming_Properties.Entity_Naming_Properties @@ -19,8 +22,12 @@ from Standard.Database.Connection.Connection import make_database_selector, make from Standard.Database.Errors import SQL_Error, Table_Already_Exists, Table_Not_Found from Standard.Database.Internal.Upload.Helpers.Default_Arguments import first_column_name_in_structure +import project.Connection.Key_Pair_Credentials.Key_Pair_Credentials import project.Internal.Snowflake_Dialect +polyglot java import org.enso.base.enso_cloud.InterpretAsPrivateKey +polyglot java import org.enso.snowflake.SnowflakeCloudCredentials + type Snowflake_Connection ## PRIVATE @@ -29,11 +36,23 @@ type Snowflake_Connection Arguments: - url: The URL to connect to. - properties: A vector of properties for the connection. + - credentials: Credentials for the connection - make_new: A function that returns a new connection. - data_link_setup: the setup for saving the connection as a data link. - create : Text -> Vector -> (Text -> Text -> Snowflake_Connection) -> Data_Link_Setup -> Snowflake_Connection - create url properties make_new data_link_setup = - jdbc_connection = JDBC_Connection.create url properties + private create url:Text properties:Vector credentials:Credentials|Key_Pair_Credentials|Enso_Secret make_new:(Text -> Text -> Snowflake_Connection) data_link_setup:Data_Link_Setup -> Snowflake_Connection = + jdbc_connection = case credentials of + # Special handling for OAuth credentials stored in the cloud + cloud_credentials : Enso_Secret -> + base_properties = JDBC_Connection.properties_as_java_props properties + raw_java_connection = SnowflakeCloudCredentials.makeConnection url base_properties (as_credential_reference cloud_credentials) + JDBC_Connection.from_java raw_java_connection + _ -> + auth_properties = auth_jdbc_properties credentials + clashing = (Hashset.from_vector (properties.map .first)) . intersection (Hashset.from_vector (auth_properties.map .first)) + if clashing.not_empty then + Panic.throw (Illegal_Argument.Error "The properties cannot contain "+(clashing.to_vector .join ", ")+" as they are already provided in the credentials.") + JDBC_Connection.create url (properties + auth_properties) + ## As long as names are quoted, the Snowflake SQL dialect is case sensitive. Our generator always quotes identifiers, so we can rely on the case sensitivity. This is the same as in Postgres. @@ -47,7 +66,7 @@ type Snowflake_Connection Arguments: - connection: the underlying connection. - make_new: a function that returns a new connection. - Value connection make_new + private Value connection make_new ## ICON close Closes the connection releasing the underlying database resources @@ -330,3 +349,22 @@ type Snowflake_Connection to_js_object self = additional_visualization_fields = Connections_Helpers.get_data_viz_pairs JS_Object.from_pairs <| [["type", "SQLite_Connection"], ["links", self.connection.tables.at "Name" . to_vector]] + additional_visualization_fields + +private auth_jdbc_properties credentials = case credentials of + Credentials.Username_And_Password username password -> + [Pair.new 'user' username, Pair.new 'password' password] + Key_Pair_Credentials.Key_Pair username private_key passphrase -> + key_part = case private_key of + local_file : File -> + passphrase_part = if passphrase != Nothing then [Pair.new 'private_key_file_pwd' passphrase] else [] + [Pair.new 'private_key_file' local_file.absolute.path] + passphrase_part + _ : Enso_File -> + Error.throw (Illegal_Argument.Error "Currently only local files can be used as private keys. In Cloud, consider using a Secret instead of a file.") + secret : Enso_Secret -> + if passphrase != Nothing then + Error.throw (Illegal_Argument.Error "Passphrase is not applicable when using a secret as a private key.") + secret_as_private_key = InterpretAsPrivateKey.new (as_hideable_value secret) + [Pair.new 'privateKey' secret_as_private_key] + [Pair.new 'user' username] + key_part + _ : Enso_Secret -> + Panic.throw (Illegal_Argument.Error "Cannot extract `auth_jdbc_properties` from a Cloud Credential. This is a bug in Snowflake library.") diff --git a/engine/runtime/src/main/java/org/enso/interpreter/runtime/ModuleSources.java b/engine/runtime/src/main/java/org/enso/interpreter/runtime/ModuleSources.java index 19ae4bea4941..6f6e2cd13878 100644 --- a/engine/runtime/src/main/java/org/enso/interpreter/runtime/ModuleSources.java +++ b/engine/runtime/src/main/java/org/enso/interpreter/runtime/ModuleSources.java @@ -124,6 +124,9 @@ private static void alternativeFile(Source.SourceBuilder b, TruffleFile file) { return; } var builtDistribution = libVersion.getParent().getParent(); + if (builtDistribution == null) { + return; + } if ("built-distribution".equals(builtDistribution.getName())) { var repositoryRoot = builtDistribution.getParent(); var distRoot = repositoryRoot.resolve("distribution").resolve("lib"); diff --git a/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibraryCredentialHelper.java b/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibraryCredentialHelper.java new file mode 100644 index 000000000000..34209a640298 --- /dev/null +++ b/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibraryCredentialHelper.java @@ -0,0 +1,174 @@ +package org.enso.base.enso_cloud; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.ZonedDateTime; +import java.time.format.DateTimeParseException; +import java.util.List; + +/** + * An entry point allowing external libraries to access Enso credentials. + * + *

It will only allow access from trusted code locations. + */ +public class ExternalLibraryCredentialHelper { + public record CredentialReference(String secretId, String serviceName) { + public void expectForService(String expectedServiceName) { + if (!serviceName.equals(expectedServiceName)) { + throw new IllegalArgumentException( + "Expected credentials for " + expectedServiceName + ", but was: " + serviceName + "."); + } + } + } + + public record AccessToken(String token, ZonedDateTime expirationDate) {} + + public record RefreshToken(String token, ZonedDateTime expirationDate, JsonNode metadata) { + private static RefreshToken parse(JsonNode tokenObject) { + assert tokenObject.isObject(); + var tokenValue = tokenObject.get("refreshToken"); + var expirationDate = tokenObject.get("expirationDate"); + var metadata = tokenObject.get("metadata"); + if (tokenValue == null + || !tokenValue.isTextual() + || (expirationDate != null && !expirationDate.isTextual()) + || (metadata != null && !metadata.isObject())) { + throw malformedCredential(); + } + + String refreshToken = tokenValue.asText(); + ZonedDateTime expiration = null; + if (expirationDate != null) { + try { + expiration = ZonedDateTime.parse(expirationDate.asText()); + } catch (DateTimeParseException e) { + throw new IllegalStateException("Failed to parse expiration date in credential payload."); + } + } + + return new RefreshToken(refreshToken, expiration, metadata); + } + } + + public record CredentialConfig(JsonNode input, RefreshToken refreshToken) {} + + public static CredentialConfig readCredential(CredentialReference credentialReference) + throws EnsoSecretAccessDenied { + RestrictedAccess.checkAccess(allowParseCredential); + + String secretPayload = EnsoSecretReader.readSecret(credentialReference.secretId()); + ObjectMapper jsonMapper = new ObjectMapper(); + JsonNode json; + try { + json = jsonMapper.readTree(secretPayload); + } catch (JsonProcessingException e) { + throw malformedCredential(); + } + + var tokenField = json.get("token"); + if (tokenField == null) { + throw new IllegalStateException( + "The credential is missing token information. Please finish the authentication flow" + + " before using it."); + } + + if (!tokenField.isObject()) { + throw malformedCredential(); + } + + var inputField = json.get("input"); + if (inputField == null || !inputField.isObject()) { + throw malformedCredential(); + } + + return new CredentialConfig(inputField, RefreshToken.parse(tokenField)); + } + + public static AccessToken requestAccessToken(CredentialReference credentialReference) + throws EnsoSecretAccessDenied { + RestrictedAccess.checkAccess(allowRefreshCredential); + var apiUri = + CloudAPI.getAPIRootURI() + + "oauth/" + + credentialReference.serviceName().toLowerCase() + + "/refresh/" + + credentialReference.secretId(); + var client = HttpClient.newBuilder().followRedirects(HttpClient.Redirect.ALWAYS).build(); + var request = + HttpRequest.newBuilder() + .uri(URI.create(apiUri)) + .header("Authorization", "Bearer " + AuthenticationProvider.getAccessToken()) + .POST(HttpRequest.BodyPublishers.noBody()) + .build(); + // TODO retries? + HttpResponse response; + try { + response = client.send(request, HttpResponse.BodyHandlers.ofString()); + } catch (IOException | InterruptedException e) { + // TODO retries + throw new IllegalStateException( + "Failed to refresh the " + credentialReference.serviceName() + " token."); + } + + int status = response.statusCode(); + if (status != 200) { + throw new IllegalArgumentException( + "Unable to refresh the token - the service responded with status " + status + "."); + } + + ObjectMapper jsonMapper = new ObjectMapper(); + JsonNode json; + try { + json = jsonMapper.readTree(response.body()); + } catch (JsonProcessingException e) { + throw malformedTokenResponse(); + } + + var tokenField = json.get("token"); + if (tokenField == null || !tokenField.isTextual()) { + throw malformedTokenResponse(); + } + + ZonedDateTime expirationDate = null; + var expirationField = json.get("expirationDate"); + if (expirationField != null) { + if (!expirationField.isTextual()) { + throw malformedTokenResponse(); + } + + try { + expirationDate = ZonedDateTime.parse(expirationField.asText()); + } catch (DateTimeParseException e) { + throw new IllegalStateException("Failed to parse expiration date in token response."); + } + } + + return new AccessToken(tokenField.asText(), expirationDate); + } + + private static RuntimeException malformedTokenResponse() { + throw new IllegalStateException("Malformed token response."); + } + + public static RuntimeException malformedCredential() { + // We specifically do not pass the original exception as cause, to avoid leaking any secrets + // that it could contain. + throw new IllegalStateException("Unexpected: Malformed credential payload."); + } + + private static final List allowParseCredential = + List.of( + new RestrictedAccess.AccessLocation( + "org.enso.snowflake.SnowflakeCloudCredentials", "unsafeReadCredential")); + + private static final List allowRefreshCredential = + List.of( + new RestrictedAccess.AccessLocation( + "org.enso.google.GoogleOAuthHelper$CloudRenewableGoogleCredentials", "refresh")); +} diff --git a/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibrarySecretHelper.java b/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibrarySecretHelper.java index 2d384a24d956..1df6a80b951f 100644 --- a/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibrarySecretHelper.java +++ b/std-bits/base/src/main/java/org/enso/base/enso_cloud/ExternalLibrarySecretHelper.java @@ -1,7 +1,6 @@ package org.enso.base.enso_cloud; import java.util.List; -import java.util.Optional; /** * An entry point allowing external libraries to access Enso secrets. @@ -10,45 +9,12 @@ */ public final class ExternalLibrarySecretHelper extends SecretValueResolver { public static String resolveValue(HideableValue hideableValue) throws EnsoSecretAccessDenied { - checkAccess(); + RestrictedAccess.checkAccess(allowedAccessLocations); return SecretValueResolver.resolveValue(hideableValue); } - /** - * Checks the current stack trace to find the caller and checks if it is one of the allowed - * locations. - * - *

This is a very rudimentary approach to the access control, and it is not very extensible, as - * it requires updating std-base whenever a new library that needs access to secrets is added. - * However, it seems like the best simple solution for now. - * - *

Later we may want to replace it with some other solution, e.g. a key that trusted libraries - * will use to 'sign' their class name, proving that they can be trusted, without the need to - * update std-base whenever a new library is added. - */ - private static void checkAccess() throws EnsoSecretAccessDenied { - var accessLocation = - StackWalker.getInstance() - .walk( - (stackFrameStream -> { - Optional firstClientFrame = - stackFrameStream.skip(2).findFirst(); - if (firstClientFrame.isEmpty()) { - throw new IllegalStateException("Unable to find client frame."); - } - - var frame = firstClientFrame.get(); - return new AccessLocation(frame.getClassName(), frame.getMethodName()); - })); - - boolean isAllowed = allowedAccessLocations.contains(accessLocation); - if (!isAllowed) { - throw new EnsoSecretAccessDenied(); - } - } - - private record AccessLocation(String className, String method) {} - - private static final List allowedAccessLocations = - List.of(new AccessLocation("org.enso.aws.ClientBuilder", "unsafeResolveSecrets")); + private static final List allowedAccessLocations = + List.of( + new RestrictedAccess.AccessLocation( + "org.enso.aws.ClientBuilder", "unsafeResolveSecrets")); } diff --git a/std-bits/base/src/main/java/org/enso/base/enso_cloud/RestrictedAccess.java b/std-bits/base/src/main/java/org/enso/base/enso_cloud/RestrictedAccess.java new file mode 100644 index 000000000000..65606c518847 --- /dev/null +++ b/std-bits/base/src/main/java/org/enso/base/enso_cloud/RestrictedAccess.java @@ -0,0 +1,42 @@ +package org.enso.base.enso_cloud; + +import java.util.List; +import java.util.Optional; + +final class RestrictedAccess { + record AccessLocation(String className, String method) {} + + /** + * Checks the current stack trace to find the caller and checks if it is one of the allowed + * locations. + * + *

This is a very rudimentary approach to the access control, and it is not very extensible, as + * it requires updating std-base whenever a new library that needs access to secrets is added. + * However, it seems like the best simple solution for now. + * + *

Later we may want to replace it with some other solution, e.g. a key that trusted libraries + * will use to 'sign' their class name, proving that they can be trusted, without the need to + * update std-base whenever a new library is added. + */ + static void checkAccess(List allowedAccessLocations) + throws EnsoSecretAccessDenied { + var accessLocation = + StackWalker.getInstance() + .walk( + (stackFrameStream -> { + Optional firstClientFrame = + stackFrameStream.skip(2).findFirst(); + if (firstClientFrame.isEmpty()) { + throw new IllegalStateException("Unable to find client frame."); + } + + var frame = firstClientFrame.get(); + return new AccessLocation(frame.getClassName(), frame.getMethodName()); + })); + + boolean isAllowed = allowedAccessLocations.contains(accessLocation); + if (!isAllowed) { + throw new EnsoSecretAccessDenied(); + } + } +} diff --git a/std-bits/base/src/main/java/org/enso/base/enso_cloud/SecretValueResolver.java b/std-bits/base/src/main/java/org/enso/base/enso_cloud/SecretValueResolver.java index cbdb6897a6f2..4b87185badd8 100644 --- a/std-bits/base/src/main/java/org/enso/base/enso_cloud/SecretValueResolver.java +++ b/std-bits/base/src/main/java/org/enso/base/enso_cloud/SecretValueResolver.java @@ -10,9 +10,8 @@ sealed class SecretValueResolver permits EnsoSecretHelper, ExternalLibrarySecret protected static String resolveValue(HideableValue value) { return switch (value) { case HideableValue.PlainValue plainValue -> plainValue.value(); - case HideableValue.SecretValue secretValue -> { - yield EnsoSecretReader.readSecret(secretValue.secretId()); - } + case HideableValue.SecretValue secretValue -> EnsoSecretReader.readSecret( + secretValue.secretId()); case HideableValue.ConcatValues concatValues -> { String left = resolveValue(concatValues.left()); String right = resolveValue(concatValues.right()); diff --git a/std-bits/google-api/src/main/java/org/enso/google/CredentialsHelper.java b/std-bits/google-api/src/main/java/org/enso/google/CredentialsHelper.java new file mode 100644 index 000000000000..e16d508afdaf --- /dev/null +++ b/std-bits/google-api/src/main/java/org/enso/google/CredentialsHelper.java @@ -0,0 +1,17 @@ +package org.enso.google; + +import com.google.auth.oauth2.GoogleCredentials; + +class CredentialsHelper { + /** Materializes wrapped credentials into the proper object. + *

+ * This value should not leak to Enso as it can give the user access to the access token. + */ + static GoogleCredentials materialize(WrappedGoogleCredentials wrappedGoogleCredentials) { + return switch (wrappedGoogleCredentials) { + case WrappedGoogleCredentials.LocalFileCredentials(var inner) -> inner; + case WrappedGoogleCredentials.SecretCredentials secretCredentials -> + GoogleOAuthHelper.createCredential(secretCredentials.reference()); + }; + } +} diff --git a/std-bits/google-api/src/main/java/org/enso/google/GoogleOAuthHelper.java b/std-bits/google-api/src/main/java/org/enso/google/GoogleOAuthHelper.java new file mode 100644 index 000000000000..a96a99e4bc89 --- /dev/null +++ b/std-bits/google-api/src/main/java/org/enso/google/GoogleOAuthHelper.java @@ -0,0 +1,55 @@ +package org.enso.google; + +import com.google.auth.oauth2.AccessToken; +import com.google.auth.oauth2.GoogleCredentials; +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import org.enso.base.enso_cloud.ExternalLibraryCredentialHelper; + +class GoogleOAuthHelper { + static GoogleCredentials createCredential( + ExternalLibraryCredentialHelper.CredentialReference credentialReference) { + credentialReference.expectForService("Google"); + return new CloudRenewableGoogleCredentials(credentialReference); + } + + private static class CloudRenewableGoogleCredentials extends GoogleCredentials { + private final ExternalLibraryCredentialHelper.CredentialReference credentialReference; + private AccessToken token = null; + + public CloudRenewableGoogleCredentials( + ExternalLibraryCredentialHelper.CredentialReference credentialReference) { + this.credentialReference = credentialReference; + } + + @Override + public void refresh() throws IOException { + var accessToken = ExternalLibraryCredentialHelper.requestAccessToken(credentialReference); + if (accessToken.expirationDate() == null) { + throw new IllegalStateException( + "The refresh endpoint did not return required expiration date for the Google access" + + " token."); + } + + Date expiration = Date.from(accessToken.expirationDate().toInstant()); + token = new AccessToken(accessToken.token(), expiration); + } + + @Override + public AccessToken refreshAccessToken() throws IOException { + refresh(); + return token; + } + + @Override + public Map> getRequestMetadata() throws IOException { + if (token == null) { + refresh(); + } + + return Map.of("Authorization", List.of("Bearer " + token.getTokenValue())); + } + } +} diff --git a/std-bits/google-api/src/main/java/org/enso/google/GoogleSheetsHelpers.java b/std-bits/google-api/src/main/java/org/enso/google/GoogleSheetsHelpers.java new file mode 100644 index 000000000000..138d05c6705c --- /dev/null +++ b/std-bits/google-api/src/main/java/org/enso/google/GoogleSheetsHelpers.java @@ -0,0 +1,50 @@ +package org.enso.google; + +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.json.gson.GsonFactory; +import com.google.api.services.sheets.v4.Sheets; +import com.google.api.services.sheets.v4.SheetsScopes; +import com.google.auth.http.HttpCredentialsAdapter; +import java.io.IOException; +import java.security.GeneralSecurityException; +import java.util.List; + +public class GoogleSheetsHelpers { + + public static GoogleSheetsWrapper createService(WrappedGoogleCredentials credentials) + throws GeneralSecurityException, IOException { + var credentialsAdapter = + new HttpCredentialsAdapter( + CredentialsHelper.materialize(credentials).createScoped(SheetsScopes.SPREADSHEETS)); + Sheets.Builder builder = + new Sheets.Builder( + GoogleNetHttpTransport.newTrustedTransport(), + GsonFactory.getDefaultInstance(), + credentialsAdapter) + .setApplicationName("Enso"); + return new GoogleSheetsWrapper(builder.build()); + } + + /** A wrapper class to avoid exposing internals of the Google Sheets implementation. */ + public static class GoogleSheetsWrapper { + private final Sheets service; + + GoogleSheetsWrapper(Sheets service) { + this.service = service; + } + + /* + * We need to use this helper instead of calling the API directly from within Enso, because the intermediate values: Get request and Value implement AbstractMap which makes Enso convert them to the Enso Dictionary type and leaves us without access to their more specific methods. + */ + public List> getSheetRange(String sheetId, String range) throws IOException { + return service + .spreadsheets() + .values() + .get(sheetId, range) + .setMajorDimension("COLUMNS") + .setValueRenderOption("UNFORMATTED_VALUE") + .execute() + .getValues(); + } + } +} diff --git a/std-bits/google-api/src/main/java/org/enso/google/WrappedGoogleCredentials.java b/std-bits/google-api/src/main/java/org/enso/google/WrappedGoogleCredentials.java new file mode 100644 index 000000000000..6e7bbf07c4fd --- /dev/null +++ b/std-bits/google-api/src/main/java/org/enso/google/WrappedGoogleCredentials.java @@ -0,0 +1,19 @@ +package org.enso.google; + +import com.google.auth.oauth2.GoogleCredentials; +import java.io.IOException; +import java.io.InputStream; +import org.enso.base.enso_cloud.ExternalLibraryCredentialHelper; + +/** A wrapper for various ways we construct Google credentials. */ +public sealed interface WrappedGoogleCredentials { + record SecretCredentials(ExternalLibraryCredentialHelper.CredentialReference reference) + implements WrappedGoogleCredentials {} + + @SuppressWarnings("deprecation") + record LocalFileCredentials(GoogleCredentials credential) implements WrappedGoogleCredentials { + static LocalFileCredentials fromStream(InputStream stream) throws IOException { + return new LocalFileCredentials(GoogleCredentials.fromStream(stream)); + } + } +} diff --git a/std-bits/snowflake/src/main/java/org/enso/snowflake/SnowflakeCloudCredentials.java b/std-bits/snowflake/src/main/java/org/enso/snowflake/SnowflakeCloudCredentials.java new file mode 100644 index 000000000000..0c784fdf4167 --- /dev/null +++ b/std-bits/snowflake/src/main/java/org/enso/snowflake/SnowflakeCloudCredentials.java @@ -0,0 +1,159 @@ +package org.enso.snowflake; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.SQLException; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.List; +import org.enso.base.enso_cloud.ExternalLibraryCredentialHelper; +import org.enso.base.enso_cloud.HideableValue; +import org.enso.base.net.http.UrlencodedBodyBuilder; +import org.enso.database.JDBCProxy; +import org.graalvm.collections.Pair; + +public final class SnowflakeCloudCredentials { + private static SnowflakeCredentialConfig unsafeReadCredential( + ExternalLibraryCredentialHelper.CredentialReference credentialReference) { + credentialReference.expectForService("Snowflake"); + ExternalLibraryCredentialHelper.CredentialConfig config = + ExternalLibraryCredentialHelper.readCredential(credentialReference); + var input = parseInputPart(config.input()); + var token = SnowflakeRefreshToken.parse(config.refreshToken()); + return new SnowflakeCredentialConfig(input, token); + } + + private static CredentialInput parseInputPart(JsonNode inputObject) { + assert inputObject.isObject(); + var accountField = inputObject.get("account"); + var clientIdField = inputObject.get("clientId"); + var clientSecretField = inputObject.get("clientSecret"); + if (accountField == null + || !accountField.isTextual() + || clientIdField == null + || !clientIdField.isTextual() + || clientSecretField == null + || !clientSecretField.isTextual()) { + throw ExternalLibraryCredentialHelper.malformedCredential(); + } + + return new CredentialInput( + accountField.asText(), clientIdField.asText(), clientSecretField.asText()); + } + + public static Connection makeConnection( + String url, + List> properties, + ExternalLibraryCredentialHelper.CredentialReference credentialReference) + throws SQLException { + SnowflakeCredentialConfig credentials = unsafeReadCredential(credentialReference); + AccessToken accessToken = credentials.refresh(); + var secureProperties = new ArrayList<>(properties); + secureProperties.add(Pair.create("authenticator", new HideableValue.PlainValue("oauth"))); + secureProperties.add(Pair.create("user", new HideableValue.PlainValue(accessToken.username()))); + secureProperties.add(Pair.create("token", new HideableValue.PlainValue(accessToken.token()))); + return JDBCProxy.getConnection(url, secureProperties); + } + + private static String extractTokenFromResponse(HttpResponse response) { + ObjectMapper jsonMapper = new ObjectMapper(); + try { + var json = jsonMapper.readTree(response.body()); + var tokenField = json.get("access_token"); + if (tokenField == null || !tokenField.isTextual()) { + // This is rethrown with a message by the catch block. + throw new IllegalStateException(); + } + + return tokenField.asText(); + } catch (Exception e) { + // We specifically do not pass the original exception as cause, to avoid leaking any secrets + // that it could contain. + throw new IllegalStateException("Failed to extract access token from response."); + } + } + + private record SnowflakeRefreshToken( + String token, ZonedDateTime expirationDate, String username) { + private static SnowflakeRefreshToken parse(ExternalLibraryCredentialHelper.RefreshToken token) { + if (token.expirationDate() == null) { + throw ExternalLibraryCredentialHelper.malformedCredential(); + } + + var usernameField = token.metadata().get("username"); + if (usernameField == null || !usernameField.isTextual()) { + throw ExternalLibraryCredentialHelper.malformedCredential(); + } + + String username = usernameField.asText(); + return new SnowflakeRefreshToken(token.token(), token.expirationDate(), username); + } + + private boolean isExpired() { + return expirationDate.isBefore(ZonedDateTime.now()); + } + } + + private record AccessToken(String token, String username) {} + + private record CredentialInput(String account, String clientId, String clientSecret) { + private String authorizationHeader() { + return "Basic " + + java.util.Base64.getEncoder() + .encodeToString((clientId + ":" + clientSecret).getBytes(StandardCharsets.UTF_8)); + } + + private URI tokenUri() { + return URI.create("https://" + account + ".snowflakecomputing.com/oauth/token-request"); + } + } + + private record SnowflakeCredentialConfig(CredentialInput input, SnowflakeRefreshToken token) { + private AccessToken refresh() { + if (token.isExpired()) { + // TODO other exception type? + throw new IllegalStateException( + "The Cloud Credentials have expired and must be renewed. Please go to the Dashboard and" + + " re-authenticate."); + } + + try { + HttpClient client = HttpClient.newHttpClient(); + HttpRequest.Builder requestBuilder = HttpRequest.newBuilder(); + var body = + new UrlencodedBodyBuilder() + .add_part_text("grant_type", "refresh_token") + .add_part_text("refresh_token", token.token) + .build(); + var request = + requestBuilder + .POST(body) + .uri(input.tokenUri()) + .header("Authorization", input.authorizationHeader()) + .header("Content-Type", "application/x-www-form-urlencoded") + .build(); + // TODO retries? + var response = client.send(request, HttpResponse.BodyHandlers.ofString()); + if (response.statusCode() != 200) { + throw new IllegalStateException( + "Failed to refresh the Cloud Credentials, service responded with code " + + response.statusCode() + + "."); + } + + String accessToken = extractTokenFromResponse(response); + return new AccessToken(accessToken, token.username); + } catch (Exception e) { + // We specifically do not pass the original exception as cause, to avoid leaking any secrets + // that it could contain. + throw new IllegalStateException("Failed to refresh the Cloud Credentials."); + } + } + } +} diff --git a/test/Base_Internal_Tests/src/Cloud_Credentials_Spec.enso b/test/Base_Internal_Tests/src/Cloud_Credentials_Spec.enso new file mode 100644 index 000000000000..a229a6f452a6 --- /dev/null +++ b/test/Base_Internal_Tests/src/Cloud_Credentials_Spec.enso @@ -0,0 +1,28 @@ +from Standard.Base import all + +from Standard.Test import all +from Standard.Test.Execution_Context_Helpers import run_with_and_without_output + +import enso_dev.Base_Tests.Network.Enso_Cloud.Cloud_Tests_Setup.Cloud_Tests_Setup +import enso_dev.Base_Tests.Network.Enso_Cloud.Cloud_Tests_Setup.Temporary_Directory + +from project.Cloud_Helpers.Credentials import create_example_credential + +add_specs suite_builder (setup : Cloud_Tests_Setup = Cloud_Tests_Setup.prepare) = + suite_builder.group "Enso Cloud Credentials" pending=setup.real_cloud_pending group_builder-> + subdirectory_for_tests = Temporary_Directory.make "Secrets" + group_builder.teardown subdirectory_for_tests.cleanup + + group_builder.specify "should report as credentials" <| setup.with_prepared_environment <| + credential = create_example_credential subdirectory_for_tests.get "test_google_credential" + credential.should_be_a Enso_Secret + Panic.with_finalizer credential.delete <| + credential.is_credential.should_be_true + credential.credential_service_name.should_equal "Google" + credential.to_text . should_contain "credentials for Google" + credential.to_text . should_contain "waiting for authentication" + +main filter=Nothing = + suite = Test.build suite_builder-> + add_specs suite_builder + suite.run_with_filter filter diff --git a/test/Base_Internal_Tests/src/Cloud_Helpers/Credentials.enso b/test/Base_Internal_Tests/src/Cloud_Helpers/Credentials.enso new file mode 100644 index 000000000000..29c5e9c53bfa --- /dev/null +++ b/test/Base_Internal_Tests/src/Cloud_Helpers/Credentials.enso @@ -0,0 +1,23 @@ +from Standard.Base import all + +# Imports of Cloud internals needed for this helper. +import Standard.Base.Enso_Cloud.Internal.Existing_Enso_Asset.Existing_Enso_Asset +import Standard.Base.Enso_Cloud.Internal.Utils + +## Standard library does not provide a way to create credentials because this is + normally done in the Cloud Dashboard. + Thus we provide a basic version of this functionality in the test suite. + This file needs `--disable-private-check` as it uses Cloud internals. +create_example_credential parent_directory name = + parent_directory_asset = Existing_Enso_Asset.get_asset_reference_for parent_directory + example_scopes = ["https://www.googleapis.com/auth/spreadsheets"] + nonce = Random.uuid + input = JS_Object.from_pairs <| + [["type", "Google"], ["scopes", example_scopes]] + metadata = JS_Object.from_pairs <| + [["input", input], ["nonce", nonce]] + request_payload = JS_Object.from_pairs <| + [["name", name], ["value", metadata], ["parentDirectoryId", parent_directory_asset.id]] + + Utils.http_request_as_json ..Post ((URI.from Utils.cloud_root_uri) / "secrets") request_payload + Enso_Secret.get name parent=parent_directory diff --git a/test/Base_Internal_Tests/src/Main.enso b/test/Base_Internal_Tests/src/Main.enso index ead1b1c88be0..adb4f6a52846 100644 --- a/test/Base_Internal_Tests/src/Main.enso +++ b/test/Base_Internal_Tests/src/Main.enso @@ -4,6 +4,7 @@ from Standard.Test import all import project.Input_Output_Spec import project.Instrumentor_Spec +import project.Cloud_Credentials_Spec import project.Comparator_Spec import project.Decimal_Constructor_Spec import project.Grapheme_Spec @@ -11,6 +12,7 @@ import project.Github_Annotations_Spec main filter=Nothing = suite = Test.build suite_builder-> + Cloud_Credentials_Spec.add_specs suite_builder Comparator_Spec.add_specs suite_builder Decimal_Constructor_Spec.add_specs suite_builder Grapheme_Spec.add_specs suite_builder diff --git a/test/Base_Tests/src/Network/Enso_Cloud/Secrets_Spec.enso b/test/Base_Tests/src/Network/Enso_Cloud/Secrets_Spec.enso index 2c158ad114d9..398900f21ce8 100644 --- a/test/Base_Tests/src/Network/Enso_Cloud/Secrets_Spec.enso +++ b/test/Base_Tests/src/Network/Enso_Cloud/Secrets_Spec.enso @@ -37,6 +37,8 @@ add_specs suite_builder setup:Cloud_Tests_Setup = my_secret = Enso_Secret.create name "my_secret_value" my_secret.should_succeed my_secret.name . should_equal name + Test.with_clue "a regular secret is not a credential: " <| + my_secret.is_credential.should_be_false delete_on_fail my_secret <| Test.with_retries <| Enso_Secret.list . should_contain my_secret diff --git a/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.63.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.66.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.63.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.66.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.66.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.66.0/copyright-keep-context new file mode 100644 index 000000000000..8946b4f56738 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.66.0/copyright-keep-context @@ -0,0 +1 @@ +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.67.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.67.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.67.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.67.0/copyright-keep-context new file mode 100644 index 000000000000..8946b4f56738 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.67.0/copyright-keep-context @@ -0,0 +1 @@ +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.2.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.api-client.google-api-client-2.7.1/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/custom-license b/tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/custom-license similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/custom-license rename to tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/custom-license diff --git a/tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/files-add/BSD-3-LICENSE.txt b/tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/files-add/BSD-3-LICENSE.txt similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.api-common-2.38.0/files-add/BSD-3-LICENSE.txt rename to tools/legal-review/Google_Api/com.google.api.api-common-2.42.1/files-add/BSD-3-LICENSE.txt diff --git a/tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.gax-2.55.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.api.gax-2.59.1/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.api.gax-2.55.0/custom-license b/tools/legal-review/Google_Api/com.google.api.gax-2.59.1/custom-license similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.gax-2.55.0/custom-license rename to tools/legal-review/Google_Api/com.google.api.gax-2.59.1/custom-license diff --git a/tools/legal-review/Google_Api/com.google.api.gax-2.55.0/files-add/BSD-3-LICENSE.txt b/tools/legal-review/Google_Api/com.google.api.gax-2.59.1/files-add/BSD-3-LICENSE.txt similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.gax-2.55.0/files-add/BSD-3-LICENSE.txt rename to tools/legal-review/Google_Api/com.google.api.gax-2.59.1/files-add/BSD-3-LICENSE.txt diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.59.1/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.api.gax-grpc-2.59.1/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.59.1/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.59.1/copyright-keep-context new file mode 100644 index 000000000000..9233da6b9f02 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.59.1/copyright-keep-context @@ -0,0 +1,7 @@ +Copyright 2016 Google LLC +Copyright 2017 Google LLC +Copyright 2018 Google LLC +Copyright 2019 Google LLC +Copyright 2020 Google LLC +Copyright 2021 Google LLC +Copyright 2022 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep-context deleted file mode 100644 index 82188e9db4eb..000000000000 --- a/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep-context +++ /dev/null @@ -1 +0,0 @@ -Copyright 2023 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-ignore similarity index 67% rename from tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-ignore index 0525d1788f93..ea07366ec286 100644 --- a/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.55.0/copyright-keep +++ b/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-ignore @@ -1,9 +1,4 @@ -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -Copyright 2017 Google LLC -Copyright 2018 Google LLC -Copyright 2020 Google LLC -Copyright 2021 Google LLC -Copyright 2022 Google LLC Redistributions of source code must retain the above copyright THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS copyright notice, this list of conditions and the following disclaimer +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT diff --git a/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-keep-context b/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-keep-context new file mode 100644 index 000000000000..93f70e1ee03a --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.api.gax-httpjson-2.59.1/copyright-keep-context @@ -0,0 +1,6 @@ +Copyright 2017 Google LLC +Copyright 2018 Google LLC +Copyright 2020 Google LLC +Copyright 2021 Google LLC +Copyright 2022 Google LLC +Copyright 2023 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.62.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.analytics.google-analytics-admin-0.62.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/copyright-keep similarity index 50% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/copyright-keep index 962950013963..99ea6f689d94 100644 --- a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-keep +++ b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.66.0/copyright-keep @@ -1 +1,2 @@ Copyright 2024 Google LLC +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.63.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.analytics.google-analytics-data-0.63.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.46.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/copyright-keep similarity index 50% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.46.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/copyright-keep index 962950013963..99ea6f689d94 100644 --- a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.46.0/copyright-keep +++ b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.66.0/copyright-keep @@ -1 +1,2 @@ Copyright 2024 Google LLC +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-add b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-add similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-add rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-add diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-keep diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/NOTICES b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/copyright-keep similarity index 50% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/NOTICES rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/copyright-keep index 962950013963..99ea6f689d94 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1alpha-0.62.0/NOTICES +++ b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.67.0/copyright-keep @@ -1 +1,2 @@ Copyright 2024 Google LLC +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-add b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-add similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-add rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-add diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-ignore new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/com.google.api.grpc.proto-google-analytics-data-v1beta-0.63.0/copyright-keep diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/NOTICES b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/copyright-keep similarity index 50% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/NOTICES rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/copyright-keep index 962950013963..99ea6f689d94 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.grpc.proto-google-analytics-admin-v1beta-0.62.0/NOTICES +++ b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1beta-0.67.0/copyright-keep @@ -1 +1,2 @@ Copyright 2024 Google LLC +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.50.1/com.google.api.grpc.proto-google-common-protos-2.46.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.api.grpc.proto-google-analytics-data-v1alpha-0.63.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.50.1/com.google.api.grpc.proto-google-common-protos-2.46.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.50.1/copyright-keep b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.50.1/copyright-keep new file mode 100644 index 000000000000..99ea6f689d94 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.api.grpc.proto-google-common-protos-2.50.1/copyright-keep @@ -0,0 +1,2 @@ +Copyright 2024 Google LLC +Copyright 2025 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/copyright-keep b/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/com.google.apis.google-api-services-sheets-v4-rev612-1.25.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-add b/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-add new file mode 100644 index 000000000000..b9909348bb20 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-add @@ -0,0 +1 @@ +Copyright 2011-2025 Google. All rights reserved. diff --git a/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-ignore new file mode 100644 index 000000000000..3d9c41dc2ed3 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.apis.google-api-services-sheets-v4-rev20250106-2.0.0/copyright-ignore @@ -0,0 +1,2 @@ +

Copyright © 2011–2025 Google. All rights reserved.

+Document title and Copyright styles diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/com.google.auth.google-auth-library-credentials-1.28.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.55.0/copyright-keep b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-ignore similarity index 59% rename from tools/legal-review/Google_Api/com.google.api.gax-grpc-2.55.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-ignore index d8f25221ecc2..ea07366ec286 100644 --- a/tools/legal-review/Google_Api/com.google.api.gax-grpc-2.55.0/copyright-keep +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-ignore @@ -1,11 +1,4 @@ -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -Copyright 2016 Google LLC -Copyright 2017 Google LLC -Copyright 2018 Google LLC -Copyright 2019 Google LLC -Copyright 2020 Google LLC -Copyright 2021 Google LLC -Copyright 2022 Google LLC -copyright notice, this list of conditions and the following disclaimer -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS Redistributions of source code must retain the above copyright +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +copyright notice, this list of conditions and the following disclaimer +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-keep-context b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-keep-context new file mode 100644 index 000000000000..e0a970bc6d53 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-credentials-1.30.1/copyright-keep-context @@ -0,0 +1,5 @@ +Copyright 2015, Google Inc. All rights reserved. +Copyright 2016, Google Inc. All rights reserved. +Copyright 2022 Google LLC +Copyright 2024 Google LLC +Copyright 2024, Google Inc. All rights reserved. diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.55.0/NOTICES b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-ignore similarity index 58% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.55.0/NOTICES rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-ignore index 253e1505d420..081db6541575 100644 --- a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.api.gax-grpc-2.55.0/NOTICES +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-ignore @@ -1,21 +1,4 @@ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - -Copyright 2016 Google LLC - -Copyright 2017 Google LLC - -Copyright 2018 Google LLC - -Copyright 2019 Google LLC - -Copyright 2020 Google LLC - -Copyright 2021 Google LLC - -Copyright 2022 Google LLC - Redistributions of source code must retain the above copyright - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - copyright notice, this list of conditions and the following disclaimer diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/com.google.auth.google-auth-library-oauth2-http-1.28.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-ignore b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-ignore new file mode 100644 index 000000000000..e040c31bd3f9 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-ignore @@ -0,0 +1,3 @@ +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +copyright notice, this list of conditions and the following disclaimer diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep new file mode 100644 index 000000000000..a65ac6b728cb --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep @@ -0,0 +1 @@ +Redistributions of source code must retain the above copyright diff --git a/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep-context b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep-context new file mode 100644 index 000000000000..ffabeb854ecc --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.auth.google-auth-library-oauth2-http-1.30.1/copyright-keep-context @@ -0,0 +1,14 @@ +Copyright 2024 Google LLC +Copyright 2023 Google LLC +Copyright 2023, Google Inc. All rights reserved. +Copyright 2024, Google Inc. All rights reserved. +Copyright 2019, Google LLC +Copyright 2020, Google LLC +Copyright 2021 Google LLC +Copyright 2022 Google LLC +Copyright 2022, Google Inc. All rights reserved. +Copyright 2015, Google Inc. All rights reserved. +Copyright 2016, Google Inc. All rights reserved. +Copyright 2017, Google Inc. All rights reserved. +Copyright 2018, Google Inc. All rights reserved. +Copyright 2019, Google Inc. All rights reserved. diff --git a/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/com.google.errorprone.error_prone_annotations-2.33.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep new file mode 100644 index 000000000000..a36dbcab5908 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep @@ -0,0 +1,5 @@ +Copyright 2015 The Error Prone Authors. +Copyright 2016 The Error Prone Authors. +Copyright 2017 The Error Prone Authors. +Copyright 2021 The Error Prone Authors. +Copyright 2023 The Error Prone Authors. diff --git a/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep-context new file mode 100644 index 000000000000..67a1e07330ef --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.errorprone.error_prone_annotations-2.36.0/copyright-keep-context @@ -0,0 +1 @@ +Copyright 2014 The Error Prone Authors. diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/copyright-keep b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/copyright-keep rename to tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/copyright-keep-context b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/copyright-keep-context rename to tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/files-ignore b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/files-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.guava.guava-33.3.1-jre/files-ignore rename to tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/com.google.guava.guava-33.3.1-jre/files-ignore diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep new file mode 100644 index 000000000000..d56816b31543 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep @@ -0,0 +1,20 @@ +Copyright (C) 2007 The Guava Authors +Copyright (C) 2008 The Guava Authors +Copyright (C) 2009 The Guava Authors +Copyright (C) 2010 The Guava Authors +Copyright (C) 2011 The Guava Authors +Copyright (C) 2011 The Guava Authors. +Copyright (C) 2012 The Guava Authors +Copyright (C) 2013 The Guava Authors +Copyright (C) 2014 The Guava Authors +Copyright (C) 2015 The Guava Authors +Copyright (C) 2016 The Guava Authors +Copyright (C) 2017 The Guava Authors +Copyright (C) 2018 The Guava Authors +Copyright (C) 2019 The Guava Authors +Copyright (C) 2020 The Guava Authors +Copyright (C) 2021 The Guava Authors +Copyright (C) 2023 The Guava Authors +Copyright (C) 2024 The Guava Authors +Copyright 2011 Google Inc. All Rights Reserved. +Copyright 2019 The Guava Authors diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep-context b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep-context new file mode 100644 index 000000000000..4152756bfc62 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/copyright-keep-context @@ -0,0 +1,4 @@ +Copyright (C) 2005 The Guava Authors +Copyright (C) 2006 The Guava Authors +domain. The author hereby disclaims copyright to this source code. +hereby disclaims copyright to this source code. diff --git a/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/files-ignore b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/files-ignore new file mode 100644 index 000000000000..b9005a4d5ae7 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.guava.guava-33.4.0-jre/files-ignore @@ -0,0 +1 @@ +META-INF/LICENSE diff --git a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.0/copyright-ignore b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/com.google.http-client.google-http-client-1.45.0/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.0/copyright-ignore rename to tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/com.google.http-client.google-http-client-1.45.0/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.0/copyright-keep b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/com.google.http-client.google-http-client-1.45.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/com.google.http-client.google-http-client-1.45.0/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/copyright-keep b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/copyright-keep new file mode 100644 index 000000000000..ea86c785bfed --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/copyright-keep @@ -0,0 +1,10 @@ +Copyright (c) 2010 Google Inc. +Copyright (c) 2010 Google Inc.J +Copyright (c) 2012 Google Inc. +Copyright (c) 2013 Google Inc. +Copyright (c) 2014 Google Inc. +Copyright (c) 2018 Google Inc. +Copyright 2012 Google LLC +Copyright 2012 Google LLC. +Copyright 2019 Google LLC +Copyright 2020 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-gson-1.45.0/NOTICES b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/copyright-keep-context similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-gson-1.45.0/NOTICES rename to tools/legal-review/Google_Api/com.google.http-client.google-http-client-1.45.3/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-apache-v2-1.42.3/copyright-keep b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-apache-v2-1.42.3/copyright-keep deleted file mode 100644 index 172cb67a1ecd..000000000000 --- a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-apache-v2-1.42.3/copyright-keep +++ /dev/null @@ -1 +0,0 @@ -Copyright 2019 Google LLC diff --git a/distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-apache-v2-1.42.3/NOTICES b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-apache-v2-1.45.2/copyright-keep-context similarity index 100% rename from distribution/lib/Standard/Google_Api/0.0.0-dev/THIRD-PARTY/com.google.http-client.google-http-client-apache-v2-1.42.3/NOTICES rename to tools/legal-review/Google_Api/com.google.http-client.google-http-client-apache-v2-1.45.2/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.http-client.google-http-client-gson-1.45.0/copyright-keep b/tools/legal-review/Google_Api/com.google.http-client.google-http-client-gson-1.45.3/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/com.google.http-client.google-http-client-gson-1.45.0/copyright-keep rename to tools/legal-review/Google_Api/com.google.http-client.google-http-client-gson-1.45.3/copyright-keep-context diff --git a/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.34.1/copyright-ignore b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/com.google.oauth-client.google-oauth-client-1.34.1/copyright-ignore similarity index 100% rename from tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.34.1/copyright-ignore rename to tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/com.google.oauth-client.google-oauth-client-1.34.1/copyright-ignore diff --git a/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.34.1/copyright-keep b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/com.google.oauth-client.google-oauth-client-1.34.1/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.34.1/copyright-keep rename to tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/com.google.oauth-client.google-oauth-client-1.34.1/copyright-keep diff --git a/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep new file mode 100644 index 000000000000..c192b7540a37 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep @@ -0,0 +1,4 @@ +Copyright (c) 2011 Google Inc. +Copyright (c) 2012 Google Inc. +Copyright (c) 2013 Google Inc. +Copyright 2021 Google LLC diff --git a/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep-context b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep-context new file mode 100644 index 000000000000..577b477e7cf7 --- /dev/null +++ b/tools/legal-review/Google_Api/com.google.oauth-client.google-oauth-client-1.36.0/copyright-keep-context @@ -0,0 +1,2 @@ +Copyright (c) 2010 Google Inc. +copyright notice, this list of conditions and the following disclaimer diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-alts-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-alts-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.69.0/copyright-keep-context similarity index 50% rename from tools/legal-review/Google_Api/io.grpc.grpc-alts-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-alts-1.69.0/copyright-keep-context index 9efb59a59eed..131388950827 100644 --- a/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.67.1/copyright-keep-context +++ b/tools/legal-review/Google_Api/io.grpc.grpc-alts-1.69.0/copyright-keep-context @@ -1 +1,2 @@ Copyright 2018 The gRPC Authors +Copyright 2024 The gRPC Authors diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-api-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-api-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-api-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-api-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-api-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-api-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-api-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-api-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-auth-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-auth-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-auth-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-auth-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-auth-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-auth-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-auth-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-auth-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-context-1.67.1/files-ignore b/tools/legal-review/Google_Api/io.grpc.grpc-context-1.69.0/files-ignore similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-context-1.67.1/files-ignore rename to tools/legal-review/Google_Api/io.grpc.grpc-context-1.69.0/files-ignore diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-context-1.67.1/files-keep b/tools/legal-review/Google_Api/io.grpc.grpc-context-1.69.0/files-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-context-1.67.1/files-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-context-1.69.0/files-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-core-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-core-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-core-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-core-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-core-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-core-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-core-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-core-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-googleapis-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-grpclb-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-inprocess-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.67.1/files-ignore b/tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.69.0/files-ignore similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.67.1/files-ignore rename to tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.69.0/files-ignore diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.67.1/files-keep b/tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.69.0/files-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.67.1/files-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-netty-shaded-1.69.0/files-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-protobuf-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.69.0/copyright-keep similarity index 50% rename from tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.69.0/copyright-keep index 09f92f84133d..0409787ec19f 100644 --- a/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.67.1/copyright-keep +++ b/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.69.0/copyright-keep @@ -1,2 +1 @@ -Copyright 2014 The gRPC Authors Copyright 2017 The gRPC Authors diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-stub-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-stub-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-protobuf-lite-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-services-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-services-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-services-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-services-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-services-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-services-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-services-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-services-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-stub-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-stub-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-stub-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-stub-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-util-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-stub-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-util-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-stub-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-util-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-util-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-util-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-util-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-util-1.69.0/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-util-1.69.0/copyright-keep-context new file mode 100644 index 000000000000..652092d28827 --- /dev/null +++ b/tools/legal-review/Google_Api/io.grpc.grpc-util-1.69.0/copyright-keep-context @@ -0,0 +1 @@ +Copyright 2014 The gRPC Authors diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-xds-1.67.1/copyright-keep b/tools/legal-review/Google_Api/io.grpc.grpc-xds-1.69.0/copyright-keep similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-xds-1.67.1/copyright-keep rename to tools/legal-review/Google_Api/io.grpc.grpc-xds-1.69.0/copyright-keep diff --git a/tools/legal-review/Google_Api/io.grpc.grpc-xds-1.67.1/copyright-keep-context b/tools/legal-review/Google_Api/io.grpc.grpc-xds-1.69.0/copyright-keep-context similarity index 100% rename from tools/legal-review/Google_Api/io.grpc.grpc-xds-1.67.1/copyright-keep-context rename to tools/legal-review/Google_Api/io.grpc.grpc-xds-1.69.0/copyright-keep-context diff --git a/tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.47.0/custom-license b/tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.48.3/custom-license similarity index 100% rename from tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.47.0/custom-license rename to tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.48.3/custom-license diff --git a/tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.47.0/files-keep b/tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.48.3/files-keep similarity index 100% rename from tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.47.0/files-keep rename to tools/legal-review/Google_Api/org.checkerframework.checker-qual-3.48.3/files-keep diff --git a/tools/legal-review/Google_Api/report-state b/tools/legal-review/Google_Api/report-state index c752440557b3..dd8accc626eb 100644 --- a/tools/legal-review/Google_Api/report-state +++ b/tools/legal-review/Google_Api/report-state @@ -1,3 +1,3 @@ -395D74C88A0597418C5CEDB23BEA29938F2338674ECF07D553016AF60E45EF3C -95A42AD012FF6ADCD1AFB86F128FE206E694D0B8BF78E1AE0F03FBBF7412E084 +BF5387886A1A3832CACC710D827F5A430CC6156A1E17D2F43ECC83470FABF456 +1109A7215F93D37727962D7AD8F6C555D22DDD8D9E33D8852C77A710DBB6D655 0