@SdkInternalApi
    final StartAssessmentFrameworkShareResult executeStartAssessmentFrameworkShare(StartAssessmentFrameworkShareRequest startAssessmentFrameworkShareRequest) {

        ExecutionContext executionContext = createExecutionContext(startAssessmentFrameworkShareRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(Field.ClientExecuteTime);
        Request<StartAssessmentFrameworkShareRequest> request = null;
        Response<StartAssessmentFrameworkShareResult> response = null;

        try {
            awsRequestMetrics.startEvent(Field.RequestMarshallTime);
            try {
                request = new StartAssessmentFrameworkShareRequestProtocolMarshaller(protocolFactory).marshall(super
                        .beforeMarshalling(startAssessmentFrameworkShareRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
                request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint);
                request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden());
                request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion());
                request.addHandlerContext(HandlerContextKey.SERVICE_ID, "AuditManager");
                request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartAssessmentFrameworkShare");
                request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig);

            } finally {
                awsRequestMetrics.endEvent(Field.RequestMarshallTime);
            }

            HttpResponseHandler<AmazonWebServiceResponse<StartAssessmentFrameworkShareResult>> responseHandler = protocolFactory.createResponseHandler(
                    new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false),
                    new StartAssessmentFrameworkShareResultJsonUnmarshaller());
            response = invoke(request, responseHandler, executionContext);

            return response.getAwsResponse();

        } finally {

            endClientExecution(awsRequestMetrics, request, response);
        }
    }
<p>
Creates a share request for a custom framework in Audit Manager.
</p>
<p>
The share request specifies a recipient and notifies them that a custom framework is available. Recipients have
120 days to accept or decline the request. If no action is taken, the share request expires.
</p>
<p>
When you create a share request, Audit Manager stores a snapshot of your custom framework in the US East (N.
Virginia) Amazon Web Services Region. Audit Manager also stores a backup of the same snapshot in the US West
(Oregon) Amazon Web Services Region.
</p>
<p>
Audit Manager deletes the snapshot and the backup snapshot when one of the following events occurs:
</p>
<ul>
<li>
<p>
The sender revokes the share request.
</p>
</li>
<li>
<p>
The recipient declines the share request.
</p>
</li>
<li>
<p>
The recipient encounters an error and doesn't successfully accept the share request.
</p>
</li>
<li>
<p>
The share request expires before the recipient responds to the request.
</p>
</li>
</ul>
<p>
When a sender <a href=
"https://docs.aws.amazon.com/audit-manager/latest/userguide/framework-sharing.html#framework-sharing-resend"
>resends a share request</a>, the snapshot is replaced with an updated version that corresponds with the latest
version of the custom framework.
</p>
<p>
When a recipient accepts a share request, the snapshot is replicated into their Amazon Web Services account under
the Amazon Web Services Region that was specified in the share request.
</p>
<important>
<p>
When you invoke the <code>StartAssessmentFrameworkShare</code> API, you are about to share a custom framework
with another Amazon Web Services account. You may not share a custom framework that is derived from a standard
framework if the standard framework is designated as not eligible for sharing by Amazon Web Services, unless you
have obtained permission to do so from the owner of the standard framework. To learn more about which standard
frameworks are eligible for sharing, see <a href=
"https://docs.aws.amazon.com/audit-manager/latest/userguide/share-custom-framework-concepts-and-terminology.html#eligibility"
>Framework sharing eligibility</a> in the <i>Audit Manager User Guide</i>.
</p>
</important>

@param startAssessmentFrameworkShareRequest
@return Result of the StartAssessmentFrameworkShare operation returned by the service.
@throws ValidationException
        The request has invalid or missing parameters.
@throws AccessDeniedException
        Your account isn't registered with Audit Manager. Check the delegated administrator setup on the Audit
        Manager settings page, and try again.
@throws InternalServerException
        An internal service error occurred during the processing of your request. Try again later.
@throws ResourceNotFoundException
        The resource that's specified in the request can't be found.
@sample AWSAuditManager.StartAssessmentFrameworkShare
@see <a href="http://docs.aws.amazon.com/goto/WebAPI/auditmanager-2017-07-25/StartAssessmentFrameworkShare"
     target="_top">AWS API Documentation</a>
aws-java-sdk-auditmanager/src/main/java/com/amazonaws/services/auditmanager/AWSAuditManagerClient.java