{
  "swagger": "2.0",
  "info": {
    "title": "order/api/order/v1/order.proto",
    "version": "version not set"
  },
  "tags": [
    {
      "name": "OrderService"
    },
    {
      "name": "MyOrderService"
    },
    {
      "name": "MsgService"
    },
    {
      "name": "EventService"
    },
    {
      "name": "ClientService"
    },
    {
      "name": "KeyService"
    },
    {
      "name": "OrderInternalService"
    },
    {
      "name": "PermissionService"
    },
    {
      "name": "RoleService"
    },
    {
      "name": "UserService"
    },
    {
      "name": "UserInternalService"
    },
    {
      "name": "ProductCategoryService"
    },
    {
      "name": "ProductService"
    },
    {
      "name": "SubscriptionService"
    },
    {
      "name": "CheckoutService"
    },
    {
      "name": "PaymentGatewayService"
    },
    {
      "name": "StripePaymentGatewayService"
    },
    {
      "name": "SubscriptionInternalService"
    },
    {
      "name": "BrandService"
    },
    {
      "name": "ProductInternalService"
    },
    {
      "name": "NotificationService"
    },
    {
      "name": "PlanService"
    },
    {
      "name": "TenantService"
    },
    {
      "name": "TenantInternalService"
    },
    {
      "name": "LocaleService"
    },
    {
      "name": "MenuService"
    },
    {
      "name": "Account"
    },
    {
      "name": "Auth"
    },
    {
      "name": "WeChatAuthService"
    },
    {
      "name": "AuthWeb"
    },
    {
      "name": "PermissionInternalService"
    },
    {
      "name": "UserAdminService"
    }
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v1/account/address/{address.id}": {
      "put": {
        "operationId": "Account_UpdateAddresses",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UpdateAddressesReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "address.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "object",
                  "properties": {
                    "phone": {
                      "type": "string"
                    },
                    "usage": {
                      "type": "string"
                    },
                    "prefer": {
                      "type": "boolean"
                    },
                    "address": {
                      "$ref": "#/definitions/lbsAddress"
                    },
                    "metadata": {
                      "type": "object"
                    }
                  }
                }
              },
              "required": [
                "address"
              ]
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/account/addresses": {
      "get": {
        "operationId": "Account_GetAddresses",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetAddressesReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "Account"
        ]
      },
      "delete": {
        "operationId": "Account_DeleteAddresses",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteAddressesReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "Account"
        ]
      },
      "post": {
        "operationId": "Account_CreateAddresses",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1CreateAddressReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateAddressesRequest"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/account/profile": {
      "get": {
        "operationId": "Account_GetProfile",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetProfileResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "Account"
        ]
      },
      "put": {
        "summary": "UpdateProfile\r\nAvatar: POST form file /v1/account/avatar",
        "operationId": "Account_UpdateProfile",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UpdateProfileResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1UpdateProfileRequest"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/account/settings": {
      "get": {
        "operationId": "Account_GetSettings",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetSettingsResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "Account"
        ]
      },
      "put": {
        "operationId": "Account_UpdateSettings",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UpdateSettingsResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1UpdateSettingsRequest"
            }
          }
        ],
        "tags": [
          "Account"
        ]
      }
    },
    "/v1/auth/action/forget": {
      "post": {
        "operationId": "Auth_SendForgetPasswordToken",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ForgetPasswordTokenReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ForgetPasswordTokenRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/action/passwordless": {
      "post": {
        "operationId": "Auth_SendPasswordlessToken",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1PasswordlessTokenAuthReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1PasswordlessTokenAuthRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/csrf": {
      "get": {
        "operationId": "Auth_GetCsrfToken",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetCsrfTokenResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/login": {
      "get": {
        "operationId": "Auth_GetLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetLoginResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "redirect",
            "description": "redirect url",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "loginChallenge",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "Auth"
        ]
      },
      "post": {
        "operationId": "Auth_Login",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1LoginAuthReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1LoginAuthRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/login/passwordless": {
      "post": {
        "operationId": "Auth_LoginPasswordless",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1LoginPasswordlessReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1LoginPasswordlessRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/password/change": {
      "post": {
        "operationId": "Auth_ChangePasswordByPre",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ChangePasswordByPreReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ChangePasswordByPreRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/password/forget": {
      "post": {
        "summary": "ForgetPassword\r\nverify forget password token",
        "operationId": "Auth_ForgetPassword",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ForgetPasswordReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ForgetPasswordRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/password/forget/change": {
      "post": {
        "operationId": "Auth_ChangePasswordByForget",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ChangePasswordByForgetReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ChangePasswordByForgetRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/password/validate": {
      "post": {
        "summary": "ValidatePassword\r\nserver validation for password strength",
        "operationId": "Auth_ValidatePassword",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ValidatePasswordReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ValidatePasswordRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "operationId": "Auth_Refresh",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1RefreshTokenAuthReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1RefreshTokenAuthRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/register": {
      "post": {
        "operationId": "Auth_Register",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1RegisterAuthReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1RegisterAuthRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/token": {
      "post": {
        "operationId": "Auth_Token",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1TokenReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1TokenRequest"
            }
          }
        ],
        "tags": [
          "Auth"
        ]
      }
    },
    "/v1/auth/web/consent": {
      "get": {
        "operationId": "AuthWeb_GetConsent",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetConsentResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "consentChallenge",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      },
      "post": {
        "operationId": "AuthWeb_GrantConsent",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GrantConsentResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1GrantConsentRequest"
            }
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      }
    },
    "/v1/auth/web/login": {
      "get": {
        "operationId": "AuthWeb_GetWebLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetLoginResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "redirect",
            "description": "redirect url",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "loginChallenge",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      },
      "post": {
        "operationId": "AuthWeb_WebLogin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1WebLoginAuthReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1WebLoginAuthRequest"
            }
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      }
    },
    "/v1/auth/web/logout": {
      "get": {
        "operationId": "AuthWeb_GetWebLogout",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetLogoutResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "logoutChallenge",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      },
      "post": {
        "operationId": "AuthWeb_WebLogout",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1LogoutResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1LogoutRequest"
            }
          }
        ],
        "tags": [
          "AuthWeb"
        ]
      }
    },
    "/v1/auth/wechat/mini/code": {
      "post": {
        "operationId": "WeChatAuthService_MiniProgramCode",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1WeChatLoginReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1WechatMiniProgramCodeReq"
            }
          }
        ],
        "tags": [
          "WeChatAuthService"
        ]
      }
    },
    "/v1/auth/wechat/mini/phone-code": {
      "post": {
        "operationId": "WeChatAuthService_MiniProgramPhoneCode",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1WeChatLoginReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1WechatMiniProgramPhoneCodeReq"
            }
          }
        ],
        "tags": [
          "WeChatAuthService"
        ]
      }
    },
    "/v1/oidc/client": {
      "post": {
        "operationId": "ClientService_CreateOAuth2Client",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2Client"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/clientOAuth2Client"
            }
          }
        ],
        "tags": [
          "ClientService"
        ]
      }
    },
    "/v1/oidc/client/list": {
      "post": {
        "operationId": "ClientService_ListOAuth2Clients2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2ClientList"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/clientListClientRequest"
            }
          }
        ],
        "tags": [
          "ClientService"
        ]
      }
    },
    "/v1/oidc/client/{id}": {
      "get": {
        "operationId": "ClientService_GetOAuth2Client",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2Client"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ClientService"
        ]
      },
      "delete": {
        "operationId": "ClientService_DeleteOAuth2Client",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ClientService"
        ]
      },
      "put": {
        "operationId": "ClientService_UpdateOAuth2Client",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2Client"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "client": {
                  "$ref": "#/definitions/clientOAuth2Client"
                }
              }
            }
          }
        ],
        "tags": [
          "ClientService"
        ]
      },
      "patch": {
        "operationId": "ClientService_PatchOAuth2Client",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2Client"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "client": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "$ref": "#/definitions/clientPatchOAuth2Client"
                  }
                }
              }
            }
          }
        ],
        "tags": [
          "ClientService"
        ]
      }
    },
    "/v1/oidc/clients": {
      "get": {
        "operationId": "ClientService_ListOAuth2Clients",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/clientOAuth2ClientList"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "int64"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "int64"
          },
          {
            "name": "clientName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "owner",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "afterPageToken",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "beforePageToken",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ClientService"
        ]
      }
    },
    "/v1/oidc/keys/{set}": {
      "get": {
        "operationId": "KeyService_GetJsonWebKeySet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/keyJsonWebKeySet"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "KeyService"
        ]
      },
      "delete": {
        "operationId": "KeyService_DeleteJsonWebKeySet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "KeyService"
        ]
      },
      "post": {
        "operationId": "KeyService_CreateJsonWebKeySet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/keyJsonWebKeySet"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "keys": {
                  "$ref": "#/definitions/keyJsonWebKeySetGeneratorRequest"
                }
              }
            }
          }
        ],
        "tags": [
          "KeyService"
        ]
      },
      "put": {
        "operationId": "KeyService_UpdateJsonWebKeySet",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/keyJsonWebKeySet"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "keys": {
                  "$ref": "#/definitions/keyJsonWebKeySet"
                }
              }
            }
          }
        ],
        "tags": [
          "KeyService"
        ]
      }
    },
    "/v1/oidc/keys/{set}/{kid}": {
      "get": {
        "operationId": "KeyService_GetJsonWebKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/keyJsonWebKeySet"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "kid",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "KeyService"
        ]
      },
      "delete": {
        "operationId": "KeyService_DeleteJsonWebKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "kid",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "KeyService"
        ]
      },
      "put": {
        "operationId": "KeyService_UpdateJsonWebKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/keyJsonWebKey"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "set",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "kid",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "key": {
                  "$ref": "#/definitions/keyJsonWebKey"
                }
              }
            }
          }
        ],
        "tags": [
          "KeyService"
        ]
      }
    },
    "/v1/order": {
      "get": {
        "operationId": "OrderService_ListOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.customerId.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.customerId.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "afterPageToken",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "beforePageToken",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "post": {
        "operationId": "OrderService_CreateOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateOrderRequest"
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/order/list": {
      "post": {
        "operationId": "OrderService_ListOrder2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListOrderRequest"
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/order/my": {
      "get": {
        "operationId": "MyOrderService_ListMyOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.customerId.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.customerId.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.customerId.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.customerId.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "afterPageToken",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "beforePageToken",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "MyOrderService"
        ]
      }
    },
    "/v1/order/my/list": {
      "post": {
        "operationId": "MyOrderService_ListMyOrder2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListOrderRequest"
            }
          }
        ],
        "tags": [
          "MyOrderService"
        ]
      }
    },
    "/v1/order/my/{id}": {
      "get": {
        "operationId": "MyOrderService_GetMyOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MyOrderService"
        ]
      }
    },
    "/v1/order/my/{orderId}/refund": {
      "post": {
        "operationId": "MyOrderService_RefundMyOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": [
          "MyOrderService"
        ]
      }
    },
    "/v1/order/{id}": {
      "get": {
        "operationId": "OrderService_GetOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "delete": {
        "operationId": "OrderService_DeleteOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/order/{order.id}": {
      "put": {
        "operationId": "OrderService_UpdateOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "order.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "order": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "patch": {
        "operationId": "OrderService_UpdateOrder2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Order"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "order.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "order": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/payment/checkout/now": {
      "post": {
        "operationId": "CheckoutService_CheckoutNow",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1CheckoutNowReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CheckoutNowRequest"
            }
          }
        ],
        "tags": [
          "CheckoutService"
        ]
      }
    },
    "/v1/payment/checkout/order/{orderId}": {
      "post": {
        "operationId": "CheckoutService_CheckoutOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1CheckoutOrderReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string"
                },
                "currencyCode": {
                  "type": "string"
                }
              },
              "required": [
                "provider"
              ]
            }
          }
        ],
        "tags": [
          "CheckoutService"
        ]
      }
    },
    "/v1/payment/methods": {
      "get": {
        "operationId": "PaymentGatewayService_GetPaymentMethod",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetPaymentMethodReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "isTest",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "PaymentGatewayService"
        ]
      }
    },
    "/v1/payment/stripe/config": {
      "get": {
        "operationId": "StripePaymentGatewayService_GetStripeConfig",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetStripeConfigReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "StripePaymentGatewayService"
        ]
      }
    },
    "/v1/payment/stripe/webhook": {
      "post": {
        "operationId": "StripePaymentGatewayService_StripeWebhook",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1StripeWebhookReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {}
            }
          }
        ],
        "tags": [
          "StripePaymentGatewayService"
        ]
      }
    },
    "/v1/permission/check": {
      "post": {
        "operationId": "PermissionService_CheckCurrent",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1CheckPermissionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CheckPermissionRequest"
            }
          }
        ],
        "tags": [
          "PermissionService"
        ]
      }
    },
    "/v1/permission/current": {
      "get": {
        "summary": "Get current permission",
        "operationId": "PermissionService_GetCurrent",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetCurrentPermissionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "PermissionService"
        ]
      }
    },
    "/v1/product": {
      "get": {
        "operationId": "ProductService_ListProduct",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListProductReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.internal.$eq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.internal.$neq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.internal.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.internal.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "ProductService"
        ]
      },
      "post": {
        "operationId": "ProductService_CreateProduct",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Product"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateProductRequest"
            }
          }
        ],
        "tags": [
          "ProductService"
        ]
      }
    },
    "/v1/product/brand": {
      "post": {
        "operationId": "BrandService_CreateBrand",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Brand"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateBrandRequest"
            }
          }
        ],
        "tags": [
          "BrandService"
        ]
      }
    },
    "/v1/product/brand/list": {
      "post": {
        "operationId": "BrandService_ListBrand2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListBrandReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListBrandRequest"
            }
          }
        ],
        "tags": [
          "BrandService"
        ]
      }
    },
    "/v1/product/brand/{brand.id}": {
      "put": {
        "operationId": "BrandService_UpdateBrand",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Brand"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "brand.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "brand": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "logo": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "BrandService"
        ]
      },
      "patch": {
        "operationId": "BrandService_UpdateBrand2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Brand"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "brand.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "brand": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "logo": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "BrandService"
        ]
      }
    },
    "/v1/product/brand/{id}": {
      "get": {
        "operationId": "BrandService_GetBrand",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Brand"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "BrandService"
        ]
      },
      "delete": {
        "operationId": "BrandService_DeleteBrand",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteBrandReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "BrandService"
        ]
      }
    },
    "/v1/product/brands": {
      "get": {
        "operationId": "BrandService_ListBrand",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListBrandReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.code.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.code.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.code.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.code.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.code.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.code.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.code.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "BrandService"
        ]
      }
    },
    "/v1/product/category": {
      "get": {
        "operationId": "ProductCategoryService_ListProductCategory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListProductCategoryReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.parent.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.parent.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      },
      "post": {
        "operationId": "ProductCategoryService_CreateProductCategory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ProductCategory"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateProductCategoryRequest"
            }
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      }
    },
    "/v1/product/category/list": {
      "post": {
        "operationId": "ProductCategoryService_ListProductCategory2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListProductCategoryReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListProductCategoryRequest"
            }
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      }
    },
    "/v1/product/category/{category.key}": {
      "put": {
        "operationId": "ProductCategoryService_UpdateProductCategory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ProductCategory"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "category.key",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "category": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      },
      "patch": {
        "operationId": "ProductCategoryService_UpdateProductCategory2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ProductCategory"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "category.key",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "category": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      }
    },
    "/v1/product/category/{key}": {
      "get": {
        "operationId": "ProductCategoryService_GetProductCategory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ProductCategory"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      },
      "delete": {
        "operationId": "ProductCategoryService_DeleteProductCategory",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteProductCategoryReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ProductCategoryService"
        ]
      }
    },
    "/v1/product/list": {
      "post": {
        "operationId": "ProductService_ListProduct2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListProductReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListProductRequest"
            }
          }
        ],
        "tags": [
          "ProductService"
        ]
      }
    },
    "/v1/product/{id}": {
      "get": {
        "operationId": "ProductService_GetProduct",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Product"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ProductService"
        ]
      },
      "delete": {
        "operationId": "ProductService_DeleteProduct",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteProductReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ProductService"
        ]
      }
    },
    "/v1/product/{product.id}": {
      "put": {
        "operationId": "ProductService_UpdateProduct",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Product"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "product.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "product": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "shortDesc": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    },
                    "mainPic": {
                      "$ref": "#/definitions/v1ProductMedia"
                    },
                    "medias": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1ProductMedia"
                      }
                    },
                    "badges": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Badge"
                      }
                    },
                    "visibleFrom": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "visibleTo": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "isNew": {
                      "type": "boolean"
                    },
                    "mainCategoryKey": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "categoryKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "barcode": {
                      "type": "string"
                    },
                    "model": {
                      "type": "string"
                    },
                    "brandId": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "isSaleable": {
                      "type": "boolean"
                    },
                    "saleableFrom": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "saleableTo": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Keyword"
                      }
                    },
                    "prices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PriceParams"
                      },
                      "title": "could update or create new prices"
                    },
                    "isGiveaway": {
                      "type": "boolean"
                    },
                    "attributes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1ProductAttribute"
                      }
                    },
                    "campaignRules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1CampaignRule"
                      }
                    },
                    "needShipping": {
                      "type": "boolean"
                    },
                    "stocks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Stock"
                      }
                    },
                    "content": {
                      "type": "object"
                    },
                    "active": {
                      "type": "boolean"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "title"
              ]
            }
          }
        ],
        "tags": [
          "ProductService"
        ]
      },
      "patch": {
        "operationId": "ProductService_UpdateProduct2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Product"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "product.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "product": {
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "shortDesc": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    },
                    "mainPic": {
                      "$ref": "#/definitions/v1ProductMedia"
                    },
                    "medias": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1ProductMedia"
                      }
                    },
                    "badges": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Badge"
                      }
                    },
                    "visibleFrom": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "visibleTo": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "isNew": {
                      "type": "boolean"
                    },
                    "mainCategoryKey": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "categoryKeys": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "barcode": {
                      "type": "string"
                    },
                    "model": {
                      "type": "string"
                    },
                    "brandId": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "isSaleable": {
                      "type": "boolean"
                    },
                    "saleableFrom": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "saleableTo": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Keyword"
                      }
                    },
                    "prices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PriceParams"
                      },
                      "title": "could update or create new prices"
                    },
                    "isGiveaway": {
                      "type": "boolean"
                    },
                    "attributes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1ProductAttribute"
                      }
                    },
                    "campaignRules": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1CampaignRule"
                      }
                    },
                    "needShipping": {
                      "type": "boolean"
                    },
                    "stocks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1Stock"
                      }
                    },
                    "content": {
                      "type": "object"
                    },
                    "active": {
                      "type": "boolean"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "title"
              ]
            }
          }
        ],
        "tags": [
          "ProductService"
        ]
      }
    },
    "/v1/realtime/notification/list": {
      "post": {
        "operationId": "NotificationService_ListNotification2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListNotificationReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListNotificationRequest"
            }
          }
        ],
        "tags": [
          "NotificationService"
        ]
      }
    },
    "/v1/realtime/notification/{id}": {
      "get": {
        "operationId": "NotificationService_GetNotification",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Notification"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "NotificationService"
        ]
      },
      "delete": {
        "operationId": "NotificationService_DeleteNotification",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteNotificationReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "NotificationService"
        ]
      }
    },
    "/v1/realtime/notification/{id}/read": {
      "put": {
        "summary": "ReadNotification set notification as read",
        "operationId": "NotificationService_ReadNotification",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "description": "id. set \"-\" for read all",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": [
          "NotificationService"
        ]
      }
    },
    "/v1/realtime/notifications": {
      "get": {
        "operationId": "NotificationService_ListNotification",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListNotificationReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "afterPageToken",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "beforePageToken",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.hasRead.$eq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.hasRead.$neq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.hasRead.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.hasRead.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "NotificationService"
        ]
      }
    },
    "/v1/role": {
      "post": {
        "summary": "authz: user.role,*,create",
        "operationId": "RoleService_CreateRole",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Role"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateRoleRequest"
            }
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/role/list": {
      "post": {
        "summary": "authz: user.role,*,list",
        "operationId": "RoleService_ListRoles2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListRolesResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListRolesRequest"
            }
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/role/{id}": {
      "get": {
        "summary": "authz: user.role,id,get",
        "operationId": "RoleService_GetRole",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Role"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "description": "id or name should be provided",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "name",
            "description": "id or name should be provided",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "RoleService"
        ]
      },
      "delete": {
        "summary": "authz: user.role,id,delete",
        "operationId": "RoleService_DeleteRole",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteRoleResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/role/{id}/permission": {
      "get": {
        "operationId": "RoleService_GetRolePermission",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetRolePermissionResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "RoleService"
        ]
      },
      "put": {
        "operationId": "RoleService_UpdateRolePermission",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UpdateRolePermissionResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "acl": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "$ref": "#/definitions/v1UpdateRolePermissionAcl"
                  }
                }
              }
            }
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/role/{role.id}": {
      "put": {
        "summary": "authz: user.role,id,update",
        "operationId": "RoleService_UpdateRole",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Role"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "role.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "acl": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1UpdateRolePermissionAcl"
                      }
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "RoleService"
        ]
      },
      "patch": {
        "summary": "authz: user.role,id,update",
        "operationId": "RoleService_UpdateRole2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Role"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "role.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "acl": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1UpdateRolePermissionAcl"
                      }
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/roles": {
      "get": {
        "summary": "authz: user.role,*,list",
        "operationId": "RoleService_ListRoles",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListRolesResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "RoleService"
        ]
      }
    },
    "/v1/saas/change-tenant/{idOrName}": {
      "post": {
        "operationId": "TenantService_ChangeTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ChangeTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "idOrName",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/current": {
      "get": {
        "summary": "GetCurrentTenant",
        "operationId": "TenantService_GetCurrentTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetCurrentTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/plan": {
      "post": {
        "operationId": "PlanService_CreatePlan",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Plan"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreatePlanRequest"
            }
          }
        ],
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/plan/list": {
      "post": {
        "operationId": "PlanService_ListPlan2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListPlanReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListPlanRequest"
            }
          }
        ],
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/plan/{key}": {
      "get": {
        "operationId": "PlanService_GetPlan",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Plan"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PlanService"
        ]
      },
      "delete": {
        "operationId": "PlanService_DeletePlan",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeletePlanReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/plan/{plan.key}": {
      "put": {
        "operationId": "PlanService_UpdatePlan",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Plan"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "plan.key",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "plan": {
                  "type": "object",
                  "properties": {
                    "displayName": {
                      "type": "string"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "prices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PriceParams"
                      }
                    },
                    "sort": {
                      "type": "integer",
                      "format": "int32"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "displayName"
              ]
            }
          }
        ],
        "tags": [
          "PlanService"
        ]
      },
      "patch": {
        "operationId": "PlanService_UpdatePlan2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Plan"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "plan.key",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "plan": {
                  "type": "object",
                  "properties": {
                    "displayName": {
                      "type": "string"
                    },
                    "active": {
                      "type": "boolean"
                    },
                    "prices": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PriceParams"
                      }
                    },
                    "sort": {
                      "type": "integer",
                      "format": "int32"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "displayName"
              ]
            }
          }
        ],
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/plans": {
      "get": {
        "operationId": "PlanService_ListPlan",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListPlanReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.key.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.key.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.key.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.displayName.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.displayName.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.displayName.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.displayName.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.displayName.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.displayName.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.displayName.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.active.$eq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.active.$neq",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.active.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.active.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/plans/available": {
      "get": {
        "operationId": "PlanService_GetAvailablePlans",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetAvailablePlansReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "PlanService"
        ]
      }
    },
    "/v1/saas/tenant": {
      "post": {
        "summary": "CreateTenant\nauthz: saas.tenant,*,create",
        "operationId": "TenantService_CreateTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Tenant"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateTenantRequest"
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenant/list": {
      "post": {
        "summary": "ListTenant\nauthz: saas.tenant,*,list",
        "operationId": "TenantService_ListTenant2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListTenantRequest"
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenant/{idOrName}": {
      "get": {
        "summary": "GetTenant\nauthz: saas.tenant,{id},get",
        "operationId": "TenantService_GetTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Tenant"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "idOrName",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenant/{idOrName}/public": {
      "get": {
        "summary": "GetTenant\nauthz: saas.tenant,{id},get",
        "operationId": "TenantService_GetTenantPublic",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1TenantInfo"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "idOrName",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenant/{id}": {
      "delete": {
        "summary": "DeleteTenant\nauthz: saas.tenant,{id},delete",
        "operationId": "TenantService_DeleteTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenant/{tenant.id}": {
      "put": {
        "summary": "UpdateTenant\nauthz: saas.tenant,{id},update",
        "operationId": "TenantService_UpdateTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Tenant"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "tenant.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "tenant": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "displayName": {
                      "type": "string"
                    },
                    "conn": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1TenantConnectionString"
                      }
                    },
                    "features": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1TenantFeature"
                      }
                    },
                    "logo": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      },
      "patch": {
        "summary": "UpdateTenant\nauthz: saas.tenant,{id},update",
        "operationId": "TenantService_UpdateTenant2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Tenant"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "tenant.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "tenant": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "displayName": {
                      "type": "string"
                    },
                    "conn": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1TenantConnectionString"
                      }
                    },
                    "features": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1TenantFeature"
                      }
                    },
                    "logo": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/tenants": {
      "get": {
        "summary": "ListTenant\nauthz: saas.tenant,*,list",
        "operationId": "TenantService_ListTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.region.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.region.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.region.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.region.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.region.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.region.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.region.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/saas/user/tenant": {
      "post": {
        "summary": "CreateTenant",
        "operationId": "TenantService_UserCreateTenant",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UserCreateTenantReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1UserCreateTenantRequest"
            }
          }
        ],
        "tags": [
          "TenantService"
        ]
      }
    },
    "/v1/subscription": {
      "post": {
        "operationId": "SubscriptionService_CreateSubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateSubscriptionRequest"
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/list": {
      "post": {
        "operationId": "SubscriptionService_ListSubscription2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListSubscriptionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListSubscriptionRequest"
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/my/list": {
      "post": {
        "operationId": "SubscriptionService_ListMySubscription2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListMySubscriptionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListMySubscriptionRequest"
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/my/{id}": {
      "get": {
        "operationId": "SubscriptionService_GetMySubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/my/{id}/cancel": {
      "post": {
        "operationId": "SubscriptionService_CancelMySubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/my/{subscription.id}": {
      "put": {
        "operationId": "SubscriptionService_UpdateMySubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "subscription.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "subscription": {
                  "type": "object"
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/{id}": {
      "get": {
        "operationId": "SubscriptionService_GetSubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/{id}/cancel": {
      "post": {
        "operationId": "SubscriptionService_CancelSubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object"
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscription/{subscription.id}": {
      "put": {
        "operationId": "SubscriptionService_UpdateSubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/subscriptionv1Subscription"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "subscription.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "subscription": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1SubscriptionItemParams"
                      }
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscriptions": {
      "get": {
        "operationId": "SubscriptionService_ListSubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListSubscriptionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.userId.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.userId.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.provider.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.provider.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.providerKey.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.providerKey.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/subscriptions/my": {
      "get": {
        "operationId": "SubscriptionService_ListMySubscription",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListMySubscriptionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.userId.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.userId.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.userId.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.userId.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.provider.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.provider.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.provider.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.provider.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.providerKey.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.providerKey.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.providerKey.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.providerKey.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "SubscriptionService"
        ]
      }
    },
    "/v1/sys/locale/msgs": {
      "get": {
        "operationId": "LocaleService_ListMessages",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListMessageReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "filter.nameIn",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "LocaleService"
        ]
      }
    },
    "/v1/sys/menu": {
      "post": {
        "operationId": "MenuService_CreateMenu",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Menu"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateMenuRequest"
            }
          }
        ],
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/sys/menu/list": {
      "post": {
        "operationId": "MenuService_ListMenu2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListMenuReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListMenuRequest"
            }
          }
        ],
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/sys/menu/{id}": {
      "get": {
        "operationId": "MenuService_GetMenu",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Menu"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MenuService"
        ]
      },
      "delete": {
        "operationId": "MenuService_DeleteMenu",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteMenuReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/sys/menu/{menu.id}": {
      "put": {
        "operationId": "MenuService_UpdateMenu",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Menu"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "menu.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "menu": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    },
                    "component": {
                      "type": "string"
                    },
                    "requirement": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PermissionRequirement"
                      }
                    },
                    "parent": {
                      "type": "string",
                      "title": "parent menu"
                    },
                    "props": {
                      "type": "object"
                    },
                    "fullPath": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "ignoreAuth": {
                      "type": "boolean"
                    },
                    "icon": {
                      "type": "string"
                    },
                    "iframe": {
                      "type": "string"
                    },
                    "microApp": {
                      "type": "string"
                    },
                    "meta": {
                      "type": "object"
                    },
                    "title": {
                      "type": "string"
                    },
                    "path": {
                      "type": "string"
                    },
                    "redirect": {
                      "type": "string"
                    },
                    "microAppName": {
                      "type": "string"
                    },
                    "microAppBaseRoute": {
                      "type": "string"
                    },
                    "microAppDev": {
                      "type": "string"
                    },
                    "hideInMenu": {
                      "type": "boolean"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "MenuService"
        ]
      },
      "patch": {
        "operationId": "MenuService_UpdateMenu2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1Menu"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "menu.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "menu": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "desc": {
                      "type": "string"
                    },
                    "component": {
                      "type": "string"
                    },
                    "requirement": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "$ref": "#/definitions/v1PermissionRequirement"
                      }
                    },
                    "parent": {
                      "type": "string",
                      "title": "parent menu"
                    },
                    "props": {
                      "type": "object"
                    },
                    "fullPath": {
                      "type": "string"
                    },
                    "priority": {
                      "type": "integer",
                      "format": "int32"
                    },
                    "ignoreAuth": {
                      "type": "boolean"
                    },
                    "icon": {
                      "type": "string"
                    },
                    "iframe": {
                      "type": "string"
                    },
                    "microApp": {
                      "type": "string"
                    },
                    "meta": {
                      "type": "object"
                    },
                    "title": {
                      "type": "string"
                    },
                    "path": {
                      "type": "string"
                    },
                    "redirect": {
                      "type": "string"
                    },
                    "microAppName": {
                      "type": "string"
                    },
                    "microAppBaseRoute": {
                      "type": "string"
                    },
                    "microAppDev": {
                      "type": "string"
                    },
                    "hideInMenu": {
                      "type": "boolean"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        ],
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/sys/menus": {
      "get": {
        "operationId": "MenuService_ListMenu",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListMenuReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.parent.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.parent.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.parent.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.parent.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/sys/menus/available": {
      "get": {
        "operationId": "MenuService_GetAvailableMenus",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetAvailableMenusReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "tags": [
          "MenuService"
        ]
      }
    },
    "/v1/user": {
      "post": {
        "summary": "CreateUser\nauthz: user.user,*,create",
        "operationId": "UserService_CreateUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1CreateUserRequest"
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/admin/user": {
      "post": {
        "summary": "CreateUser\nauthz: user.admin.user,*,create",
        "operationId": "UserAdminService_CreateUserAdmin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1AdminCreateUserRequest"
            }
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      }
    },
    "/v1/user/admin/user/list": {
      "post": {
        "summary": "ListUsers\nauthz: user.admin.user,*,list",
        "operationId": "UserAdminService_ListUsersAdmin2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1AdminListUsersResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1AdminListUsersRequest"
            }
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      }
    },
    "/v1/user/admin/user/{id}": {
      "get": {
        "summary": "GetUser\nauthz: user.admin.user,id,get",
        "operationId": "UserAdminService_GetUserAdmin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      },
      "delete": {
        "summary": "DeleteUser\nauthz: user.admin.user,id,delete",
        "operationId": "UserAdminService_DeleteUserAdmin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1AdminDeleteUserResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      }
    },
    "/v1/user/admin/user/{user.id}": {
      "put": {
        "summary": "UpdateUser\nauthz: user.admin.user,id,update",
        "operationId": "UserAdminService_UpdateUserAdmin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "user.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "object",
                  "properties": {
                    "username": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "name": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "phone": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "email": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "birthday": {
                      "type": "string",
                      "format": "date-time",
                      "x-nullable": true
                    },
                    "gender": {
                      "$ref": "#/definitions/v1Gender"
                    },
                    "password": {
                      "type": "string",
                      "title": "reset password"
                    },
                    "confirmPassword": {
                      "type": "string"
                    },
                    "avatar": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      },
      "patch": {
        "summary": "UpdateUser\nauthz: user.admin.user,id,update",
        "operationId": "UserAdminService_UpdateUserAdmin2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "user.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "object",
                  "properties": {
                    "username": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "name": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "phone": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "email": {
                      "type": "string",
                      "x-nullable": true
                    },
                    "birthday": {
                      "type": "string",
                      "format": "date-time",
                      "x-nullable": true
                    },
                    "gender": {
                      "$ref": "#/definitions/v1Gender"
                    },
                    "password": {
                      "type": "string",
                      "title": "reset password"
                    },
                    "confirmPassword": {
                      "type": "string"
                    },
                    "avatar": {
                      "type": "string"
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      }
    },
    "/v1/user/admin/users": {
      "get": {
        "summary": "ListUsers\nauthz: user.admin.user,*,list",
        "operationId": "UserAdminService_ListUsersAdmin",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1AdminListUsersResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.gender.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.gender.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.birthday.$eq",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$neq",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$gt",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$gte",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$lt",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$lte",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.birthday.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "UserAdminService"
        ]
      }
    },
    "/v1/user/list": {
      "post": {
        "summary": "ListUsers\nauthz: user.user,*,list",
        "operationId": "UserService_ListUsers2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListUsersResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1ListUsersRequest"
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/public/invite": {
      "post": {
        "summary": "InviteUser\nauthz: user.user,*,create",
        "operationId": "UserService_InviteUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1InviteUserReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/v1InviteUserRequest"
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/public/search": {
      "get": {
        "operationId": "UserService_PublicSearchUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1SearchUserResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "identity",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "username",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "phone",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/{id}": {
      "get": {
        "summary": "GetUser\nauthz: user.user,id,get",
        "operationId": "UserService_GetUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "delete": {
        "summary": "DeleteUser\nauthz: user.user,id,delete",
        "operationId": "UserService_DeleteUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1DeleteUserResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/{id}/permission": {
      "get": {
        "operationId": "UserService_GetUserPermission",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetUserPermissionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "put": {
        "operationId": "UserService_UpdateUserPermission",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1UpdateUserPermissionReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "acl": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "$ref": "#/definitions/v1UpdateSubjectPermissionAcl"
                  }
                }
              }
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/{id}/roles": {
      "get": {
        "summary": "GetUserRoles\nauthz: user.user,id,get",
        "operationId": "UserService_GetUserRoles",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1GetUserRoleReply"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/user/{user.id}": {
      "put": {
        "summary": "UpdateUser\nauthz: user.user,id,update",
        "operationId": "UserService_UpdateUser",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "user.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "object",
                  "properties": {
                    "rolesId": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "patch": {
        "summary": "UpdateUser\nauthz: user.user,id,update",
        "operationId": "UserService_UpdateUser2",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1User"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "user.id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "object",
              "properties": {
                "user": {
                  "type": "object",
                  "properties": {
                    "rolesId": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "updateMask": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/users": {
      "get": {
        "summary": "ListUsers\nauthz: user.user,*,list",
        "operationId": "UserService_ListUsers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/v1ListUsersResponse"
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "pageOffset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.gender.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.gender.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.gender.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.gender.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.birthday.$eq",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$neq",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$gt",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$gte",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$lt",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$lte",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date-time"
          },
          {
            "name": "filter.birthday.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.birthday.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.id.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.id.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.id.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.id.$like",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$eq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$neq",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$contains",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$starts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$nstarts_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$ends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$nends_with",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "filter.roles.name.$in",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.name.$nin",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "filter.roles.name.$null",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$nnull",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$empty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$nempty",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "filter.roles.name.$like",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/{service}/dtm/query-prepared": {
      "get": {
        "operationId": "MsgService_QueryPrepared",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "default": {
            "description": "An unexpected error response.",
            "schema": {
              "$ref": "#/definitions/googlerpcStatus"
            }
          }
        },
        "parameters": [
          {
            "name": "service",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MsgService"
        ]
      }
    }
  },
  "definitions": {
    "SearchUserResponseSearchUser": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "avatar": {
          "$ref": "#/definitions/blobBlobFile"
        }
      }
    },
    "blobBlobFile": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "mime": {
          "type": "string"
        },
        "size": {
          "type": "string",
          "format": "int64"
        },
        "url": {
          "type": "string"
        },
        "metadata": {
          "type": "object"
        }
      }
    },
    "clientListClientRequest": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "string",
          "format": "int64"
        },
        "offset": {
          "type": "string",
          "format": "int64"
        },
        "clientName": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "afterPageToken": {
          "type": "string"
        },
        "beforePageToken": {
          "type": "string"
        }
      }
    },
    "clientOAuth2Client": {
      "type": "object",
      "properties": {
        "allowedCorsOrigins": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "audience": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "backchannelLogoutSessionRequired": {
          "type": "boolean",
          "x-nullable": true
        },
        "backchannelLogoutUri": {
          "type": "string",
          "x-nullable": true
        },
        "clientId": {
          "type": "string",
          "x-nullable": true
        },
        "clientName": {
          "type": "string",
          "x-nullable": true
        },
        "clientSecret": {
          "type": "string",
          "x-nullable": true
        },
        "clientSecretExpiresAt": {
          "type": "string",
          "format": "int64",
          "x-nullable": true
        },
        "clientUri": {
          "type": "string",
          "x-nullable": true
        },
        "contacts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "frontchannelLogoutSessionRequired": {
          "type": "boolean",
          "x-nullable": true
        },
        "frontchannelLogoutUri": {
          "type": "string",
          "x-nullable": true
        },
        "grantTypes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "jwks": {
          "type": "object",
          "x-nullable": true
        },
        "jwksUri": {
          "type": "string",
          "x-nullable": true
        },
        "logoUri": {
          "type": "string",
          "x-nullable": true
        },
        "metadata": {
          "type": "object",
          "x-nullable": true
        },
        "owner": {
          "type": "string",
          "x-nullable": true
        },
        "policyUri": {
          "type": "string",
          "x-nullable": true
        },
        "postLogoutRedirectUris": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "redirectUris": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "registrationAccessToken": {
          "type": "string",
          "x-nullable": true
        },
        "registrationClientUri": {
          "type": "string",
          "x-nullable": true
        },
        "requestObjectSigningAlg": {
          "type": "string",
          "x-nullable": true
        },
        "requestUris": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "responseTypes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "scope": {
          "type": "string",
          "x-nullable": true
        },
        "sectorIdentifierUri": {
          "type": "string",
          "x-nullable": true
        },
        "subjectType": {
          "type": "string",
          "x-nullable": true
        },
        "tokenEndpointAuthMethod": {
          "type": "string",
          "x-nullable": true
        },
        "tokenEndpointAuthSigningAlg": {
          "type": "string",
          "x-nullable": true
        },
        "tosUri": {
          "type": "string",
          "x-nullable": true
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "userinfoSignedResponseAlg": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "clientOAuth2ClientList": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/clientOAuth2Client"
          }
        },
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "nextAfterPageToken": {
          "type": "string",
          "x-nullable": true
        },
        "nextBeforePageToken": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "clientPatchOAuth2Client": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "x-nullable": true
        },
        "op": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "value": {
          "type": "object"
        }
      }
    },
    "dataDynamicValue": {
      "type": "object",
      "properties": {
        "intValue": {
          "type": "integer",
          "format": "int32"
        },
        "longValue": {
          "type": "string",
          "format": "int64"
        },
        "floatValue": {
          "type": "number",
          "format": "float"
        },
        "doubleValue": {
          "type": "number",
          "format": "double"
        },
        "stringValue": {
          "type": "string"
        },
        "boolValue": {
          "type": "boolean"
        },
        "nullValue": {
          "type": "string"
        },
        "jsonValue": {
          "type": "object"
        }
      }
    },
    "googlerpcStatus": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "type": "string"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/protobufAny"
          }
        }
      }
    },
    "keyJsonWebKey": {
      "type": "object",
      "properties": {
        "alg": {
          "type": "string"
        },
        "crv": {
          "type": "string",
          "x-nullable": true
        },
        "d": {
          "type": "string",
          "x-nullable": true
        },
        "dp": {
          "type": "string",
          "x-nullable": true
        },
        "dq": {
          "type": "string",
          "x-nullable": true
        },
        "e": {
          "type": "string",
          "x-nullable": true
        },
        "k": {
          "type": "string",
          "x-nullable": true
        },
        "kid": {
          "type": "string"
        },
        "kty": {
          "type": "string"
        },
        "n": {
          "type": "string",
          "x-nullable": true
        },
        "p": {
          "type": "string",
          "x-nullable": true
        },
        "q": {
          "type": "string",
          "x-nullable": true
        },
        "qi": {
          "type": "string",
          "x-nullable": true
        },
        "use": {
          "type": "string"
        },
        "x": {
          "type": "string",
          "x-nullable": true
        },
        "x5c": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "y": {
          "type": "string",
          "x-nullable": true
        }
      },
      "required": [
        "alg",
        "kid",
        "kty",
        "use"
      ]
    },
    "keyJsonWebKeySet": {
      "type": "object",
      "properties": {
        "keys": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/keyJsonWebKey"
          }
        }
      }
    },
    "keyJsonWebKeySetGeneratorRequest": {
      "type": "object",
      "properties": {
        "alg": {
          "type": "string"
        },
        "kid": {
          "type": "string"
        },
        "use": {
          "type": "string"
        }
      },
      "required": [
        "alg",
        "kid",
        "use"
      ]
    },
    "lbsAddress": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "state": {
          "type": "string",
          "title": "State or province"
        },
        "city": {
          "type": "string"
        },
        "zipCode": {
          "type": "string"
        },
        "line1": {
          "type": "string"
        },
        "line2": {
          "type": "string"
        },
        "line3": {
          "type": "string"
        },
        "geo": {
          "type": "object",
          "title": "Geo geojson"
        }
      }
    },
    "operationBooleanFilterOperators": {
      "type": "object",
      "properties": {
        "$eq": {
          "type": "boolean",
          "x-nullable": true
        },
        "$neq": {
          "type": "boolean",
          "x-nullable": true
        },
        "$null": {
          "type": "boolean",
          "x-nullable": true
        },
        "$nnull": {
          "type": "boolean",
          "x-nullable": true
        }
      }
    },
    "operationDateFilterOperators": {
      "type": "object",
      "properties": {
        "$eq": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$neq": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$gt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$gte": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$lt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$lte": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "$null": {
          "type": "boolean",
          "x-nullable": true
        },
        "$nnull": {
          "type": "boolean",
          "x-nullable": true
        }
      }
    },
    "operationStringFilterOperation": {
      "type": "object",
      "properties": {
        "$eq": {
          "type": "string",
          "x-nullable": true
        },
        "$neq": {
          "type": "string",
          "x-nullable": true
        },
        "$contains": {
          "type": "string",
          "x-nullable": true
        },
        "$starts_with": {
          "type": "string",
          "x-nullable": true
        },
        "$nstarts_with": {
          "type": "string",
          "x-nullable": true
        },
        "$ends_with": {
          "type": "string",
          "x-nullable": true
        },
        "$nends_with": {
          "type": "string",
          "x-nullable": true
        },
        "$in": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "$nin": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "$null": {
          "type": "boolean",
          "x-nullable": true
        },
        "$nnull": {
          "type": "boolean",
          "x-nullable": true
        },
        "$empty": {
          "type": "boolean",
          "x-nullable": true
        },
        "$nempty": {
          "type": "boolean",
          "x-nullable": true
        },
        "$like": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "permissionv1PermissionDef": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string"
        },
        "side": {
          "$ref": "#/definitions/v1PermissionSide"
        },
        "extra": {
          "type": "object"
        },
        "namespace": {
          "type": "string"
        },
        "action": {
          "type": "string"
        },
        "granted": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "permissionv1PermissionDefGroup": {
      "type": "object",
      "properties": {
        "displayName": {
          "type": "string"
        },
        "side": {
          "$ref": "#/definitions/v1PermissionSide"
        },
        "priority": {
          "type": "integer",
          "format": "int32"
        },
        "def": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/permissionv1PermissionDef"
          }
        },
        "extra": {
          "type": "object"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "pricePricePb": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string",
          "format": "int64"
        },
        "currencyCode": {
          "type": "string"
        },
        "digits": {
          "type": "integer",
          "format": "int32"
        },
        "text": {
          "type": "string"
        },
        "amountDecimal": {
          "type": "string"
        }
      }
    },
    "protobufAny": {
      "type": "object",
      "properties": {
        "@type": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "protobufNullValue": {
      "type": "string",
      "enum": [
        "NULL_VALUE"
      ],
      "default": "NULL_VALUE",
      "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value."
    },
    "stripeEphemeralKey": {
      "type": "object",
      "properties": {
        "secret": {
          "type": "string"
        }
      }
    },
    "stripeInvoice": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "paymentIntent": {
          "$ref": "#/definitions/stripePaymentIntent"
        }
      }
    },
    "stripePaymentIntent": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "clientSecret": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      }
    },
    "stripeSubscription": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "latestInvoice": {
          "$ref": "#/definitions/stripeInvoice"
        }
      }
    },
    "subscriptionv1Subscription": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/v1User"
        },
        "provider": {
          "type": "string"
        },
        "providerKey": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1SubscriptionItem"
          }
        },
        "providerInfo": {
          "$ref": "#/definitions/v1SubscriptionProviderInfo"
        }
      }
    },
    "userv1UserRole": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "v1AddSubjectPermissionResponse": {
      "type": "object"
    },
    "v1AdminCreateUserRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "password": {
          "type": "string"
        },
        "confirmPassword": {
          "type": "string"
        },
        "birthday": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        },
        "avatar": {
          "type": "string"
        }
      }
    },
    "v1AdminDeleteUserResponse": {
      "type": "object"
    },
    "v1AdminListUsersRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1UserFilter"
        }
      }
    },
    "v1AdminListUsersResponse": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1User"
          }
        }
      }
    },
    "v1AdminUpdateUser": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "birthday": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        },
        "password": {
          "type": "string",
          "title": "reset password"
        },
        "confirmPassword": {
          "type": "string"
        },
        "avatar": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "v1Badge": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      }
    },
    "v1Brand": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        }
      }
    },
    "v1BrandFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "code": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1CampaignRule": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "rule": {
          "type": "string"
        },
        "extra": {
          "type": "object"
        }
      }
    },
    "v1ChangePasswordByForgetReply": {
      "type": "object"
    },
    "v1ChangePasswordByForgetRequest": {
      "type": "object",
      "properties": {
        "changePasswordToken": {
          "type": "string"
        },
        "newPassword": {
          "type": "string"
        },
        "confirmNewPassword": {
          "type": "string"
        }
      },
      "required": [
        "changePasswordToken",
        "newPassword",
        "confirmNewPassword"
      ]
    },
    "v1ChangePasswordByPreReply": {
      "type": "object"
    },
    "v1ChangePasswordByPreRequest": {
      "type": "object",
      "properties": {
        "prePassword": {
          "type": "string"
        },
        "newPassword": {
          "type": "string"
        },
        "confirmNewPassword": {
          "type": "string"
        }
      },
      "required": [
        "prePassword",
        "newPassword",
        "confirmNewPassword"
      ]
    },
    "v1ChangeTenantReply": {
      "type": "object",
      "properties": {
        "tenant": {
          "$ref": "#/definitions/v1TenantInfo"
        },
        "isHost": {
          "type": "boolean"
        }
      }
    },
    "v1CheckPermissionReply": {
      "type": "object",
      "properties": {
        "effect": {
          "$ref": "#/definitions/v1Effect"
        }
      }
    },
    "v1CheckPermissionRequest": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "action": {
          "type": "string"
        }
      },
      "required": [
        "namespace",
        "resource",
        "action"
      ]
    },
    "v1CheckSubjectsPermissionReply": {
      "type": "object",
      "properties": {
        "effectList": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/v1Effect"
          }
        }
      }
    },
    "v1CheckUserTenantReply": {
      "type": "object",
      "properties": {
        "ok": {
          "type": "boolean",
          "title": "can user access this tenant"
        }
      }
    },
    "v1CheckoutItemParams": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "priceId": {
          "type": "string"
        },
        "quantity": {
          "type": "string",
          "format": "int64"
        },
        "bizPayload": {
          "type": "object"
        }
      }
    },
    "v1CheckoutNowReply": {
      "type": "object",
      "properties": {
        "subscription": {
          "$ref": "#/definitions/subscriptionv1Subscription"
        },
        "order": {
          "$ref": "#/definitions/v1Order"
        }
      }
    },
    "v1CheckoutNowRequest": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CheckoutItemParams"
          }
        }
      },
      "required": [
        "provider"
      ]
    },
    "v1CheckoutOrderReply": {
      "type": "object",
      "properties": {
        "paymentProviderInfo": {
          "$ref": "#/definitions/v1OrderPaymentProviderInfo"
        }
      }
    },
    "v1CreateAddressReply": {
      "type": "object"
    },
    "v1CreateAddressesRequest": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string"
        },
        "usage": {
          "type": "string"
        },
        "prefer": {
          "type": "boolean"
        },
        "address": {
          "$ref": "#/definitions/lbsAddress"
        },
        "metadata": {
          "type": "object"
        }
      },
      "required": [
        "address"
      ]
    },
    "v1CreateBrandRequest": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        }
      },
      "required": [
        "code"
      ]
    },
    "v1CreateInternalOrderItem": {
      "type": "object",
      "properties": {
        "qty": {
          "type": "string",
          "format": "int64"
        },
        "priceAmount": {
          "type": "string",
          "format": "int64"
        },
        "originalPriceAmount": {
          "type": "string",
          "format": "int64"
        },
        "isGiveaway": {
          "type": "boolean"
        },
        "product": {
          "$ref": "#/definitions/v1OrderProduct"
        },
        "bizPayload": {
          "type": "object"
        }
      },
      "required": [
        "product"
      ]
    },
    "v1CreateMenuRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "requirement": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PermissionRequirement"
          }
        },
        "parent": {
          "type": "string",
          "title": "parent menu"
        },
        "props": {
          "type": "object"
        },
        "fullPath": {
          "type": "string"
        },
        "priority": {
          "type": "integer",
          "format": "int32"
        },
        "ignoreAuth": {
          "type": "boolean"
        },
        "icon": {
          "type": "string"
        },
        "iframe": {
          "type": "string"
        },
        "microApp": {
          "type": "string"
        },
        "meta": {
          "type": "object"
        },
        "title": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "redirect": {
          "type": "string"
        },
        "microAppName": {
          "type": "string"
        },
        "microAppBaseRoute": {
          "type": "string"
        },
        "microAppDev": {
          "type": "string"
        },
        "hideInMenu": {
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ]
    },
    "v1CreateOrderRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "v1CreatePlanRequest": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceParams"
          }
        },
        "sort": {
          "type": "integer",
          "format": "int32"
        }
      },
      "required": [
        "key",
        "displayName"
      ]
    },
    "v1CreateProductCategoryRequest": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "parent": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "v1CreateProductRequest": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "shortDesc": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "mainPic": {
          "$ref": "#/definitions/v1ProductMedia"
        },
        "medias": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductMedia"
          }
        },
        "badges": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Badge"
          }
        },
        "visibleFrom": {
          "type": "string",
          "format": "date-time"
        },
        "visibleTo": {
          "type": "string",
          "format": "date-time"
        },
        "isNew": {
          "type": "boolean"
        },
        "mainCategoryKey": {
          "type": "string",
          "x-nullable": true
        },
        "categoryKeys": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "barcode": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "brandId": {
          "type": "string",
          "x-nullable": true
        },
        "isSaleable": {
          "type": "boolean"
        },
        "saleableFrom": {
          "type": "string",
          "format": "date-time"
        },
        "saleableTo": {
          "type": "string",
          "format": "date-time"
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Keyword"
          }
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceParams"
          }
        },
        "isGiveaway": {
          "type": "boolean"
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductAttribute"
          }
        },
        "multiSku": {
          "type": "boolean"
        },
        "campaignRules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CampaignRule"
          }
        },
        "needShipping": {
          "type": "boolean"
        },
        "stocks": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Stock"
          }
        },
        "content": {
          "type": "object"
        },
        "active": {
          "type": "boolean"
        }
      },
      "required": [
        "title"
      ]
    },
    "v1CreateRoleRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "v1CreateSubscriptionRequest": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "provider": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1SubscriptionItemParams"
          }
        }
      }
    },
    "v1CreateTenantRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        },
        "separateDb": {
          "type": "boolean"
        },
        "adminEmail": {
          "type": "string",
          "x-nullable": true
        },
        "adminUsername": {
          "type": "string",
          "x-nullable": true
        },
        "adminPassword": {
          "type": "string",
          "x-nullable": true
        },
        "adminUserId": {
          "type": "string",
          "x-nullable": true
        }
      },
      "required": [
        "name"
      ]
    },
    "v1CreateUserRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "password": {
          "type": "string"
        },
        "confirmPassword": {
          "type": "string"
        },
        "birthday": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        },
        "avatar": {
          "type": "string"
        },
        "rolesId": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "id": {
          "type": "string"
        }
      }
    },
    "v1DeleteAddressesReply": {
      "type": "object"
    },
    "v1DeleteBrandReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      }
    },
    "v1DeleteInternalProductReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "v1DeleteMenuReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "v1DeleteNotificationReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "v1DeleteOrderReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "v1DeletePlanReply": {
      "type": "object"
    },
    "v1DeleteProductCategoryReply": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "v1DeleteProductReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "v1DeleteRoleResponse": {
      "type": "object"
    },
    "v1DeleteTenantReply": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "v1DeleteUserResponse": {
      "type": "object"
    },
    "v1Effect": {
      "type": "string",
      "enum": [
        "UNKNOWN",
        "GRANT",
        "FORBIDDEN"
      ],
      "default": "UNKNOWN"
    },
    "v1FindOrCreateStripeCustomerReply": {
      "type": "object",
      "properties": {
        "user": {
          "$ref": "#/definitions/v1User"
        },
        "stripeCustomerId": {
          "type": "string"
        }
      }
    },
    "v1ForgetPasswordReply": {
      "type": "object",
      "properties": {
        "changePasswordToken": {
          "type": "string",
          "title": "next step for change password"
        }
      }
    },
    "v1ForgetPasswordRequest": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "token": {
          "type": "string"
        }
      }
    },
    "v1ForgetPasswordTokenReply": {
      "type": "object",
      "properties": {
        "expire": {
          "type": "string",
          "title": "expire time"
        }
      }
    },
    "v1ForgetPasswordTokenRequest": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1Gender": {
      "type": "string",
      "enum": [
        "UNKNOWN",
        "MALE",
        "FEMALE",
        "OTHER"
      ],
      "default": "UNKNOWN"
    },
    "v1GetAddressesReply": {
      "type": "object",
      "properties": {
        "addresses": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UserAddress"
          }
        }
      }
    },
    "v1GetAvailableMenusReply": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Menu"
          }
        }
      }
    },
    "v1GetAvailablePlansReply": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Plan"
          }
        },
        "activeSubscription": {
          "$ref": "#/definitions/subscriptionv1Subscription"
        }
      }
    },
    "v1GetConsentResponse": {
      "type": "object",
      "properties": {
        "challenge": {
          "type": "string"
        },
        "requestedScope": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "userId": {
          "type": "string"
        },
        "client": {
          "$ref": "#/definitions/v1OAuthClient"
        },
        "redirect": {
          "type": "string"
        }
      },
      "required": [
        "challenge"
      ]
    },
    "v1GetCsrfTokenResponse": {
      "type": "object",
      "properties": {
        "csrfToken": {
          "type": "string"
        }
      }
    },
    "v1GetCurrentPermissionReply": {
      "type": "object",
      "properties": {
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        }
      }
    },
    "v1GetCurrentTenantReply": {
      "type": "object",
      "properties": {
        "tenant": {
          "$ref": "#/definitions/v1TenantInfo"
        },
        "isHost": {
          "type": "boolean"
        }
      }
    },
    "v1GetLoginResponse": {
      "type": "object",
      "properties": {
        "redirect": {
          "type": "string",
          "title": "normalized redirect url"
        },
        "oauth": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1OAuthProvider"
          }
        },
        "hint": {
          "type": "string"
        },
        "challenge": {
          "type": "string"
        }
      }
    },
    "v1GetLogoutResponse": {
      "type": "object",
      "properties": {
        "challenge": {
          "type": "string"
        }
      }
    },
    "v1GetPaymentMethodReply": {
      "type": "object",
      "properties": {
        "methods": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PaymentMethod"
          }
        }
      }
    },
    "v1GetProfileResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "birthday": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Role"
          }
        },
        "tenants": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UserTenant"
          },
          "title": "user available tenants"
        },
        "avatar": {
          "$ref": "#/definitions/blobBlobFile"
        },
        "currentTenant": {
          "$ref": "#/definitions/v1UserTenant"
        }
      }
    },
    "v1GetRolePermissionResponse": {
      "type": "object",
      "properties": {
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        },
        "defGroups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/permissionv1PermissionDefGroup"
          }
        }
      }
    },
    "v1GetSettingsResponse": {
      "type": "object",
      "properties": {
        "settings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Settings"
          }
        }
      }
    },
    "v1GetStripeConfigReply": {
      "type": "object",
      "properties": {
        "isTest": {
          "type": "boolean"
        },
        "publishKey": {
          "type": "string"
        },
        "priceTables": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "customerId": {
          "type": "string"
        }
      }
    },
    "v1GetUserPermissionReply": {
      "type": "object",
      "properties": {
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        },
        "defGroups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/permissionv1PermissionDefGroup"
          }
        }
      }
    },
    "v1GetUserRoleReply": {
      "type": "object",
      "properties": {
        "roles": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/userv1UserRole"
          }
        }
      }
    },
    "v1GrantConsentRequest": {
      "type": "object",
      "properties": {
        "challenge": {
          "type": "string"
        },
        "grantScope": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "title": "user granted scope"
        },
        "reject": {
          "type": "boolean"
        }
      }
    },
    "v1GrantConsentResponse": {
      "type": "object",
      "properties": {
        "redirect": {
          "type": "string"
        }
      }
    },
    "v1InternalOrderPaySuccessReply": {
      "type": "object"
    },
    "v1InternalOrderRefundedReply": {
      "type": "object"
    },
    "v1InviteUserReply": {
      "type": "object",
      "properties": {
        "requiredConfirm": {
          "type": "boolean"
        }
      }
    },
    "v1InviteUserRequest": {
      "type": "object",
      "properties": {
        "identify": {
          "type": "string",
          "title": "username email or phone"
        }
      },
      "required": [
        "identify"
      ]
    },
    "v1Keyword": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "refer": {
          "type": "string"
        }
      }
    },
    "v1ListBrandReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Brand"
          }
        }
      }
    },
    "v1ListBrandRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1BrandFilter"
        }
      }
    },
    "v1ListMenuReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Menu"
          }
        }
      }
    },
    "v1ListMenuRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1MenuFilter"
        }
      }
    },
    "v1ListMessageReply": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1LocaleLanguage"
          }
        }
      }
    },
    "v1ListMySubscriptionReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/subscriptionv1Subscription"
          }
        }
      }
    },
    "v1ListMySubscriptionRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1SubscriptionFilter"
        }
      }
    },
    "v1ListNotificationReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Notification"
          }
        },
        "nextAfterPageToken": {
          "type": "string",
          "x-nullable": true
        },
        "nextBeforePageToken": {
          "type": "string",
          "x-nullable": true
        },
        "unreadSize": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "v1ListNotificationRequest": {
      "type": "object",
      "properties": {
        "afterPageToken": {
          "type": "string"
        },
        "beforePageToken": {
          "type": "string"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1NotificationFilter"
        }
      }
    },
    "v1ListOrderReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Order"
          }
        },
        "nextAfterPageToken": {
          "type": "string",
          "x-nullable": true
        },
        "nextBeforePageToken": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1ListOrderRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1OrderFilter"
        },
        "afterPageToken": {
          "type": "string"
        },
        "beforePageToken": {
          "type": "string"
        }
      }
    },
    "v1ListPlanReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Plan"
          }
        }
      }
    },
    "v1ListPlanRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1PlanFilter"
        }
      }
    },
    "v1ListProductCategoryReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductCategory"
          }
        }
      }
    },
    "v1ListProductCategoryRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1ProductCategoryFilter"
        }
      }
    },
    "v1ListProductReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Product"
          }
        }
      }
    },
    "v1ListProductRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1ProductFilter"
        }
      }
    },
    "v1ListRolesRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1RoleFilter"
        }
      }
    },
    "v1ListRolesResponse": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Role"
          }
        }
      }
    },
    "v1ListSubjectPermissionResponse": {
      "type": "object",
      "properties": {
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        },
        "defGroups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/permissionv1PermissionDefGroup"
          }
        }
      }
    },
    "v1ListSubscriptionReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/subscriptionv1Subscription"
          }
        }
      }
    },
    "v1ListSubscriptionRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1SubscriptionFilter"
        }
      }
    },
    "v1ListTenantReply": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Tenant"
          }
        }
      }
    },
    "v1ListTenantRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1TenantFilter"
        }
      }
    },
    "v1ListUsersRequest": {
      "type": "object",
      "properties": {
        "pageOffset": {
          "type": "integer",
          "format": "int32"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32"
        },
        "search": {
          "type": "string"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "fields": {
          "type": "string"
        },
        "filter": {
          "$ref": "#/definitions/v1UserFilter"
        }
      }
    },
    "v1ListUsersResponse": {
      "type": "object",
      "properties": {
        "totalSize": {
          "type": "integer",
          "format": "int32"
        },
        "filterSize": {
          "type": "integer",
          "format": "int32"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1User"
          }
        }
      }
    },
    "v1LocaleLanguage": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "msg": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1LocaleMessage"
          }
        }
      }
    },
    "v1LocaleMessage": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "other": {
          "type": "string"
        }
      }
    },
    "v1LoginAuthReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "expires": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds\r\nDeprecated, use expires_in instead"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        },
        "redirect": {
          "type": "string"
        }
      }
    },
    "v1LoginAuthRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "remember": {
          "type": "boolean"
        }
      },
      "required": [
        "username",
        "password"
      ]
    },
    "v1LoginPasswordlessReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        }
      }
    },
    "v1LoginPasswordlessRequest": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "token": {
          "type": "string"
        },
        "web": {
          "type": "boolean"
        }
      },
      "required": [
        "token"
      ]
    },
    "v1LogoutRequest": {
      "type": "object",
      "properties": {
        "challenge": {
          "type": "string"
        }
      }
    },
    "v1LogoutResponse": {
      "type": "object",
      "properties": {
        "redirect": {
          "type": "string"
        }
      }
    },
    "v1Menu": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "desc": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "requirement": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PermissionRequirement"
          }
        },
        "parent": {
          "type": "string",
          "title": "parent menu"
        },
        "props": {
          "type": "object"
        },
        "fullPath": {
          "type": "string"
        },
        "priority": {
          "type": "integer",
          "format": "int32"
        },
        "ignoreAuth": {
          "type": "boolean"
        },
        "icon": {
          "type": "string"
        },
        "iframe": {
          "type": "string"
        },
        "microApp": {
          "type": "string"
        },
        "meta": {
          "type": "object"
        },
        "title": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "redirect": {
          "type": "string"
        },
        "microAppName": {
          "type": "string"
        },
        "microAppBaseRoute": {
          "type": "string"
        },
        "microAppDev": {
          "type": "string"
        },
        "hideInMenu": {
          "type": "boolean"
        }
      }
    },
    "v1MenuFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "parent": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1MessageFilter": {
      "type": "object",
      "properties": {
        "nameIn": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "v1MessageProto": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string",
          "format": "byte"
        },
        "header": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "v1Notification": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "tenantId": {
          "type": "string"
        },
        "group": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "link": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "extra": {
          "type": "object"
        },
        "level": {
          "type": "integer",
          "format": "int32"
        },
        "hasRead": {
          "type": "boolean"
        }
      }
    },
    "v1NotificationFilter": {
      "type": "object",
      "properties": {
        "hasRead": {
          "$ref": "#/definitions/operationBooleanFilterOperators"
        }
      }
    },
    "v1OAuthClient": {
      "type": "object",
      "properties": {
        "clientId": {
          "type": "string",
          "x-nullable": true
        },
        "clientName": {
          "type": "string",
          "x-nullable": true
        },
        "clientUri": {
          "type": "string",
          "x-nullable": true
        },
        "contacts": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "logoUri": {
          "type": "string",
          "x-nullable": true
        },
        "metadata": {
          "type": "object",
          "x-nullable": true
        },
        "owner": {
          "type": "string",
          "x-nullable": true
        },
        "policyUri": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1OAuthProvider": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      }
    },
    "v1Order": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "tenantId": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "totalPrice": {
          "$ref": "#/definitions/pricePricePb"
        },
        "totalPriceInclTax": {
          "$ref": "#/definitions/pricePricePb"
        },
        "discount": {
          "$ref": "#/definitions/pricePricePb"
        },
        "originalPrice": {
          "$ref": "#/definitions/pricePricePb"
        },
        "paidPrice": {
          "$ref": "#/definitions/pricePricePb"
        },
        "paidTime": {
          "type": "string",
          "format": "date-time"
        },
        "payBefore": {
          "type": "string",
          "format": "date-time"
        },
        "payProvider": {
          "type": "string"
        },
        "shippingAddr": {
          "$ref": "#/definitions/lbsAddress"
        },
        "billingAddr": {
          "$ref": "#/definitions/lbsAddress"
        },
        "customerId": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1OrderItem"
          }
        },
        "paymentProviderInfo": {
          "$ref": "#/definitions/v1OrderPaymentProviderInfo"
        },
        "paymentProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1OrderPaymentProvider"
          }
        }
      }
    },
    "v1OrderFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "customerId": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1OrderItem": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "qty": {
          "type": "string",
          "format": "int64"
        },
        "currencyCode": {
          "type": "string"
        },
        "price": {
          "$ref": "#/definitions/pricePricePb"
        },
        "priceTax": {
          "$ref": "#/definitions/pricePricePb"
        },
        "priceInclTax": {
          "$ref": "#/definitions/pricePricePb"
        },
        "originalPrice": {
          "$ref": "#/definitions/pricePricePb"
        },
        "rowTotal": {
          "$ref": "#/definitions/pricePricePb"
        },
        "rowTotalTax": {
          "$ref": "#/definitions/pricePricePb"
        },
        "rowTotalInclTax": {
          "$ref": "#/definitions/pricePricePb"
        },
        "rowDiscount": {
          "$ref": "#/definitions/pricePricePb"
        },
        "product": {
          "$ref": "#/definitions/v1OrderProduct"
        },
        "isGiveaway": {
          "type": "boolean"
        },
        "bizPayload": {
          "type": "object"
        }
      }
    },
    "v1OrderPaymentProvider": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string"
        },
        "providerKey": {
          "type": "string"
        }
      }
    },
    "v1OrderPaymentProviderInfo": {
      "type": "object",
      "properties": {
        "stripe": {
          "$ref": "#/definitions/v1OrderPaymentStripeInfo"
        }
      }
    },
    "v1OrderPaymentStripeInfo": {
      "type": "object",
      "properties": {
        "paymentIntent": {
          "$ref": "#/definitions/stripePaymentIntent"
        },
        "ephemeralKey": {
          "$ref": "#/definitions/stripeEphemeralKey"
        }
      }
    },
    "v1OrderProduct": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "mainPic": {
          "type": "string"
        },
        "id": {
          "type": "string",
          "x-nullable": true
        },
        "version": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "skuId": {
          "type": "string",
          "x-nullable": true
        },
        "skuTitle": {
          "type": "string"
        },
        "priceId": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1PasswordlessTokenAuthReply": {
      "type": "object",
      "properties": {
        "expire": {
          "type": "string",
          "title": "expire time"
        }
      }
    },
    "v1PasswordlessTokenAuthRequest": {
      "type": "object",
      "properties": {
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1PaymentMethod": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "notice": {
          "type": "string"
        }
      }
    },
    "v1Permission": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "action": {
          "type": "string"
        },
        "subject": {
          "type": "string"
        },
        "effect": {
          "$ref": "#/definitions/v1Effect"
        },
        "tenantId": {
          "type": "string"
        }
      }
    },
    "v1PermissionRequirement": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "action": {
          "type": "string"
        }
      },
      "required": [
        "namespace",
        "resource",
        "action"
      ]
    },
    "v1PermissionSide": {
      "type": "string",
      "enum": [
        "BOTH",
        "HOST_ONLY",
        "TENANT_ONLY"
      ],
      "default": "BOTH"
    },
    "v1Plan": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "sort": {
          "type": "integer",
          "format": "int32"
        },
        "productId": {
          "type": "string"
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Price"
          }
        }
      },
      "required": [
        "key",
        "displayName"
      ]
    },
    "v1PlanFilter": {
      "type": "object",
      "properties": {
        "key": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "displayName": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "active": {
          "$ref": "#/definitions/operationBooleanFilterOperators"
        }
      }
    },
    "v1Price": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "tenantId": {
          "type": "string"
        },
        "ownerType": {
          "type": "string",
          "title": "product/product_sku"
        },
        "ownerId": {
          "type": "string"
        },
        "productId": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "default": {
          "$ref": "#/definitions/pricePricePb"
        },
        "discounted": {
          "$ref": "#/definitions/pricePricePb"
        },
        "discountText": {
          "type": "string"
        },
        "denyMoreDiscounts": {
          "type": "boolean"
        },
        "billingScheme": {
          "type": "string"
        },
        "currencyOptions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceCurrencyOption"
          }
        },
        "recurring": {
          "$ref": "#/definitions/v1PriceRecurring"
        },
        "tiers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceTier"
          }
        },
        "tiersMode": {
          "type": "string"
        },
        "transformQuantity": {
          "$ref": "#/definitions/v1PriceTransformQuantity"
        },
        "type": {
          "type": "string"
        },
        "stripePriceId": {
          "type": "string",
          "x-nullable": true
        }
      }
    },
    "v1PriceCurrencyOption": {
      "type": "object",
      "properties": {
        "currencyCode": {
          "type": "string"
        },
        "default": {
          "$ref": "#/definitions/pricePricePb"
        },
        "discounted": {
          "$ref": "#/definitions/pricePricePb"
        },
        "discountText": {
          "type": "string"
        },
        "denyMoreDiscounts": {
          "type": "boolean"
        },
        "tiers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceCurrencyOptionTier"
          }
        }
      }
    },
    "v1PriceCurrencyOptionParams": {
      "type": "object",
      "properties": {
        "currencyCode": {
          "type": "string"
        },
        "defaultAmountDecimal": {
          "type": "string"
        },
        "discountedAmountDecimal": {
          "type": "string",
          "x-nullable": true
        },
        "discountText": {
          "type": "string"
        },
        "denyMoreDiscounts": {
          "type": "boolean"
        },
        "tiers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceCurrencyOptionTierParams"
          }
        }
      }
    },
    "v1PriceCurrencyOptionTier": {
      "type": "object",
      "properties": {
        "flat": {
          "$ref": "#/definitions/pricePricePb"
        },
        "unit": {
          "$ref": "#/definitions/pricePricePb"
        },
        "upTo": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "v1PriceCurrencyOptionTierParams": {
      "type": "object",
      "properties": {
        "flatAmountDecimal": {
          "type": "string"
        },
        "unitAmountDecimal": {
          "type": "string"
        },
        "upTo": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "v1PriceParams": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "currencyCode": {
          "type": "string"
        },
        "defaultAmountDecimal": {
          "type": "string"
        },
        "discountedAmountDecimal": {
          "type": "string",
          "x-nullable": true
        },
        "discountText": {
          "type": "string"
        },
        "denyMoreDiscounts": {
          "type": "boolean"
        },
        "billingScheme": {
          "type": "string"
        },
        "currencyOptions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceCurrencyOptionParams"
          }
        },
        "recurring": {
          "$ref": "#/definitions/v1PriceRecurring"
        },
        "tiers": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceTierParams"
          }
        },
        "tiersMode": {
          "type": "string"
        },
        "transformQuantity": {
          "$ref": "#/definitions/v1PriceTransformQuantity"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "billingScheme",
        "type"
      ]
    },
    "v1PriceRecurring": {
      "type": "object",
      "properties": {
        "interval": {
          "type": "string"
        },
        "intervalCount": {
          "type": "string",
          "format": "int64"
        },
        "trialPeriodDays": {
          "type": "string",
          "format": "int64"
        },
        "aggregateUsage": {
          "type": "string"
        },
        "usageType": {
          "type": "string"
        }
      },
      "required": [
        "interval"
      ]
    },
    "v1PriceTier": {
      "type": "object",
      "properties": {
        "flat": {
          "$ref": "#/definitions/pricePricePb"
        },
        "unit": {
          "$ref": "#/definitions/pricePricePb"
        },
        "upTo": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "v1PriceTierParams": {
      "type": "object",
      "properties": {
        "flatAmountDecimal": {
          "type": "string"
        },
        "unitAmountDecimal": {
          "type": "string"
        },
        "upTo": {
          "type": "string",
          "format": "int64"
        }
      }
    },
    "v1PriceTransformQuantity": {
      "type": "object",
      "properties": {
        "divideBy": {
          "type": "string",
          "format": "int64"
        },
        "round": {
          "type": "string"
        }
      },
      "required": [
        "round"
      ]
    },
    "v1Product": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "tenantId": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "shortDesc": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "mainPic": {
          "$ref": "#/definitions/v1ProductMedia"
        },
        "medias": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductMedia"
          }
        },
        "badges": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Badge"
          }
        },
        "visibleFrom": {
          "type": "string",
          "format": "date-time"
        },
        "visibleTo": {
          "type": "string",
          "format": "date-time"
        },
        "isNew": {
          "type": "boolean"
        },
        "barcode": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "brandId": {
          "type": "string",
          "x-nullable": true
        },
        "saleableFrom": {
          "type": "string",
          "format": "date-time"
        },
        "saleableTo": {
          "type": "string",
          "format": "date-time"
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Keyword"
          }
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Price"
          }
        },
        "isGiveaway": {
          "type": "boolean"
        },
        "mainCategoryKey": {
          "type": "string"
        },
        "mainCategory": {
          "$ref": "#/definitions/v1ProductCategory"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductCategory"
          }
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductAttribute"
          }
        },
        "multiSku": {
          "type": "boolean"
        },
        "campaignRules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CampaignRule"
          }
        },
        "needShipping": {
          "type": "boolean"
        },
        "stocks": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Stock"
          }
        },
        "content": {
          "type": "object"
        },
        "manageInfo": {
          "$ref": "#/definitions/v1ProductManageInfo"
        },
        "active": {
          "type": "boolean"
        }
      }
    },
    "v1ProductAttribute": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        }
      }
    },
    "v1ProductCategory": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "parent": {
          "type": "string"
        }
      }
    },
    "v1ProductCategoryFilter": {
      "type": "object",
      "properties": {
        "key": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "parent": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1ProductFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "internal": {
          "$ref": "#/definitions/operationBooleanFilterOperators"
        }
      }
    },
    "v1ProductManageInfo": {
      "type": "object",
      "properties": {
        "managed": {
          "type": "boolean"
        },
        "managedBy": {
          "type": "string"
        },
        "lastSyncTime": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "v1ProductMedia": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "mimeType": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "v1RefreshRememberTokenReply": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "newRmToken": {
          "type": "string"
        }
      }
    },
    "v1RefreshTokenAuthReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        }
      }
    },
    "v1RefreshTokenAuthRequest": {
      "type": "object",
      "properties": {
        "refreshToken": {
          "type": "string"
        }
      },
      "required": [
        "refreshToken"
      ]
    },
    "v1RegisterAuthReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        }
      }
    },
    "v1RegisterAuthRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "confirmPassword": {
          "type": "string"
        },
        "web": {
          "type": "boolean"
        }
      },
      "required": [
        "username",
        "password",
        "confirmPassword"
      ]
    },
    "v1RemoveSubjectPermissionReply": {
      "type": "object"
    },
    "v1Role": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "isPreserved": {
          "type": "boolean"
        },
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        },
        "defGroups": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/permissionv1PermissionDefGroup"
          }
        }
      }
    },
    "v1RoleFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1SearchUserResponse": {
      "type": "object",
      "properties": {
        "user": {
          "$ref": "#/definitions/SearchUserResponseSearchUser"
        }
      }
    },
    "v1Settings": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "$ref": "#/definitions/dataDynamicValue"
        }
      }
    },
    "v1SettingsFilter": {
      "type": "object",
      "properties": {
        "key": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1Stock": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "inStock": {
          "type": "boolean"
        },
        "level": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "deliveryCode": {
          "type": "string"
        }
      }
    },
    "v1StripeWebhookReply": {
      "type": "object"
    },
    "v1SubscriptionFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "userId": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "provider": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "providerKey": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "and": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1SubscriptionFilter"
          }
        },
        "or": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1SubscriptionFilter"
          }
        }
      }
    },
    "v1SubscriptionItem": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "priceId": {
          "type": "string"
        },
        "productId": {
          "type": "string"
        },
        "quantity": {
          "type": "string",
          "format": "int64"
        },
        "priceOwnerId": {
          "type": "string"
        },
        "priceOwnerType": {
          "type": "string"
        },
        "bizPayload": {
          "type": "object"
        }
      }
    },
    "v1SubscriptionItemParams": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "priceId": {
          "type": "string"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "bizPayload": {
          "type": "object"
        }
      }
    },
    "v1SubscriptionProviderInfo": {
      "type": "object",
      "properties": {
        "stripe": {
          "$ref": "#/definitions/v1SubscriptionStripeInfo"
        }
      }
    },
    "v1SubscriptionStripeInfo": {
      "type": "object",
      "properties": {
        "subscription": {
          "$ref": "#/definitions/stripeSubscription"
        }
      }
    },
    "v1Tenant": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "conn": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TenantConnectionString"
          }
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TenantFeature"
          }
        },
        "logo": {
          "$ref": "#/definitions/blobBlobFile"
        },
        "separateDb": {
          "type": "boolean"
        },
        "host": {
          "type": "string"
        },
        "planKey": {
          "type": "string",
          "x-nullable": true
        },
        "plan": {
          "$ref": "#/definitions/v1Plan"
        }
      }
    },
    "v1TenantConnectionString": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "v1TenantFeature": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "$ref": "#/definitions/dataDynamicValue"
        }
      }
    },
    "v1TenantFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "name": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "region": {
          "$ref": "#/definitions/operationStringFilterOperation"
        }
      }
    },
    "v1TenantInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "logo": {
          "$ref": "#/definitions/blobBlobFile"
        },
        "host": {
          "type": "string"
        },
        "planKey": {
          "type": "string",
          "x-nullable": true
        },
        "plan": {
          "$ref": "#/definitions/v1Plan"
        }
      },
      "title": "TenantInfo public tenant information"
    },
    "v1TokenReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        }
      }
    },
    "v1TokenRequest": {
      "type": "object",
      "properties": {
        "grantType": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "refreshToken": {
          "type": "string"
        }
      }
    },
    "v1UpdateAddress": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "usage": {
          "type": "string"
        },
        "prefer": {
          "type": "boolean"
        },
        "address": {
          "$ref": "#/definitions/lbsAddress"
        },
        "metadata": {
          "type": "object"
        }
      },
      "required": [
        "id",
        "address"
      ]
    },
    "v1UpdateAddressesReply": {
      "type": "object"
    },
    "v1UpdateBrand": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "v1UpdateMenu": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "component": {
          "type": "string"
        },
        "requirement": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PermissionRequirement"
          }
        },
        "parent": {
          "type": "string",
          "title": "parent menu"
        },
        "props": {
          "type": "object"
        },
        "fullPath": {
          "type": "string"
        },
        "priority": {
          "type": "integer",
          "format": "int32"
        },
        "ignoreAuth": {
          "type": "boolean"
        },
        "icon": {
          "type": "string"
        },
        "iframe": {
          "type": "string"
        },
        "microApp": {
          "type": "string"
        },
        "meta": {
          "type": "object"
        },
        "title": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "redirect": {
          "type": "string"
        },
        "microAppName": {
          "type": "string"
        },
        "microAppBaseRoute": {
          "type": "string"
        },
        "microAppDev": {
          "type": "string"
        },
        "hideInMenu": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "v1UpdateMySubscription": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "v1UpdateOrder": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "v1UpdatePlan": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceParams"
          }
        },
        "sort": {
          "type": "integer",
          "format": "int32"
        }
      },
      "required": [
        "key",
        "displayName"
      ]
    },
    "v1UpdateProduct": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "shortDesc": {
          "type": "string"
        },
        "desc": {
          "type": "string"
        },
        "mainPic": {
          "$ref": "#/definitions/v1ProductMedia"
        },
        "medias": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductMedia"
          }
        },
        "badges": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Badge"
          }
        },
        "visibleFrom": {
          "type": "string",
          "format": "date-time"
        },
        "visibleTo": {
          "type": "string",
          "format": "date-time"
        },
        "isNew": {
          "type": "boolean"
        },
        "mainCategoryKey": {
          "type": "string",
          "x-nullable": true
        },
        "categoryKeys": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "barcode": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "brandId": {
          "type": "string",
          "x-nullable": true
        },
        "isSaleable": {
          "type": "boolean"
        },
        "saleableFrom": {
          "type": "string",
          "format": "date-time"
        },
        "saleableTo": {
          "type": "string",
          "format": "date-time"
        },
        "keywords": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Keyword"
          }
        },
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1PriceParams"
          },
          "title": "could update or create new prices"
        },
        "isGiveaway": {
          "type": "boolean"
        },
        "attributes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1ProductAttribute"
          }
        },
        "campaignRules": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1CampaignRule"
          }
        },
        "needShipping": {
          "type": "boolean"
        },
        "stocks": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Stock"
          }
        },
        "content": {
          "type": "object"
        },
        "active": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "title"
      ]
    },
    "v1UpdateProductCategory": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "key"
      ]
    },
    "v1UpdateProfileRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        }
      }
    },
    "v1UpdateProfileResponse": {
      "type": "object"
    },
    "v1UpdateRole": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UpdateRolePermissionAcl"
          }
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "v1UpdateRolePermissionAcl": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "action": {
          "type": "string"
        },
        "effect": {
          "$ref": "#/definitions/v1Effect"
        }
      }
    },
    "v1UpdateRolePermissionResponse": {
      "type": "object"
    },
    "v1UpdateSettings": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "value": {
          "$ref": "#/definitions/dataDynamicValue"
        },
        "reset": {
          "type": "boolean"
        }
      }
    },
    "v1UpdateSettingsRequest": {
      "type": "object",
      "properties": {
        "settings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UpdateSettings"
          }
        }
      }
    },
    "v1UpdateSettingsResponse": {
      "type": "object",
      "properties": {
        "settings": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Settings"
          }
        }
      }
    },
    "v1UpdateSubjectPermissionAcl": {
      "type": "object",
      "properties": {
        "namespace": {
          "type": "string"
        },
        "resource": {
          "type": "string"
        },
        "action": {
          "type": "string"
        },
        "effect": {
          "$ref": "#/definitions/v1Effect"
        },
        "tenantId": {
          "type": "string"
        }
      },
      "required": [
        "namespace",
        "resource",
        "action",
        "effect"
      ]
    },
    "v1UpdateSubjectPermissionResponse": {
      "type": "object",
      "properties": {
        "acl": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Permission"
          }
        }
      }
    },
    "v1UpdateSubscription": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1SubscriptionItemParams"
          }
        }
      },
      "required": [
        "id"
      ]
    },
    "v1UpdateTenant": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "conn": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TenantConnectionString"
          }
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1TenantFeature"
          }
        },
        "logo": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ]
    },
    "v1UpdateUser": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "rolesId": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "id"
      ]
    },
    "v1UpdateUserPermissionReply": {
      "type": "object"
    },
    "v1User": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "username": {
          "type": "string",
          "x-nullable": true
        },
        "name": {
          "type": "string",
          "x-nullable": true
        },
        "phone": {
          "type": "string",
          "x-nullable": true
        },
        "email": {
          "type": "string",
          "x-nullable": true
        },
        "birthday": {
          "type": "string",
          "format": "date-time",
          "x-nullable": true
        },
        "gender": {
          "$ref": "#/definitions/v1Gender"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1Role"
          }
        },
        "avatar": {
          "$ref": "#/definitions/blobBlobFile"
        }
      }
    },
    "v1UserAddress": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "usage": {
          "type": "string"
        },
        "prefer": {
          "type": "boolean"
        },
        "address": {
          "$ref": "#/definitions/lbsAddress"
        },
        "metadata": {
          "type": "object"
        }
      }
    },
    "v1UserCreateTenantReply": {
      "type": "object",
      "properties": {
        "tenant": {
          "$ref": "#/definitions/v1Tenant"
        }
      }
    },
    "v1UserCreateTenantRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "logo": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "v1UserFilter": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "gender": {
          "$ref": "#/definitions/operationStringFilterOperation"
        },
        "birthday": {
          "$ref": "#/definitions/operationDateFilterOperators"
        },
        "roles": {
          "$ref": "#/definitions/v1RoleFilter"
        },
        "and": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UserFilter"
          }
        },
        "or": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/v1UserFilter"
          }
        }
      }
    },
    "v1UserTenant": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "tenantId": {
          "type": "string"
        },
        "tenant": {
          "$ref": "#/definitions/v1TenantInfo"
        },
        "isHost": {
          "type": "boolean"
        }
      }
    },
    "v1ValidatePasswordReply": {
      "type": "object",
      "properties": {
        "ok": {
          "type": "boolean"
        }
      }
    },
    "v1ValidatePasswordRequest": {
      "type": "object",
      "properties": {
        "password": {
          "type": "string"
        }
      }
    },
    "v1WeChatLoginReply": {
      "type": "object",
      "properties": {
        "next": {
          "type": "string",
          "title": "Next step. could be \"\", \"phone\", \"phone_realtime\","
        },
        "nextToken": {
          "type": "string"
        },
        "token": {
          "$ref": "#/definitions/v1TokenReply"
        }
      }
    },
    "v1WebLoginAuthReply": {
      "type": "object",
      "properties": {
        "accessToken": {
          "type": "string"
        },
        "tokenType": {
          "type": "string",
          "title": "Bearer"
        },
        "expires": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        },
        "refreshToken": {
          "type": "string",
          "title": "Refresh token to keep login state"
        },
        "expiresIn": {
          "type": "integer",
          "format": "int32",
          "title": "Expires time in seconds"
        },
        "redirect": {
          "type": "string"
        }
      }
    },
    "v1WebLoginAuthRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "remember": {
          "type": "boolean"
        },
        "challenge": {
          "type": "string"
        },
        "reject": {
          "type": "boolean"
        }
      },
      "required": [
        "username",
        "password"
      ]
    },
    "v1WechatMiniProgramCodeReq": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string"
        },
        "code": {
          "type": "string"
        }
      },
      "required": [
        "appId",
        "code"
      ]
    },
    "v1WechatMiniProgramPhoneCodeReq": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "nextToken": {
          "type": "string"
        }
      },
      "required": [
        "appId",
        "code",
        "nextToken"
      ]
    }
  },
  "securityDefinitions": {
    "bearer": {
      "type": "apiKey",
      "description": "Authentication token, prefixed by Bearer: Bearer \u003ctoken\u003e",
      "name": "Authorization",
      "in": "header"
    }
  },
  "security": [
    {
      "bearer": []
    }
  ]
}
