306 lines
12 KiB
Ruby
306 lines
12 KiB
Ruby
|
# Copyright 2015 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.
|
||
|
|
||
|
require 'date'
|
||
|
require 'google/apis/core/base_service'
|
||
|
require 'google/apis/core/json_representation'
|
||
|
require 'google/apis/core/hashable'
|
||
|
require 'google/apis/errors'
|
||
|
|
||
|
module Google
|
||
|
module Apis
|
||
|
module DigitalassetlinksV1
|
||
|
|
||
|
# Describes an android app asset.
|
||
|
class AndroidAppAsset
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Describes an X509 certificate.
|
||
|
# Corresponds to the JSON property `certificate`
|
||
|
# @return [Google::Apis::DigitalassetlinksV1::CertificateInfo]
|
||
|
attr_accessor :certificate
|
||
|
|
||
|
# Android App assets are naturally identified by their Java package name.
|
||
|
# For example, the Google Maps app uses the package name
|
||
|
# `com.google.android.apps.maps`.
|
||
|
# REQUIRED
|
||
|
# Corresponds to the JSON property `packageName`
|
||
|
# @return [String]
|
||
|
attr_accessor :package_name
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@certificate = args[:certificate] if args.key?(:certificate)
|
||
|
@package_name = args[:package_name] if args.key?(:package_name)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Uniquely identifies an asset.
|
||
|
# A digital asset is an identifiable and addressable online entity that
|
||
|
# typically provides some service or content. Examples of assets are websites,
|
||
|
# Android apps, Twitter feeds, and Plus Pages.
|
||
|
class Asset
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Describes an android app asset.
|
||
|
# Corresponds to the JSON property `androidApp`
|
||
|
# @return [Google::Apis::DigitalassetlinksV1::AndroidAppAsset]
|
||
|
attr_accessor :android_app
|
||
|
|
||
|
# Describes a web asset.
|
||
|
# Corresponds to the JSON property `web`
|
||
|
# @return [Google::Apis::DigitalassetlinksV1::WebAsset]
|
||
|
attr_accessor :web
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@android_app = args[:android_app] if args.key?(:android_app)
|
||
|
@web = args[:web] if args.key?(:web)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Describes an X509 certificate.
|
||
|
class CertificateInfo
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# The uppercase SHA-265 fingerprint of the certificate. From the PEM
|
||
|
# certificate, it can be acquired like this:
|
||
|
# $ keytool -printcert -file $CERTFILE | grep SHA256:
|
||
|
# SHA256: 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \
|
||
|
# 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5
|
||
|
# or like this:
|
||
|
# $ openssl x509 -in $CERTFILE -noout -fingerprint -sha256
|
||
|
# SHA256 Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \
|
||
|
# 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5
|
||
|
# In this example, the contents of this field would be `14:6D:E9:83:C5:73:
|
||
|
# 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:
|
||
|
# 44:E5`.
|
||
|
# If these tools are not available to you, you can convert the PEM
|
||
|
# certificate into the DER format, compute the SHA-256 hash of that string
|
||
|
# and represent the result as a hexstring (that is, uppercase hexadecimal
|
||
|
# representations of each octet, separated by colons).
|
||
|
# Corresponds to the JSON property `sha256Fingerprint`
|
||
|
# @return [String]
|
||
|
attr_accessor :sha256_fingerprint
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@sha256_fingerprint = args[:sha256_fingerprint] if args.key?(:sha256_fingerprint)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response message for the CheckAssetLinks call.
|
||
|
class CheckResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Human-readable message containing information intended to help end users
|
||
|
# understand, reproduce and debug the result.
|
||
|
# The message will be in English and we are currently not planning to offer
|
||
|
# any translations.
|
||
|
# Please note that no guarantees are made about the contents or format of
|
||
|
# this string. Any aspect of it may be subject to change without notice.
|
||
|
# You should not attempt to programmatically parse this data. For
|
||
|
# programmatic access, use the error_code field below.
|
||
|
# Corresponds to the JSON property `debugString`
|
||
|
# @return [String]
|
||
|
attr_accessor :debug_string
|
||
|
|
||
|
# Error codes that describe the result of the Check operation.
|
||
|
# Corresponds to the JSON property `errorCode`
|
||
|
# @return [Array<String>]
|
||
|
attr_accessor :error_code
|
||
|
|
||
|
# Set to true if the assets specified in the request are linked by the
|
||
|
# relation specified in the request.
|
||
|
# Corresponds to the JSON property `linked`
|
||
|
# @return [Boolean]
|
||
|
attr_accessor :linked
|
||
|
alias_method :linked?, :linked
|
||
|
|
||
|
# From serving time, how much longer the response should be considered valid
|
||
|
# barring further updates.
|
||
|
# REQUIRED
|
||
|
# Corresponds to the JSON property `maxAge`
|
||
|
# @return [String]
|
||
|
attr_accessor :max_age
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@debug_string = args[:debug_string] if args.key?(:debug_string)
|
||
|
@error_code = args[:error_code] if args.key?(:error_code)
|
||
|
@linked = args[:linked] if args.key?(:linked)
|
||
|
@max_age = args[:max_age] if args.key?(:max_age)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Response message for the List call.
|
||
|
class ListResponse
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Human-readable message containing information intended to help end users
|
||
|
# understand, reproduce and debug the result.
|
||
|
# The message will be in English and we are currently not planning to offer
|
||
|
# any translations.
|
||
|
# Please note that no guarantees are made about the contents or format of
|
||
|
# this string. Any aspect of it may be subject to change without notice.
|
||
|
# You should not attempt to programmatically parse this data. For
|
||
|
# programmatic access, use the error_code field below.
|
||
|
# Corresponds to the JSON property `debugString`
|
||
|
# @return [String]
|
||
|
attr_accessor :debug_string
|
||
|
|
||
|
# Error codes that describe the result of the List operation.
|
||
|
# Corresponds to the JSON property `errorCode`
|
||
|
# @return [Array<String>]
|
||
|
attr_accessor :error_code
|
||
|
|
||
|
# From serving time, how much longer the response should be considered valid
|
||
|
# barring further updates.
|
||
|
# REQUIRED
|
||
|
# Corresponds to the JSON property `maxAge`
|
||
|
# @return [String]
|
||
|
attr_accessor :max_age
|
||
|
|
||
|
# A list of all the matching statements that have been found.
|
||
|
# Corresponds to the JSON property `statements`
|
||
|
# @return [Array<Google::Apis::DigitalassetlinksV1::Statement>]
|
||
|
attr_accessor :statements
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@debug_string = args[:debug_string] if args.key?(:debug_string)
|
||
|
@error_code = args[:error_code] if args.key?(:error_code)
|
||
|
@max_age = args[:max_age] if args.key?(:max_age)
|
||
|
@statements = args[:statements] if args.key?(:statements)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Describes a reliable statement that has been made about the relationship
|
||
|
# between a source asset and a target asset.
|
||
|
# Statements are always made by the source asset, either directly or by
|
||
|
# delegating to a statement list that is stored elsewhere.
|
||
|
# For more detailed definitions of statements and assets, please refer
|
||
|
# to our [API documentation landing
|
||
|
# page](/digital-asset-links/v1/getting-started).
|
||
|
class Statement
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# The relation identifies the use of the statement as intended by the source
|
||
|
# asset's owner (that is, the person or entity who issued the statement).
|
||
|
# Every complete statement has a relation.
|
||
|
# We identify relations with strings of the format `<kind>/<detail>`, where
|
||
|
# `<kind>` must be one of a set of pre-defined purpose categories, and
|
||
|
# `<detail>` is a free-form lowercase alphanumeric string that describes the
|
||
|
# specific use case of the statement.
|
||
|
# Refer to [our API documentation](/digital-asset-links/v1/relation-strings)
|
||
|
# for the current list of supported relations.
|
||
|
# Example: `delegate_permission/common.handle_all_urls`
|
||
|
# REQUIRED
|
||
|
# Corresponds to the JSON property `relation`
|
||
|
# @return [String]
|
||
|
attr_accessor :relation
|
||
|
|
||
|
# Uniquely identifies an asset.
|
||
|
# A digital asset is an identifiable and addressable online entity that
|
||
|
# typically provides some service or content. Examples of assets are websites,
|
||
|
# Android apps, Twitter feeds, and Plus Pages.
|
||
|
# Corresponds to the JSON property `source`
|
||
|
# @return [Google::Apis::DigitalassetlinksV1::Asset]
|
||
|
attr_accessor :source
|
||
|
|
||
|
# Uniquely identifies an asset.
|
||
|
# A digital asset is an identifiable and addressable online entity that
|
||
|
# typically provides some service or content. Examples of assets are websites,
|
||
|
# Android apps, Twitter feeds, and Plus Pages.
|
||
|
# Corresponds to the JSON property `target`
|
||
|
# @return [Google::Apis::DigitalassetlinksV1::Asset]
|
||
|
attr_accessor :target
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@relation = args[:relation] if args.key?(:relation)
|
||
|
@source = args[:source] if args.key?(:source)
|
||
|
@target = args[:target] if args.key?(:target)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
# Describes a web asset.
|
||
|
class WebAsset
|
||
|
include Google::Apis::Core::Hashable
|
||
|
|
||
|
# Web assets are identified by a URL that contains only the scheme, hostname
|
||
|
# and port parts. The format is
|
||
|
# http[s]://<hostname>[:<port>]
|
||
|
# Hostnames must be fully qualified: they must end in a single period
|
||
|
# ("`.`").
|
||
|
# Only the schemes "http" and "https" are currently allowed.
|
||
|
# Port numbers are given as a decimal number, and they must be omitted if the
|
||
|
# standard port numbers are used: 80 for http and 443 for https.
|
||
|
# We call this limited URL the "site". All URLs that share the same scheme,
|
||
|
# hostname and port are considered to be a part of the site and thus belong
|
||
|
# to the web asset.
|
||
|
# Example: the asset with the site `https://www.google.com` contains all
|
||
|
# these URLs:
|
||
|
# * `https://www.google.com/`
|
||
|
# * `https://www.google.com:443/`
|
||
|
# * `https://www.google.com/foo`
|
||
|
# * `https://www.google.com/foo?bar`
|
||
|
# * `https://www.google.com/foo#bar`
|
||
|
# * `https://user@password:www.google.com/`
|
||
|
# But it does not contain these URLs:
|
||
|
# * `http://www.google.com/` (wrong scheme)
|
||
|
# * `https://google.com/` (hostname does not match)
|
||
|
# * `https://www.google.com:444/` (port does not match)
|
||
|
# REQUIRED
|
||
|
# Corresponds to the JSON property `site`
|
||
|
# @return [String]
|
||
|
attr_accessor :site
|
||
|
|
||
|
def initialize(**args)
|
||
|
update!(**args)
|
||
|
end
|
||
|
|
||
|
# Update properties of this object
|
||
|
def update!(**args)
|
||
|
@site = args[:site] if args.key?(:site)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|