# frozen_string_literal: true # Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module TencentCloud module Vod module V20240718 # CreateStorageCredentials请求参数结构体 class CreateStorageCredentialsRequest < TencentCloud::Common::AbstractModel # @param SubAppId: 点播[应用](/document/product/266/14574) ID。 # @type SubAppId: Integer # @param Policy: 按照下方语法组装好策略后,先序列化为字符串,再做 urlencode,结果作为 Policy 字段入参。服务端会对该字段做 urldecode,并按解析后的策略授予临时访问凭证权限,请按规范传入参数。 # 注意: # 1.策略语法参照[访问管理策略](/document/product/598/10603)。 # 2.策略中不能包含 principal 元素。 # 3.策略的 action 元素仅支持:
  • name/vod:PutObject;
  • name/vod:ListParts;
  • name/vod:PostObject;
  • name/vod:InitiateMultipartUpload;
  • name/vod:UploadPart;
  • name/vod:CompleteMultipartUpload;
  • name/vod:AbortMultipartUpload;
  • name/vod:ListMultipartUploads;
  • 4.策略的 resource 元素填写格式为:qcs::vod::uid/[账号AppID]:prefix//[子应用ID]/[存储桶ID]/[存储路径],其中账号AppID、子应用ID、存储桶ID和存储路径要按需填写,其他内容不允许改动,例:qcs::vod::uid/1:prefix//1/1/path。 # @type Policy: String # @param DurationSeconds: 指定临时证书的有效期,单位:秒。 # 默认 1800 秒,最大 129600 秒。 # @type DurationSeconds: Integer attr_accessor :SubAppId, :Policy, :DurationSeconds def initialize(subappid=nil, policy=nil, durationseconds=nil) @SubAppId = subappid @Policy = policy @DurationSeconds = durationseconds end def deserialize(params) @SubAppId = params['SubAppId'] @Policy = params['Policy'] @DurationSeconds = params['DurationSeconds'] end end # CreateStorageCredentials返回参数结构体 class CreateStorageCredentialsResponse < TencentCloud::Common::AbstractModel # @param Credentials: 临时访问凭证。 # @type Credentials: :class:`Tencentcloud::Vod.v20240718.models.Credentials` # @param RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 # @type RequestId: String attr_accessor :Credentials, :RequestId def initialize(credentials=nil, requestid=nil) @Credentials = credentials @RequestId = requestid end def deserialize(params) unless params['Credentials'].nil? @Credentials = Credentials.new @Credentials.deserialize(params['Credentials']) end @RequestId = params['RequestId'] end end # 临时证书。 class Credentials < TencentCloud::Common::AbstractModel # @param AccessKeyId: 秘钥 ID。 # @type AccessKeyId: String # @param SecretAccessKey: 秘钥 Key。 # @type SecretAccessKey: String # @param SessionToken: token。token长度和绑定的策略有关,最长不超过4096字节。 # @type SessionToken: String # @param Expiration: 凭据的过期时间。 # @type Expiration: String attr_accessor :AccessKeyId, :SecretAccessKey, :SessionToken, :Expiration def initialize(accesskeyid=nil, secretaccesskey=nil, sessiontoken=nil, expiration=nil) @AccessKeyId = accesskeyid @SecretAccessKey = secretaccesskey @SessionToken = sessiontoken @Expiration = expiration end def deserialize(params) @AccessKeyId = params['AccessKeyId'] @SecretAccessKey = params['SecretAccessKey'] @SessionToken = params['SessionToken'] @Expiration = params['Expiration'] end end end end end