Google Cloud Service Usage API client library for managing Google Cloud services programmatically
—
Core service lifecycle operations for managing Google Cloud services within projects. These operations handle enabling, disabling, and batch management of services.
Enables a Google Cloud service for use by a project. This is an asynchronous operation that returns a long-running operation.
def enable_service(
request: EnableServiceRequest,
*,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
timeout: Optional[float] = None,
metadata: Sequence[Tuple[str, str]] = ()
) -> Operation[EnableServiceResponse, OperationMetadata]:
"""
Enable a service for a project.
Args:
request: The request object containing the service name to enable
retry: Retry configuration for the request
timeout: Request timeout in seconds
metadata: Additional metadata for the request
Returns:
Long-running operation that resolves to EnableServiceResponse
Raises:
google.api_core.exceptions.GoogleAPICallError: If the request fails
"""Usage example:
from google.cloud import service_usage
client = service_usage.ServiceUsageClient()
# Enable Cloud Storage API for a project
service_name = "projects/my-project-id/services/storage.googleapis.com"
request = service_usage.EnableServiceRequest(name=service_name)
operation = client.enable_service(request=request)
print(f"Operation name: {operation.name}")
# Wait for completion
result = operation.result(timeout=300) # 5 minute timeout
print(f"Service enabled: {result.service.name}")
print(f"Service state: {result.service.state}")Disables a Google Cloud service for a project. This is an asynchronous operation that returns a long-running operation.
def disable_service(
request: DisableServiceRequest,
*,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
timeout: Optional[float] = None,
metadata: Sequence[Tuple[str, str]] = ()
) -> Operation[DisableServiceResponse, OperationMetadata]:
"""
Disable a service for a project.
Args:
request: The request object containing the service name and options
retry: Retry configuration for the request
timeout: Request timeout in seconds
metadata: Additional metadata for the request
Returns:
Long-running operation that resolves to DisableServiceResponse
Raises:
google.api_core.exceptions.GoogleAPICallError: If the request fails
"""Usage example:
from google.cloud import service_usage
client = service_usage.ServiceUsageClient()
# Disable a service (be careful with dependent services)
service_name = "projects/my-project-id/services/storage.googleapis.com"
request = service_usage.DisableServiceRequest(
name=service_name,
disable_dependent_services=False # Set to True to disable dependents
)
operation = client.disable_service(request=request)
result = operation.result()
print(f"Service disabled: {result.service.name}")Enables multiple services simultaneously for a project. This is more efficient than individual enable operations.
def batch_enable_services(
request: BatchEnableServicesRequest,
*,
retry: OptionalRetry = gapic_v1.method.DEFAULT,
timeout: Optional[float] = None,
metadata: Sequence[Tuple[str, str]] = ()
) -> Operation[BatchEnableServicesResponse, OperationMetadata]:
"""
Enable multiple services for a project in a single operation.
Args:
request: The request object containing parent and service IDs
retry: Retry configuration for the request
timeout: Request timeout in seconds
metadata: Additional metadata for the request
Returns:
Long-running operation that resolves to BatchEnableServicesResponse
Raises:
google.api_core.exceptions.GoogleAPICallError: If the request fails
"""Usage example:
from google.cloud import service_usage
client = service_usage.ServiceUsageClient()
# Enable multiple services at once
parent = "projects/my-project-id"
service_ids = [
"storage.googleapis.com",
"compute.googleapis.com",
"bigquery.googleapis.com"
]
request = service_usage.BatchEnableServicesRequest(
parent=parent,
service_ids=service_ids
)
operation = client.batch_enable_services(request=request)
result = operation.result()
print(f"Enabled {len(result.services)} services:")
for service in result.services:
print(f" - {service.name}")
# Check for any failures
if result.failures:
print("Failures:")
for failure in result.failures:
print(f" - {failure.service_id}: {failure.error_message}")class EnableServiceRequest:
"""Request to enable a service."""
name: str # Format: "projects/{project}/services/{service}"
class DisableServiceRequest:
"""Request to disable a service."""
name: str # Format: "projects/{project}/services/{service}"
disable_dependent_services: bool
class BatchEnableServicesRequest:
"""Request to enable multiple services."""
parent: str # Format: "projects/{project}"
service_ids: List[str] # Service names without project prefixclass EnableServiceResponse:
"""Response from enabling a service."""
service: Service # The service after enabling
class DisableServiceResponse:
"""Response from disabling a service."""
service: Service # The service after disabling
class BatchEnableServicesResponse:
"""Response from batch enabling services."""
services: List[Service] # Successfully enabled services
failures: List[BatchEnableServicesResponse.EnableFailure] # Failed services
class EnableFailure:
"""Information about a failed service enable."""
service_id: str
error_message: strInstall with Tessl CLI
npx tessl i tessl/pypi-google-cloud-service-usage