# Directory # Services ## List Workers VPC connectivity services `connectivity.directory.services.list(ServiceListParams**kwargs) -> SyncV4PagePaginationArray[ServiceListResponse]` **get** `/accounts/{account_id}/connectivity/directory/services` List Workers VPC connectivity services ### Parameters - `account_id: str` Account identifier - `page: Optional[int]` Current page in the response - `per_page: Optional[int]` Max amount of entries returned per page - `type: Optional[Literal["http"]]` - `"http"` ### Returns - `class ServiceListResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.connectivity.directory.services.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.service_id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "host": { "ipv4": "10.0.0.1", "network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" } }, "name": "web-app", "type": "http", "created_at": "2024-01-15T09:30:00Z", "http_port": 8080, "https_port": 8443, "service_id": "550e8400-e29b-41d4-a716-446655440000", "updated_at": "2024-01-15T10:45:00Z" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create Workers VPC connectivity service `connectivity.directory.services.create(ServiceCreateParams**kwargs) -> ServiceCreateResponse` **post** `/accounts/{account_id}/connectivity/directory/services` Create Workers VPC connectivity service ### Parameters - `account_id: str` Account identifier - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[SequenceNotStr[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `http_port: Optional[int]` - `https_port: Optional[int]` ### Returns - `class ServiceCreateResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) service = client.connectivity.directory.services.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", host={ "hostname": "api.example.com", "resolver_network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" }, }, name="web-server", type="http", ) print(service.service_id) ``` #### Response ```json { "errors": [], "messages": [], "result": { "created_at": "2024-01-15T09:30:00Z", "host": { "hostname": "api.example.com", "resolver_network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" } }, "name": "web-server", "service_id": "550e8400-e29b-41d4-a716-446655440000", "type": "http", "updated_at": "2024-01-15T09:30:00Z" }, "success": true } ``` ## Get Workers VPC connectivity service `connectivity.directory.services.get(strservice_id, ServiceGetParams**kwargs) -> ServiceGetResponse` **get** `/accounts/{account_id}/connectivity/directory/services/{service_id}` Get Workers VPC connectivity service ### Parameters - `account_id: str` - `service_id: str` ### Returns - `class ServiceGetResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) service = client.connectivity.directory.services.get( service_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", account_id="account_id", ) print(service.service_id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "host": { "ipv4": "10.0.0.1", "network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" } }, "name": "web-app", "type": "http", "created_at": "2024-01-15T09:30:00Z", "http_port": 8080, "https_port": 8443, "service_id": "550e8400-e29b-41d4-a716-446655440000", "updated_at": "2024-01-15T10:45:00Z" } } ``` ## Update Workers VPC connectivity service `connectivity.directory.services.update(strservice_id, ServiceUpdateParams**kwargs) -> ServiceUpdateResponse` **put** `/accounts/{account_id}/connectivity/directory/services/{service_id}` Update Workers VPC connectivity service ### Parameters - `account_id: str` - `service_id: str` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[SequenceNotStr[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `http_port: Optional[int]` - `https_port: Optional[int]` ### Returns - `class ServiceUpdateResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) service = client.connectivity.directory.services.update( service_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", account_id="account_id", host={ "ipv4": "10.0.0.1", "network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" }, }, name="web-app", type="http", ) print(service.service_id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "host": { "ipv4": "10.0.0.1", "network": { "tunnel_id": "0191dce4-9ab4-7fce-b660-8e5dec5172da" } }, "name": "web-app", "type": "http", "created_at": "2024-01-15T09:30:00Z", "http_port": 8080, "https_port": 8443, "service_id": "550e8400-e29b-41d4-a716-446655440000", "updated_at": "2024-01-15T10:45:00Z" } } ``` ## Delete Workers VPC connectivity service `connectivity.directory.services.delete(strservice_id, ServiceDeleteParams**kwargs)` **delete** `/accounts/{account_id}/connectivity/directory/services/{service_id}` Delete Workers VPC connectivity service ### Parameters - `account_id: str` - `service_id: str` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) client.connectivity.directory.services.delete( service_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", account_id="account_id", ) ``` ## Domain Types ### Service List Response - `class ServiceListResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Service Create Response - `class ServiceCreateResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Service Get Response - `class ServiceGetResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]` ### Service Update Response - `class ServiceUpdateResponse: …` - `host: Host` - `class HostInfraIPv4Host: …` - `ipv4: str` - `network: HostInfraIPv4HostNetwork` - `tunnel_id: str` - `class HostInfraIPv6Host: …` - `ipv6: str` - `network: HostInfraIPv6HostNetwork` - `tunnel_id: str` - `class HostInfraDualStackHost: …` - `ipv4: str` - `ipv6: str` - `network: HostInfraDualStackHostNetwork` - `tunnel_id: str` - `class HostInfraHostnameHost: …` - `hostname: str` - `resolver_network: HostInfraHostnameHostResolverNetwork` - `tunnel_id: str` - `resolver_ips: Optional[List[str]]` - `name: str` - `type: Literal["http"]` - `"http"` - `created_at: Optional[datetime]` - `http_port: Optional[int]` - `https_port: Optional[int]` - `service_id: Optional[str]` - `updated_at: Optional[datetime]`