//
// Created by wangchangshui on 2020-02-05.
//

#ifndef BAIDU_BOS_CPPSDK_BOS_STSCLIENT_H
#define BAIDU_BOS_CPPSDK_BOS_STSCLIENT_H

#include <stdint.h>

#include <string>
#include <map>
#include <functional>

#include "bcesdk/common/common.h"
#include "bcesdk/bos/client_options.h"
#include "bcesdk/bos/client_impl.h"
#include "bcesdk/bos/sts_request/assume_role_request.h"
#include "bcesdk/bos/sts_response/assume_role_response.h"


BEGIN_CPPSDK_NAMESPACE

class StsClient {

public:
    StsClient(const std::string &access_key_id, const std::string &access_key_secret);
    StsClient(const std::string &access_key_id, const std::string &access_key_secret,
           const ClientOptions &options);

    ~StsClient();

    int AssumeRole(AssumeRoleRequest &request,AssumeRoleResponse *response);

private:
    ClientImpl *_impl;
};

END_CPPSDK_NAMESPACE

#endif //CPPSDK_STSCLIENT_H
