def post()

in src/handlers/license_manager_setting_handler.py [0:0]


    def post(self, event: LicenseManagerClientSettingPostModel):
        # Validation is taken care of, on the gateway/abstract-handler layer.
        kid = event.key_id
        alg = event.algorithm
        raw_prk: str = event.private_key

        # Decoding is taking care of within the validation layer.

        if self.settings_service. \
                get_license_manager_client_key_data(value=False):
            return build_response(
                code=HTTPStatus.CONFLICT,
                content='License Manager Client-Key already exists.'
            )

        try:
            prk = load_pem_private_key(raw_prk.encode(), None)
        except (ValueError, Exception):
            raise ResponseFactory(HTTPStatus.BAD_REQUEST).message(
                'Invalid private key'
            ).exc()
        name = LmTokenProducer.derive_client_private_key_id(kid=kid)
        self._ssm_client.create_secret(
            secret_name=name,
            secret_value={
                VALUE_ATTR: prk.private_bytes(
                    Encoding.PEM,
                    PrivateFormat.PKCS8,
                    NoEncryption()
                )
            }
        )
        _LOG.info('Private key was saved to SSM')
        setting = self.settings_service.create_license_manager_client_key_data(
            kid=kid, alg=alg
        )

        _LOG.info(f'Persisting License Manager Client-Key data:'
                  f' {setting.value}.')

        self.settings_service.save(setting=setting)

        return build_response(
            code=HTTPStatus.CREATED,
            content=self.get_dto(
                alg=alg,
                kid=kid,
                public_key=self.get_public(prk)
            )
        )