private RamRoleArnCredentialProvider()

in aliyun-net-credentials/Provider/RamRoleArnCredentialProvider.cs [115:156]


        private RamRoleArnCredentialProvider(Builder builder): base(builder)
        {
            this.durationSeconds = (builder.durationSeconds == null || builder.durationSeconds == 0) ? 3600 : builder.durationSeconds.Value;
            if (this.durationSeconds < 900)
            {
                throw new CredentialException("Session duration should be in the range of 900s - max session duration");
            }
            this.roleSessionName = string.IsNullOrEmpty(builder.roleSessionName)
                ? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_SESSION_NAME")
                    ?? "credentials-csharp-" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds
                : builder.roleSessionName;
            this.regionId = string.IsNullOrEmpty(builder.regionId) ? "cn-hangzhou" : builder.regionId;
            this.roleArn = string.IsNullOrEmpty(builder.roleArn) ? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_ARN") : builder.roleArn;
            this.policy = builder.policy;
            this.connectTimeout = (builder.connectTimeout == null || builder.connectTimeout <= 0) ? 5000 : builder.connectTimeout.Value;
            this.readTimeout = (builder.readTimeout == null || builder.readTimeout <= 0) ? 10000 : builder.readTimeout.Value;
            this.externalId = builder.externalId;
            this.STSEndpoint = builder.stsEndpoint;
            if (string.IsNullOrEmpty(builder.stsEndpoint))
            {
                this.STSEndpoint = string.Format("sts{0}.aliyuncs.com", AuthUtils.GetStsRegionWithVpc(builder.stsRegionId, builder.enableVpc));
            }
            if (builder.credentialsProvider != null)
            {
                this.CredentialsProvider = builder.credentialsProvider;
            }
            else if (builder.securityToken == null)
            {
                this.CredentialsProvider = new StaticAKCredentialsProvider.Builder()
                    .AccessKeyId(builder.accessKeyId)
                    .AccessKeySecret(builder.accessKeySecret)
                    .Build();
            }
            else
            {
                this.CredentialsProvider = new StaticSTSCredentialsProvider.Builder()
                    .AccessKeyId(builder.accessKeyId)
                    .AccessKeySecret(builder.accessKeySecret)
                    .SecurityToken(builder.securityToken)
                    .Build();
            }
        }