diff --git a/.changelog/0d7bdc7ae32248db99c451e3c09f7531.json b/.changelog/0d7bdc7ae32248db99c451e3c09f7531.json new file mode 100644 index 00000000000..038ddc9f842 --- /dev/null +++ b/.changelog/0d7bdc7ae32248db99c451e3c09f7531.json @@ -0,0 +1,8 @@ +{ + "id": "0d7bdc7a-e322-48db-99c4-51e3c09f7531", + "type": "feature", + "description": "Announcing AWS Partner Central API for Selling: This service launch Introduces new APIs for co-selling opportunity management and related functions. Key features include notifications, a dynamic sandbox for testing, and streamlined validations.", + "modules": [ + "service/partnercentralselling" + ] +} \ No newline at end of file diff --git a/service/lakeformation/internal/endpoints/endpoints.go b/service/lakeformation/internal/endpoints/endpoints.go index 78f04619d52..62a7701aae9 100644 --- a/service/lakeformation/internal/endpoints/endpoints.go +++ b/service/lakeformation/internal/endpoints/endpoints.go @@ -172,6 +172,9 @@ var defaultPartitions = endpoints.Partitions{ endpoints.EndpointKey{ Region: "ap-southeast-4", }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-5", + }: endpoints.Endpoint{}, endpoints.EndpointKey{ Region: "ca-central-1", }: endpoints.Endpoint{}, diff --git a/service/partnercentralselling/api_op_AssignOpportunity.go b/service/partnercentralselling/api_op_AssignOpportunity.go index d410da1eca8..a836ae52ddb 100644 --- a/service/partnercentralselling/api_op_AssignOpportunity.go +++ b/service/partnercentralselling/api_op_AssignOpportunity.go @@ -49,8 +49,8 @@ type AssignOpportunityInput struct { // Specifies the catalog associated with the request. This field takes a string // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunity is assigned in. Use AWS to assign real - // opportunities in the Amazon Web Services catalog, and Sandbox to test in a - // secure and isolated environment. + // opportunities in the Amazon Web Services catalog, and Sandbox for testing in + // secure, isolated environments. // // This member is required. Catalog *string diff --git a/service/partnercentralselling/api_op_AssociateOpportunity.go b/service/partnercentralselling/api_op_AssociateOpportunity.go index e63c271c858..6a7698c7d7e 100644 --- a/service/partnercentralselling/api_op_AssociateOpportunity.go +++ b/service/partnercentralselling/api_op_AssociateOpportunity.go @@ -14,40 +14,37 @@ import ( // Enables you to create a formal association between an Opportunity and various // // related entities, enriching the context and details of the opportunity for -// better collaboration and decision-making. You can associate an opportunity with -// the following types of entities: +// better collaboration and decision making. You can associate an opportunity with +// the following entity types: // // - Partner Solution: A software product or consulting practice created and -// delivered by Partners. Partner Solutions help customers address specific -// business challenges or achieve particular goals using Amazon Web Services -// services. +// delivered by Partners. Partner Solutions help customers address business +// challenges using Amazon Web Services services. // -// - Amazon Web Services Product: Amazon Web Services offers a wide range of -// products and services designed to provide scalable, reliable, and cost-effective -// infrastructure solutions. For the latest list of Amazon Web Services products, -// refer to [Amazon Web Services products]. +// - Amazon Web Services Products: Amazon Web Services offers many products and +// services that provide scalable, reliable, and cost-effective infrastructure +// solutions. For the latest list of Amazon Web Services products, see [Amazon Web Services products]. // // - Amazon Web Services Marketplace private offer: Allows Amazon Web Services // Marketplace sellers to extend custom pricing and terms to individual Amazon Web // Services customers. Sellers can negotiate custom prices, payment schedules, and // end user license terms through private offers, enabling Amazon Web Services // customers to acquire software solutions tailored to their specific needs. For -// more information, refer to [Private offers in Amazon Web Services Marketplace]. +// more information, see [Private offers in Amazon Web Services Marketplace]. // // To obtain identifiers for these entities, use the following methods: // // - Solution: Use the ListSolutions operation. // -// - AWS products: For the latest list of Amazon Web Services products, refer to -// the Amazon Web Services products list. +// - AWS Products: For the latest list of Amazon Web Services products, see [Amazon Web Services products]. // -// - Amazon Web Services Marketplace private offer: Use the [AWS Marketplace Catalog API]to list entities. +// - Amazon Web Services Marketplace private offer: Use the [Using the Amazon Web Services Marketplace Catalog API]to list entities. // Specifically, use the ListEntities operation to retrieve a list of private -// offers. The request to the ListEntities API returns the details of the private -// offers available to you. For more information, refer to [ListEntities]. +// offers. The request returns the details of available private offers. For more +// information, see [ListEntities]. // // [Private offers in Amazon Web Services Marketplace]: https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-private-offers.html -// [AWS Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html +// [Using the Amazon Web Services Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace/latest/APIReference/catalog-apis.html // [ListEntities]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html // [Amazon Web Services products]: https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json func (c *Client) AssociateOpportunity(ctx context.Context, params *AssociateOpportunityInput, optFns ...func(*Options)) (*AssociateOpportunityOutput, error) { @@ -68,10 +65,10 @@ func (c *Client) AssociateOpportunity(ctx context.Context, params *AssociateOppo type AssociateOpportunityInput struct { // Specifies the catalog associated with the request. This field takes a string - // value from a predefined list: AWS or Sandbox . The catalog determines - // whichenvironment the opportunity association is made in. Use AWS to associate - // opportunities in the Amazon Web Services catalog, and Sandbox to test in a - // secure and isolated environment. + // value from a predefined list: AWS or Sandbox . The catalog determines which + // environment the opportunity association is made in. Use AWS to associate + // opportunities in the Amazon Web Services catalog, and Sandbox for testing in + // secure, isolated environments. // // This member is required. Catalog *string @@ -92,8 +89,8 @@ type AssociateOpportunityInput struct { // This member is required. RelatedEntityIdentifier *string - // Specifies the type of the related entity you're associating with the - // Opportunity . This helps to categorize and properly process the association. + // Specifies the entity type that you're associating with the Opportunity . This + // helps to categorize and properly process the association. // // This member is required. RelatedEntityType types.RelatedEntityType diff --git a/service/partnercentralselling/api_op_CreateOpportunity.go b/service/partnercentralselling/api_op_CreateOpportunity.go index 83588bf348f..34737f9131a 100644 --- a/service/partnercentralselling/api_op_CreateOpportunity.go +++ b/service/partnercentralselling/api_op_CreateOpportunity.go @@ -14,25 +14,23 @@ import ( // Creates an Opportunity record in Partner Central. Use this operation to create // -// a potential business opportunity intended to be submitted to Amazon Web -// Services. Creating an opportunity sets its Lifecycle.ReviewStatus to Pending -// Submission . +// a potential business opportunity for submission to Amazon Web Services. Creating +// an opportunity sets Lifecycle.ReviewStatus to Pending Submission . // -// To fully submit an opportunity, follow these steps: +// To submit an opportunity, follow these steps: // // - To create the opportunity, use CreateOpportunity . // // - To associate a solution with the opportunity, use AssociateOpportunity . // -// - To submit the opportunity, use SubmitOpportunity . +// - To submit the opportunity, use StartEngagementFromOpportunityTask . // // After submission, you can't edit the opportunity until the review is complete. -// However, opportunities in the Pending Submission state still need all details -// completed. You can update the opportunity while it's in the Pending Submission -// state. +// But opportunities in the Pending Submission state must have complete details. +// You can update the opportunity while it's in the Pending Submission state. // -// There's a set of mandatory fields required to create opportunities, but -// consider providing optional fields to enrich the opportunity record. +// There's a set of mandatory fields to create opportunities, but consider +// providing optional fields to enrich the opportunity record. func (c *Client) CreateOpportunity(ctx context.Context, params *CreateOpportunityInput, optFns ...func(*Options)) (*CreateOpportunityOutput, error) { if params == nil { params = &CreateOpportunityInput{} @@ -53,8 +51,8 @@ type CreateOpportunityInput struct { // Specifies the catalog associated with the request. This field takes a string // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunity is created in. Use AWS to create opportunities in - // the Amazon Web Services catalog, and Sandbox to test in a secure and isolated - // environment. + // the Amazon Web Services catalog, and Sandbox for testing in secure, isolated + // environments. // // This member is required. Catalog *string @@ -64,11 +62,11 @@ type CreateOpportunityInput struct { // // Default: None // - // Best practice: To ensure uniqueness and avoid collisions, we recommend you use - // a UUID (Universally Unique Identifier) as the ClientToken . You can use standard - // libraries available in most programming languages to generated this. If you use - // the same client token, the API throws this error: "Conflicting client token - // submitted for a new request body". + // Best practice: To help ensure uniqueness and avoid conflicts, use a Universally + // Unique Identifier (UUID) as the ClientToken . You can use standard libraries + // from most programming languages to generate this. If you use the same client + // token, the API returns the following error: "Conflicting client token submitted + // for a new request body." // // This member is required. ClientToken *string @@ -88,8 +86,8 @@ type CreateOpportunityInput struct { // process for opportunities marked as NationalSecurity . NationalSecurity types.NationalSecurity - // Represents the internal team handling the opportunity. Specify the members - // involved in collaborating on this opportunity within the partner's organization. + // Represents the internal team handling the opportunity. Specify collaborating + // members of this opportunity who are within the partner's organization. OpportunityTeam []types.Contact // Specifies the opportunity type as a renewal, new, or expansion. @@ -118,58 +116,58 @@ type CreateOpportunityInput struct { // Specifies the opportunity's unique identifier in the partner's CRM system. // This value is essential to track and reconcile because it's included in the - // outbound payload sent back to the partner. + // outbound payload to the partner. // - // This field allows partners to link an opportunity to their CRM, to ensure - // seamless integration and accurate synchronization between the Partner Central - // API and the partner's internal systems. + // This field allows partners to link an opportunity to their CRM, which helps to + // ensure seamless integration and accurate synchronization between the Partner + // Central API and the partner's internal systems. PartnerOpportunityIdentifier *string // Identifies the type of support the partner needs from Amazon Web Services. // // Valid values: // - // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services - // that the partner's proposed solution architecture is aligned with Amazon Web - // Services best practices and poses minimal architectural risks. + // - Cosell—Architectural Validation: Confirmation from Amazon Web Services that + // the partner's proposed solution architecture is aligned with Amazon Web Services + // best practices and poses minimal architectural risks. // - // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // - Cosell—Business Presentation: Request Amazon Web Services seller's // participation in a joint customer presentation. // - // - Co-Sell - Competitive Information: Access to Amazon Web Services - // competitive resources and support for the partner's proposed solution. + // - Cosell—Competitive Information: Access to Amazon Web Services competitive + // resources and support for the partner's proposed solution. // - // - Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller - // for support situations where a partner may be receiving an upfront discount on a + // - Cosell—Pricing Assistance: Connect with an Amazon Web Services seller for + // support situations where a partner may be receiving an upfront discount on a // service (for example: EDP deals). // - // - Co-Sell - Technical Consultation: Connect with an Amazon Web Services + // - Cosell—Technical Consultation: Connect with an Amazon Web Services // Solutions Architect to address the partner's questions about the proposed // solution. // - // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // - Cosell—Total Cost of Ownership Evaluation: Assistance with quoting // different cost savings of proposed solutions on Amazon Web Services versus // on-premises or a traditional hosting environment. // - // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // - Cosell—Deal Support: Request Amazon Web Services seller's support to // progress the opportunity (for example: joint customer call, strategic // positioning). // - // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the - // public sector where the partner needs Amazon Web Services RFx support. + // - Cosell—Support for Public Tender/RFx: Opportunity related to the public + // sector where the partner needs Amazon Web Services RFx support. // // - Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't // need support from an Amazon Web Services sales representative, and the partner - // solely manages the opportunity. It's possible to request co-selling support on - // these opportunities at any stage during their lifecycle. Also known as, - // for-visibility-only (FVO) opportunity. + // solely manages the opportunity. It's possible to request coselling support on + // these opportunities at any stage during their lifecycles. This is also known as + // a for-visibility-only (FVO) opportunity. PrimaryNeedsFromAws []types.PrimaryNeedFromAws // An object that contains project details for the Opportunity . Project *types.Project - // Specifies details of a customer's procurement terms. Required only for partners - // in eligible programs. + // Specifies details of a customer's procurement terms. This is required only for + // partners in eligible programs. SoftwareRevenue *types.SoftwareRevenue noSmithyDocumentSerde @@ -178,15 +176,15 @@ type CreateOpportunityInput struct { type CreateOpportunityOutput struct { // Read-only, system-generated Opportunity unique identifier. Amazon Web Services - // creates this identifier, and it's used for all subsequent actions on the - // opportunity, such as updates, associations, and submissions. It ensures that - // each opportunity can be accurately tracked and managed within the system. + // creates this identifier, and it's used for all subsequent opportunity actions, + // such as updates, associations, and submissions. It helps to ensure that each + // opportunity is accurately tracked and managed. // // This member is required. Id *string // DateTime when the opportunity was last modified. When the Opportunity is - // created, its value is equal to CreatedDate . + // created, its value is CreatedDate . LastModifiedDate *time.Time // Specifies the opportunity's unique identifier in the partner's CRM system. This diff --git a/service/partnercentralselling/api_op_DisassociateOpportunity.go b/service/partnercentralselling/api_op_DisassociateOpportunity.go index f455524d40a..19c642a9fd2 100644 --- a/service/partnercentralselling/api_op_DisassociateOpportunity.go +++ b/service/partnercentralselling/api_op_DisassociateOpportunity.go @@ -13,7 +13,7 @@ import ( // Allows you to remove an existing association between an Opportunity and // -// related entities such as a Partner Solution, Amazon Web Services product, or an +// related entities, such as a Partner Solution, Amazon Web Services product, or an // Amazon Web Services Marketplace offer. This operation is the counterpart to // AssociateOpportunity , and it provides flexibility to manage associations as // business needs change. @@ -23,7 +23,7 @@ import ( // accurate associations helps maintain clarity and accuracy to track and manage // business opportunities. When you replace an entity, first attach the new entity // and then disassociate the one to be removed, especially if it's the last -// remaining related entity that's required. +// remaining entity that's required. func (c *Client) DisassociateOpportunity(ctx context.Context, params *DisassociateOpportunityInput, optFns ...func(*Options)) (*DisassociateOpportunityOutput, error) { if params == nil { params = &DisassociateOpportunityInput{} @@ -44,17 +44,17 @@ type DisassociateOpportunityInput struct { // Specifies the catalog associated with the request. This field takes a string // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunity disassociation is made in. Use AWS to disassociate - // opportunities in the Amazon Web Services catalog, and Sandbox to test in a - // secure and isolated environment. + // opportunities in the Amazon Web Services catalog, and Sandbox for testing in + // secure, isolated environments. // // This member is required. Catalog *string // The opportunity's unique identifier for when you want to disassociate it from - // related entities. This identifier is crucial to ensure the correct opportunity - // is updated, especially in environments with numerous opportunities. + // related entities. This identifier helps to ensure that the correct opportunity + // is updated. // - // Validation: Ensure that the identifier provided corresponds to an existing + // Validation: Ensure that the provided identifier corresponds to an existing // opportunity in the Amazon Web Services system because incorrect identifiers // result in an error and no changes are made. // @@ -68,26 +68,26 @@ type DisassociateOpportunityInput struct { // // For Amazon Web Services Marketplace entities, use the Amazon Web Services // Marketplace API to obtain the necessary ARNs. For guidance on retrieving these - // ARNs, refer to [Amazon Web Services Marketplace Catalog API]. + // ARNs, see [Amazon Web Services MarketplaceUsing the Amazon Web Services Marketplace Catalog API]. // // Validation: Ensure the identifier or ARN is valid and corresponds to an - // existing related entity. An incorrect or invalid identifier results in an error. + // existing entity. An incorrect or invalid identifier results in an error. // - // [Amazon Web Services Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html + // [Amazon Web Services MarketplaceUsing the Amazon Web Services Marketplace Catalog API]: https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/welcome.html // // This member is required. RelatedEntityIdentifier *string // The type of the entity that you're disassociating from the opportunity. When // you specify the entity type, it helps the system correctly process the - // disassociation request and ensures that the right connections are removed. + // disassociation request to ensure that the right connections are removed. // // Examples of entity types include Partner Solution, Amazon Web Services product, - // and Amazon Web Services Marketplace offer. Ensure that the value matches one of + // and Amazon Web Services Marketplaceoffer. Ensure that the value matches one of // the expected entity types. // - // Validation: Provide a valid entity type to ensure successful disassociation. - // Invalid or incorrect entity types result in an error. + // Validation: Provide a valid entity type to help ensure successful + // disassociation. An invalid or incorrect entity type results in an error. // // This member is required. RelatedEntityType types.RelatedEntityType diff --git a/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go index 76f780ddcad..e8db72ece39 100644 --- a/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go +++ b/service/partnercentralselling/api_op_GetAwsOpportunitySummary.go @@ -41,8 +41,7 @@ type GetAwsOpportunitySummaryInput struct { Catalog *string // The unique identifier for the related partner opportunity. Use this field to - // correlate an AWS opportunity with its corresponding partner opportunity in your - // CRM system. + // correlate an AWS opportunity with its corresponding partner opportunity. // // This member is required. RelatedOpportunityIdentifier *string @@ -59,8 +58,8 @@ type GetAwsOpportunitySummaryOutput struct { Catalog *string // Provides details about the customer associated with the AWS Opportunity, - // including account information, industry, and other key customer data. These - // details help partners understand the business context of the opportunity. + // including account information, industry, and other customer data. These details + // help partners understand the business context of the opportunity. Customer *types.AwsOpportunityCustomer // Provides insights into the AWS Opportunity, including engagement score and @@ -68,8 +67,8 @@ type GetAwsOpportunitySummaryOutput struct { Insights *types.AwsOpportunityInsights // Specifies the type of involvement AWS has in the opportunity, such as direct - // co-sell or advisory support. This field helps partners understand the role AWS - // will play in advancing the opportunity. + // cosell or advisory support. This field helps partners understand the role AWS + // plays in advancing the opportunity. InvolvementType types.SalesInvolvementType // Provides a reason for any changes in the involvement type of AWS in the @@ -83,9 +82,8 @@ type GetAwsOpportunitySummaryOutput struct { // monitor the progression of the opportunity. LifeCycle *types.AwsOpportunityLifeCycle - // Details the AWS Opportunity team, including key members involved in the - // opportunity. This information helps partners know who from AWS is engaged and - // their roles in the opportunity. + // Details the AWS opportunity team, including members involved. This information + // helps partners know who from AWS is engaged and what their role is. OpportunityTeam []types.AwsTeamMember // Specifies whether the AWS Opportunity originated from AWS or the partner. This diff --git a/service/partnercentralselling/api_op_GetEngagementInvitation.go b/service/partnercentralselling/api_op_GetEngagementInvitation.go index 124616e9b25..b2d6b317e9f 100644 --- a/service/partnercentralselling/api_op_GetEngagementInvitation.go +++ b/service/partnercentralselling/api_op_GetEngagementInvitation.go @@ -13,8 +13,9 @@ import ( ) // Retrieves the details of an engagement invitation shared by AWS with a partner. -// The information includes key aspects such as the customer, project details, and -// lifecycle information related to the engagement. +// The information includes aspects such as customer, project details, and +// lifecycle information. To connect an engagement invitation with an opportunity, +// match the invitation’s Payload.Project.Title with opportunity Project.Title . func (c *Client) GetEngagementInvitation(ctx context.Context, params *GetEngagementInvitationInput, optFns ...func(*Options)) (*GetEngagementInvitationOutput, error) { if params == nil { params = &GetEngagementInvitationInput{} @@ -39,7 +40,7 @@ type GetEngagementInvitationInput struct { // This member is required. Catalog *string - // Specifies the unique identifier for the engagement invitation being retrieved. + // Specifies the unique identifier for the retrieved engagement invitation. // // This member is required. Identifier *string @@ -61,12 +62,11 @@ type GetEngagementInvitationOutput struct { // This member is required. Id *string - // The Amazon Resource Name (ARN) that uniquely identifies the engagement - // invitation. + // The Amazon Resource Name (ARN) that identifies the engagement invitation. Arn *string - // The title of the engagement invitation, summarizing the purpose or key - // objectives of the opportunity shared by AWS. + // The title of the engagement invitation, summarizing the purpose or objectives + // of the opportunity shared by AWS. EngagementTitle *string // Indicates the date on which the engagement invitation will expire if not @@ -100,8 +100,7 @@ type GetEngagementInvitationOutput struct { // The name of the AWS organization or team that sent the engagement invitation. SenderCompanyName *string - // The current status of the engagement invitation (e.g., Accepted , Pending , or - // Rejected ). + // The current status of the engagement invitation. Status types.InvitationStatus // Metadata pertaining to the operation's result. diff --git a/service/partnercentralselling/api_op_GetOpportunity.go b/service/partnercentralselling/api_op_GetOpportunity.go index 5a7442fc114..8ad90bbf5ac 100644 --- a/service/partnercentralselling/api_op_GetOpportunity.go +++ b/service/partnercentralselling/api_op_GetOpportunity.go @@ -37,7 +37,7 @@ type GetOpportunityInput struct { // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunity is fetched from. Use AWS to retrieve opportunities // in the Amazon Web Services catalog, and Sandbox to retrieve opportunities in a - // secure and isolated testing environment. + // secure, isolated testing environment. // // This member is required. Catalog *string @@ -110,12 +110,12 @@ type GetOpportunityOutput struct { // customer that's not previously engaged with your solutions or services. // // - Renewal opportunity: Represents an opportunity to renew an existing - // contract or subscription with a current customer, ensuring continuity of - // service. + // contract or subscription with a current customer, which helps to ensure service + // continuity. // - // - Expansion opportunity: Represents an opportunity to expand the scope of an - // existing contract or subscription, either by adding new services or increasing - // the volume of existing services for a current customer. + // - Expansion opportunity: Represents an opportunity to expand the scope of a + // customer's contract or subscription, either by adding new services or increasing + // the volume of existing services. OpportunityType types.OpportunityType // Specifies the opportunity's unique identifier in the partner's CRM system. This @@ -127,39 +127,39 @@ type GetOpportunityOutput struct { // // Valid values: // - // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services - // that the partner's proposed solution architecture is aligned with Amazon Web - // Services best practices and poses minimal architectural risks. + // - Cosell—Architectural Validation: Confirmation from Amazon Web Services that + // the partner's proposed solution architecture is aligned with Amazon Web Services + // best practices and poses minimal architectural risks. // - // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // - Cosell—Business Presentation: Request Amazon Web Services seller's // participation in a joint customer presentation. // - // - Co-Sell - Competitive Information: Access to Amazon Web Services - // competitive resources and support for the partner's proposed solution. + // - Cosell—Competitive Information: Access to Amazon Web Services competitive + // resources and support for the partner's proposed solution. // - // - Co-Sell - Pricing Assistance: Connect with an Amazon Web Services seller - // for support situations where a partner may be receiving an upfront discount on a + // - Cosell—Pricing Assistance: Connect with an Amazon Web Services seller for + // support situations where a partner may be receiving an upfront discount on a // service (for example: EDP deals). // - // - Co-Sell - Technical Consultation: Connect with an Amazon Web Services + // - Cosell—Technical Consultation: Connect with an Amazon Web Services // Solutions Architect to address the partner's questions about the proposed // solution. // - // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // - Cosell—Total Cost of Ownership Evaluation: Assistance with quoting // different cost savings of proposed solutions on Amazon Web Services versus // on-premises or a traditional hosting environment. // - // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // - Cosell—Deal Support: Request Amazon Web Services seller's support to // progress the opportunity (for example: joint customer call, strategic // positioning). // - // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the - // public sector where the partner needs Amazon Web Services RFx support. + // - Cosell—Support for Public Tender/RFx: Opportunity related to the public + // sector where the partner needs Amazon Web Services RFx support. // // - Do Not Need Support from Amazon Web Services Sales Rep: Indicates that a // partner doesn't need support from an Amazon Web Services sales representative, // and the partner solely manages the opportunity. It's possible to request - // co-selling support on these opportunities at any stage during their lifecycle. + // coselling support on these opportunities at any stage during their lifecycle. // Also known as, for-visibility-only (FVO) opportunity. PrimaryNeedsFromAws []types.PrimaryNeedFromAws diff --git a/service/partnercentralselling/api_op_ListEngagementInvitations.go b/service/partnercentralselling/api_op_ListEngagementInvitations.go index 547736e7505..dd3f417467a 100644 --- a/service/partnercentralselling/api_op_ListEngagementInvitations.go +++ b/service/partnercentralselling/api_op_ListEngagementInvitations.go @@ -68,7 +68,7 @@ type ListEngagementInvitationsInput struct { type ListEngagementInvitationsOutput struct { // An array containing summaries of engagement invitations. Each summary includes - // key information such as the invitation title, invitation date, and the current + // information such as the invitation title, invitation date, and the current // status of the invitation. EngagementInvitationSummaries []types.EngagementInvitationSummary diff --git a/service/partnercentralselling/api_op_ListOpportunities.go b/service/partnercentralselling/api_op_ListOpportunities.go index 1f0d6107d20..f17fabda449 100644 --- a/service/partnercentralselling/api_op_ListOpportunities.go +++ b/service/partnercentralselling/api_op_ListOpportunities.go @@ -11,9 +11,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// This request accepts a list of filters to use to retrieve a specific subset of -// opportunities, as well as sort options. This feature is available to partners -// from [Partner Central]using the ListOpportunities API action. +// This request accepts a list of filters that retrieve opportunity subsets as +// well as sort options. This feature is available to partners from [Partner Central]using the +// ListOpportunities API action. // // To synchronize your system with Amazon Web Services, only list the // opportunities that were newly created or updated. We recommend you rely on @@ -52,8 +52,8 @@ type ListOpportunitiesInput struct { // Specifies the catalog associated with the request. This field takes a string // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunities are listed in. Use AWS for listing real - // opportunities in the Amazon Web Services catalog, and Sandbox for to test in a - // secure and isolated environment. + // opportunities in the Amazon Web Services catalog, and Sandbox for testing in + // secure, isolated environments. // // This member is required. Catalog *string @@ -84,8 +84,8 @@ type ListOpportunitiesInput struct { LifeCycleStage []types.Stage // Specifies the maximum number of results to return in a single call. This - // limits the number of opportunities returned in the response to avoid overloading - // with too many results at once. + // limits the number of opportunities returned in the response to avoid providing + // too many results at once. // // Default: 20 MaxResults *int32 @@ -225,8 +225,8 @@ func (c *Client) addOperationListOpportunitiesMiddlewares(stack *middleware.Stac // ListOpportunitiesPaginatorOptions is the paginator options for ListOpportunities type ListOpportunitiesPaginatorOptions struct { // Specifies the maximum number of results to return in a single call. This - // limits the number of opportunities returned in the response to avoid overloading - // with too many results at once. + // limits the number of opportunities returned in the response to avoid providing + // too many results at once. // // Default: 20 Limit int32 diff --git a/service/partnercentralselling/api_op_ListSolutions.go b/service/partnercentralselling/api_op_ListSolutions.go index c23fb631f5d..fad9f31dac4 100644 --- a/service/partnercentralselling/api_op_ListSolutions.go +++ b/service/partnercentralselling/api_op_ListSolutions.go @@ -66,9 +66,8 @@ type ListSolutionsInput struct { // Identifier . Sort *types.SolutionSort - // Filters the solutions based on their status. This filter helps retrieve - // solutions with statuses such as Active , Inactive , or Pending Approval , - // allowing partners to manage their solution portfolios effectively. + // Filters solutions based on their status. This filter helps partners manage + // their solution portfolios effectively. Status []types.SolutionStatus noSmithyDocumentSerde diff --git a/service/partnercentralselling/api_op_RejectEngagementInvitation.go b/service/partnercentralselling/api_op_RejectEngagementInvitation.go index e0b21e9bd0f..003dce4e62a 100644 --- a/service/partnercentralselling/api_op_RejectEngagementInvitation.go +++ b/service/partnercentralselling/api_op_RejectEngagementInvitation.go @@ -10,10 +10,9 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Use this action to reject an EngagementInvitation that has been shared by AWS. -// Rejecting the engagement invitation indicates that the partner does not wish to -// pursue the opportunity, and all related data will be inaccessible after the -// rejection. +// This action rejects an EngagementInvitation that AWS shared. Rejecting an +// invitation indicates that the partner doesn't want to pursue the opportunity, +// and all related data will become inaccessible thereafter. func (c *Client) RejectEngagementInvitation(ctx context.Context, params *RejectEngagementInvitationInput, optFns ...func(*Options)) (*RejectEngagementInvitationOutput, error) { if params == nil { params = &RejectEngagementInvitationInput{} @@ -31,35 +30,33 @@ func (c *Client) RejectEngagementInvitation(ctx context.Context, params *RejectE type RejectEngagementInvitationInput struct { - // Specifies the catalog related to the engagement invitation. Accepted values are - // AWS and Sandbox , which determine the environment in which the opportunity is - // managed. + // This is the catalog that's associated with the engagement invitation. + // Acceptable values are AWS or Sandbox , and these values determine the + // environment in which the opportunity is managed. // // This member is required. Catalog *string - // Specifies the unique identifier of the EngagementInvitation to be rejected. - // Providing the correct identifier ensures that the intended invitation is - // rejected. + // This is the unique identifier of the rejected EngagementInvitation . Providing + // the correct identifier helps to ensure that the intended invitation is rejected. // // This member is required. Identifier *string - // Specifies the reason for rejecting the engagement invitation. Providing a - // reason helps document the rationale behind the rejection and assists AWS in - // tracking patterns or issues. Possible values include: + // This describes the reason for rejecting the engagement invitation, which helps + // AWS track usage patterns. Acceptable values include the following: // - // - Customer problem unclear: The customer's problem is not clearly defined. + // - Customer problem unclear: The customer's problem isn't understood. // - // - Next steps unclear: The next steps required to proceed are not clear. + // - Next steps unclear: The next steps required to proceed aren't understood. // // - Unable to support: The partner is unable to provide support due to resource // or capability constraints. // - // - Duplicate of Partner Referral: The opportunity is a duplicate of an + // - Duplicate of partner referral: The opportunity is a duplicate of an // existing referral. // - // - Other: Any other reason not covered by the specified values. + // - Other: Any reason not covered by other values. RejectionReason *string noSmithyDocumentSerde diff --git a/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go index fdc7f626520..1b4558cd723 100644 --- a/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go +++ b/service/partnercentralselling/api_op_StartEngagementByAcceptingInvitationTask.go @@ -13,11 +13,11 @@ import ( ) // This action starts the engagement by accepting an EngagementInvitation . The -// task is asynchronous and involves several steps: accepting the invitation, -// creating an opportunity in the partner’s account from the AWS Opportunity, and -// copying over key details for tracking. Once completed, an Opportunity Created -// event is generated, indicating that the opportunity has been successfully -// created in the partner's account. +// task is asynchronous and involves the following steps: accepting the invitation, +// creating an opportunity in the partner’s account from the AWS opportunity, and +// copying details for tracking. When completed, an Opportunity Created event is +// generated, indicating that the opportunity has been successfully created in the +// partner's account. func (c *Client) StartEngagementByAcceptingInvitationTask(ctx context.Context, params *StartEngagementByAcceptingInvitationTaskInput, optFns ...func(*Options)) (*StartEngagementByAcceptingInvitationTaskOutput, error) { if params == nil { params = &StartEngagementByAcceptingInvitationTaskInput{} @@ -41,15 +41,15 @@ type StartEngagementByAcceptingInvitationTaskInput struct { // This member is required. Catalog *string - // A unique, case-sensitive identifier provided by the client to ensure the - // idempotency of the request. Can be a random or meaningful string, but must be - // unique for each request. + // A unique, case-sensitive identifier provided by the client that helps to ensure + // the idempotency of the request. This can be a random or meaningful string but + // must be unique for each request. // // This member is required. ClientToken *string // Specifies the unique identifier of the EngagementInvitation to be accepted. - // Providing the correct identifier ensures the right engagement invitation is + // Providing the correct identifier helps ensure that the correct engagement is // processed. // // This member is required. @@ -72,10 +72,7 @@ type StartEngagementByAcceptingInvitationTaskOutput struct { // unique identifier for the opportunity. OpportunityId *string - // Indicates the reason for task failure using an enumerated code. Possible values - // are: ACCEPT_ENGAGEMENT_INVITATION_FAILED , GET_ENGAGEMENT_INVITATION_FAILED , - // CREATE_OPPORTUNITY_FAILED , CREATE_RESOURCE_VIEW_AUTOMATION_FAILED , - // SUBMIT_OPPORTUNITY_FAILED . + // Indicates the reason for task failure using an enumerated code. ReasonCode types.ReasonCode // The timestamp indicating when the task was initiated. The format follows RFC @@ -86,12 +83,10 @@ type StartEngagementByAcceptingInvitationTaskOutput struct { // task within AWS. TaskArn *string - // The unique identifier of the task, used to track the task’s progress. This - // value follows a specific pattern: ^oit-[0-9a-z]{13}$ . + // The unique identifier of the task, used to track the task’s progress. TaskId *string - // Indicates the current status of the task. Valid values include IN_PROGRESS , - // COMPLETE , and FAILED . + // Indicates the current status of the task. TaskStatus types.TaskStatus // Metadata pertaining to the operation's result. diff --git a/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go index 90486197c1a..e866e982ee4 100644 --- a/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go +++ b/service/partnercentralselling/api_op_StartEngagementFromOpportunityTask.go @@ -34,8 +34,8 @@ func (c *Client) StartEngagementFromOpportunityTask(ctx context.Context, params type StartEngagementFromOpportunityTaskInput struct { // Indicates the level of AWS involvement in the opportunity. This field helps - // track AWS's role and participation throughout the engagement, such as providing - // technical support, deal assistance, or sales support. + // track AWS participation throughout the engagement, such as providing technical + // support, deal assistance, and sales support. // // This member is required. AwsSubmission *types.AwsSubmission @@ -46,14 +46,15 @@ type StartEngagementFromOpportunityTaskInput struct { // This member is required. Catalog *string - // A unique token provided by the client to ensure the idempotency of the request. - // It helps prevent the same task from being performed multiple times. + // A unique token provided by the client to help ensure the idempotency of the + // request. It helps prevent the same task from being performed multiple times. // // This member is required. ClientToken *string // The unique identifier of the opportunity from which the engagement task is to - // be initiated. This ensures the task is applied to the correct opportunity. + // be initiated. This helps ensure that the task is applied to the correct + // opportunity. // // This member is required. Identifier *string @@ -71,10 +72,7 @@ type StartEngagementFromOpportunityTaskOutput struct { // unique identifier for the opportunity created in the partner’s system. OpportunityId *string - // Indicates the reason for task failure using an enumerated code. Possible values - // are: ACCEPT_ENGAGEMENT_INVITATION_FAILED , GET_ENGAGEMENT_INVITATION_FAILED , - // CREATE_OPPORTUNITY_FAILED , CREATE_RESOURCE_VIEW_AUTOMATION_FAILED , - // SUBMIT_OPPORTUNITY_FAILED . + // Indicates the reason for task failure using an enumerated code. ReasonCode types.ReasonCode // The timestamp indicating when the task was initiated. The format follows RFC diff --git a/service/partnercentralselling/api_op_UpdateOpportunity.go b/service/partnercentralselling/api_op_UpdateOpportunity.go index e6fdec1a197..9f195c97119 100644 --- a/service/partnercentralselling/api_op_UpdateOpportunity.go +++ b/service/partnercentralselling/api_op_UpdateOpportunity.go @@ -42,8 +42,8 @@ type UpdateOpportunityInput struct { // Specifies the catalog associated with the request. This field takes a string // value from a predefined list: AWS or Sandbox . The catalog determines which // environment the opportunity is updated in. Use AWS to update real opportunities - // in the production environment, and Sandbox to test in a secure and isolated - // environment. When you use the Sandbox catalog, it allows you to simulate and + // in the production environment, and Sandbox for testing in secure, isolated + // environments. When you use the Sandbox catalog, it allows you to simulate and // validate your interactions with Amazon Web Services services without affecting // live data or operations. // @@ -70,8 +70,8 @@ type UpdateOpportunityInput struct { Marketing *types.Marketing // Specifies if the opportunity is associated with national security concerns. - // This flag is only applicable when the industry is Government . For national - // security-related opportunities, specific validation and compliance rules may + // This flag is only applicable when the industry is Government . For + // national-security-related opportunities, validation and compliance rules may // apply, impacting the opportunity's visibility and processing. NationalSecurity types.NationalSecurity @@ -100,38 +100,38 @@ type UpdateOpportunityInput struct { // // Valid values: // - // - Co-Sell - Architectural Validation: Confirmation from Amazon Web Services - // that the partner's proposed solution architecture is aligned with Amazon Web - // Services best practices and poses minimal architectural risks. + // - Cosell—Architectural Validation: Confirmation from Amazon Web Services that + // the partner's proposed solution architecture is aligned with Amazon Web Services + // best practices and poses minimal architectural risks. // - // - Co-Sell - Business Presentation: Request Amazon Web Services seller's + // - Cosell—Business Presentation: Request Amazon Web Services seller's // participation in a joint customer presentation. // - // - Co-Sell - Competitive Information: Access to Amazon Web Services - // competitive resources and support for the partner's proposed solution. + // - Cosell—Competitive Information: Access to Amazon Web Services competitive + // resources and support for the partner's proposed solution. // - // - Co-Sell - Pricing Assistance: Connect with an AWS seller for support + // - Cosell—Pricing Assistance: Connect with an AWS seller for support // situations where a partner may be receiving an upfront discount on a service // (for example: EDP deals). // - // - Co-Sell - Technical Consultation: Connection with an Amazon Web Services + // - Cosell—Technical Consultation: Connection with an Amazon Web Services // Solutions Architect to address the partner's questions about the proposed // solution. // - // - Co-Sell - Total Cost of Ownership Evaluation: Assistance with quoting + // - Cosell—Total Cost of Ownership Evaluation: Assistance with quoting // different cost savings of proposed solutions on Amazon Web Services versus // on-premises or a traditional hosting environment. // - // - Co-Sell - Deal Support: Request Amazon Web Services seller's support to + // - Cosell—Deal Support: Request Amazon Web Services seller's support to // progress the opportunity (for example: joint customer call, strategic // positioning). // - // - Co-Sell - Support for Public Tender / RFx: Opportunity related to the - // public sector where the partner needs RFx support from Amazon Web Services. + // - Cosell—Support for Public Tender/RFx: Opportunity related to the public + // sector where the partner needs RFx support from Amazon Web Services. // // - Do Not Need Support from AWS Sales Rep: Indicates that a partner doesn't // need support from an Amazon Web Services Sales representative. The opportunity - // is managed solely by the partner. It's possible to request co-selling support on + // is managed solely by the partner. It's possible to request coselling support on // these opportunities at any stage during their lifecycle. Also known as, // for-visibility-only (FVO) opportunity. PrimaryNeedsFromAws []types.PrimaryNeedFromAws diff --git a/service/partnercentralselling/doc.go b/service/partnercentralselling/doc.go index c08ba59c162..9d1843e937a 100644 --- a/service/partnercentralselling/doc.go +++ b/service/partnercentralselling/doc.go @@ -7,47 +7,42 @@ // // # AWS Partner Central API for Selling Reference Guide // -// Amazon Web Services (AWS) Partner Central API reference guide is designed to -// help [AWS Partners]programmatically integrate their Customer Relationship Management (CRM) -// systems with AWS Partner Central. Through the Partner Central APIs, partners can -// automate and streamline their interactions with AWS Partner Central, ensuring a -// more efficient and effective engagement in joint business activities. -// -// The AWS Partner Central API service provides standard AWS API functionality. -// You can directly use the API [Actions], or you can use an AWS SDK to access an API -// that's tailored to the programming language or platform that you're using. For -// more information about AWS application development, see [Getting Started with AWS]. For more information -// about using AWS SDKs, see [AWS SDKs]. +// This Amazon Web Services (AWS) Partner Central API reference is designed to +// help [AWS Partners]integrate Customer Relationship Management (CRM) systems with AWS Partner +// Central. Partners can automate interactions with AWS Partner Central, which +// helps to ensure effective engagements in joint business activities. +// +// The API provides standard AWS API functionality. Access it by either using API [Actions] +// or by using an AWS SDK that's tailored to your programming language or platform. +// For more information, see [Getting Started with AWS]and [Tools to Build on AWS]. // // Features offered by AWS Partner Central API // -// - Opportunity management: Facilitates the management of co-selling -// opportunities with AWS using API actions such as CreateOpportunity , -// UpdateOpportunity , ListOpportunities , GetOpportunity , and AssignOpportunity -// . +// - Opportunity management: Manages coselling opportunities through API actions +// such as CreateOpportunity , UpdateOpportunity , ListOpportunities , +// GetOpportunity , and AssignOpportunity . // -// - AWS referral management: Facilitates receiving referrals shared by AWS -// using actions like ListEngagementInvitations , GetEngagementInvitation , +// - AWS referral management: Manages referrals shared by AWS using actions such +// as ListEngagementInvitations , GetEngagementInvitation , // StartEngagementByAcceptingInvitation , and RejectEngagementInvitation . // -// - Entity association: Associate related entities such as AWS Products, +// - Entity association: Associates related entities such as AWS Products, // Partner Solutions, and AWS Marketplace Private Offers with opportunities using -// the actions AssociateOpportunity and DisassociateOpportunity . +// the actions AssociateOpportunity , and DisassociateOpportunity . // -// - View AWS opportunity details: Use the GetAWSOpportunitySummary action to -// retrieve real-time summaries of AWS opportunities that are linked to your -// opportunities. +// - View AWS opportunity details: Retrieves real-time summaries of AWS +// opportunities using the GetAWSOpportunitySummary action. // -// - List solutions: Provides list APIs for listing solutions partners offer -// using ListSolutions . +// - List solutions: Provides list APIs for listing partner offers using +// ListSolutions . // -// - Event subscription: Partners can subscribe to real-time updates on -// opportunities by listening to events such as Opportunity Created, Opportunity -// Updated, Engagement Invitation Accepted, Engagement Invitation Rejected and -// Engagement Invitation Created using AWS EventBridge. +// - Event subscription: Subscribe to real-time opportunity updates through AWS +// EventBridge by using actions such as Opportunity Created, Opportunity Updated, +// Engagement Invitation Accepted, Engagement Invitation Rejected, and Engagement +// Invitation Created. // -// [AWS Partners]: https://docs.aws.amazon.com/partners/programs/ +// [Tools to Build on AWS]: http://aws.amazon.com/developer/tools/ +// [AWS Partners]: http://aws.amazon.com/partners/programs/ // [Actions]: https://docs.aws.amazon.com/partner-central/latest/selling-api/API_Operations.html -// [AWS SDKs]: https://docs.aws.amazon.com/aws-sdk -// [Getting Started with AWS]: https://docs.aws.amazon.com/getting-started +// [Getting Started with AWS]: http://aws.amazon.com/getting-started package partnercentralselling diff --git a/service/partnercentralselling/endpoints.go b/service/partnercentralselling/endpoints.go index f7c2724cfb4..614794f102d 100644 --- a/service/partnercentralselling/endpoints.go +++ b/service/partnercentralselling/endpoints.go @@ -227,23 +227,6 @@ func bindRegion(region string) *string { // EndpointParameters provides the parameters that influence how endpoints are // resolved. type EndpointParameters struct { - // The AWS region used to dispatch the request. - // - // Parameter is - // required. - // - // AWS::Region - Region *string - - // When true, use the dual-stack endpoint. If the configured endpoint does not - // support dual-stack, dispatching the request MAY return an error. - // - // Defaults to - // false if no value is provided. - // - // AWS::UseDualStack - UseDualStack *bool - // When true, send this request to the FIPS-compliant regional endpoint. If the // configured endpoint does not have a FIPS compliant endpoint, dispatching the // request will return an error. @@ -261,14 +244,18 @@ type EndpointParameters struct { // // SDK::Endpoint Endpoint *string + + // The AWS region used to dispatch the request. + // + // Parameter is + // required. + // + // AWS::Region + Region *string } // ValidateRequired validates required parameters are set. func (p EndpointParameters) ValidateRequired() error { - if p.UseDualStack == nil { - return fmt.Errorf("parameter UseDualStack is required") - } - if p.UseFIPS == nil { return fmt.Errorf("parameter UseFIPS is required") } @@ -279,10 +266,6 @@ func (p EndpointParameters) ValidateRequired() error { // WithDefaults returns a shallow copy of EndpointParameterswith default values // applied to members where applicable. func (p EndpointParameters) WithDefaults() EndpointParameters { - if p.UseDualStack == nil { - p.UseDualStack = ptr.Bool(false) - } - if p.UseFIPS == nil { p.UseFIPS = ptr.Bool(false) } @@ -327,7 +310,6 @@ func (r *resolver) ResolveEndpoint( if err = params.ValidateRequired(); err != nil { return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err) } - _UseDualStack := *params.UseDualStack _UseFIPS := *params.UseFIPS if exprVal := params.Endpoint; exprVal != nil { @@ -336,9 +318,6 @@ func (r *resolver) ResolveEndpoint( if _UseFIPS == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS and custom endpoint are not supported") } - if _UseDualStack == true { - return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: Dualstack and custom endpoint are not supported") - } uriString := _Endpoint uri, err := url.Parse(uriString) @@ -358,84 +337,31 @@ func (r *resolver) ResolveEndpoint( _PartitionResult := *exprVal _ = _PartitionResult if _UseFIPS == true { - if _UseDualStack == true { - if true == _PartitionResult.SupportsFIPS { - if true == _PartitionResult.SupportsDualStack { - uriString := func() string { - var out strings.Builder - out.WriteString("https://partnercentral-selling-fips.") - out.WriteString(_Region) - out.WriteString(".") - out.WriteString(_PartitionResult.DualStackDnsSuffix) - return out.String() - }() - - uri, err := url.Parse(uriString) - if err != nil { - return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) - } - - return smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - }, nil - } - } - return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS and DualStack are enabled, but this partition does not support one or both") + uriString := func() string { + var out strings.Builder + out.WriteString("https://partnercentral-selling-fips.") + out.WriteString(_Region) + out.WriteString(".") + out.WriteString(_PartitionResult.DualStackDnsSuffix) + return out.String() + }() + + uri, err := url.Parse(uriString) + if err != nil { + return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) } - } - if _UseFIPS == true { - if _PartitionResult.SupportsFIPS == true { - uriString := func() string { - var out strings.Builder - out.WriteString("https://partnercentral-selling-fips.") - out.WriteString(_Region) - out.WriteString(".") - out.WriteString(_PartitionResult.DnsSuffix) - return out.String() - }() - - uri, err := url.Parse(uriString) - if err != nil { - return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) - } - - return smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - }, nil - } - return endpoint, fmt.Errorf("endpoint rule error, %s", "FIPS is enabled but this partition does not support FIPS") - } - if _UseDualStack == true { - if true == _PartitionResult.SupportsDualStack { - uriString := func() string { - var out strings.Builder - out.WriteString("https://partnercentral-selling.") - out.WriteString(_Region) - out.WriteString(".") - out.WriteString(_PartitionResult.DualStackDnsSuffix) - return out.String() - }() - - uri, err := url.Parse(uriString) - if err != nil { - return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString) - } - - return smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - }, nil - } - return endpoint, fmt.Errorf("endpoint rule error, %s", "DualStack is enabled but this partition does not support DualStack") + + return smithyendpoints.Endpoint{ + URI: *uri, + Headers: http.Header{}, + }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://partnercentral-selling.") out.WriteString(_Region) out.WriteString(".") - out.WriteString(_PartitionResult.DnsSuffix) + out.WriteString(_PartitionResult.DualStackDnsSuffix) return out.String() }() @@ -461,10 +387,9 @@ type endpointParamsBinder interface { func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters { params := &EndpointParameters{} - params.Region = bindRegion(options.Region) - params.UseDualStack = aws.Bool(options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateEnabled) params.UseFIPS = aws.Bool(options.EndpointOptions.UseFIPSEndpoint == aws.FIPSEndpointStateEnabled) params.Endpoint = options.BaseEndpoint + params.Region = bindRegion(options.Region) if b, ok := input.(endpointParamsBinder); ok { b.bindEndpointParams(params) diff --git a/service/partnercentralselling/endpoints_test.go b/service/partnercentralselling/endpoints_test.go index c3212129ae9..cd2979245fa 100644 --- a/service/partnercentralselling/endpoints_test.go +++ b/service/partnercentralselling/endpoints_test.go @@ -14,12 +14,11 @@ import ( "testing" ) -// For region us-east-1 with FIPS enabled and DualStack enabled +// For custom endpoint with region not set and fips disabled func TestEndpointCase0(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(true), + Endpoint: ptr.String("https://example.com"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -30,7 +29,7 @@ func TestEndpointCase0(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.us-east-1.api.aws") + uri, _ := url.Parse("https://example.com") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -51,49 +50,30 @@ func TestEndpointCase0(t *testing.T) { } } -// For region us-east-1 with FIPS enabled and DualStack disabled +// For custom endpoint with fips enabled func TestEndpointCase1(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), + Endpoint: ptr.String("https://example.com"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() result, err := resolver.ResolveEndpoint(context.Background(), params) _, _ = result, err - if err != nil { - t.Fatalf("expect no error, got %v", err) - } - - uri, _ := url.Parse("https://partnercentral-selling-fips.us-east-1.amazonaws.com") - - expectEndpoint := smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - Properties: smithy.Properties{}, - } - - if e, a := expectEndpoint.URI, result.URI; e != a { - t.Errorf("expect %v URI, got %v", e, a) - } - - if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { - t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) + if err == nil { + t.Fatalf("expect error, got none") } - - if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { - t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) + if e, a := "Invalid Configuration: FIPS and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { + t.Errorf("expect %v error in %v", e, a) } } -// For region us-east-1 with FIPS disabled and DualStack enabled +// For region us-east-1 with FIPS enabled and DualStack enabled func TestEndpointCase2(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -104,7 +84,7 @@ func TestEndpointCase2(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.us-east-1.api.aws") + uri, _ := url.Parse("https://partnercentral-selling-fips.us-east-1.api.aws") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -125,12 +105,11 @@ func TestEndpointCase2(t *testing.T) { } } -// For region us-east-1 with FIPS disabled and DualStack disabled +// For region us-east-1 with FIPS disabled and DualStack enabled func TestEndpointCase3(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), + Region: ptr.String("us-east-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -141,7 +120,7 @@ func TestEndpointCase3(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.us-east-1.amazonaws.com") + uri, _ := url.Parse("https://partnercentral-selling.us-east-1.api.aws") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -162,12 +141,11 @@ func TestEndpointCase3(t *testing.T) { } } -// For region cn-north-1 with FIPS enabled and DualStack enabled +// For region cn-northwest-1 with FIPS enabled and DualStack enabled func TestEndpointCase4(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("cn-north-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(true), + Region: ptr.String("cn-northwest-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -178,7 +156,7 @@ func TestEndpointCase4(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.cn-north-1.api.amazonwebservices.com.cn") + uri, _ := url.Parse("https://partnercentral-selling-fips.cn-northwest-1.api.amazonwebservices.com.cn") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -199,12 +177,11 @@ func TestEndpointCase4(t *testing.T) { } } -// For region cn-north-1 with FIPS enabled and DualStack disabled +// For region cn-northwest-1 with FIPS disabled and DualStack enabled func TestEndpointCase5(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("cn-north-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), + Region: ptr.String("cn-northwest-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -215,7 +192,7 @@ func TestEndpointCase5(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.cn-north-1.amazonaws.com.cn") + uri, _ := url.Parse("https://partnercentral-selling.cn-northwest-1.api.amazonwebservices.com.cn") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -236,12 +213,11 @@ func TestEndpointCase5(t *testing.T) { } } -// For region cn-north-1 with FIPS disabled and DualStack enabled +// For region us-gov-west-1 with FIPS enabled and DualStack enabled func TestEndpointCase6(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("cn-north-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), + Region: ptr.String("us-gov-west-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -252,7 +228,7 @@ func TestEndpointCase6(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.cn-north-1.api.amazonwebservices.com.cn") + uri, _ := url.Parse("https://partnercentral-selling-fips.us-gov-west-1.api.aws") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -273,12 +249,11 @@ func TestEndpointCase6(t *testing.T) { } } -// For region cn-north-1 with FIPS disabled and DualStack disabled +// For region us-gov-west-1 with FIPS disabled and DualStack enabled func TestEndpointCase7(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("cn-north-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), + Region: ptr.String("us-gov-west-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -289,7 +264,7 @@ func TestEndpointCase7(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.cn-north-1.amazonaws.com.cn") + uri, _ := url.Parse("https://partnercentral-selling.us-gov-west-1.api.aws") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -310,12 +285,11 @@ func TestEndpointCase7(t *testing.T) { } } -// For region us-gov-east-1 with FIPS enabled and DualStack enabled +// For region us-iso-east-1 with FIPS enabled and DualStack enabled func TestEndpointCase8(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-gov-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(true), + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -326,7 +300,7 @@ func TestEndpointCase8(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.us-gov-east-1.api.aws") + uri, _ := url.Parse("https://partnercentral-selling-fips.us-iso-east-1.c2s.ic.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -347,12 +321,11 @@ func TestEndpointCase8(t *testing.T) { } } -// For region us-gov-east-1 with FIPS enabled and DualStack disabled +// For region us-iso-east-1 with FIPS disabled and DualStack enabled func TestEndpointCase9(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-gov-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), + Region: ptr.String("us-iso-east-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -363,7 +336,7 @@ func TestEndpointCase9(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.us-gov-east-1.amazonaws.com") + uri, _ := url.Parse("https://partnercentral-selling.us-iso-east-1.c2s.ic.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -384,12 +357,11 @@ func TestEndpointCase9(t *testing.T) { } } -// For region us-gov-east-1 with FIPS disabled and DualStack enabled +// For region us-isob-east-1 with FIPS enabled and DualStack enabled func TestEndpointCase10(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-gov-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -400,7 +372,7 @@ func TestEndpointCase10(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.us-gov-east-1.api.aws") + uri, _ := url.Parse("https://partnercentral-selling-fips.us-isob-east-1.sc2s.sgov.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -421,12 +393,11 @@ func TestEndpointCase10(t *testing.T) { } } -// For region us-gov-east-1 with FIPS disabled and DualStack disabled +// For region us-isob-east-1 with FIPS disabled and DualStack enabled func TestEndpointCase11(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-gov-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), + Region: ptr.String("us-isob-east-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -437,7 +408,7 @@ func TestEndpointCase11(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.us-gov-east-1.amazonaws.com") + uri, _ := url.Parse("https://partnercentral-selling.us-isob-east-1.sc2s.sgov.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -458,146 +429,11 @@ func TestEndpointCase11(t *testing.T) { } } -// For region us-iso-east-1 with FIPS enabled and DualStack enabled +// For region eu-isoe-west-1 with FIPS enabled and DualStack enabled func TestEndpointCase12(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-iso-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(true), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "FIPS and DualStack are enabled, but this partition does not support one or both", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - -// For region us-iso-east-1 with FIPS enabled and DualStack disabled -func TestEndpointCase13(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-iso-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err != nil { - t.Fatalf("expect no error, got %v", err) - } - - uri, _ := url.Parse("https://partnercentral-selling-fips.us-iso-east-1.c2s.ic.gov") - - expectEndpoint := smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - Properties: smithy.Properties{}, - } - - if e, a := expectEndpoint.URI, result.URI; e != a { - t.Errorf("expect %v URI, got %v", e, a) - } - - if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { - t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) - } - - if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { - t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) - } -} - -// For region us-iso-east-1 with FIPS disabled and DualStack enabled -func TestEndpointCase14(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-iso-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "DualStack is enabled but this partition does not support DualStack", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - -// For region us-iso-east-1 with FIPS disabled and DualStack disabled -func TestEndpointCase15(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-iso-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err != nil { - t.Fatalf("expect no error, got %v", err) - } - - uri, _ := url.Parse("https://partnercentral-selling.us-iso-east-1.c2s.ic.gov") - - expectEndpoint := smithyendpoints.Endpoint{ - URI: *uri, - Headers: http.Header{}, - Properties: smithy.Properties{}, - } - - if e, a := expectEndpoint.URI, result.URI; e != a { - t.Errorf("expect %v URI, got %v", e, a) - } - - if !reflect.DeepEqual(expectEndpoint.Headers, result.Headers) { - t.Errorf("expect headers to match\n%v != %v", expectEndpoint.Headers, result.Headers) - } - - if !reflect.DeepEqual(expectEndpoint.Properties, result.Properties) { - t.Errorf("expect properties to match\n%v != %v", expectEndpoint.Properties, result.Properties) - } -} - -// For region us-isob-east-1 with FIPS enabled and DualStack enabled -func TestEndpointCase16(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-isob-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(true), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "FIPS and DualStack are enabled, but this partition does not support one or both", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - -// For region us-isob-east-1 with FIPS enabled and DualStack disabled -func TestEndpointCase17(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-isob-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), + Region: ptr.String("eu-isoe-west-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -608,7 +444,7 @@ func TestEndpointCase17(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling-fips.us-isob-east-1.sc2s.sgov.gov") + uri, _ := url.Parse("https://partnercentral-selling-fips.eu-isoe-west-1.cloud.adc-e.uk") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -629,32 +465,11 @@ func TestEndpointCase17(t *testing.T) { } } -// For region us-isob-east-1 with FIPS disabled and DualStack enabled -func TestEndpointCase18(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-isob-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "DualStack is enabled but this partition does not support DualStack", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - -// For region us-isob-east-1 with FIPS disabled and DualStack disabled -func TestEndpointCase19(t *testing.T) { +// For region eu-isoe-west-1 with FIPS disabled and DualStack enabled +func TestEndpointCase13(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-isob-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), + Region: ptr.String("eu-isoe-west-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -665,7 +480,7 @@ func TestEndpointCase19(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://partnercentral-selling.us-isob-east-1.sc2s.sgov.gov") + uri, _ := url.Parse("https://partnercentral-selling.eu-isoe-west-1.cloud.adc-e.uk") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -686,13 +501,11 @@ func TestEndpointCase19(t *testing.T) { } } -// For custom endpoint with region set and fips disabled and dualstack disabled -func TestEndpointCase20(t *testing.T) { +// For region us-isof-south-1 with FIPS enabled and DualStack enabled +func TestEndpointCase14(t *testing.T) { var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), - Endpoint: ptr.String("https://example.com"), + Region: ptr.String("us-isof-south-1"), + UseFIPS: ptr.Bool(true), } resolver := NewDefaultEndpointResolverV2() @@ -703,7 +516,7 @@ func TestEndpointCase20(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://example.com") + uri, _ := url.Parse("https://partnercentral-selling-fips.us-isof-south-1.csp.hci.ic.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -724,12 +537,11 @@ func TestEndpointCase20(t *testing.T) { } } -// For custom endpoint with region not set and fips disabled and dualstack disabled -func TestEndpointCase21(t *testing.T) { +// For region us-isof-south-1 with FIPS disabled and DualStack enabled +func TestEndpointCase15(t *testing.T) { var params = EndpointParameters{ - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(false), - Endpoint: ptr.String("https://example.com"), + Region: ptr.String("us-isof-south-1"), + UseFIPS: ptr.Bool(false), } resolver := NewDefaultEndpointResolverV2() @@ -740,7 +552,7 @@ func TestEndpointCase21(t *testing.T) { t.Fatalf("expect no error, got %v", err) } - uri, _ := url.Parse("https://example.com") + uri, _ := url.Parse("https://partnercentral-selling.us-isof-south-1.csp.hci.ic.gov") expectEndpoint := smithyendpoints.Endpoint{ URI: *uri, @@ -761,50 +573,8 @@ func TestEndpointCase21(t *testing.T) { } } -// For custom endpoint with fips enabled and dualstack disabled -func TestEndpointCase22(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(true), - UseDualStack: ptr.Bool(false), - Endpoint: ptr.String("https://example.com"), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "Invalid Configuration: FIPS and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - -// For custom endpoint with fips disabled and dualstack enabled -func TestEndpointCase23(t *testing.T) { - var params = EndpointParameters{ - Region: ptr.String("us-east-1"), - UseFIPS: ptr.Bool(false), - UseDualStack: ptr.Bool(true), - Endpoint: ptr.String("https://example.com"), - } - - resolver := NewDefaultEndpointResolverV2() - result, err := resolver.ResolveEndpoint(context.Background(), params) - _, _ = result, err - - if err == nil { - t.Fatalf("expect error, got none") - } - if e, a := "Invalid Configuration: Dualstack and custom endpoint are not supported", err.Error(); !strings.Contains(a, e) { - t.Errorf("expect %v error in %v", e, a) - } -} - // Missing region -func TestEndpointCase24(t *testing.T) { +func TestEndpointCase16(t *testing.T) { var params = EndpointParameters{} resolver := NewDefaultEndpointResolverV2() diff --git a/service/partnercentralselling/types/enums.go b/service/partnercentralselling/types/enums.go index 23528044ede..0cd7845854a 100644 --- a/service/partnercentralselling/types/enums.go +++ b/service/partnercentralselling/types/enums.go @@ -1598,6 +1598,7 @@ const ( ReasonCodeInternalError ReasonCode = "InternalError" ReasonCodeOpportunityValidationFailed ReasonCode = "OpportunityValidationFailed" ReasonCodeOpportunityConflict ReasonCode = "OpportunityConflict" + ReasonCodeResourceSnapshotAccessDenied ReasonCode = "ResourceSnapshotAccessDenied" ) // Values returns all known values for ReasonCode. Note that this can be expanded @@ -1616,6 +1617,7 @@ func (ReasonCode) Values() []ReasonCode { "InternalError", "OpportunityValidationFailed", "OpportunityConflict", + "ResourceSnapshotAccessDenied", } } diff --git a/service/partnercentralselling/types/errors.go b/service/partnercentralselling/types/errors.go index d484663059b..09571b56581 100644 --- a/service/partnercentralselling/types/errors.go +++ b/service/partnercentralselling/types/errors.go @@ -132,10 +132,10 @@ func (e *ResourceNotFoundException) ErrorFault() smithy.ErrorFault { return smit // Service quotas represent the maximum allowed use of a specific resource, and // this error indicates that the request would surpass that limit. // -// Suggested action: Review the [service quotas] for the specific resource, and reduce the usage -// or request a quota increase through support if necessary. +// Suggested action: Review the [Quotas] for the resource, and either reduce usage or +// request a quota increase. // -// [service quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html +// [Quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html type ServiceQuotaExceededException struct { Message *string @@ -164,10 +164,10 @@ func (e *ServiceQuotaExceededException) ErrorFault() smithy.ErrorFault { return // This error occurs when there are too many requests sent. Review the provided // quotas and adapt your usage to avoid throttling. // -// This error occurs when there are too many requests sent. Review the provided [quotas] +// This error occurs when there are too many requests sent. Review the provided [Quotas] // and retry after the provided delay. // -// [quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html +// [Quotas]: https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html type ThrottlingException struct { Message *string diff --git a/service/partnercentralselling/types/types.go b/service/partnercentralselling/types/types.go index 7e30f182b7e..70006e2ea3f 100644 --- a/service/partnercentralselling/types/types.go +++ b/service/partnercentralselling/types/types.go @@ -158,13 +158,14 @@ type AddressSummary struct { } // Represents the contact details of the individual assigned to manage the -// opportunity within the partner organization. This ensures that there is a clear -// point of contact for the opportunity's progress and updates. +// opportunity within the partner organization. This helps to ensure that there is +// a point of contact for the opportunity's progress. type AssigneeContact struct { // Specifies the business title of the assignee managing the opportunity. This // helps clarify the individual's role and responsibilities within the - // organization. + // organization. Use the value PartnerAccountManager to update details of the + // opportunity owner. // // This member is required. BusinessTitle *string @@ -175,12 +176,16 @@ type AssigneeContact struct { // This member is required. Email *string - // Specifies the first name of the assignee managing the opportunity. + // Specifies the first name of the assignee managing the opportunity. The system + // automatically retrieves this value from the user profile by referencing the + // associated email address. // // This member is required. FirstName *string - // Specifies the last name of the assignee managing the opportunity. + // Specifies the last name of the assignee managing the opportunity. The system + // automatically retrieves this value from the user profile by referencing the + // associated email address. // // This member is required. LastName *string @@ -194,8 +199,8 @@ type AssigneeContact struct { type AwsOpportunityCustomer struct { // Provides a list of customer contacts involved in the opportunity. These - // contacts may include decision-makers, influencers, and other key stakeholders - // within the customer's organization. + // contacts may include decision makers, influencers, and other stakeholders within + // the customer's organization. Contacts []Contact noSmithyDocumentSerde @@ -228,7 +233,7 @@ type AwsOpportunityLifeCycle struct { ClosedLostReason AwsClosedLostReason // Specifies the immediate next steps required to progress the opportunity. These - // steps are based on AWS's guidance and the current stage of the opportunity. + // steps are based on AWS guidance and the current stage of the opportunity. NextSteps *string // Provides a historical log of previous next steps that were taken to move the @@ -283,18 +288,18 @@ type AwsOpportunityRelatedEntities struct { } // Indicates the level of AWS involvement in the opportunity. This field helps -// track AWS's role and participation throughout the engagement, such as providing -// technical support, deal assistance, or sales support. +// track AWS participation throughout the engagement, such as providing technical +// support, deal assistance, and sales support. type AwsSubmission struct { - // Specifies the type of AWS involvement in the opportunity, such as co-selling, - // deal support, or technical consultation. This helps categorize the nature of - // AWS's participation. + // Specifies the type of AWS involvement in the opportunity, such as coselling, + // deal support, or technical consultation. This helps categorize the nature of AWS + // participation. // // This member is required. InvolvementType SalesInvolvementType - // Determines who can view AWS's involvement in the opportunity. Typically, this + // Determines who can view AWS involvement in the opportunity. Typically, this // field is set to Full for most cases, but it may be restricted based on special // program requirements or confidentiality needs. Visibility Visibility @@ -327,7 +332,7 @@ type AwsTeamMember struct { type Contact struct { // The partner contact's title (job title or role) associated with the Opportunity - // . + // . BusinessTitle supports either PartnerAccountManager or OpportunityOwner . BusinessTitle *string // The contact's email address associated with the Opportunity . @@ -370,7 +375,7 @@ type CustomerSummary struct { } // Contains details about the customer associated with the Engagement Invitation, -// including key company information and industry. +// including company information and industry. type EngagementCustomer struct { // Represents the name of the customer’s company associated with the Engagement @@ -400,9 +405,9 @@ type EngagementCustomer struct { noSmithyDocumentSerde } -// Provides a summarized view of the Engagement Invitation, including key details -// like the identifier, status, and sender information. This summary helps partners -// track and manage AWS-originated opportunities. +// Provides a summarized view of the Engagement Invitation, including details like +// the identifier, status, and sender. This summary helps partners track and manage +// AWS originated opportunities. type EngagementInvitationSummary struct { // Specifies the catalog in which the Engagement Invitation resides. This can be @@ -430,8 +435,8 @@ type EngagementInvitationSummary struct { EngagementTitle *string // Indicates the date and time when the Engagement Invitation will expire. After - // this date, the invitation can no longer be accepted, and the opportunity will no - // longer be available for the partner to engage. + // this date, the invitation can no longer be accepted, and the opportunity will be + // unavailable to the partner. ExpirationDate *time.Time // Indicates the date when the Engagement Invitation was sent to the partner. This @@ -533,15 +538,15 @@ type LifeCycle struct { // // - Legal/Tax/Regulatory: Legal, tax, or regulatory issues prevented progress. // - // - Lost to Competitor - Google: The opportunity was lost to Google. + // - Lost to Competitor—Google: The opportunity was lost to Google. // - // - Lost to Competitor - Microsoft: The opportunity was lost to Microsoft. + // - Lost to Competitor—Microsoft: The opportunity was lost to Microsoft. // - // - Lost to Competitor - SoftLayer: The opportunity was lost to SoftLayer. + // - Lost to Competitor—SoftLayer: The opportunity was lost to SoftLayer. // - // - Lost to Competitor - VMWare: The opportunity was lost to VMWare. + // - Lost to Competitor—VMWare: The opportunity was lost to VMWare. // - // - Lost to Competitor - Other: The opportunity was lost to a competitor not + // - Lost to Competitor—Other: The opportunity was lost to a competitor not // listed above. // // - No Opportunity: There was no opportunity to pursue. @@ -569,8 +574,8 @@ type LifeCycle struct { // - Financial/Commercial: Financial or commercial issues impacted the decision. ClosedLostReason ClosedLostReason - // Specifies the upcoming actions or tasks for the Opportunity . This field is - // utilized to communicate to Amazon Web Services the next actions required for the + // Specifies the upcoming actions or tasks for the Opportunity . Use this field to + // communicate with Amazon Web Services about the next actions required for the // Opportunity . NextSteps *string @@ -578,7 +583,7 @@ type LifeCycle struct { // for the current opportunity, along with the timestamp. NextStepsHistory []NextStepsHistory - // Indicates why an opportuntiy was sent back for further details. Partners must + // Indicates why an opportunity was sent back for further details. Partners must // take corrective action based on the ReviewComments . ReviewComments *string @@ -595,8 +600,9 @@ type LifeCycle struct { // // - Action Required: Issues that Amazon Web Services highlights need to be // addressed. Partners should use the UpdateOpportunity API action to update the - // opportunity, and ensure all required changes are made. Only these fields are - // editable when the Lifecycle.ReviewStatus is Action Required : + // opportunity and helps to ensure that all required changes are made. Only the + // following fields are editable when the Lifecycle.ReviewStatus is Action + // Required : // // - Customer.Account.Address.City // @@ -652,10 +658,9 @@ type LifeCycle struct { // (Comes directly from the end customer through a lead) or latent (Your account // team believes it exists based on research, account plans, sales plays). // - // - Qualified: Your account team engaged with the prospect/end customer to - // discuss viability and understand requirements. The prospect/end customer agreed - // that the opportunity is real, of interest, and may solve key business/technical - // needs. + // - Qualified: Your account team engaged with the customer to discuss viability + // and requirements. The customer agreed that the opportunity is real, of interest, + // and may solve business/technical needs. // // - Technical Validation: All parties understand the implementation plan. // @@ -697,7 +702,7 @@ type LifeCycleSummary struct { // Opportunity . NextSteps *string - // Indicates why an opportuntiy was sent back for further details. Partners must + // Indicates why an opportunity was sent back for further details. Partners must // take corrective action based on the ReviewComments . ReviewComments *string @@ -770,15 +775,14 @@ type LifeCycleSummary struct { // (Comes directly from the end customer through a lead) or latent (Your account // team believes it exists based on research, account plans, sales plays). // - // - Qualified: Your account team engaged with the prospect/end customer to - // discuss viability and understand requirements. The prospect/end customer agreed - // that the opportunity is real, of interest, and may solve key business/technical - // needs. + // - Qualified: Your account team engaged with the customer to discuss viability + // and understand requirements. The customer agreed that the opportunity is real, + // of interest, and may solve business/technical needs. // // - Technical Validation: All parties understand the implementation plan. // - // - Business Validation: Pricing has been proposed, Pricing was proposed, and - // all parties agree to the steps to close. + // - Business Validation: Pricing was proposed, and all parties agree to the + // steps to close. // // - Committed: The customer signed the contract, but Amazon Web Services hasn't // started billing. @@ -808,12 +812,11 @@ type Marketing struct { // activity. AwsFundingUsed AwsFundingUsed - // Specifies the Opportunity 's unique marketing campaign name. The Amazon Web - // Services campaign name serves as a reference to specific marketing initiatives, - // promotions, or activities related to the Opportunity . This field captures the - // identifier used to track and categorize the Opportunity within Amazon Web - // Services's marketing campaigns. If you don't have a campaign name, reach out to - // your Amazon Web Services point of contact to obtain one. + // Specifies the Opportunity marketing campaign code. The Amazon Web Services + // campaign code is a reference to specific marketing initiatives, promotions, or + // activities. This field captures the identifier used to track and categorize the + // Opportunity within marketing campaigns. If you don't have a campaign code, + // contact your Amazon Web Services point of contact to obtain one. CampaignName *string // Specifies the Opportunity 's channel that the marketing activity is associated @@ -921,8 +924,7 @@ type OpportunityInvitationPayload struct { ReceiverResponsibilities []ReceiverResponsibility // Represents the contact details of the AWS representatives involved in sending - // the Engagement Invitation. These contacts are key stakeholders for the - // opportunity. + // the Engagement Invitation. These contacts are opportunity stakeholders. SenderContacts []SenderContact noSmithyDocumentSerde @@ -1064,15 +1066,15 @@ type Project struct { CompetitorName CompetitorName // Describes the problem the end customer has, and how the partner is helping. - // Utilize this field to provide a clear and concise narrative that outlines the - // specific business challenge or issue the customer has. Elaborate on how the - // partner's solution or offerings align to resolve the customer's business - // problem. Include relevant information about the partner's value proposition, - // unique selling points, and expertise to tackle the issue. Offer insights on how - // the proposed solution meets the customer's needs and provides value. Use concise - // language and precise descriptions to convey the context and significance of the - // Opportunity . The content in this field helps Amazon Web Services understand the - // nature of the Opportunity and the strategic fit of the partner's solution. + // Utilize this field to provide a concise narrative that outlines the customer's + // business challenge or issue. Elaborate on how the partner's solution or + // offerings align to resolve the customer's business problem. Include relevant + // information about the partner's value proposition, unique selling points, and + // expertise to tackle the issue. Offer insights on how the proposed solution meets + // the customer's needs and provides value. Use concise language and precise + // descriptions to convey the context and significance of the Opportunity . The + // content in this field helps Amazon Web Services understand the nature of the + // Opportunity and the strategic fit of the partner's solution. CustomerBusinessProblem *string // Specifies the proposed solution focus or type of workload for the Opportunity. @@ -1080,17 +1082,17 @@ type Project struct { // and provides context and clarity to the addressed workload. // // Valid values: AI Machine Learning and Analytics | Archiving | Big Data: Data - // Warehouse / Data Integration / ETL / Data Lake / BI | Blockchain | Business + // Warehouse/Data Integration/ETL/Data Lake/BI | Blockchain | Business // Applications: Mainframe Modernization | Business Applications & Contact Center | // Business Applications & SAP Production | Centralized Operations Management | // Cloud Management Tools | Cloud Management Tools & DevOps with Continuous // Integration & Continuous Delivery (CICD) | Configuration, Compliance & Auditing // | Connected Services | Containers & Serverless | Content Delivery & Edge - // Services | Database | Edge Computing / End User Computing | Energy | Enterprise + // Services | Database | Edge Computing/End User Computing | Energy | Enterprise // Governance & Controls | Enterprise Resource Planning | Financial Services | // Healthcare and Life Sciences | High Performance Computing | Hybrid Application // Platform | Industrial Software | IOT | Manufacturing, Supply Chain and - // Operations | Media & High performance computing (HPC) | Migration / Database + // Operations | Media & High performance computing (HPC) | Migration/Database // Migration | Monitoring, logging and performance | Monitoring & Observability | // Networking | Outpost | SAP | Security & Compliance | Storage & Backup | Training // | VMC | VMWare | Web development & DevOps @@ -1147,10 +1149,10 @@ type Project struct { // - Customer has shown interest in solution: After initial discussions, the // customer is interested in your solution. // - // - Conducted POC / Demo: You conducted a proof of concept (POC) or - // demonstration of the solution for the customer. + // - Conducted POC/demo: You conducted a proof of concept (POC) or demonstration + // of the solution for the customer. // - // - In evaluation / planning stage: The customer is evaluating the solution and + // - In evaluation/planning stage: The customer is evaluating the solution and // planning potential implementation. // // - Agreed on solution to Business Problem: Both parties agree on how the @@ -1294,12 +1296,12 @@ type RelatedEntityIdentifiers struct { // // If the specific solution identifier is not available, you can use the value // Other and provide details about the solution in the otherSolutionOffered field. - // However, once the opportunity reaches the Committed stage or beyond, the Other - // value cannot be used, and a valid solution identifier must be provided. + // But when the opportunity reaches the Committed stage or beyond, the Other value + // cannot be used, and a valid solution identifier must be provided. // - // By associating the relevant solutions with the opportunity, you can clearly - // communicate the offerings that are being considered or implemented to address - // the customer's business problem. + // By associating the relevant solutions with the opportunity, you can communicate + // the offerings that are being considered or implemented to address the customer's + // business problem. Solutions []string noSmithyDocumentSerde