update share endpoint tweaks (#834)

This commit is contained in:
Michael Quigley 2025-02-04 10:33:39 -05:00
parent 0a8c5f2054
commit fc4a32b301
No known key found for this signature in database
GPG Key ID: 9B60314A9DD20A62
12 changed files with 356 additions and 94 deletions

View File

@ -5,7 +5,6 @@ import (
httptransport "github.com/go-openapi/runtime/client"
"github.com/openziti/zrok/environment"
"github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/tui"
"github.com/spf13/cobra"
)
@ -59,11 +58,9 @@ func (cmd *modifyShareCommand) run(_ *cobra.Command, args []string) {
if len(cmd.addAccessGrants) > 0 || len(cmd.removeAccessGrants) > 0 {
req := share.NewUpdateShareParams()
req.Body = &rest_model_zrok.UpdateShareRequest{
ShrToken: shrToken,
AddAccessGrants: cmd.addAccessGrants,
RemoveAccessGrants: cmd.removeAccessGrants,
}
req.Body.ShrToken = shrToken
req.Body.AddAccessGrants = cmd.addAccessGrants
req.Body.RemoveAccessGrants = cmd.removeAccessGrants
if _, err := zrok.Share.UpdateShare(req, auth); err != nil {
if !panicInstead {
tui.Error("unable to update share", err)

View File

@ -20,7 +20,6 @@ import (
"github.com/openziti/zrok/environment/env_core"
"github.com/openziti/zrok/rest_client_zrok/metadata"
"github.com/openziti/zrok/rest_client_zrok/share"
"github.com/openziti/zrok/rest_model_zrok"
"github.com/openziti/zrok/sdk/golang/sdk"
"github.com/openziti/zrok/tui"
"github.com/pkg/errors"
@ -133,10 +132,8 @@ func (cmd *shareReservedCommand) shareLocal(args []string, root env_core.Root) {
if resp.Payload.BackendProxyEndpoint != target {
upReq := share.NewUpdateShareParams()
upReq.Body = &rest_model_zrok.UpdateShareRequest{
ShrToken: shrToken,
BackendProxyEndpoint: target,
}
upReq.Body.ShrToken = shrToken
upReq.Body.BackendProxyEndpoint = target
if _, err := zrok.Share.UpdateShare(upReq, auth); err != nil {
cmd.error("unable to update backend target", err)
}

View File

@ -14,8 +14,6 @@ import (
"github.com/go-openapi/runtime"
cr "github.com/go-openapi/runtime/client"
"github.com/go-openapi/strfmt"
"github.com/openziti/zrok/rest_model_zrok"
)
// NewUpdateShareParams creates a new UpdateShareParams object,
@ -64,7 +62,7 @@ UpdateShareParams contains all the parameters to send to the API endpoint
type UpdateShareParams struct {
// Body.
Body *rest_model_zrok.UpdateShareRequest
Body UpdateShareBody
timeout time.Duration
Context context.Context
@ -120,13 +118,13 @@ func (o *UpdateShareParams) SetHTTPClient(client *http.Client) {
}
// WithBody adds the body to the update share params
func (o *UpdateShareParams) WithBody(body *rest_model_zrok.UpdateShareRequest) *UpdateShareParams {
func (o *UpdateShareParams) WithBody(body UpdateShareBody) *UpdateShareParams {
o.SetBody(body)
return o
}
// SetBody adds the body to the update share params
func (o *UpdateShareParams) SetBody(body *rest_model_zrok.UpdateShareRequest) {
func (o *UpdateShareParams) SetBody(body UpdateShareBody) {
o.Body = body
}
@ -137,10 +135,8 @@ func (o *UpdateShareParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.R
return err
}
var res []error
if o.Body != nil {
if err := r.SetBodyParam(o.Body); err != nil {
return err
}
if err := r.SetBodyParam(o.Body); err != nil {
return err
}
if len(res) > 0 {

View File

@ -6,10 +6,12 @@ package share
// Editing this file might prove futile when you re-run the swagger generate command
import (
"context"
"fmt"
"github.com/go-openapi/runtime"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
)
// UpdateShareReader is a Reader for the UpdateShare structure.
@ -334,3 +336,50 @@ func (o *UpdateShareInternalServerError) readResponse(response runtime.ClientRes
return nil
}
/*
UpdateShareBody update share body
swagger:model UpdateShareBody
*/
type UpdateShareBody struct {
// add access grants
AddAccessGrants []string `json:"addAccessGrants"`
// backend proxy endpoint
BackendProxyEndpoint string `json:"backendProxyEndpoint,omitempty"`
// remove access grants
RemoveAccessGrants []string `json:"removeAccessGrants"`
// shr token
ShrToken string `json:"shrToken,omitempty"`
}
// Validate validates this update share body
func (o *UpdateShareBody) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this update share body based on context it is used
func (o *UpdateShareBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (o *UpdateShareBody) MarshalBinary() ([]byte, error) {
if o == nil {
return nil, nil
}
return swag.WriteJSON(o)
}
// UnmarshalBinary interface implementation
func (o *UpdateShareBody) UnmarshalBinary(b []byte) error {
var res UpdateShareBody
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*o = res
return nil
}

View File

@ -1610,7 +1610,26 @@ func init() {
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateShareRequest"
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
"type": "string"
}
}
}
}
],
@ -2214,29 +2233,6 @@ func init() {
}
}
},
"updateShareRequest": {
"type": "object",
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
"type": "string"
}
}
},
"version": {
"type": "string"
}
@ -3791,7 +3787,26 @@ func init() {
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/updateShareRequest"
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
"type": "string"
}
}
}
}
],
@ -4451,29 +4466,6 @@ func init() {
}
}
},
"updateShareRequest": {
"type": "object",
"properties": {
"addAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"backendProxyEndpoint": {
"type": "string"
},
"removeAccessGrants": {
"type": "array",
"items": {
"type": "string"
}
},
"shrToken": {
"type": "string"
}
}
},
"version": {
"type": "string"
}

View File

@ -6,9 +6,12 @@ package share
// Editing this file might prove futile when you re-run the generate command
import (
"context"
"net/http"
"github.com/go-openapi/runtime/middleware"
"github.com/go-openapi/strfmt"
"github.com/go-openapi/swag"
"github.com/openziti/zrok/rest_model_zrok"
)
@ -69,3 +72,49 @@ func (o *UpdateShare) ServeHTTP(rw http.ResponseWriter, r *http.Request) {
o.Context.Respond(rw, r, route.Produces, route, res)
}
// UpdateShareBody update share body
//
// swagger:model UpdateShareBody
type UpdateShareBody struct {
// add access grants
AddAccessGrants []string `json:"addAccessGrants"`
// backend proxy endpoint
BackendProxyEndpoint string `json:"backendProxyEndpoint,omitempty"`
// remove access grants
RemoveAccessGrants []string `json:"removeAccessGrants"`
// shr token
ShrToken string `json:"shrToken,omitempty"`
}
// Validate validates this update share body
func (o *UpdateShareBody) Validate(formats strfmt.Registry) error {
return nil
}
// ContextValidate validates this update share body based on context it is used
func (o *UpdateShareBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
return nil
}
// MarshalBinary interface implementation
func (o *UpdateShareBody) MarshalBinary() ([]byte, error) {
if o == nil {
return nil, nil
}
return swag.WriteJSON(o)
}
// UnmarshalBinary interface implementation
func (o *UpdateShareBody) UnmarshalBinary(b []byte) error {
var res UpdateShareBody
if err := swag.ReadJSON(b, &res); err != nil {
return err
}
*o = res
return nil
}

View File

@ -12,8 +12,6 @@ import (
"github.com/go-openapi/runtime"
"github.com/go-openapi/runtime/middleware"
"github.com/go-openapi/validate"
"github.com/openziti/zrok/rest_model_zrok"
)
// NewUpdateShareParams creates a new UpdateShareParams object
@ -36,7 +34,7 @@ type UpdateShareParams struct {
/*
In: body
*/
Body *rest_model_zrok.UpdateShareRequest
Body UpdateShareBody
}
// BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
@ -50,7 +48,7 @@ func (o *UpdateShareParams) BindRequest(r *http.Request, route *middleware.Match
if runtime.HasBody(r) {
defer r.Body.Close()
var body rest_model_zrok.UpdateShareRequest
var body UpdateShareBody
if err := route.Consumer.Consume(r.Body, &body); err != nil {
res = append(res, errors.NewParseError("body", "body", "", err))
} else {
@ -65,7 +63,7 @@ func (o *UpdateShareParams) BindRequest(r *http.Request, route *middleware.Match
}
if len(res) == 0 {
o.Body = &body
o.Body = body
}
}
}

View File

@ -71,6 +71,7 @@ from zrok_api.models.register_body import RegisterBody
from zrok_api.models.reset_password_body import ResetPasswordBody
from zrok_api.models.reset_password_request_body import ResetPasswordRequestBody
from zrok_api.models.share import Share
from zrok_api.models.share_body import ShareBody
from zrok_api.models.share_request import ShareRequest
from zrok_api.models.share_response import ShareResponse
from zrok_api.models.shares import Shares
@ -80,6 +81,5 @@ from zrok_api.models.sparklines_body import SparklinesBody
from zrok_api.models.token_generate_body import TokenGenerateBody
from zrok_api.models.unaccess_request import UnaccessRequest
from zrok_api.models.unshare_request import UnshareRequest
from zrok_api.models.update_share_request import UpdateShareRequest
from zrok_api.models.verify_body import VerifyBody
from zrok_api.models.version import Version

View File

@ -409,7 +409,7 @@ class ShareApi(object):
>>> result = thread.get()
:param async_req bool
:param UpdateShareRequest body:
:param ShareBody body:
:return: None
If the method is called asynchronously,
returns the request thread.
@ -430,7 +430,7 @@ class ShareApi(object):
>>> result = thread.get()
:param async_req bool
:param UpdateShareRequest body:
:param ShareBody body:
:return: None
If the method is called asynchronously,
returns the request thread.

View File

@ -61,6 +61,7 @@ from zrok_api.models.register_body import RegisterBody
from zrok_api.models.reset_password_body import ResetPasswordBody
from zrok_api.models.reset_password_request_body import ResetPasswordRequestBody
from zrok_api.models.share import Share
from zrok_api.models.share_body import ShareBody
from zrok_api.models.share_request import ShareRequest
from zrok_api.models.share_response import ShareResponse
from zrok_api.models.shares import Shares
@ -70,6 +71,5 @@ from zrok_api.models.sparklines_body import SparklinesBody
from zrok_api.models.token_generate_body import TokenGenerateBody
from zrok_api.models.unaccess_request import UnaccessRequest
from zrok_api.models.unshare_request import UnshareRequest
from zrok_api.models.update_share_request import UpdateShareRequest
from zrok_api.models.verify_body import VerifyBody
from zrok_api.models.version import Version

View File

@ -0,0 +1,188 @@
# coding: utf-8
"""
zrok
zrok client access # noqa: E501
OpenAPI spec version: 1.0.0
Generated by: https://github.com/swagger-api/swagger-codegen.git
"""
import pprint
import re # noqa: F401
import six
class ShareBody(object):
"""NOTE: This class is auto generated by the swagger code generator program.
Do not edit the class manually.
"""
"""
Attributes:
swagger_types (dict): The key is attribute name
and the value is attribute type.
attribute_map (dict): The key is attribute name
and the value is json key in definition.
"""
swagger_types = {
'shr_token': 'str',
'backend_proxy_endpoint': 'str',
'add_access_grants': 'list[str]',
'remove_access_grants': 'list[str]'
}
attribute_map = {
'shr_token': 'shrToken',
'backend_proxy_endpoint': 'backendProxyEndpoint',
'add_access_grants': 'addAccessGrants',
'remove_access_grants': 'removeAccessGrants'
}
def __init__(self, shr_token=None, backend_proxy_endpoint=None, add_access_grants=None, remove_access_grants=None): # noqa: E501
"""ShareBody - a model defined in Swagger""" # noqa: E501
self._shr_token = None
self._backend_proxy_endpoint = None
self._add_access_grants = None
self._remove_access_grants = None
self.discriminator = None
if shr_token is not None:
self.shr_token = shr_token
if backend_proxy_endpoint is not None:
self.backend_proxy_endpoint = backend_proxy_endpoint
if add_access_grants is not None:
self.add_access_grants = add_access_grants
if remove_access_grants is not None:
self.remove_access_grants = remove_access_grants
@property
def shr_token(self):
"""Gets the shr_token of this ShareBody. # noqa: E501
:return: The shr_token of this ShareBody. # noqa: E501
:rtype: str
"""
return self._shr_token
@shr_token.setter
def shr_token(self, shr_token):
"""Sets the shr_token of this ShareBody.
:param shr_token: The shr_token of this ShareBody. # noqa: E501
:type: str
"""
self._shr_token = shr_token
@property
def backend_proxy_endpoint(self):
"""Gets the backend_proxy_endpoint of this ShareBody. # noqa: E501
:return: The backend_proxy_endpoint of this ShareBody. # noqa: E501
:rtype: str
"""
return self._backend_proxy_endpoint
@backend_proxy_endpoint.setter
def backend_proxy_endpoint(self, backend_proxy_endpoint):
"""Sets the backend_proxy_endpoint of this ShareBody.
:param backend_proxy_endpoint: The backend_proxy_endpoint of this ShareBody. # noqa: E501
:type: str
"""
self._backend_proxy_endpoint = backend_proxy_endpoint
@property
def add_access_grants(self):
"""Gets the add_access_grants of this ShareBody. # noqa: E501
:return: The add_access_grants of this ShareBody. # noqa: E501
:rtype: list[str]
"""
return self._add_access_grants
@add_access_grants.setter
def add_access_grants(self, add_access_grants):
"""Sets the add_access_grants of this ShareBody.
:param add_access_grants: The add_access_grants of this ShareBody. # noqa: E501
:type: list[str]
"""
self._add_access_grants = add_access_grants
@property
def remove_access_grants(self):
"""Gets the remove_access_grants of this ShareBody. # noqa: E501
:return: The remove_access_grants of this ShareBody. # noqa: E501
:rtype: list[str]
"""
return self._remove_access_grants
@remove_access_grants.setter
def remove_access_grants(self, remove_access_grants):
"""Sets the remove_access_grants of this ShareBody.
:param remove_access_grants: The remove_access_grants of this ShareBody. # noqa: E501
:type: list[str]
"""
self._remove_access_grants = remove_access_grants
def to_dict(self):
"""Returns the model properties as a dict"""
result = {}
for attr, _ in six.iteritems(self.swagger_types):
value = getattr(self, attr)
if isinstance(value, list):
result[attr] = list(map(
lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
value
))
elif hasattr(value, "to_dict"):
result[attr] = value.to_dict()
elif isinstance(value, dict):
result[attr] = dict(map(
lambda item: (item[0], item[1].to_dict())
if hasattr(item[1], "to_dict") else item,
value.items()
))
else:
result[attr] = value
if issubclass(ShareBody, dict):
for key, value in self.items():
result[key] = value
return result
def to_str(self):
"""Returns the string representation of the model"""
return pprint.pformat(self.to_dict())
def __repr__(self):
"""For `print` and `pprint`"""
return self.to_str()
def __eq__(self, other):
"""Returns true if both objects are equal"""
if not isinstance(other, ShareBody):
return False
return self.__dict__ == other.__dict__
def __ne__(self, other):
"""Returns true if both objects are not equal"""
return not self == other

View File

@ -1066,7 +1066,19 @@ paths:
- name: body
in: body
schema:
$ref: "#/definitions/updateShareRequest"
properties:
shrToken:
type: string
backendProxyEndpoint:
type: string
addAccessGrants:
type: array
items:
type: string
removeAccessGrants:
type: array
items:
type: string
responses:
200:
description: share updated
@ -1392,22 +1404,6 @@ definitions:
reserved:
type: boolean
updateShareRequest:
type: object
properties:
shrToken:
type: string
backendProxyEndpoint:
type: string
addAccessGrants:
type: array
items:
type: string
removeAccessGrants:
type: array
items:
type: string
version:
type: string