Service Networking API . services

Instance Methods

connections()

Returns the connections Resource.

roles()

Returns the roles Resource.

addSubnetwork(parent=None, body=None, x__xgafv=None)

For service producers, provisions a new subnet in a

disableVpcServiceControls(parent=None, body=None, x__xgafv=None)

Disables VPC service controls for a connection.

enableVpcServiceControls(parent=None, body=None, x__xgafv=None)

Enables VPC service controls for a connection.

searchRange(parent=None, body=None, x__xgafv=None)

Service producers can use this method to find a currently unused range

validate(parent=None, body=None, x__xgafv=None)

Service producers use this method to validate if the consumer provided

Method Details

addSubnetwork(parent=None, body=None, x__xgafv=None)
For service producers, provisions a new subnet in a
peered service's shared VPC network in the requested region and with the
requested size that's expressed as a CIDR range (number of leading bits of
ipV4 network mask). The method checks against the assigned allocated ranges
to find a non-conflicting IP address range. The method will reuse a subnet
if subsequent calls contain the same subnet name, region, and prefix
length. This method will make producer's tenant project to be a shared VPC
service project as needed. The response from the `get` operation will be of
type `Subnetwork` if the operation successfully completes.

Args:
  parent: string, Required. A tenant project in the service producer organization, in the
following format: services/{service}/{collection-id}/{resource-id}.
{collection-id} is the cloud resource collection type that represents the
tenant project. Only `projects` are supported.
{resource-id} is the tenant project numeric id, such as
`123456`. {service} the name of the peering service, such as
`service-peering.example.com`. This service must already be
enabled in the service consumer's project. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to create a subnetwork in a previously peered service network.
    "description": "A String", # Optional. Description of the subnet.
    "consumerNetwork": "A String", # Required. The name of the service consumer's VPC network. The network
        # must have an existing private connection that was provisioned through the
        # connections.create method. The name must be in the following format:
        # `projects/{project}/global/networks/{network}`, where {project}
        # is a project number, such as `12345`. {network} is the name of a
        # VPC network in the project.
    "region": "A String", # Required. The name of a [region](/compute/docs/regions-zones)
        # for the subnet, such `europe-west1`.
    "privateIpv6GoogleAccess": "A String", # Optional. The private IPv6 google access type for the VMs in this subnet.
        # For information about the access types that can be set using this field,
        # see [subnetwork](/compute/docs/reference/rest/v1/subnetworks)
        # in the Compute API documentation.
    "requestedAddress": "A String", # Optional. The starting address of a range. The address must be a valid
        # IPv4 address in the x.x.x.x format. This value combined with the IP prefix
        # range is the CIDR range for the subnet. The range must be within the
        # allocated range that is assigned to the private connection. If the CIDR
        # range isn't available, the call fails.
    "ipPrefixLength": 42, # Required. The prefix length of the subnet's IP address range.  Use CIDR
        # range notation, such as `30` to provision a subnet with an
        # `x.x.x.x/30` CIDR range. The IP address range is drawn from a
        # pool of available ranges in the service consumer's allocated range.
    "subnetwork": "A String", # Required. A name for the new subnet. For information about the naming
        # requirements, see [subnetwork](/compute/docs/reference/rest/v1/subnetworks)
        # in the Compute API documentation.
    "consumer": "A String", # Required. A resource that represents the service consumer, such as
        # `projects/123456`. The project number can be different from the
        # value in the consumer network parameter. For example, the network might be
        # part of a Shared VPC network. In those cases, Service Networking validates
        # that this resource belongs to that Shared VPC.
    "subnetworkUsers": [ # A list of members that are granted the `compute.networkUser`
        # role on the subnet.
      "A String",
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
  }
disableVpcServiceControls(parent=None, body=None, x__xgafv=None)
Disables VPC service controls for a connection.

Args:
  parent: string, The service that is managing peering connectivity for a service producer's
organization. For Google services that support this functionality, this
value is `services/servicenetworking.googleapis.com`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to disable VPC service controls.
    "consumerNetwork": "A String", # Required. The network that the consumer is using to connect with services.
        # Must be in the form of projects/{project}/global/networks/{network}
        # {project} is a project number, as in '12345'
        # {network} is network name.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
  }
enableVpcServiceControls(parent=None, body=None, x__xgafv=None)
Enables VPC service controls for a connection.

Args:
  parent: string, The service that is managing peering connectivity for a service producer's
organization. For Google services that support this functionality, this
value is `services/servicenetworking.googleapis.com`. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to enable VPC service controls.
    "consumerNetwork": "A String", # Required. The network that the consumer is using to connect with services.
        # Must be in the form of projects/{project}/global/networks/{network}
        # {project} is a project number, as in '12345'
        # {network} is network name.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
  }
searchRange(parent=None, body=None, x__xgafv=None)
Service producers can use this method to find a currently unused range
within consumer allocated ranges.   This returned range is not reserved,
and not guaranteed to remain unused.
It will validate previously provided allocated ranges, find
non-conflicting sub-range of requested size (expressed in
number of leading bits of ipv4 network mask, as in CIDR range
notation).
Operation<response: Range>

Args:
  parent: string, Required. This is in a form services/{service}. {service} the name of the private
access management service, for example 'service-peering.example.com'. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to search for an unused range within allocated ranges.
    "ipPrefixLength": 42, # Required. The prefix length of the IP range. Use usual CIDR range notation. For
        # example, '30' to find unused x.x.x.x/30 CIDR range. Actual range will be
        # determined using allocated range for the consumer peered network and
        # returned in the result.
    "network": "A String", # Network name in the consumer project. This network must have been
        # already peered with a shared VPC network using CreateConnection
        # method. Must be in a form 'projects/{project}/global/networks/{network}'.
        # {project} is a project number, as in '12345' {network} is network name.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a
      # network API call.
    "metadata": { # Service-specific metadata associated with the operation.  It typically
        # contains progress information and common metadata such as create time.
        # Some services might not provide such metadata.  Any method that returns a
        # long-running operation should document the metadata type, if any.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "error": { # The `Status` type defines a logical error model that is suitable for # The error result of the operation in case of failure or cancellation.
        # different programming environments, including REST APIs and RPC APIs. It is
        # used by [gRPC](https://github.com/grpc). Each `Status` message contains
        # three pieces of data: error code, error message, and error details.
        #
        # You can find out more about this error model and how to work with it in the
        # [API Design Guide](https://cloud.google.com/apis/design/errors).
      "message": "A String", # A developer-facing error message, which should be in English. Any
          # user-facing error message should be localized and sent in the
          # google.rpc.Status.details field, or localized by the client.
      "code": 42, # The status code, which should be an enum value of google.rpc.Code.
      "details": [ # A list of messages that carry the error details.  There is a common set of
          # message types for APIs to use.
        {
          "a_key": "", # Properties of the object. Contains field @type with type URL.
        },
      ],
    },
    "done": True or False, # If the value is `false`, it means the operation is still in progress.
        # If `true`, the operation is completed, and either `error` or `response` is
        # available.
    "response": { # The normal response of the operation in case of success.  If the original
        # method returns no data on success, such as `Delete`, the response is
        # `google.protobuf.Empty`.  If the original method is standard
        # `Get`/`Create`/`Update`, the response should be the resource.  For other
        # methods, the response should have the type `XxxResponse`, where `Xxx`
        # is the original method name.  For example, if the original method name
        # is `TakeSnapshot()`, the inferred response type is
        # `TakeSnapshotResponse`.
      "a_key": "", # Properties of the object. Contains field @type with type URL.
    },
    "name": "A String", # The server-assigned name, which is only unique within the same service that
        # originally returns it. If you use the default HTTP mapping, the
        # `name` should be a resource name ending with `operations/{unique_id}`.
  }
validate(parent=None, body=None, x__xgafv=None)
Service producers use this method to validate if the consumer provided
network, project and the requested range is valid. This allows them to use
a fail-fast mechanism for consumer requests, and not have to wait for
AddSubnetwork operation completion to determine if user request is invalid.

Args:
  parent: string, Required. This is in a form services/{service} where {service} is the name of the
private access management service. For example
'service-peering.example.com'. (required)
  body: object, The request body.
    The object takes the form of:

{
    "consumerNetwork": "A String", # Required. The network that the consumer is using to connect with services. Must be in
        # the form of projects/{project}/global/networks/{network} {project} is a
        # project number, as in '12345' {network} is network name.
    "validateNetwork": True or False, # The validations will be performed in the order listed in the
        # ValidationError enum. The first failure will return. If a validation is not
        # requested, then the next one will be performed.
        # SERVICE_NETWORKING_NOT_ENABLED and NETWORK_NOT_PEERED checks are performed
        # for all requests where validation is requested. NETWORK_NOT_FOUND and
        # NETWORK_DISCONNECTED checks are done for requests that have
        # validate_network set to true.
    "consumerProject": { # Represents a consumer project. # NETWORK_NOT_IN_CONSUMERS_PROJECT, NETWORK_NOT_IN_CONSUMERS_HOST_PROJECT,
        # and HOST_PROJECT_NOT_FOUND are done when consumer_project is provided.
      "projectNum": "A String", # Required. Project number of the consumer that is launching the service instance. It
          # can own the network that is peered with Google or, be a service project in
          # an XPN where the host project has the network.
    },
    "rangeReservation": { # Represents a range reservation. # RANGES_EXHAUSTED, RANGES_EXHAUSTED, and RANGES_DELETED_LATER are done
        # when range_reservation is provided.
      "secondaryRangeIpPrefixLengths": [ # Optional. DO NOT USE - Under development.
          # The size of the desired secondary ranges for the subnet. Use usual CIDR
          # range notation. For example, '30' to find unused x.x.x.x/30 CIDR range. The
          # goal is to determine that the allocated ranges have enough free space for
          # all the requested secondary ranges.
        42,
      ],
      "ipPrefixLength": 42, # Required. The size of the desired subnet. Use usual CIDR range notation. For example,
          # '30' to find unused x.x.x.x/30 CIDR range. The goal is to determine if one
          # of the allocated ranges has enough free space for a subnet of the requested
          # size.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "isValid": True or False,
    "validationError": "A String",
  }