Struct: s3shared.ResourceRequest

import "../ibm-cos-sdk-go-v2/service/internal/s3shared"

Overview

ResourceRequest represents an ARN resource and api request metadata

Implemented Interfaces

types.AnalyticsFilter, v4.HTTPPresigner, s3.HTTPPresignerV4, types.MetricsFilter, s3.PresignPost, arn.S3ObjectLambdaARN, types.SelectObjectContentEventStream

Structure Field Summary collapse

Method Summary collapse

Structure Field Details

PartitionID string

PartitionID is the resolved partition id for the provided request region

RequestRegion string

RequestRegion is the region configured on the request config

Resource arn.Resource

SigningRegion string

SigningRegion is the signing region resolved for the request

UseARNRegion bool

UseARNRegion indicates if client should use the region provided in an ARN resource

UseFIPS bool

UseFIPS indicates if te client is configured for FIPS

Method Details

func (r ResourceRequest) AllowCrossRegion() bool

AllowCrossRegion returns a bool value to denote if S3UseARNRegion flag is set



42
43
44
// File 'service/internal/s3shared/resource_request.go', line 42

func (r ResourceRequest) AllowCrossRegion() bool { return r.UseARNRegion }

func (r ResourceRequest) ARN() awsarn.ARN

ARN returns the resource ARN



30
31
32
// File 'service/internal/s3shared/resource_request.go', line 30

func (r ResourceRequest) ARN() awsarn.ARN { return r.Resource.GetARN() }

func (r ResourceRequest) IsCrossPartition() (bool, error)

IsCrossPartition returns true if request is configured for region of another partition, than the partition that resource ARN region resolves to. IsCrossPartition will not return an error, if request is not configured with a specific partition id. This might happen if customer provides custom endpoint url, but does not associate a partition id with it.



50
51
52
53
54
55
56
57
58
59
60
61
62
// File 'service/internal/s3shared/resource_request.go', line 50

func (r ResourceRequest) IsCrossPartition() (bool, error) { rv := r.PartitionID if len(rv) == 0 { return false, nil } av := r.Resource.GetARN().Partition if len(av) == 0 { return false, fmt.Errorf("no partition id for provided ARN") } return !strings.EqualFold(rv, av), nil }

func (r ResourceRequest) IsCrossRegion() bool

IsCrossRegion returns true if request signing region is not same as arn region



65
66
67
68
// File 'service/internal/s3shared/resource_request.go', line 65

func (r ResourceRequest) IsCrossRegion() bool { v := r.SigningRegion return !strings.EqualFold(v, r.Resource.GetARN().Region) }

func (r ResourceRequest) ResourceConfiguredForFIPS() bool

ResourceConfiguredForFIPS returns true if resource ARNs region is FIPS

Deprecated: FIPS will not be present in the ARN region



37
38
39
// File 'service/internal/s3shared/resource_request.go', line 37

func (r ResourceRequest) ResourceConfiguredForFIPS() bool { return IsFIPS(r.ARN().Region) }