CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-google-cloud-service-usage

Google Cloud Service Usage API client library for managing Google Cloud services programmatically

Pending
Overview
Eval results
Files

service-management.mddocs/

Service Management Operations

Core service lifecycle operations for managing Google Cloud services within projects. These operations handle enabling, disabling, and batch management of services.

Capabilities

Enable Service

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}")

Disable Service

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}")

Batch Enable Services

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}")

Request Types

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 prefix

Response Types

class 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: str

Install with Tessl CLI

npx tessl i tessl/pypi-google-cloud-service-usage

docs

async-operations.md

index.md

operations-management.md

service-discovery.md

service-management.md

tile.json