# Service Networking API . services

## Instance Methods

Returns the connections Resource.

For service producers, provisions a new subnet in a

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

Updates the allocated ranges that are assigned to a connection.

### Method Details

`addSubnetwork(parent, 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", # An optional description of the subnet.
        "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.
        "region": "A String", # Required. The name of a [region](/compute/docs/regions-zones)
            # for the subnet, such `europe-west1`.
        "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.
        "subnetworkUsers": [ # A list of members that are granted the `compute.networkUser`
            # role on the subnet.
          "A String",
        ],
        "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.
        "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.
        "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.
      }

      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.
        "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.
        "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.
        },
        "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}`.
        "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.
        },
      }

`searchRange(parent, 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.
        "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.
        "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.
      }

      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.
        "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.
        "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.
        },
        "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}`.
        "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.
        },
      }

`updateConnections(name, body=None, force=None, updateMask=None, x__xgafv=None)`

    Updates the allocated ranges that are assigned to a connection.
    The response from the `get` operation will be of type `Connection` if the
    operation successfully completes.

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

    { # Represents a private connection resource. A private connection is implemented
          # as a VPC Network Peering connection between a service producer's VPC network
          # and a service consumer's VPC network.
        "reservedPeeringRanges": [ # The name of one or more allocated IP address ranges for this service
            # producer of type `PEERING`.
            # Note that invoking this method with a different range when connection is
            # already established will not modify already provisioned service
            # producer subnetworks.
          "A String",
        ],
        "peering": "A String", # Output only. The name of the VPC Network Peering connection that was created by the
            # service producer.
        "network": "A String", # The name of service consumer's VPC network that's connected with service
            # producer network, in the following format:
            # `projects/{project}/global/networks/{network}`.
            # `{project}` is a project number, such as in `12345` that includes
            # the VPC service consumer's VPC network. `{network}` is the name of the
            # service consumer's VPC network.
        "service": "A String", # Output only. The name of the peering service that's associated with this connection, in
            # the following format: `services/{service name}`.
      }

      force: boolean, If a previously defined allocated range is removed, force flag must be
    set to true.
      updateMask: string, The update mask. If this is omitted, it defaults to "*". You can only
    update the listed peering ranges.
      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.
        "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.
        "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.
        },
        "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}`.
        "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.
        },
      }