Skip to content

Commit

Permalink
complete implementation of vpc endpoint (#422)
Browse files Browse the repository at this point in the history
complete implementation of vpc endpoint

Reviewed-by: Anton Sidelnikov
Reviewed-by: Vineet Pruthi
  • Loading branch information
wuebbels authored Apr 4, 2024
1 parent a163920 commit b988dd9
Show file tree
Hide file tree
Showing 63 changed files with 4,759 additions and 27 deletions.
1 change: 1 addition & 0 deletions doc/source/cli/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,4 @@ documentation of these services:
smn
volume_backup
vpc
vpcep
35 changes: 35 additions & 0 deletions doc/source/cli/vpcep.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
VPC Endpoint Service (VPCEP)
============================

The VPCEP client is the command-line interface (CLI) for
the VPC Endpoint Service (VPCEP) API and its extensions.

For help on a specific `vpcep` command, enter:

.. code-block:: console
$ openstack vpcep help SUBCOMMAND
.. _vpcep_endpoint:

Vpcep Endpoint Operations
-------------------------

.. autoprogram-cliff:: openstack.vpcep.v1
:command: vpcep endpoint *

.. _vpcep_service:

Vpcep Service Operations
------------------------

.. autoprogram-cliff:: openstack.vpcep.v1
:command: vpcep service *

.. _vpcep_quota:

Vpcep Quota Operations
----------------------

.. autoprogram-cliff:: openstack.vpcep.v1
:command: vpcep quota *
6 changes: 6 additions & 0 deletions doc/source/coverage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,9 @@ under several service tags. This may change in future.
- X
- X
-
* - vpcep
- VPC Endpoint Service
- X
- X
- X
-
1 change: 1 addition & 0 deletions doc/source/sdk/guides/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Open Telekom Cloud related User Guides
sfsturbo
smn
vpc
vpcep
logging

.. _user_guides:
Expand Down
166 changes: 166 additions & 0 deletions doc/source/sdk/guides/vpcep.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
VPC Endpoint (VPCEP)
====================

VPC Endpoint (VPCEP) is a cloud service that provides secure and
private channels to connect your VPCs to VPC endpoint services,
including cloud services or your private services. It allows you
to plan networks flexibly without having to use EIPs. There are two
types of resources: VPC endpoint services and VPC endpoints.

.. contents:: Table of Contents
:local:

VPC Endpoint Service
--------------------

VPC endpoint services are cloud services or private services that
you manually configure in VPCEP. You can access these endpoint
services using VPC endpoints.

List Services
^^^^^^^^^^^^^

This interface is used to query an VPCEP services list and to filter
the output with query parameters.
:class:`~otcextensions.sdk.vpcep.v2.service.Service`.

.. literalinclude:: ../examples/vpcep/list_endpoints.py
:lines: 14-20

Create Service
^^^^^^^^^^^^^^

This interface is used to create a VPCEP service with
parameters.
:class:`~otcextensions.sdk.vpcep.v2.service.Service`.

.. literalinclude:: ../examples/vpcep/create_service.py
:lines: 14-30

Get Service
^^^^^^^^^^^

This interface is used to get a VPCEP service by ID
or an instance of class.
:class:`~otcextensions.sdk.vpcep.v2.service.Service`.

.. literalinclude:: ../examples/vpcep/get_service.py
:lines: 14-21

Find Service
^^^^^^^^^^^^

This interface is used to find a VPCEP service by ID
or name.
:class:`~otcextensions.sdk.vpcep.v2.service.Service`.

.. literalinclude:: ../examples/vpcep/find_service.py
:lines: 14-21

Delete Service
^^^^^^^^^^^^^^

This interface is used to delete a VPCEP service by ID
or an instance of class
:class:`~otcextensions.sdk.vpcep.v2.service.Service`.

.. literalinclude:: ../examples/vpcep/delete_service.py
:lines: 14-20

List Service Whitelist
^^^^^^^^^^^^^^^^^^^^^^

This interface is used to query an VPCEP service whitelist and to filter
the output with query parameters.
:class:`~otcextensions.sdk.vpcep.v2.whitelist.Whitelist`.

.. literalinclude:: ../examples/vpcep/list_service_whitelist.py
:lines: 14-22

Manage Service Whitelist
^^^^^^^^^^^^^^^^^^^^^^^^

This interface is used to manage a VPCEP service whitelist.
:class:`~otcextensions.sdk.vpcep.v2.whitelist.Whitelist`.

.. literalinclude:: ../examples/vpcep/manage_service_whitelist.py
:lines: 14-27

List Service Connections
^^^^^^^^^^^^^^^^^^^^^^^^

This interface is used to query an VPCEP service connections and to filter
the output with query parameters.
:class:`~otcextensions.sdk.vpcep.v2.connection.Connection`.

.. literalinclude:: ../examples/vpcep/list_service_connections.py
:lines: 14-22

Manage Service Connections
^^^^^^^^^^^^^^^^^^^^^^^^^^

This interface is used to manage a VPCEP service connections.
:class:`~otcextensions.sdk.vpcep.v2.connection.Connection`.

.. literalinclude:: ../examples/vpcep/manage_service_connections.py
:lines: 14-27

VPC Endpoint
------------

VPC endpoints are secure and private channels for connecting
VPCs to VPC endpoint services.

List Endpoints
^^^^^^^^^^^^^^

This interface is used to query an VPC endpoint list and to filter
the output with query parameters.
:class:`~otcextensions.sdk.vpcep.v2.endpoint.Endpoint`.

.. literalinclude:: ../examples/vpcep/list_endpoints.py
:lines: 14-20

Create Endpoint
^^^^^^^^^^^^^^^

This interface is used to create a VPC endpoint with
parameters.
:class:`~otcextensions.sdk.vpcep.v2.endpoint.Endpoint`.

.. literalinclude:: ../examples/vpcep/create_endpoint.py
:lines: 14-28

Get Endpoint
^^^^^^^^^^^^

This interface is used to get a VPC endpoint by ID
or an instance of class
:class:`~otcextensions.sdk.vpcep.v2.endpoint.Endpoint`.

.. literalinclude:: ../examples/vpcep/get_endpoint.py
:lines: 14-21

Delete Endpoint
^^^^^^^^^^^^^^^

This interface is used to delete a VPC endpoint by ID
or an instance of class
:class:`~otcextensions.sdk.vpcep.v2.endpoint.Endpoint`.

.. literalinclude:: ../examples/vpcep/delete_endpoint.py
:lines: 14-20

VPCEP Quota
-----------

List Resource Quota
^^^^^^^^^^^^^^^^^^^

This interface is used to query quota of vpc endpoint and endpoint_service
on a specific tenant.
:class:`~otcextensions.sdk.vpcep.v2.quota.Quota`.

.. literalinclude:: ../examples/vpcep/list_resource_quota.py
:lines: 14-20

1 change: 1 addition & 0 deletions doc/source/sdk/proxies/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Service Proxies
Software Repository for Containers Service (SWR) <swr>
Volume Backup Service (VBS) <volume_backup>
Virtual Private Cloud (VPC) <vpc>
VPC Endpoint (VPCEP) <vpcep>
Web Application Firewall (WAF) <waf>

.. _service-proxies:
Expand Down
47 changes: 47 additions & 0 deletions doc/source/sdk/proxies/vpcep.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
VPCEP API
=========

.. automodule:: otcextensions.sdk.vpcep.v1._proxy

The VPC Endpoint Class
----------------------

The vpcep high-level interface is available through the ``vpcep``
member of a :class:`~openstack.connection.Connection` object. The
``vpcep`` member will only be added if the
``otcextensions.sdk.register_otc_extensions(conn)`` method is called.

Endpoint Operations
^^^^^^^^^^^^^^^^^^^

.. autoclass:: otcextensions.sdk.vpcep.v1._proxy.Proxy
:noindex:
:members: endpoints, create_endpoint, get_endpoint, delete_endpoint

Service Operations
^^^^^^^^^^^^^^^^^^

.. autoclass:: otcextensions.sdk.vpcep.v1._proxy.Proxy
:noindex:
:members: services, create_service, get_service, find_service, delete_service

Service Connection Operations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. autoclass:: otcextensions.sdk.vpcep.v1._proxy.Proxy
:noindex:
:members: service_connections, manage_service_connections

Service WhiteList Operations
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. autoclass:: otcextensions.sdk.vpcep.v1._proxy.Proxy
:noindex:
:members: service_whitelist, manage_service_whitelist

Quota Operations
^^^^^^^^^^^^^^^^

.. autoclass:: otcextensions.sdk.vpcep.v1._proxy.Proxy
:noindex:
:members: resource_quota
1 change: 1 addition & 0 deletions doc/source/sdk/resources/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ Open Telekom Cloud Resources
Storage Disaster Recovery Service (SDRS) <sdrs/index>
Software Repository for Containers Service (SWR) <swr/index>
Virtual Private Cloud (VPC) <vpc/index>
VPC Endpoint (VPCEP) <vpcep/index>
Web Application Firewall (WAF) <waf/index>

Every resource which is used within the proxy methods have own attributes.
Expand Down
11 changes: 11 additions & 0 deletions doc/source/sdk/resources/vpcep/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
VPCEP Resources
===============

.. toctree::
:maxdepth: 1

v1/endpoint
v1/service
v1/connection
v1/whitelist
v1/quota
13 changes: 13 additions & 0 deletions doc/source/sdk/resources/vpcep/v1/connection.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
otcextensions.sdk.vpecp.v1.connection
=====================================

.. automodule:: otcextensions.sdk.vpcep.v1.connection

The VPCEP Connection Class
--------------------------

The ``Connection`` class inherits from
:class:`~otcextensions.sdk.sdk_resource.Resource`.

.. autoclass:: otcextensions.sdk.vpcep.v1.connection.Connection
:members:
13 changes: 13 additions & 0 deletions doc/source/sdk/resources/vpcep/v1/endpoint.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
otcextensions.sdk.vpecp.v1.endpoint
===================================

.. automodule:: otcextensions.sdk.vpcep.v1.endpoint

The VPCEP Endpoint Class
------------------------

The ``Endpoint`` class inherits from
:class:`~otcextensions.sdk.sdk_resource.Resource`.

.. autoclass:: otcextensions.sdk.vpcep.v1.endpoint.Endpoint
:members:
13 changes: 13 additions & 0 deletions doc/source/sdk/resources/vpcep/v1/quota.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
otcextensions.sdk.vpecp.v1.quota
====================================

.. automodule:: otcextensions.sdk.vpcep.v1.quota

The VPCEP Quota Class
---------------------

The ``Quota`` class inherits from
:class:`~otcextensions.sdk.sdk_resource.Resource`.

.. autoclass:: otcextensions.sdk.vpcep.v1.quota.Quota
:members:
13 changes: 13 additions & 0 deletions doc/source/sdk/resources/vpcep/v1/service.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
otcextensions.sdk.vpecp.v1.service
==================================

.. automodule:: otcextensions.sdk.vpcep.v1.service

The VPCEP Service Class
-----------------------

The ``Service`` class inherits from
:class:`~otcextensions.sdk.sdk_resource.Resource`.

.. autoclass:: otcextensions.sdk.vpcep.v1.service.Service
:members:
13 changes: 13 additions & 0 deletions doc/source/sdk/resources/vpcep/v1/whitelist.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
otcextensions.sdk.vpecp.v1.whitelist
====================================

.. automodule:: otcextensions.sdk.vpcep.v1.whitelist

The VPCEP Whitelist Class
-------------------------

The ``Whitelist`` class inherits from
:class:`~otcextensions.sdk.sdk_resource.Resource`.

.. autoclass:: otcextensions.sdk.vpcep.v1.whitelist.Whitelist
:members:
Loading

0 comments on commit b988dd9

Please sign in to comment.