115115 CreateIpRequest ,
116116 UpdateIpRequest ,
117117 CreatePrivateNICRequest ,
118+ UpdatePrivateNICRequest ,
118119)
119120from .types_private import (
120121 _SetImageResponse ,
147148 marshal_UpdateIpRequest ,
148149 marshal_UpdatePlacementGroupRequest ,
149150 marshal_UpdatePlacementGroupServersRequest ,
151+ marshal_UpdatePrivateNICRequest ,
150152 marshal_UpdateVolumeRequest ,
151153 marshal__CreateServerRequest ,
152154 marshal__SetImageRequest ,
155157 marshal__SetServerRequest ,
156158 marshal__SetSnapshotRequest ,
157159 marshal__UpdateServerRequest ,
160+ unmarshal_PrivateNIC ,
158161 unmarshal_CreateImageResponse ,
159162 unmarshal_CreateIpResponse ,
160163 unmarshal_CreatePlacementGroupResponse ,
@@ -3172,11 +3175,17 @@ async def list_private_ni_cs(
31723175 * ,
31733176 server_id : str ,
31743177 zone : Optional [Zone ] = None ,
3178+ tags : Optional [List [str ]] = None ,
3179+ per_page : Optional [int ] = None ,
3180+ page : Optional [int ] = None ,
31753181 ) -> ListPrivateNICsResponse :
31763182 """
31773183 List all private NICs of a given server.
31783184 :param zone: Zone to target. If none is passed will use default zone from the config
31793185 :param server_id: The server the private NIC is attached to
3186+ :param tags: The private NIC tags
3187+ :param per_page: A positive integer lower or equal to 100 to select the number of items to return
3188+ :param page: A positive integer to choose the page to return
31803189 :return: :class:`ListPrivateNICsResponse <ListPrivateNICsResponse>`
31813190
31823191 Usage:
@@ -3191,23 +3200,67 @@ async def list_private_ni_cs(
31913200 res = self ._request (
31923201 "GET" ,
31933202 f"/instance/v1/zones/{ param_zone } /servers/{ param_server_id } /private_nics" ,
3203+ params = {
3204+ "page" : page ,
3205+ "per_page" : per_page or self .client .default_page_size ,
3206+ "tags" : "," .join (tags ) if tags and len (tags ) > 0 else None ,
3207+ },
31943208 )
31953209
31963210 self ._throw_on_error (res )
31973211 return unmarshal_ListPrivateNICsResponse (res .json ())
31983212
3213+ async def list_private_ni_cs_all (
3214+ self ,
3215+ * ,
3216+ server_id : str ,
3217+ zone : Optional [Zone ] = None ,
3218+ tags : Optional [List [str ]] = None ,
3219+ per_page : Optional [int ] = None ,
3220+ page : Optional [int ] = None ,
3221+ ) -> List [PrivateNIC ]:
3222+ """
3223+ List all private NICs of a given server.
3224+ :param zone: Zone to target. If none is passed will use default zone from the config
3225+ :param server_id: The server the private NIC is attached to
3226+ :param tags: The private NIC tags
3227+ :param per_page: A positive integer lower or equal to 100 to select the number of items to return
3228+ :param page: A positive integer to choose the page to return
3229+ :return: :class:`List[ListPrivateNICsResponse] <List[ListPrivateNICsResponse]>`
3230+
3231+ Usage:
3232+ ::
3233+
3234+ result = await api.list_private_ni_cs_all(server_id="example")
3235+ """
3236+
3237+ return await fetch_all_pages_async (
3238+ type = ListPrivateNICsResponse ,
3239+ key = "private_nics" ,
3240+ fetcher = self .list_private_ni_cs ,
3241+ args = {
3242+ "server_id" : server_id ,
3243+ "zone" : zone ,
3244+ "tags" : tags ,
3245+ "per_page" : per_page ,
3246+ "page" : page ,
3247+ },
3248+ )
3249+
31993250 async def create_private_nic (
32003251 self ,
32013252 * ,
32023253 server_id : str ,
32033254 private_network_id : str ,
32043255 zone : Optional [Zone ] = None ,
3256+ tags : Optional [List [str ]] = None ,
32053257 ) -> CreatePrivateNICResponse :
32063258 """
32073259 Create a private NIC connecting a server to a private network.
32083260 :param zone: Zone to target. If none is passed will use default zone from the config
32093261 :param server_id: UUID of the server the private NIC will be attached to
32103262 :param private_network_id: UUID of the private network where the private NIC will be attached
3263+ :param tags: The private NIC tags
32113264 :return: :class:`CreatePrivateNICResponse <CreatePrivateNICResponse>`
32123265
32133266 Usage:
@@ -3230,6 +3283,7 @@ async def create_private_nic(
32303283 server_id = server_id ,
32313284 private_network_id = private_network_id ,
32323285 zone = zone ,
3286+ tags = tags ,
32333287 ),
32343288 self .client ,
32353289 ),
@@ -3273,6 +3327,52 @@ async def get_private_nic(
32733327 self ._throw_on_error (res )
32743328 return unmarshal_GetPrivateNICResponse (res .json ())
32753329
3330+ async def update_private_nic (
3331+ self ,
3332+ * ,
3333+ server_id : str ,
3334+ private_nic_id : str ,
3335+ zone : Optional [Zone ] = None ,
3336+ tags : Optional [List [str ]] = None ,
3337+ ) -> PrivateNIC :
3338+ """
3339+ Update one or more parameter/s to a given private NIC.
3340+ :param zone: Zone to target. If none is passed will use default zone from the config
3341+ :param server_id: UUID of the server the private NIC will be attached to
3342+ :param private_nic_id: The private NIC unique ID
3343+ :param tags: Tags used to select private NIC/s
3344+ :return: :class:`PrivateNIC <PrivateNIC>`
3345+
3346+ Usage:
3347+ ::
3348+
3349+ result = await api.update_private_nic(
3350+ server_id="example",
3351+ private_nic_id="example",
3352+ )
3353+ """
3354+
3355+ param_zone = validate_path_param ("zone" , zone or self .client .default_zone )
3356+ param_server_id = validate_path_param ("server_id" , server_id )
3357+ param_private_nic_id = validate_path_param ("private_nic_id" , private_nic_id )
3358+
3359+ res = self ._request (
3360+ "PATCH" ,
3361+ f"/instance/v1/zones/{ param_zone } /servers/{ param_server_id } /private_nics/{ param_private_nic_id } " ,
3362+ body = marshal_UpdatePrivateNICRequest (
3363+ UpdatePrivateNICRequest (
3364+ server_id = server_id ,
3365+ private_nic_id = private_nic_id ,
3366+ zone = zone ,
3367+ tags = tags ,
3368+ ),
3369+ self .client ,
3370+ ),
3371+ )
3372+
3373+ self ._throw_on_error (res )
3374+ return unmarshal_PrivateNIC (res .json ())
3375+
32763376 async def delete_private_nic (
32773377 self ,
32783378 * ,
0 commit comments