Add DescribeScdnDomainCcInfo.
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
2021-12-27 Version: 1.36.994
|
||||
- Add DescribeScdnDomainCcInfo.
|
||||
|
||||
2021-12-24 Version: 1.36.993
|
||||
- Supported CheckBlockVolumeName api for Checking the volume name has been already used by the OSS bucket folder.
|
||||
|
||||
|
||||
@@ -39,6 +39,8 @@ set(scdn_public_header_model
|
||||
include/alibabacloud/scdn/model/DeleteScdnDomainResult.h
|
||||
include/alibabacloud/scdn/model/DeleteScdnSpecificConfigRequest.h
|
||||
include/alibabacloud/scdn/model/DeleteScdnSpecificConfigResult.h
|
||||
include/alibabacloud/scdn/model/DescribeScdnCcInfoRequest.h
|
||||
include/alibabacloud/scdn/model/DescribeScdnCcInfoResult.h
|
||||
include/alibabacloud/scdn/model/DescribeScdnCcQpsInfoRequest.h
|
||||
include/alibabacloud/scdn/model/DescribeScdnCcQpsInfoResult.h
|
||||
include/alibabacloud/scdn/model/DescribeScdnCcTopIpRequest.h
|
||||
@@ -162,6 +164,8 @@ set(scdn_src
|
||||
src/model/DeleteScdnDomainResult.cc
|
||||
src/model/DeleteScdnSpecificConfigRequest.cc
|
||||
src/model/DeleteScdnSpecificConfigResult.cc
|
||||
src/model/DescribeScdnCcInfoRequest.cc
|
||||
src/model/DescribeScdnCcInfoResult.cc
|
||||
src/model/DescribeScdnCcQpsInfoRequest.cc
|
||||
src/model/DescribeScdnCcQpsInfoResult.cc
|
||||
src/model/DescribeScdnCcTopIpRequest.cc
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "model/DeleteScdnDomainResult.h"
|
||||
#include "model/DeleteScdnSpecificConfigRequest.h"
|
||||
#include "model/DeleteScdnSpecificConfigResult.h"
|
||||
#include "model/DescribeScdnCcInfoRequest.h"
|
||||
#include "model/DescribeScdnCcInfoResult.h"
|
||||
#include "model/DescribeScdnCcQpsInfoRequest.h"
|
||||
#include "model/DescribeScdnCcQpsInfoResult.h"
|
||||
#include "model/DescribeScdnCcTopIpRequest.h"
|
||||
@@ -178,6 +180,9 @@ namespace AlibabaCloud
|
||||
typedef Outcome<Error, Model::DeleteScdnSpecificConfigResult> DeleteScdnSpecificConfigOutcome;
|
||||
typedef std::future<DeleteScdnSpecificConfigOutcome> DeleteScdnSpecificConfigOutcomeCallable;
|
||||
typedef std::function<void(const ScdnClient*, const Model::DeleteScdnSpecificConfigRequest&, const DeleteScdnSpecificConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteScdnSpecificConfigAsyncHandler;
|
||||
typedef Outcome<Error, Model::DescribeScdnCcInfoResult> DescribeScdnCcInfoOutcome;
|
||||
typedef std::future<DescribeScdnCcInfoOutcome> DescribeScdnCcInfoOutcomeCallable;
|
||||
typedef std::function<void(const ScdnClient*, const Model::DescribeScdnCcInfoRequest&, const DescribeScdnCcInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeScdnCcInfoAsyncHandler;
|
||||
typedef Outcome<Error, Model::DescribeScdnCcQpsInfoResult> DescribeScdnCcQpsInfoOutcome;
|
||||
typedef std::future<DescribeScdnCcQpsInfoOutcome> DescribeScdnCcQpsInfoOutcomeCallable;
|
||||
typedef std::function<void(const ScdnClient*, const Model::DescribeScdnCcQpsInfoRequest&, const DescribeScdnCcQpsInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeScdnCcQpsInfoAsyncHandler;
|
||||
@@ -363,6 +368,9 @@ namespace AlibabaCloud
|
||||
DeleteScdnSpecificConfigOutcome deleteScdnSpecificConfig(const Model::DeleteScdnSpecificConfigRequest &request)const;
|
||||
void deleteScdnSpecificConfigAsync(const Model::DeleteScdnSpecificConfigRequest& request, const DeleteScdnSpecificConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
|
||||
DeleteScdnSpecificConfigOutcomeCallable deleteScdnSpecificConfigCallable(const Model::DeleteScdnSpecificConfigRequest& request) const;
|
||||
DescribeScdnCcInfoOutcome describeScdnCcInfo(const Model::DescribeScdnCcInfoRequest &request)const;
|
||||
void describeScdnCcInfoAsync(const Model::DescribeScdnCcInfoRequest& request, const DescribeScdnCcInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
|
||||
DescribeScdnCcInfoOutcomeCallable describeScdnCcInfoCallable(const Model::DescribeScdnCcInfoRequest& request) const;
|
||||
DescribeScdnCcQpsInfoOutcome describeScdnCcQpsInfo(const Model::DescribeScdnCcQpsInfoRequest &request)const;
|
||||
void describeScdnCcQpsInfoAsync(const Model::DescribeScdnCcQpsInfoRequest& request, const DescribeScdnCcQpsInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
|
||||
DescribeScdnCcQpsInfoOutcomeCallable describeScdnCcQpsInfoCallable(const Model::DescribeScdnCcQpsInfoRequest& request) const;
|
||||
|
||||
@@ -39,19 +39,19 @@ namespace AlibabaCloud
|
||||
void setFunctions(const std::string& functions);
|
||||
std::string getDomainNames()const;
|
||||
void setDomainNames(const std::string& domainNames);
|
||||
std::string getSecurityToken()const;
|
||||
void setSecurityToken(const std::string& securityToken);
|
||||
std::string getOwnerAccount()const;
|
||||
void setOwnerAccount(const std::string& ownerAccount);
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
std::string getSecurityToken()const;
|
||||
void setSecurityToken(const std::string& securityToken);
|
||||
|
||||
private:
|
||||
std::string functions_;
|
||||
std::string domainNames_;
|
||||
std::string securityToken_;
|
||||
std::string ownerAccount_;
|
||||
long ownerId_;
|
||||
std::string securityToken_;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -35,20 +35,20 @@ namespace AlibabaCloud
|
||||
DeleteScdnDomainRequest();
|
||||
~DeleteScdnDomainRequest();
|
||||
|
||||
std::string getSecurityToken()const;
|
||||
void setSecurityToken(const std::string& securityToken);
|
||||
std::string getOwnerAccount()const;
|
||||
void setOwnerAccount(const std::string& ownerAccount);
|
||||
std::string getDomainName()const;
|
||||
void setDomainName(const std::string& domainName);
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
std::string getSecurityToken()const;
|
||||
void setSecurityToken(const std::string& securityToken);
|
||||
|
||||
private:
|
||||
std::string securityToken_;
|
||||
std::string ownerAccount_;
|
||||
std::string domainName_;
|
||||
long ownerId_;
|
||||
std::string securityToken_;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright 2009-2017 Alibaba Cloud 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.
|
||||
*/
|
||||
|
||||
#ifndef ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFOREQUEST_H_
|
||||
#define ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFOREQUEST_H_
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <alibabacloud/core/RpcServiceRequest.h>
|
||||
#include <alibabacloud/scdn/ScdnExport.h>
|
||||
|
||||
namespace AlibabaCloud
|
||||
{
|
||||
namespace Scdn
|
||||
{
|
||||
namespace Model
|
||||
{
|
||||
class ALIBABACLOUD_SCDN_EXPORT DescribeScdnCcInfoRequest : public RpcServiceRequest
|
||||
{
|
||||
|
||||
public:
|
||||
DescribeScdnCcInfoRequest();
|
||||
~DescribeScdnCcInfoRequest();
|
||||
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
|
||||
private:
|
||||
long ownerId_;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // !ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFOREQUEST_H_
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2009-2017 Alibaba Cloud 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.
|
||||
*/
|
||||
|
||||
#ifndef ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFORESULT_H_
|
||||
#define ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFORESULT_H_
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <alibabacloud/core/ServiceResult.h>
|
||||
#include <alibabacloud/scdn/ScdnExport.h>
|
||||
|
||||
namespace AlibabaCloud
|
||||
{
|
||||
namespace Scdn
|
||||
{
|
||||
namespace Model
|
||||
{
|
||||
class ALIBABACLOUD_SCDN_EXPORT DescribeScdnCcInfoResult : public ServiceResult
|
||||
{
|
||||
public:
|
||||
|
||||
|
||||
DescribeScdnCcInfoResult();
|
||||
explicit DescribeScdnCcInfoResult(const std::string &payload);
|
||||
~DescribeScdnCcInfoResult();
|
||||
std::string getStatus()const;
|
||||
|
||||
protected:
|
||||
void parse(const std::string &payload);
|
||||
private:
|
||||
std::string status_;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // !ALIBABACLOUD_SCDN_MODEL_DESCRIBESCDNCCINFORESULT_H_
|
||||
@@ -37,21 +37,21 @@ namespace AlibabaCloud
|
||||
|
||||
std::string getSources()const;
|
||||
void setSources(const std::string& sources);
|
||||
std::string getDomainName()const;
|
||||
void setDomainName(const std::string& domainName);
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
std::string getResourceGroupId()const;
|
||||
void setResourceGroupId(const std::string& resourceGroupId);
|
||||
std::string getSecurityToken()const;
|
||||
void setSecurityToken(const std::string& securityToken);
|
||||
std::string getDomainName()const;
|
||||
void setDomainName(const std::string& domainName);
|
||||
long getOwnerId()const;
|
||||
void setOwnerId(long ownerId);
|
||||
|
||||
private:
|
||||
std::string sources_;
|
||||
std::string domainName_;
|
||||
long ownerId_;
|
||||
std::string resourceGroupId_;
|
||||
std::string securityToken_;
|
||||
std::string domainName_;
|
||||
long ownerId_;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@@ -375,6 +375,42 @@ ScdnClient::DeleteScdnSpecificConfigOutcomeCallable ScdnClient::deleteScdnSpecif
|
||||
return task->get_future();
|
||||
}
|
||||
|
||||
ScdnClient::DescribeScdnCcInfoOutcome ScdnClient::describeScdnCcInfo(const DescribeScdnCcInfoRequest &request) const
|
||||
{
|
||||
auto endpointOutcome = endpointProvider_->getEndpoint();
|
||||
if (!endpointOutcome.isSuccess())
|
||||
return DescribeScdnCcInfoOutcome(endpointOutcome.error());
|
||||
|
||||
auto outcome = makeRequest(endpointOutcome.result(), request);
|
||||
|
||||
if (outcome.isSuccess())
|
||||
return DescribeScdnCcInfoOutcome(DescribeScdnCcInfoResult(outcome.result()));
|
||||
else
|
||||
return DescribeScdnCcInfoOutcome(outcome.error());
|
||||
}
|
||||
|
||||
void ScdnClient::describeScdnCcInfoAsync(const DescribeScdnCcInfoRequest& request, const DescribeScdnCcInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
|
||||
{
|
||||
auto fn = [this, request, handler, context]()
|
||||
{
|
||||
handler(this, request, describeScdnCcInfo(request), context);
|
||||
};
|
||||
|
||||
asyncExecute(new Runnable(fn));
|
||||
}
|
||||
|
||||
ScdnClient::DescribeScdnCcInfoOutcomeCallable ScdnClient::describeScdnCcInfoCallable(const DescribeScdnCcInfoRequest &request) const
|
||||
{
|
||||
auto task = std::make_shared<std::packaged_task<DescribeScdnCcInfoOutcome()>>(
|
||||
[this, request]()
|
||||
{
|
||||
return this->describeScdnCcInfo(request);
|
||||
});
|
||||
|
||||
asyncExecute(new Runnable([task]() { (*task)(); }));
|
||||
return task->get_future();
|
||||
}
|
||||
|
||||
ScdnClient::DescribeScdnCcQpsInfoOutcome ScdnClient::describeScdnCcQpsInfo(const DescribeScdnCcQpsInfoRequest &request) const
|
||||
{
|
||||
auto endpointOutcome = endpointProvider_->getEndpoint();
|
||||
|
||||
@@ -49,6 +49,17 @@ void BatchSetScdnDomainConfigsRequest::setDomainNames(const std::string& domainN
|
||||
setParameter("DomainNames", domainNames);
|
||||
}
|
||||
|
||||
std::string BatchSetScdnDomainConfigsRequest::getSecurityToken()const
|
||||
{
|
||||
return securityToken_;
|
||||
}
|
||||
|
||||
void BatchSetScdnDomainConfigsRequest::setSecurityToken(const std::string& securityToken)
|
||||
{
|
||||
securityToken_ = securityToken;
|
||||
setParameter("SecurityToken", securityToken);
|
||||
}
|
||||
|
||||
std::string BatchSetScdnDomainConfigsRequest::getOwnerAccount()const
|
||||
{
|
||||
return ownerAccount_;
|
||||
@@ -71,14 +82,3 @@ void BatchSetScdnDomainConfigsRequest::setOwnerId(long ownerId)
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
std::string BatchSetScdnDomainConfigsRequest::getSecurityToken()const
|
||||
{
|
||||
return securityToken_;
|
||||
}
|
||||
|
||||
void BatchSetScdnDomainConfigsRequest::setSecurityToken(const std::string& securityToken)
|
||||
{
|
||||
securityToken_ = securityToken;
|
||||
setParameter("SecurityToken", securityToken);
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,17 @@ DeleteScdnDomainRequest::DeleteScdnDomainRequest() :
|
||||
DeleteScdnDomainRequest::~DeleteScdnDomainRequest()
|
||||
{}
|
||||
|
||||
std::string DeleteScdnDomainRequest::getSecurityToken()const
|
||||
{
|
||||
return securityToken_;
|
||||
}
|
||||
|
||||
void DeleteScdnDomainRequest::setSecurityToken(const std::string& securityToken)
|
||||
{
|
||||
securityToken_ = securityToken;
|
||||
setParameter("SecurityToken", securityToken);
|
||||
}
|
||||
|
||||
std::string DeleteScdnDomainRequest::getOwnerAccount()const
|
||||
{
|
||||
return ownerAccount_;
|
||||
@@ -60,14 +71,3 @@ void DeleteScdnDomainRequest::setOwnerId(long ownerId)
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
std::string DeleteScdnDomainRequest::getSecurityToken()const
|
||||
{
|
||||
return securityToken_;
|
||||
}
|
||||
|
||||
void DeleteScdnDomainRequest::setSecurityToken(const std::string& securityToken)
|
||||
{
|
||||
securityToken_ = securityToken;
|
||||
setParameter("SecurityToken", securityToken);
|
||||
}
|
||||
|
||||
|
||||
40
scdn/src/model/DescribeScdnCcInfoRequest.cc
Normal file
40
scdn/src/model/DescribeScdnCcInfoRequest.cc
Normal file
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2009-2017 Alibaba Cloud 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.
|
||||
*/
|
||||
|
||||
#include <alibabacloud/scdn/model/DescribeScdnCcInfoRequest.h>
|
||||
|
||||
using AlibabaCloud::Scdn::Model::DescribeScdnCcInfoRequest;
|
||||
|
||||
DescribeScdnCcInfoRequest::DescribeScdnCcInfoRequest() :
|
||||
RpcServiceRequest("scdn", "2017-11-15", "DescribeScdnCcInfo")
|
||||
{
|
||||
setMethod(HttpRequest::Method::Get);
|
||||
}
|
||||
|
||||
DescribeScdnCcInfoRequest::~DescribeScdnCcInfoRequest()
|
||||
{}
|
||||
|
||||
long DescribeScdnCcInfoRequest::getOwnerId()const
|
||||
{
|
||||
return ownerId_;
|
||||
}
|
||||
|
||||
void DescribeScdnCcInfoRequest::setOwnerId(long ownerId)
|
||||
{
|
||||
ownerId_ = ownerId;
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
51
scdn/src/model/DescribeScdnCcInfoResult.cc
Normal file
51
scdn/src/model/DescribeScdnCcInfoResult.cc
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2009-2017 Alibaba Cloud 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.
|
||||
*/
|
||||
|
||||
#include <alibabacloud/scdn/model/DescribeScdnCcInfoResult.h>
|
||||
#include <json/json.h>
|
||||
|
||||
using namespace AlibabaCloud::Scdn;
|
||||
using namespace AlibabaCloud::Scdn::Model;
|
||||
|
||||
DescribeScdnCcInfoResult::DescribeScdnCcInfoResult() :
|
||||
ServiceResult()
|
||||
{}
|
||||
|
||||
DescribeScdnCcInfoResult::DescribeScdnCcInfoResult(const std::string &payload) :
|
||||
ServiceResult()
|
||||
{
|
||||
parse(payload);
|
||||
}
|
||||
|
||||
DescribeScdnCcInfoResult::~DescribeScdnCcInfoResult()
|
||||
{}
|
||||
|
||||
void DescribeScdnCcInfoResult::parse(const std::string &payload)
|
||||
{
|
||||
Json::Reader reader;
|
||||
Json::Value value;
|
||||
reader.parse(payload, value);
|
||||
setRequestId(value["RequestId"].asString());
|
||||
if(!value["Status"].isNull())
|
||||
status_ = value["Status"].asString();
|
||||
|
||||
}
|
||||
|
||||
std::string DescribeScdnCcInfoResult::getStatus()const
|
||||
{
|
||||
return status_;
|
||||
}
|
||||
|
||||
@@ -38,28 +38,6 @@ void UpdateScdnDomainRequest::setSources(const std::string& sources)
|
||||
setParameter("Sources", sources);
|
||||
}
|
||||
|
||||
std::string UpdateScdnDomainRequest::getDomainName()const
|
||||
{
|
||||
return domainName_;
|
||||
}
|
||||
|
||||
void UpdateScdnDomainRequest::setDomainName(const std::string& domainName)
|
||||
{
|
||||
domainName_ = domainName;
|
||||
setParameter("DomainName", domainName);
|
||||
}
|
||||
|
||||
long UpdateScdnDomainRequest::getOwnerId()const
|
||||
{
|
||||
return ownerId_;
|
||||
}
|
||||
|
||||
void UpdateScdnDomainRequest::setOwnerId(long ownerId)
|
||||
{
|
||||
ownerId_ = ownerId;
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
std::string UpdateScdnDomainRequest::getResourceGroupId()const
|
||||
{
|
||||
return resourceGroupId_;
|
||||
@@ -82,3 +60,25 @@ void UpdateScdnDomainRequest::setSecurityToken(const std::string& securityToken)
|
||||
setParameter("SecurityToken", securityToken);
|
||||
}
|
||||
|
||||
std::string UpdateScdnDomainRequest::getDomainName()const
|
||||
{
|
||||
return domainName_;
|
||||
}
|
||||
|
||||
void UpdateScdnDomainRequest::setDomainName(const std::string& domainName)
|
||||
{
|
||||
domainName_ = domainName;
|
||||
setParameter("DomainName", domainName);
|
||||
}
|
||||
|
||||
long UpdateScdnDomainRequest::getOwnerId()const
|
||||
{
|
||||
return ownerId_;
|
||||
}
|
||||
|
||||
void UpdateScdnDomainRequest::setOwnerId(long ownerId)
|
||||
{
|
||||
ownerId_ = ownerId;
|
||||
setParameter("OwnerId", std::to_string(ownerId));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user