https://mattermost.atlassian.net/browse/MM-40676

```release-note
NONE
```
Этот коммит содержится в:
Agniva De Sarker
2022-02-09 23:05:16 +05:30
коммит произвёл GitHub
родитель 440790dad6
Коммит 57eafbc6ca
322 изменённых файлов: 24889 добавлений и 14797 удалений

40
vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/web_identity_provider.go сгенерированный поставляемый
Просмотреть файл

@@ -28,7 +28,7 @@ const (
// compare test values.
var now = time.Now
// TokenFetcher shuold return WebIdentity token bytes or an error
// TokenFetcher should return WebIdentity token bytes or an error
type TokenFetcher interface {
FetchToken(credentials.Context) ([]byte, error)
}
@@ -50,6 +50,8 @@ func (f FetchTokenPath) FetchToken(ctx credentials.Context) ([]byte, error) {
// an OIDC token.
type WebIdentityRoleProvider struct {
credentials.Expiry
// The policy ARNs to use with the web identity assumed role.
PolicyArns []*sts.PolicyDescriptorType
// Duration the STS credentials will be valid for. Truncated to seconds.
@@ -74,6 +76,9 @@ type WebIdentityRoleProvider struct {
// NewWebIdentityCredentials will return a new set of credentials with a given
// configuration, role arn, and token file path.
//
// Deprecated: Use NewWebIdentityRoleProviderWithOptions for flexible
// functional options, and wrap with credentials.NewCredentials helper.
func NewWebIdentityCredentials(c client.ConfigProvider, roleARN, roleSessionName, path string) *credentials.Credentials {
svc := sts.New(c)
p := NewWebIdentityRoleProvider(svc, roleARN, roleSessionName, path)
@@ -82,19 +87,42 @@ func NewWebIdentityCredentials(c client.ConfigProvider, roleARN, roleSessionName
// NewWebIdentityRoleProvider will return a new WebIdentityRoleProvider with the
// provided stsiface.STSAPI
//
// Deprecated: Use NewWebIdentityRoleProviderWithOptions for flexible
// functional options.
func NewWebIdentityRoleProvider(svc stsiface.STSAPI, roleARN, roleSessionName, path string) *WebIdentityRoleProvider {
return NewWebIdentityRoleProviderWithToken(svc, roleARN, roleSessionName, FetchTokenPath(path))
return NewWebIdentityRoleProviderWithOptions(svc, roleARN, roleSessionName, FetchTokenPath(path))
}
// NewWebIdentityRoleProviderWithToken will return a new WebIdentityRoleProvider with the
// provided stsiface.STSAPI and a TokenFetcher
//
// Deprecated: Use NewWebIdentityRoleProviderWithOptions for flexible
// functional options.
func NewWebIdentityRoleProviderWithToken(svc stsiface.STSAPI, roleARN, roleSessionName string, tokenFetcher TokenFetcher) *WebIdentityRoleProvider {
return &WebIdentityRoleProvider{
return NewWebIdentityRoleProviderWithOptions(svc, roleARN, roleSessionName, tokenFetcher)
}
// NewWebIdentityRoleProviderWithOptions will return an initialize
// WebIdentityRoleProvider with the provided stsiface.STSAPI, role ARN, and a
// TokenFetcher. Additional options can be provided as functional options.
//
// TokenFetcher is the implementation that will retrieve the JWT token from to
// assume the role with. Use the provided FetchTokenPath implementation to
// retrieve the JWT token using a file system path.
func NewWebIdentityRoleProviderWithOptions(svc stsiface.STSAPI, roleARN, roleSessionName string, tokenFetcher TokenFetcher, optFns ...func(*WebIdentityRoleProvider)) *WebIdentityRoleProvider {
p := WebIdentityRoleProvider{
client: svc,
tokenFetcher: tokenFetcher,
roleARN: roleARN,
roleSessionName: roleSessionName,
}
for _, fn := range optFns {
fn(&p)
}
return &p
}
// Retrieve will attempt to assume a role from a token which is located at
@@ -104,9 +132,9 @@ func (p *WebIdentityRoleProvider) Retrieve() (credentials.Value, error) {
return p.RetrieveWithContext(aws.BackgroundContext())
}
// RetrieveWithContext will attempt to assume a role from a token which is located at
// 'WebIdentityTokenFilePath' specified destination and if that is empty an
// error will be returned.
// RetrieveWithContext will attempt to assume a role from a token which is
// located at 'WebIdentityTokenFilePath' specified destination and if that is
// empty an error will be returned.
func (p *WebIdentityRoleProvider) RetrieveWithContext(ctx credentials.Context) (credentials.Value, error) {
b, err := p.tokenFetcher.FetchToken(ctx)
if err != nil {

1060
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go сгенерированный поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

9
vendor/github.com/aws/aws-sdk-go/aws/request/request.go сгенерированный поставляемый
Просмотреть файл

@@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"reflect"
@@ -525,6 +526,14 @@ func (r *Request) GetBody() io.ReadSeeker {
// Send will not close the request.Request's body.
func (r *Request) Send() error {
defer func() {
// Ensure a non-nil HTTPResponse parameter is set to ensure handlers
// checking for HTTPResponse values, don't fail.
if r.HTTPResponse == nil {
r.HTTPResponse = &http.Response{
Header: http.Header{},
Body: ioutil.NopCloser(&bytes.Buffer{}),
}
}
// Regardless of success or failure of the request trigger the Complete
// request handlers.
r.Handlers.Complete.Run(r)

33
vendor/github.com/aws/aws-sdk-go/aws/session/credentials.go сгенерированный поставляемый
Просмотреть файл

@@ -14,8 +14,17 @@ import (
"github.com/aws/aws-sdk-go/aws/defaults"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/internal/shareddefaults"
"github.com/aws/aws-sdk-go/service/sts"
)
// CredentialsProviderOptions specifies additional options for configuring
// credentials providers.
type CredentialsProviderOptions struct {
// WebIdentityRoleProviderOptions configures a WebIdentityRoleProvider,
// such as setting its ExpiryWindow.
WebIdentityRoleProviderOptions func(*stscreds.WebIdentityRoleProvider)
}
func resolveCredentials(cfg *aws.Config,
envCfg envConfig, sharedCfg sharedConfig,
handlers request.Handlers,
@@ -40,6 +49,7 @@ func resolveCredentials(cfg *aws.Config,
envCfg.WebIdentityTokenFilePath,
envCfg.RoleARN,
envCfg.RoleSessionName,
sessOpts.CredentialsProviderOptions,
)
default:
@@ -59,6 +69,7 @@ var WebIdentityEmptyTokenFilePathErr = awserr.New(stscreds.ErrCodeWebIdentity, "
func assumeWebIdentity(cfg *aws.Config, handlers request.Handlers,
filepath string,
roleARN, sessionName string,
credOptions *CredentialsProviderOptions,
) (*credentials.Credentials, error) {
if len(filepath) == 0 {
@@ -69,17 +80,18 @@ func assumeWebIdentity(cfg *aws.Config, handlers request.Handlers,
return nil, WebIdentityEmptyRoleARNErr
}
creds := stscreds.NewWebIdentityCredentials(
&Session{
Config: cfg,
Handlers: handlers.Copy(),
},
roleARN,
sessionName,
filepath,
)
svc := sts.New(&Session{
Config: cfg,
Handlers: handlers.Copy(),
})
return creds, nil
var optFns []func(*stscreds.WebIdentityRoleProvider)
if credOptions != nil && credOptions.WebIdentityRoleProviderOptions != nil {
optFns = append(optFns, credOptions.WebIdentityRoleProviderOptions)
}
p := stscreds.NewWebIdentityRoleProviderWithOptions(svc, roleARN, sessionName, stscreds.FetchTokenPath(filepath), optFns...)
return credentials.NewCredentials(p), nil
}
func resolveCredsFromProfile(cfg *aws.Config,
@@ -114,6 +126,7 @@ func resolveCredsFromProfile(cfg *aws.Config,
sharedCfg.WebIdentityTokenFile,
sharedCfg.RoleARN,
sharedCfg.RoleSessionName,
sessOpts.CredentialsProviderOptions,
)
case sharedCfg.hasSSOConfiguration():

5
vendor/github.com/aws/aws-sdk-go/aws/session/session.go сгенерированный поставляемый
Просмотреть файл

@@ -304,6 +304,11 @@ type Options struct {
//
// AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE=IPv6
EC2IMDSEndpointMode endpoints.EC2IMDSEndpointModeState
// Specifies options for creating credential providers.
// These are only used if the aws.Config does not already
// include credentials.
CredentialsProviderOptions *CredentialsProviderOptions
}
// NewSessionWithOptions returns a new Session created from SDK defaults, config files,

2
vendor/github.com/aws/aws-sdk-go/aws/version.go сгенерированный поставляемый
Просмотреть файл

@@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK
const SDKVersion = "1.42.11"
const SDKVersion = "1.42.49"

2
vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go сгенерированный поставляемый
Просмотреть файл

@@ -140,7 +140,7 @@ func unmarshalLocationElements(resp *http.Response, v reflect.Value, lowerCaseHe
prefix := field.Tag.Get("locationName")
err := unmarshalHeaderMap(m, resp.Header, prefix, lowerCaseHeaderMaps)
if err != nil {
awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err)
return awserr.New(request.ErrCodeSerialization, "failed to decode REST response", err)
}
}
}

87
vendor/github.com/aws/aws-sdk-go/service/marketplacemetering/api.go сгенерированный поставляемый
Просмотреть файл

@@ -56,7 +56,7 @@ func (c *MarketplaceMetering) BatchMeterUsageRequest(input *BatchMeterUsageInput
// BatchMeterUsage API operation for AWSMarketplace Metering.
//
// BatchMeterUsage is called from a SaaS application listed on the AWS Marketplace
// BatchMeterUsage is called from a SaaS application listed on AWS Marketplace
// to post metering records for a set of customers.
//
// For identical requests, the API is idempotent; requests can be retried with
@@ -65,14 +65,26 @@ func (c *MarketplaceMetering) BatchMeterUsageRequest(input *BatchMeterUsageInput
// Every request to BatchMeterUsage is for one product. If you need to meter
// usage for multiple products, you must make multiple calls to BatchMeterUsage.
//
// Usage records are expected to be submitted as quickly as possible after the
// event that is being recorded, and are not accepted more than 6 hours after
// the event.
//
// BatchMeterUsage can process up to 25 UsageRecords at a time.
//
// A UsageRecord can optionally include multiple usage allocations, to provide
// customers with usagedata split into buckets by tags that you define (or allow
// the customer to define).
// customers with usage data split into buckets by tags that you define (or
// allow the customer to define).
//
// BatchMeterUsage returns a list of UsageRecordResult objects, showing the
// result for each UsageRecord, as well as a list of UnprocessedRecords, indicating
// errors in the service side that you should retry.
//
// BatchMeterUsage requests must be less than 1MB in size.
//
// For an example of using BatchMeterUsage, see BatchMeterUsage code example
// (https://docs.aws.amazon.com/marketplace/latest/userguide/saas-code-examples.html#saas-batchmeterusage-example)
// in the AWS Marketplace Seller Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -104,7 +116,11 @@ func (c *MarketplaceMetering) BatchMeterUsageRequest(input *BatchMeterUsageInput
// You have metered usage for a CustomerIdentifier that does not exist.
//
// * TimestampOutOfBoundsException
// The timestamp value passed in the meterUsage() is out of allowed range.
// The timestamp value passed in the UsageRecord is out of allowed range.
//
// For BatchMeterUsage, if any of the records are outside of the allowed range,
// the entire batch is not processed. You must remove invalid records and try
// again.
//
// * ThrottlingException
// The calls to the API are throttled.
@@ -188,6 +204,10 @@ func (c *MarketplaceMetering) MeterUsageRequest(input *MeterUsageInput) (req *re
// customers with usage data split into buckets by tags that you define (or
// allow the customer to define).
//
// Usage records are expected to be submitted as quickly as possible after the
// event that is being recorded, and are not accepted more than 6 hours after
// the event.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -221,7 +241,11 @@ func (c *MarketplaceMetering) MeterUsageRequest(input *MeterUsageInput) (req *re
// AWS Region of the resource must match.
//
// * TimestampOutOfBoundsException
// The timestamp value passed in the meterUsage() is out of allowed range.
// The timestamp value passed in the UsageRecord is out of allowed range.
//
// For BatchMeterUsage, if any of the records are outside of the allowed range,
// the entire batch is not processed. You must remove invalid records and try
// again.
//
// * DuplicateRequestException
// A metering record has already been emitted by the same EC2 instance, ECS
@@ -313,7 +337,7 @@ func (c *MarketplaceMetering) RegisterUsageRequest(input *RegisterUsageInput) (r
// your paid software is subscribed to your product on AWS Marketplace, enabling
// you to guard against unauthorized use. Your container image that integrates
// with RegisterUsage is only required to guard against unauthorized use
// at container startup, as such a CustomerNotSubscribedException/PlatformNotSupportedException
// at container startup, as such a CustomerNotSubscribedException or PlatformNotSupportedException
// will only be thrown on the initial call to RegisterUsage. Subsequent calls
// from the same Amazon ECS task instance (e.g. task-id) or Amazon EKS pod
// will not throw a CustomerNotSubscribedException, even if the customer
@@ -440,7 +464,15 @@ func (c *MarketplaceMetering) ResolveCustomerRequest(input *ResolveCustomerInput
// ResolveCustomer is called by a SaaS application during the registration process.
// When a buyer visits your website during the registration process, the buyer
// submits a registration token through their browser. The registration token
// is resolved through this API to obtain a CustomerIdentifier and product code.
// is resolved through this API to obtain a CustomerIdentifier along with the
// CustomerAWSAccountId and ProductCode.
//
// The API needs to called from the seller account id used to publish the SaaS
// application to successfully resolve the token.
//
// For an example of using ResolveCustomer, see ResolveCustomer code example
// (https://docs.aws.amazon.com/marketplace/latest/userguide/saas-code-examples.html#saas-resolvecustomer-example)
// in the AWS Marketplace Seller Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -576,7 +608,8 @@ type BatchMeterUsageOutput struct {
_ struct{} `type:"structure"`
// Contains all UsageRecords processed by BatchMeterUsage. These records were
// either honored by AWS Marketplace Metering Service or were invalid.
// either honored by AWS Marketplace Metering Service or were invalid. Invalid
// records should be fixed before being resubmitted.
Results []*UsageRecordResult `type:"list"`
// Contains all UsageRecords that were not processed by BatchMeterUsage. This
@@ -1877,7 +1910,8 @@ type ResolveCustomerInput struct {
// When a buyer visits your website during the registration process, the buyer
// submits a registration token through the browser. The registration token
// is resolved to obtain a CustomerIdentifier and product code.
// is resolved to obtain a CustomerIdentifier along with the CustomerAWSAccountId
// and ProductCode.
//
// RegistrationToken is a required field
RegistrationToken *string `type:"string" required:"true"`
@@ -1921,10 +1955,14 @@ func (s *ResolveCustomerInput) SetRegistrationToken(v string) *ResolveCustomerIn
}
// The result of the ResolveCustomer operation. Contains the CustomerIdentifier
// and product code.
// along with the CustomerAWSAccountId and ProductCode.
type ResolveCustomerOutput struct {
_ struct{} `type:"structure"`
// The CustomerAWSAccountId provides the AWS account ID associated with the
// CustomerIdentifier for the individual customer.
CustomerAWSAccountId *string `min:"1" type:"string"`
// The CustomerIdentifier is used to identify an individual customer in your
// application. Calls to BatchMeterUsage require CustomerIdentifiers for each
// UsageRecord.
@@ -1954,6 +1992,12 @@ func (s ResolveCustomerOutput) GoString() string {
return s.String()
}
// SetCustomerAWSAccountId sets the CustomerAWSAccountId field's value.
func (s *ResolveCustomerOutput) SetCustomerAWSAccountId(v string) *ResolveCustomerOutput {
s.CustomerAWSAccountId = &v
return s
}
// SetCustomerIdentifier sets the CustomerIdentifier field's value.
func (s *ResolveCustomerOutput) SetCustomerIdentifier(v string) *ResolveCustomerOutput {
s.CustomerIdentifier = &v
@@ -2099,7 +2143,11 @@ func (s *ThrottlingException) RequestID() string {
return s.RespMetadata.RequestID
}
// The timestamp value passed in the meterUsage() is out of allowed range.
// The timestamp value passed in the UsageRecord is out of allowed range.
//
// For BatchMeterUsage, if any of the records are outside of the allowed range,
// the entire batch is not processed. You must remove invalid records and try
// again.
type TimestampOutOfBoundsException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
@@ -2238,7 +2286,7 @@ func (s *UsageAllocation) SetTags(v []*Tag) *UsageAllocation {
// A UsageRecord indicates a quantity of usage for a given product, customer,
// dimension and time.
//
// Multiple requests with the same UsageRecords as input will be deduplicated
// Multiple requests with the same UsageRecords as input will be de-duplicated
// to prevent double charges.
type UsageRecord struct {
_ struct{} `type:"structure"`
@@ -2249,9 +2297,8 @@ type UsageRecord struct {
// CustomerIdentifier is a required field
CustomerIdentifier *string `min:"1" type:"string" required:"true"`
// During the process of registering a product on AWS Marketplace, up to eight
// dimensions are specified. These represent different units of value in your
// application.
// During the process of registering a product on AWS Marketplace, dimensions
// are specified. These represent different units of value in your application.
//
// Dimension is a required field
Dimension *string `min:"1" type:"string" required:"true"`
@@ -2372,9 +2419,13 @@ type UsageRecordResult struct {
//
// * Success- The UsageRecord was accepted and honored by BatchMeterUsage.
//
// * CustomerNotSubscribed- The CustomerIdentifier specified is not subscribed
// to your product. The UsageRecord was not honored. Future UsageRecords
// for this customer will fail until the customer subscribes to your product.
// * CustomerNotSubscribed- The CustomerIdentifier specified is not able
// to use your product. The UsageRecord was not honored. There are three
// causes for this result: The customer identifier is invalid. The customer
// identifier provided in the metering record does not have an active agreement
// or subscription with this product. Future UsageRecords for this customer
// will fail until the customer subscribes to your product. The customer's
// AWS account was suspended.
//
// * DuplicateRecord- Indicates that the UsageRecord was invalid and not
// honored. A previously metered UsageRecord had the same customer, dimension,

17
vendor/github.com/aws/aws-sdk-go/service/marketplacemetering/doc.go сгенерированный поставляемый
Просмотреть файл

@@ -9,25 +9,26 @@
// AWS Marketplace sellers can use this API to submit usage data for custom
// usage dimensions.
//
// For information on the permissions you need to use this API, see AWS Marketing
// For information on the permissions you need to use this API, see AWS Marketplace
// metering and entitlement API permissions (https://docs.aws.amazon.com/marketplace/latest/userguide/iam-user-policy-for-aws-marketplace-actions.html)
// in the AWS Marketplace Seller Guide.
//
// Submitting Metering Records
//
// * MeterUsage- Submits the metering record for a Marketplace product. MeterUsage
// is called from an EC2 instance or a container running on EKS or ECS.
// * MeterUsage - Submits the metering record for an AWS Marketplace product.
// MeterUsage is called from an EC2 instance or a container running on EKS
// or ECS.
//
// * BatchMeterUsage- Submits the metering record for a set of customers.
// * BatchMeterUsage - Submits the metering record for a set of customers.
// BatchMeterUsage is called from a software-as-a-service (SaaS) application.
//
// Accepting New Customers
//
// * ResolveCustomer- Called by a SaaS application during the registration
// * ResolveCustomer - Called by a SaaS application during the registration
// process. When a buyer visits your website during the registration process,
// the buyer submits a Registration Token through the browser. The Registration
// Token is resolved through this API to obtain a CustomerIdentifier and
// Product Code.
// Token is resolved through this API to obtain a CustomerIdentifier along
// with the CustomerAWSAccountId and ProductCode.
//
// Entitlement and Metering for Paid Container Products
//
@@ -43,7 +44,7 @@
// to verify that the SaaS metering records that you sent are accurate by searching
// for records with the eventName of BatchMeterUsage. You can also use CloudTrail
// to audit records over time. For more information, see the AWS CloudTrail
// User Guide (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html) .
// User Guide (http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14 for more information on this service.
//

6
vendor/github.com/aws/aws-sdk-go/service/marketplacemetering/errors.go сгенерированный поставляемый
Просмотреть файл

@@ -123,7 +123,11 @@ const (
// ErrCodeTimestampOutOfBoundsException for service response error code
// "TimestampOutOfBoundsException".
//
// The timestamp value passed in the meterUsage() is out of allowed range.
// The timestamp value passed in the UsageRecord is out of allowed range.
//
// For BatchMeterUsage, if any of the records are outside of the allowed range,
// the entire batch is not processed. You must remove invalid records and try
// again.
ErrCodeTimestampOutOfBoundsException = "TimestampOutOfBoundsException"
)

4
vendor/github.com/aws/aws-sdk-go/service/sts/service.go сгенерированный поставляемый
Просмотреть файл

@@ -48,6 +48,10 @@ const (
// svc := sts.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *STS {
c := p.ClientConfig(EndpointsID, cfgs...)
if c.SigningNameDerived || len(c.SigningName) == 0 {
c.SigningName = EndpointsID
// No Fallback
}
return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName, c.ResolvedRegion)
}