packages feed

gogol-cloudprivatecatalog-1.0.0: gen/Gogol/CloudPrivateCatalog/Internal/Product.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- |
-- Module      : Gogol.CloudPrivateCatalog.Internal.Product
-- Copyright   : (c) 2015-2025 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
--               Toni Cebrián <toni@tonicebrian.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Gogol.CloudPrivateCatalog.Internal.Product
  ( -- * GoogleCloudPrivatecatalogV1beta1Catalog
    GoogleCloudPrivatecatalogV1beta1Catalog (..),
    newGoogleCloudPrivatecatalogV1beta1Catalog,

    -- * GoogleCloudPrivatecatalogV1beta1Product
    GoogleCloudPrivatecatalogV1beta1Product (..),
    newGoogleCloudPrivatecatalogV1beta1Product,

    -- * GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
    GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata (..),
    newGoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata,

    -- * GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
    GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse (..),
    newGoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse,

    -- * GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
    GoogleCloudPrivatecatalogV1beta1SearchProductsResponse (..),
    newGoogleCloudPrivatecatalogV1beta1SearchProductsResponse,

    -- * GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
    GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse (..),
    newGoogleCloudPrivatecatalogV1beta1SearchVersionsResponse,

    -- * GoogleCloudPrivatecatalogV1beta1Version
    GoogleCloudPrivatecatalogV1beta1Version (..),
    newGoogleCloudPrivatecatalogV1beta1Version,

    -- * GoogleCloudPrivatecatalogV1beta1Version_Asset
    GoogleCloudPrivatecatalogV1beta1Version_Asset (..),
    newGoogleCloudPrivatecatalogV1beta1Version_Asset,
  )
where

import Gogol.CloudPrivateCatalog.Internal.Sum
import Gogol.Prelude qualified as Core

-- | The readonly representation of a catalog computed with a given resource context.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1Catalog' smart constructor.
data GoogleCloudPrivatecatalogV1beta1Catalog = GoogleCloudPrivatecatalogV1beta1Catalog
  { -- | Output only. The time when the catalog was created.
    createTime :: (Core.Maybe Core.DateTime),
    -- | Output only. The description of the catalog.
    description :: (Core.Maybe Core.Text),
    -- | Output only. The descriptive name of the catalog as it appears in UIs.
    displayName :: (Core.Maybe Core.Text),
    -- | Output only. The resource name of the target catalog, in the format of \`catalogs\/{catalog_id}\'.
    name :: (Core.Maybe Core.Text),
    -- | Output only. The time when the catalog was last updated.
    updateTime :: (Core.Maybe Core.DateTime)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1Catalog' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1Catalog ::
  GoogleCloudPrivatecatalogV1beta1Catalog
newGoogleCloudPrivatecatalogV1beta1Catalog =
  GoogleCloudPrivatecatalogV1beta1Catalog
    { createTime =
        Core.Nothing,
      description = Core.Nothing,
      displayName = Core.Nothing,
      name = Core.Nothing,
      updateTime = Core.Nothing
    }

instance Core.FromJSON GoogleCloudPrivatecatalogV1beta1Catalog where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1Catalog"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1Catalog
            Core.<$> (o Core..:? "createTime")
            Core.<*> (o Core..:? "description")
            Core.<*> (o Core..:? "displayName")
            Core.<*> (o Core..:? "name")
            Core.<*> (o Core..:? "updateTime")
      )

instance Core.ToJSON GoogleCloudPrivatecatalogV1beta1Catalog where
  toJSON GoogleCloudPrivatecatalogV1beta1Catalog {..} =
    Core.object
      ( Core.catMaybes
          [ ("createTime" Core..=) Core.<$> createTime,
            ("description" Core..=) Core.<$> description,
            ("displayName" Core..=) Core.<$> displayName,
            ("name" Core..=) Core.<$> name,
            ("updateTime" Core..=) Core.<$> updateTime
          ]
      )

-- | The readonly representation of a product computed with a given resource context.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1Product' smart constructor.
data GoogleCloudPrivatecatalogV1beta1Product = GoogleCloudPrivatecatalogV1beta1Product
  { -- | Output only. The type of the product asset. It can be one of the following values:
    --
    -- -   @google.deploymentmanager.Template@
    -- -   @google.cloudprivatecatalog.ListingOnly@
    assetType :: (Core.Maybe Core.Text),
    -- | Output only. The time when the product was created.
    createTime :: (Core.Maybe Core.DateTime),
    -- | Output only. The display metadata to describe the product. The JSON schema of the metadata differs by Product.asset_type. When the type is @google.deploymentmanager.Template@, the schema is as follows:
    --
    -- \`\`\` \"$schema\": http:\/\/json-schema.org\/draft-04\/schema# type: object properties: name: type: string minLength: 1 maxLength: 64 description: type: string minLength: 1 maxLength: 2048 tagline: type: string minLength: 1 maxLength: 100 support/info: type: string minLength: 1 maxLength: 2048 creator: type: string minLength: 1 maxLength: 100 documentation: type: array items: type: object properties: url: type: string pattern: \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~/|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\" title: type: string minLength: 1 maxLength: 64 description: type: string minLength: 1 maxLength: 2048 required: - name - description additionalProperties: false
    --
    -- \`\`\`
    --
    -- When the asset type is @google.cloudprivatecatalog.ListingOnly@, the schema is as follows:
    --
    -- @\"$schema\": http:\/\/json-schema.org\/draft-04\/schema# type: object properties:   name:     type: string     minLength: 1     maxLength: 64   description:     type: string     minLength: 1     maxLength: 2048   tagline:     type: string     minLength: 1     maxLength: 100   support_info:     type: string     minLength: 1     maxLength: 2048   creator:     type: string     minLength: 1     maxLength: 100   documentation:     type: array     items:       type: object       properties:         url:           type: string           pattern:           \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\"         title:           type: string           minLength: 1           maxLength: 64         description:           type: string           minLength: 1           maxLength: 2048   signup_url:     type: string     pattern:     \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\" required: - name - description - signup_url additionalProperties: false@
    displayMetadata ::
      ( Core.Maybe
          GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
      ),
    -- | Output only. The icon URI of the product.
    iconUri :: (Core.Maybe Core.Text),
    -- | Output only. The resource name of the target product, in the format of \`products\/a-z*[a-z0-9]\'.
    --
    -- A unique identifier for the product under a catalog.
    name :: (Core.Maybe Core.Text),
    -- | Output only. The time when the product was last updated.
    updateTime :: (Core.Maybe Core.DateTime)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1Product' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1Product ::
  GoogleCloudPrivatecatalogV1beta1Product
newGoogleCloudPrivatecatalogV1beta1Product =
  GoogleCloudPrivatecatalogV1beta1Product
    { assetType = Core.Nothing,
      createTime = Core.Nothing,
      displayMetadata = Core.Nothing,
      iconUri = Core.Nothing,
      name = Core.Nothing,
      updateTime = Core.Nothing
    }

instance Core.FromJSON GoogleCloudPrivatecatalogV1beta1Product where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1Product"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1Product
            Core.<$> (o Core..:? "assetType")
            Core.<*> (o Core..:? "createTime")
            Core.<*> (o Core..:? "displayMetadata")
            Core.<*> (o Core..:? "iconUri")
            Core.<*> (o Core..:? "name")
            Core.<*> (o Core..:? "updateTime")
      )

instance Core.ToJSON GoogleCloudPrivatecatalogV1beta1Product where
  toJSON GoogleCloudPrivatecatalogV1beta1Product {..} =
    Core.object
      ( Core.catMaybes
          [ ("assetType" Core..=) Core.<$> assetType,
            ("createTime" Core..=) Core.<$> createTime,
            ("displayMetadata" Core..=) Core.<$> displayMetadata,
            ("iconUri" Core..=) Core.<$> iconUri,
            ("name" Core..=) Core.<$> name,
            ("updateTime" Core..=) Core.<$> updateTime
          ]
      )

-- | Output only. The display metadata to describe the product. The JSON schema of the metadata differs by Product.asset_type. When the type is @google.deploymentmanager.Template@, the schema is as follows:
--
-- \`\`\` \"$schema\": http:\/\/json-schema.org\/draft-04\/schema# type: object properties: name: type: string minLength: 1 maxLength: 64 description: type: string minLength: 1 maxLength: 2048 tagline: type: string minLength: 1 maxLength: 100 support/info: type: string minLength: 1 maxLength: 2048 creator: type: string minLength: 1 maxLength: 100 documentation: type: array items: type: object properties: url: type: string pattern: \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~/|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\" title: type: string minLength: 1 maxLength: 64 description: type: string minLength: 1 maxLength: 2048 required: - name - description additionalProperties: false
--
-- \`\`\`
--
-- When the asset type is @google.cloudprivatecatalog.ListingOnly@, the schema is as follows:
--
-- @\"$schema\": http:\/\/json-schema.org\/draft-04\/schema# type: object properties:   name:     type: string     minLength: 1     maxLength: 64   description:     type: string     minLength: 1     maxLength: 2048   tagline:     type: string     minLength: 1     maxLength: 100   support_info:     type: string     minLength: 1     maxLength: 2048   creator:     type: string     minLength: 1     maxLength: 100   documentation:     type: array     items:       type: object       properties:         url:           type: string           pattern:           \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\"         title:           type: string           minLength: 1           maxLength: 64         description:           type: string           minLength: 1           maxLength: 2048   signup_url:     type: string     pattern:     \"^(https?):\/\/[-a-zA-Z0-9+&\@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&\@#\/%=~_|]\" required: - name - description - signup_url additionalProperties: false@
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata' smart constructor.
newtype GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata = GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
  { -- | Properties of the object.
    additional :: (Core.HashMap Core.Text Core.Value)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata ::
  -- |  Properties of the object. See 'additional'.
  Core.HashMap Core.Text Core.Value ->
  GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
newGoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
  additional =
    GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
      { additional =
          additional
      }

instance
  Core.FromJSON
    GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
  where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
            Core.<$> (Core.parseJSONObject o)
      )

instance
  Core.ToJSON
    GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata
  where
  toJSON GoogleCloudPrivatecatalogV1beta1Product_DisplayMetadata {..} =
    Core.toJSON additional

-- | Response message for PrivateCatalog.SearchCatalogs.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse' smart constructor.
data GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse = GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
  { -- | The @Catalog@s computed from the resource context.
    catalogs :: (Core.Maybe [GoogleCloudPrivatecatalogV1beta1Catalog]),
    -- | A pagination token returned from a previous call to SearchCatalogs that indicates from where listing should continue. This field is optional.
    nextPageToken :: (Core.Maybe Core.Text)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse ::
  GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
newGoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse =
  GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
    { catalogs =
        Core.Nothing,
      nextPageToken = Core.Nothing
    }

instance
  Core.FromJSON
    GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
  where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
            Core.<$> (o Core..:? "catalogs")
            Core.<*> (o Core..:? "nextPageToken")
      )

instance
  Core.ToJSON
    GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse
  where
  toJSON GoogleCloudPrivatecatalogV1beta1SearchCatalogsResponse {..} =
    Core.object
      ( Core.catMaybes
          [ ("catalogs" Core..=) Core.<$> catalogs,
            ("nextPageToken" Core..=) Core.<$> nextPageToken
          ]
      )

-- | Response message for PrivateCatalog.SearchProducts.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1SearchProductsResponse' smart constructor.
data GoogleCloudPrivatecatalogV1beta1SearchProductsResponse = GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
  { -- | A pagination token returned from a previous call to SearchProducts that indicates from where listing should continue. This field is optional.
    nextPageToken :: (Core.Maybe Core.Text),
    -- | The @Product@ resources computed from the resource context.
    products :: (Core.Maybe [GoogleCloudPrivatecatalogV1beta1Product])
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1SearchProductsResponse' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1SearchProductsResponse ::
  GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
newGoogleCloudPrivatecatalogV1beta1SearchProductsResponse =
  GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
    { nextPageToken =
        Core.Nothing,
      products = Core.Nothing
    }

instance
  Core.FromJSON
    GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
  where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1SearchProductsResponse"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
            Core.<$> (o Core..:? "nextPageToken")
            Core.<*> (o Core..:? "products")
      )

instance
  Core.ToJSON
    GoogleCloudPrivatecatalogV1beta1SearchProductsResponse
  where
  toJSON GoogleCloudPrivatecatalogV1beta1SearchProductsResponse {..} =
    Core.object
      ( Core.catMaybes
          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,
            ("products" Core..=) Core.<$> products
          ]
      )

-- | Response message for PrivateCatalog.SearchVersions.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1SearchVersionsResponse' smart constructor.
data GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse = GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
  { -- | A pagination token returned from a previous call to SearchVersions that indicates from where the listing should continue. This field is optional.
    nextPageToken :: (Core.Maybe Core.Text),
    -- | The @Version@ resources computed from the resource context.
    versions :: (Core.Maybe [GoogleCloudPrivatecatalogV1beta1Version])
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1SearchVersionsResponse ::
  GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
newGoogleCloudPrivatecatalogV1beta1SearchVersionsResponse =
  GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
    { nextPageToken =
        Core.Nothing,
      versions = Core.Nothing
    }

instance
  Core.FromJSON
    GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
  where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
            Core.<$> (o Core..:? "nextPageToken")
            Core.<*> (o Core..:? "versions")
      )

instance
  Core.ToJSON
    GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse
  where
  toJSON GoogleCloudPrivatecatalogV1beta1SearchVersionsResponse {..} =
    Core.object
      ( Core.catMaybes
          [ ("nextPageToken" Core..=) Core.<$> nextPageToken,
            ("versions" Core..=) Core.<$> versions
          ]
      )

-- | The consumer representation of a version which is a child resource under a @Product@ with asset data.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1Version' smart constructor.
data GoogleCloudPrivatecatalogV1beta1Version = GoogleCloudPrivatecatalogV1beta1Version
  { -- | Output only. The asset which has been validated and is ready to be provisioned. See google.cloud.privatecatalogproducer.v1beta.Version.asset for details.
    asset :: (Core.Maybe GoogleCloudPrivatecatalogV1beta1Version_Asset),
    -- | Output only. The time when the version was created.
    createTime :: (Core.Maybe Core.DateTime),
    -- | Output only. The user-supplied description of the version. Maximum of 256 characters.
    description :: (Core.Maybe Core.Text),
    -- | Output only. The resource name of the version, in the format \`catalogs\/{catalog/id}\/products\/{product/id}\/versions\/a-z*[a-z0-9]\'.
    --
    -- A unique identifier for the version under a product.
    name :: (Core.Maybe Core.Text),
    -- | Output only. The time when the version was last updated.
    updateTime :: (Core.Maybe Core.DateTime)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1Version' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1Version ::
  GoogleCloudPrivatecatalogV1beta1Version
newGoogleCloudPrivatecatalogV1beta1Version =
  GoogleCloudPrivatecatalogV1beta1Version
    { asset = Core.Nothing,
      createTime = Core.Nothing,
      description = Core.Nothing,
      name = Core.Nothing,
      updateTime = Core.Nothing
    }

instance Core.FromJSON GoogleCloudPrivatecatalogV1beta1Version where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1Version"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1Version
            Core.<$> (o Core..:? "asset")
            Core.<*> (o Core..:? "createTime")
            Core.<*> (o Core..:? "description")
            Core.<*> (o Core..:? "name")
            Core.<*> (o Core..:? "updateTime")
      )

instance Core.ToJSON GoogleCloudPrivatecatalogV1beta1Version where
  toJSON GoogleCloudPrivatecatalogV1beta1Version {..} =
    Core.object
      ( Core.catMaybes
          [ ("asset" Core..=) Core.<$> asset,
            ("createTime" Core..=) Core.<$> createTime,
            ("description" Core..=) Core.<$> description,
            ("name" Core..=) Core.<$> name,
            ("updateTime" Core..=) Core.<$> updateTime
          ]
      )

-- | Output only. The asset which has been validated and is ready to be provisioned. See google.cloud.privatecatalogproducer.v1beta.Version.asset for details.
--
-- /See:/ 'newGoogleCloudPrivatecatalogV1beta1Version_Asset' smart constructor.
newtype GoogleCloudPrivatecatalogV1beta1Version_Asset = GoogleCloudPrivatecatalogV1beta1Version_Asset
  { -- | Properties of the object.
    additional :: (Core.HashMap Core.Text Core.Value)
  }
  deriving (Core.Eq, Core.Show, Core.Generic)

-- | Creates a value of 'GoogleCloudPrivatecatalogV1beta1Version_Asset' with the minimum fields required to make a request.
newGoogleCloudPrivatecatalogV1beta1Version_Asset ::
  -- |  Properties of the object. See 'additional'.
  Core.HashMap Core.Text Core.Value ->
  GoogleCloudPrivatecatalogV1beta1Version_Asset
newGoogleCloudPrivatecatalogV1beta1Version_Asset additional =
  GoogleCloudPrivatecatalogV1beta1Version_Asset
    { additional =
        additional
    }

instance
  Core.FromJSON
    GoogleCloudPrivatecatalogV1beta1Version_Asset
  where
  parseJSON =
    Core.withObject
      "GoogleCloudPrivatecatalogV1beta1Version_Asset"
      ( \o ->
          GoogleCloudPrivatecatalogV1beta1Version_Asset
            Core.<$> (Core.parseJSONObject o)
      )

instance Core.ToJSON GoogleCloudPrivatecatalogV1beta1Version_Asset where
  toJSON GoogleCloudPrivatecatalogV1beta1Version_Asset {..} =
    Core.toJSON additional