private PutMetricFilterResponse createResource()

in aws-logs-metricfilter/src/main/java/software/amazon/logs/metricfilter/CreateHandler.java [42:62]


    private PutMetricFilterResponse createResource(
            final ResourceModel model,
            final PutMetricFilterRequest awsRequest,
            final ProxyClient<CloudWatchLogsClient> proxyClient) {
        try {
            boolean exists = exists(proxyClient, model);
            if (exists) {
                throw new CfnAlreadyExistsException(ResourceModel.TYPE_NAME, model.getPrimaryIdentifier().toString());
            }
            logger.log(String.format("Resource doesn't exist. Creating a new one %s", ResourceModel.TYPE_NAME));
            return proxyClient.injectCredentialsAndInvokeV2(awsRequest, proxyClient.client()::putMetricFilter);
        } catch (final InvalidParameterException e) {
            throw new CfnInvalidRequestException(ResourceModel.TYPE_NAME, e);
        } catch (final LimitExceededException e) {
            throw new CfnServiceLimitExceededException(e);
        } catch (final OperationAbortedException e) {
            throw new CfnResourceConflictException(e);
        } catch (final ServiceUnavailableException e) {
            throw new CfnServiceInternalErrorException(e);
        }
    }