├── .gitallowed ├── .github └── ISSUE_TEMPLATE │ └── unreal-plugin-bug-report.md ├── .gitignore ├── .gkcpp_version ├── AwsGameKit ├── AwsGameKit.uplugin ├── Config │ └── FilterPlugin.ini ├── Content │ ├── Achievements │ │ ├── BP_AwsGameKitAchievementsExamples.uasset │ │ ├── BP_AwsGameKitAchievementsExamples_UI.uasset │ │ ├── SAchievement.uasset │ │ ├── UAchievement.uasset │ │ ├── WBP_AchievementListViewEntry.uasset │ │ └── WBP_AchievementListViewWidget.uasset │ ├── GameSaving │ │ ├── BP_AwsGameKitGameSavingExamples.uasset │ │ ├── BP_AwsGameKitGameSavingExamplesUI.uasset │ │ ├── Close_Icon.uasset │ │ ├── GameSavingTestLevel.umap │ │ ├── Icons │ │ │ ├── Close_Icon.uasset │ │ │ ├── People_Icon.uasset │ │ │ ├── cloud.uasset │ │ │ ├── date-icon.uasset │ │ │ ├── load-menu-icon.uasset │ │ │ ├── local-icon.uasset │ │ │ ├── local.uasset │ │ │ ├── metadata-icon.uasset │ │ │ ├── save-spinner.uasset │ │ │ ├── slot-icon.uasset │ │ │ ├── trash-icon.uasset │ │ │ └── warning.uasset │ │ ├── People_Icon.uasset │ │ ├── SSlot.uasset │ │ ├── USlot.uasset │ │ ├── WBP_GameSavingDeletePopup.uasset │ │ ├── WBP_GameSavingHandleConflict.uasset │ │ ├── WBP_GameSavingLoadOptions.uasset │ │ ├── WBP_GameSavingSaveOptions.uasset │ │ ├── WBP_GameSavingSlotListViewEntry.uasset │ │ ├── WBP_GameSavingSlotListViewWidget.uasset │ │ ├── cloud.uasset │ │ ├── date-icon.uasset │ │ ├── load-menu-icon.uasset │ │ ├── local-icon.uasset │ │ ├── local.uasset │ │ ├── metadata-icon.uasset │ │ ├── save-spinner.uasset │ │ ├── slot-icon.uasset │ │ ├── trash-icon.uasset │ │ └── warning.uasset │ ├── Identity │ │ ├── BP_AwsGameKitIdentityExamples.uasset │ │ └── BP_AwsGameKitIdentityExamplesUI.uasset │ └── UserGameplayData │ │ ├── BP_AwsGameKitUserGameplayDataExamples.uasset │ │ ├── BP_AwsGameKitUserGameplayDataExamplesUI.uasset │ │ ├── ExampleGameResources │ │ ├── AWSGameKit_UserGameplayData_GM.uasset │ │ ├── BP_AwsGameKitUserGameplayDataLogin_UI.uasset │ │ ├── BP_AwsGameKitUserGameplayData_HUD.uasset │ │ ├── FontDataTable.uasset │ │ ├── Icons │ │ │ └── save-spinner.uasset │ │ ├── billboard.uasset │ │ └── billboard_Mat.uasset │ │ ├── GameplayData_ExampleGame.umap │ │ ├── GameplayData_ExampleGameCharacter.uasset │ │ └── GameplayData_ExampleGame_BuiltData.uasset ├── Doxyfile ├── LICENSE ├── Resources │ ├── Icon128.png │ ├── cloudResources │ │ ├── CODE_OF_CONDUCT.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── NOTICE │ │ ├── README.md │ │ ├── cloudformation │ │ │ ├── achievements │ │ │ │ ├── cloudFormation.yml │ │ │ │ ├── dashboard.yml │ │ │ │ └── parameters.yml │ │ │ ├── gamesaving │ │ │ │ ├── cloudFormation.yml │ │ │ │ ├── dashboard.yml │ │ │ │ └── parameters.yml │ │ │ ├── identity │ │ │ │ ├── cloudFormation.yml │ │ │ │ ├── dashboard.yml │ │ │ │ └── parameters.yml │ │ │ ├── main │ │ │ │ ├── cloudFormation.yml │ │ │ │ ├── dashboard.yml │ │ │ │ └── parameters.yml │ │ │ └── usergamedata │ │ │ │ ├── cloudFormation.yml │ │ │ │ ├── dashboard.yml │ │ │ │ └── parameters.yml │ │ ├── configOutputs │ │ │ ├── achievements │ │ │ │ └── clientConfig.yml │ │ │ ├── gamesaving │ │ │ │ └── clientConfig.yml │ │ │ ├── identity │ │ │ │ └── clientConfig.yml │ │ │ └── usergamedata │ │ │ │ └── clientConfig.yml │ │ ├── continuous-integration │ │ │ ├── .version │ │ │ └── Windows │ │ │ │ └── upload_to_s3.py │ │ ├── functions │ │ │ ├── achievements │ │ │ │ ├── AdminAddAchievements │ │ │ │ │ └── index.py │ │ │ │ ├── AdminDeleteAchievements │ │ │ │ │ └── index.py │ │ │ │ ├── AdminGetAchievements │ │ │ │ │ └── index.py │ │ │ │ ├── GetAchievement │ │ │ │ │ └── index.py │ │ │ │ ├── GetAchievements │ │ │ │ │ └── index.py │ │ │ │ ├── ResizeIcon │ │ │ │ │ └── index.py │ │ │ │ └── UpdateAchievements │ │ │ │ │ └── index.py │ │ │ ├── gamesaving │ │ │ │ ├── DeleteSaveSlot │ │ │ │ │ └── index.py │ │ │ │ ├── GeneratePreSignedGetURL │ │ │ │ │ └── index.py │ │ │ │ ├── GeneratePreSignedPutURL │ │ │ │ │ └── index.py │ │ │ │ ├── GetAllSlotsMetadata │ │ │ │ │ └── index.py │ │ │ │ ├── GetSlotMetadata │ │ │ │ │ └── index.py │ │ │ │ └── UpdateSlotMetadata │ │ │ │ │ └── index.py │ │ │ ├── identity │ │ │ │ ├── CognitoFbCallbackHandler │ │ │ │ │ └── index.py │ │ │ │ ├── CognitoGetUser │ │ │ │ │ └── index.py │ │ │ │ ├── CognitoPostConfirmation │ │ │ │ │ └── index.py │ │ │ │ ├── CognitoPreSignUp │ │ │ │ │ └── index.py │ │ │ │ ├── DefaultTokenAuthorizer │ │ │ │ │ ├── index.py │ │ │ │ │ └── token_verifier.py │ │ │ │ ├── GenerateFacebookLoginUrl │ │ │ │ │ └── index.py │ │ │ │ ├── JwksRefresh │ │ │ │ │ └── index.py │ │ │ │ ├── PollFacebookLoginCompletion │ │ │ │ │ └── index.py │ │ │ │ └── RetrieveFacebookTokens │ │ │ │ │ └── index.py │ │ │ ├── main │ │ │ │ ├── EmptyS3BucketOnDelete │ │ │ │ │ └── index.py │ │ │ │ └── RemoveLambdaLayersOnDelete │ │ │ │ │ └── index.py │ │ │ └── usergamedata │ │ │ │ ├── Add │ │ │ │ └── index.py │ │ │ │ ├── BatchDeleteHelper │ │ │ │ └── index.py │ │ │ │ ├── DeleteAll │ │ │ │ └── index.py │ │ │ │ ├── DeleteBundle │ │ │ │ └── index.py │ │ │ │ ├── GetBundle │ │ │ │ └── index.py │ │ │ │ ├── GetItem │ │ │ │ └── index.py │ │ │ │ ├── ListBundles │ │ │ │ └── index.py │ │ │ │ └── UpdateItem │ │ │ │ └── index.py │ │ ├── functionsIntegrationTests │ │ │ ├── __init__.py │ │ │ └── manual_test_helpers │ │ │ │ ├── __init__.py │ │ │ │ ├── call_api_endpoint.py │ │ │ │ └── get_player_id_token.py │ │ ├── functionsTests │ │ │ ├── __init__.py │ │ │ ├── helpers │ │ │ │ ├── __init__.py │ │ │ │ ├── boto3 │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── mock_responses │ │ │ │ │ │ ├── DynamoDB │ │ │ │ │ │ ├── Client.py │ │ │ │ │ │ ├── Paginator.py │ │ │ │ │ │ ├── Table.py │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── shared.py │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ └── exceptions.py │ │ │ │ ├── sample_lambda_events.py │ │ │ │ └── test_helpers │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_boto3 │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_mock_responses │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_exceptions.py │ │ │ ├── test_achievements │ │ │ │ ├── __init__.py │ │ │ │ ├── test_AdminAddAchievements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_AdminDeleteAchievements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_AdminGetAchievements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetAchievement │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetAchievements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ └── test_UpdateAchievements │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ ├── test_gamesaving │ │ │ │ ├── __init__.py │ │ │ │ ├── test_DeleteSaveSlot │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GeneratePreSignedGetURL │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GeneratePreSignedPutURL │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetAllSlotsMetadata │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetSlotMetadata │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ └── test_UpdateSlotMetadata │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ ├── test_identity │ │ │ │ ├── __init__.py │ │ │ │ ├── test_CognitoFbCallbackHandler │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_CognitoGetUser │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_CognitoPostConfirmation │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_CognitoPreSignUp │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_DefaultAuthorizer │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_GenerateFacebookLoginUrl │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ ├── test_PollFacebookLoginCompletion │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ └── test_RetrieveFacebookTokens │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ ├── test_main │ │ │ │ ├── __init__.py │ │ │ │ ├── test_EmptyS3BucketOnDelete │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ │ └── test_RemoveLambdaLayersOnDelete │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── test_index.py │ │ │ └── test_usergamedata │ │ │ │ ├── __init__.py │ │ │ │ ├── test_Add │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_BatchDeleteHelper │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_DeleteAll │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_DeleteBundle │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetBundle │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_GetItem │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ ├── test_ListBundles │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ │ │ └── test_UpdateItem │ │ │ │ ├── __init__.py │ │ │ │ └── test_index.py │ │ ├── layers │ │ │ └── main │ │ │ │ ├── CommonLambdaLayer │ │ │ │ ├── pyproject.toml │ │ │ │ ├── python │ │ │ │ │ └── gamekithelpers │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── crypto.py │ │ │ │ │ │ ├── ddb.py │ │ │ │ │ │ ├── handler_request.py │ │ │ │ │ │ ├── handler_response.py │ │ │ │ │ │ ├── pagination.py │ │ │ │ │ │ ├── s3.py │ │ │ │ │ │ ├── sanitizer.py │ │ │ │ │ │ ├── types.py │ │ │ │ │ │ ├── user_game_play_constants.py │ │ │ │ │ │ └── validation.py │ │ │ │ └── setup.cfg │ │ │ │ ├── CryptoLambdaLayer │ │ │ │ └── python │ │ │ │ │ ├── _cffi_backend.cpython-36m-x86_64-linux-gnu.so │ │ │ │ │ ├── _cffi_backend.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── aws_encryption_sdk-2.3.0.dist-info │ │ │ │ │ ├── INSTALLER │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── REQUESTED │ │ │ │ │ ├── WHEEL │ │ │ │ │ └── top_level.txt │ │ │ │ │ ├── aws_encryption_sdk │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── caches │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── local.py │ │ │ │ │ │ └── null.py │ │ │ │ │ ├── exceptions.py │ │ │ │ │ ├── identifiers.py │ │ │ │ │ ├── internal │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── arn.py │ │ │ │ │ │ ├── crypto │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── authentication.py │ │ │ │ │ │ │ ├── data_keys.py │ │ │ │ │ │ │ ├── elliptic_curve.py │ │ │ │ │ │ │ ├── encryption.py │ │ │ │ │ │ │ ├── iv.py │ │ │ │ │ │ │ └── wrapping_keys.py │ │ │ │ │ │ ├── defaults.py │ │ │ │ │ │ ├── formatting │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── deserialize.py │ │ │ │ │ │ │ ├── encryption_context.py │ │ │ │ │ │ │ └── serialize.py │ │ │ │ │ │ ├── str_ops.py │ │ │ │ │ │ ├── structures.py │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── commitment.py │ │ │ │ │ │ │ ├── signature.py │ │ │ │ │ │ │ └── streams.py │ │ │ │ │ ├── key_providers │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── kms.py │ │ │ │ │ │ └── raw.py │ │ │ │ │ ├── materials_managers │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── caching.py │ │ │ │ │ │ └── default.py │ │ │ │ │ ├── streaming_client.py │ │ │ │ │ └── structures.py │ │ │ │ │ ├── cffi-1.14.5.dist-info │ │ │ │ │ ├── INSTALLER │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── REQUESTED │ │ │ │ │ ├── WHEEL │ │ │ │ │ ├── entry_points.txt │ │ │ │ │ └── top_level.txt │ │ │ │ │ ├── cffi.libs │ │ │ │ │ └── libffi-806b1a9d.so.6.0.4 │ │ │ │ │ ├── cffi │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── _cffi_errors.h │ │ │ │ │ ├── _cffi_include.h │ │ │ │ │ ├── _embedding.h │ │ │ │ │ ├── api.py │ │ │ │ │ ├── backend_ctypes.py │ │ │ │ │ ├── cffi_opcode.py │ │ │ │ │ ├── commontypes.py │ │ │ │ │ ├── cparser.py │ │ │ │ │ ├── error.py │ │ │ │ │ ├── ffiplatform.py │ │ │ │ │ ├── lock.py │ │ │ │ │ ├── model.py │ │ │ │ │ ├── parse_c_type.h │ │ │ │ │ ├── pkgconfig.py │ │ │ │ │ ├── recompiler.py │ │ │ │ │ ├── setuptools_ext.py │ │ │ │ │ ├── vengine_cpy.py │ │ │ │ │ ├── vengine_gen.py │ │ │ │ │ └── verifier.py │ │ │ │ │ ├── cryptography-3.4.7.dist-info │ │ │ │ │ ├── INSTALLER │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── LICENSE.APACHE │ │ │ │ │ ├── LICENSE.BSD │ │ │ │ │ ├── LICENSE.PSF │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── REQUESTED │ │ │ │ │ ├── WHEEL │ │ │ │ │ └── top_level.txt │ │ │ │ │ ├── cryptography │ │ │ │ │ ├── __about__.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── exceptions.py │ │ │ │ │ ├── fernet.py │ │ │ │ │ ├── hazmat │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── _der.py │ │ │ │ │ │ ├── _oid.py │ │ │ │ │ │ ├── _types.py │ │ │ │ │ │ ├── backends │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── interfaces.py │ │ │ │ │ │ │ └── openssl │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── aead.py │ │ │ │ │ │ │ │ ├── backend.py │ │ │ │ │ │ │ │ ├── ciphers.py │ │ │ │ │ │ │ │ ├── cmac.py │ │ │ │ │ │ │ │ ├── decode_asn1.py │ │ │ │ │ │ │ │ ├── dh.py │ │ │ │ │ │ │ │ ├── dsa.py │ │ │ │ │ │ │ │ ├── ec.py │ │ │ │ │ │ │ │ ├── ed25519.py │ │ │ │ │ │ │ │ ├── ed448.py │ │ │ │ │ │ │ │ ├── encode_asn1.py │ │ │ │ │ │ │ │ ├── hashes.py │ │ │ │ │ │ │ │ ├── hmac.py │ │ │ │ │ │ │ │ ├── ocsp.py │ │ │ │ │ │ │ │ ├── poly1305.py │ │ │ │ │ │ │ │ ├── rsa.py │ │ │ │ │ │ │ │ ├── utils.py │ │ │ │ │ │ │ │ ├── x25519.py │ │ │ │ │ │ │ │ ├── x448.py │ │ │ │ │ │ │ │ └── x509.py │ │ │ │ │ │ ├── bindings │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── _openssl.abi3.so │ │ │ │ │ │ │ ├── _openssl.pyd │ │ │ │ │ │ │ ├── _openssl.pypy37-pp73-x86_64-linux-gnu.so │ │ │ │ │ │ │ ├── _padding.abi3.so │ │ │ │ │ │ │ ├── _padding.pyd │ │ │ │ │ │ │ ├── _padding.pypy37-pp73-x86_64-linux-gnu.so │ │ │ │ │ │ │ ├── _rust.abi3.so │ │ │ │ │ │ │ ├── _rust.pyd │ │ │ │ │ │ │ ├── _rust.pypy37-pp73-x86_64-linux-gnu.so │ │ │ │ │ │ │ └── openssl │ │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ │ ├── _conditional.py │ │ │ │ │ │ │ │ └── binding.py │ │ │ │ │ │ └── primitives │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── _asymmetric.py │ │ │ │ │ │ │ ├── _cipheralgorithm.py │ │ │ │ │ │ │ ├── _serialization.py │ │ │ │ │ │ │ ├── asymmetric │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── dh.py │ │ │ │ │ │ │ ├── dsa.py │ │ │ │ │ │ │ ├── ec.py │ │ │ │ │ │ │ ├── ed25519.py │ │ │ │ │ │ │ ├── ed448.py │ │ │ │ │ │ │ ├── padding.py │ │ │ │ │ │ │ ├── rsa.py │ │ │ │ │ │ │ ├── utils.py │ │ │ │ │ │ │ ├── x25519.py │ │ │ │ │ │ │ └── x448.py │ │ │ │ │ │ │ ├── ciphers │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── aead.py │ │ │ │ │ │ │ ├── algorithms.py │ │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ │ └── modes.py │ │ │ │ │ │ │ ├── cmac.py │ │ │ │ │ │ │ ├── constant_time.py │ │ │ │ │ │ │ ├── hashes.py │ │ │ │ │ │ │ ├── hmac.py │ │ │ │ │ │ │ ├── kdf │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── concatkdf.py │ │ │ │ │ │ │ ├── hkdf.py │ │ │ │ │ │ │ ├── kbkdf.py │ │ │ │ │ │ │ ├── pbkdf2.py │ │ │ │ │ │ │ ├── scrypt.py │ │ │ │ │ │ │ └── x963kdf.py │ │ │ │ │ │ │ ├── keywrap.py │ │ │ │ │ │ │ ├── padding.py │ │ │ │ │ │ │ ├── poly1305.py │ │ │ │ │ │ │ ├── serialization │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ │ ├── pkcs12.py │ │ │ │ │ │ │ ├── pkcs7.py │ │ │ │ │ │ │ └── ssh.py │ │ │ │ │ │ │ └── twofactor │ │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ │ ├── hotp.py │ │ │ │ │ │ │ ├── totp.py │ │ │ │ │ │ │ └── utils.py │ │ │ │ │ ├── py.typed │ │ │ │ │ ├── utils.py │ │ │ │ │ └── x509 │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── certificate_transparency.py │ │ │ │ │ │ ├── extensions.py │ │ │ │ │ │ ├── general_name.py │ │ │ │ │ │ ├── name.py │ │ │ │ │ │ ├── ocsp.py │ │ │ │ │ │ └── oid.py │ │ │ │ │ ├── jose │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── backends │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── _asn1.py │ │ │ │ │ │ ├── base.py │ │ │ │ │ │ ├── cryptography_backend.py │ │ │ │ │ │ ├── ecdsa_backend.py │ │ │ │ │ │ ├── native.py │ │ │ │ │ │ └── rsa_backend.py │ │ │ │ │ ├── constants.py │ │ │ │ │ ├── exceptions.py │ │ │ │ │ ├── jwe.py │ │ │ │ │ ├── jwk.py │ │ │ │ │ ├── jws.py │ │ │ │ │ ├── jwt.py │ │ │ │ │ └── utils.py │ │ │ │ │ ├── pyOpenSSL-20.0.1.dist-info │ │ │ │ │ ├── INSTALLER │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── REQUESTED │ │ │ │ │ ├── WHEEL │ │ │ │ │ └── top_level.txt │ │ │ │ │ ├── pycparser-2.20.dist-info │ │ │ │ │ ├── INSTALLER │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── WHEEL │ │ │ │ │ └── top_level.txt │ │ │ │ │ ├── pycparser │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── _ast_gen.py │ │ │ │ │ ├── _build_tables.py │ │ │ │ │ ├── _c_ast.cfg │ │ │ │ │ ├── ast_transforms.py │ │ │ │ │ ├── c_ast.py │ │ │ │ │ ├── c_generator.py │ │ │ │ │ ├── c_lexer.py │ │ │ │ │ ├── c_parser.py │ │ │ │ │ ├── lextab.py │ │ │ │ │ ├── ply │ │ │ │ │ │ ├── __init__.py │ │ │ │ │ │ ├── cpp.py │ │ │ │ │ │ ├── ctokens.py │ │ │ │ │ │ ├── lex.py │ │ │ │ │ │ ├── yacc.py │ │ │ │ │ │ └── ygen.py │ │ │ │ │ ├── plyparser.py │ │ │ │ │ └── yacctab.py │ │ │ │ │ └── python_jose-3.3.0.dist-info │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── WHEEL │ │ │ │ │ └── top_level.txt │ │ │ │ ├── ImageProcessingLambdaLayer │ │ │ │ └── python │ │ │ │ │ ├── PIL │ │ │ │ │ ├── BdfFontFile.py │ │ │ │ │ ├── BlpImagePlugin.py │ │ │ │ │ ├── BmpImagePlugin.py │ │ │ │ │ ├── BufrStubImagePlugin.py │ │ │ │ │ ├── ContainerIO.py │ │ │ │ │ ├── CurImagePlugin.py │ │ │ │ │ ├── DcxImagePlugin.py │ │ │ │ │ ├── DdsImagePlugin.py │ │ │ │ │ ├── EpsImagePlugin.py │ │ │ │ │ ├── ExifTags.py │ │ │ │ │ ├── FitsStubImagePlugin.py │ │ │ │ │ ├── FliImagePlugin.py │ │ │ │ │ ├── FontFile.py │ │ │ │ │ ├── FpxImagePlugin.py │ │ │ │ │ ├── FtexImagePlugin.py │ │ │ │ │ ├── GbrImagePlugin.py │ │ │ │ │ ├── GdImageFile.py │ │ │ │ │ ├── GifImagePlugin.py │ │ │ │ │ ├── GimpGradientFile.py │ │ │ │ │ ├── GimpPaletteFile.py │ │ │ │ │ ├── GribStubImagePlugin.py │ │ │ │ │ ├── Hdf5StubImagePlugin.py │ │ │ │ │ ├── IcnsImagePlugin.py │ │ │ │ │ ├── IcoImagePlugin.py │ │ │ │ │ ├── ImImagePlugin.py │ │ │ │ │ ├── Image.py │ │ │ │ │ ├── ImageChops.py │ │ │ │ │ ├── ImageCms.py │ │ │ │ │ ├── ImageColor.py │ │ │ │ │ ├── ImageDraw.py │ │ │ │ │ ├── ImageDraw2.py │ │ │ │ │ ├── ImageEnhance.py │ │ │ │ │ ├── ImageFile.py │ │ │ │ │ ├── ImageFilter.py │ │ │ │ │ ├── ImageFont.py │ │ │ │ │ ├── ImageGrab.py │ │ │ │ │ ├── ImageMath.py │ │ │ │ │ ├── ImageMode.py │ │ │ │ │ ├── ImageMorph.py │ │ │ │ │ ├── ImageOps.py │ │ │ │ │ ├── ImagePalette.py │ │ │ │ │ ├── ImagePath.py │ │ │ │ │ ├── ImageQt.py │ │ │ │ │ ├── ImageSequence.py │ │ │ │ │ ├── ImageShow.py │ │ │ │ │ ├── ImageStat.py │ │ │ │ │ ├── ImageTk.py │ │ │ │ │ ├── ImageTransform.py │ │ │ │ │ ├── ImageWin.py │ │ │ │ │ ├── ImtImagePlugin.py │ │ │ │ │ ├── IptcImagePlugin.py │ │ │ │ │ ├── Jpeg2KImagePlugin.py │ │ │ │ │ ├── JpegImagePlugin.py │ │ │ │ │ ├── JpegPresets.py │ │ │ │ │ ├── McIdasImagePlugin.py │ │ │ │ │ ├── MicImagePlugin.py │ │ │ │ │ ├── MpegImagePlugin.py │ │ │ │ │ ├── MpoImagePlugin.py │ │ │ │ │ ├── MspImagePlugin.py │ │ │ │ │ ├── PSDraw.py │ │ │ │ │ ├── PaletteFile.py │ │ │ │ │ ├── PalmImagePlugin.py │ │ │ │ │ ├── PcdImagePlugin.py │ │ │ │ │ ├── PcfFontFile.py │ │ │ │ │ ├── PcxImagePlugin.py │ │ │ │ │ ├── PdfImagePlugin.py │ │ │ │ │ ├── PdfParser.py │ │ │ │ │ ├── PixarImagePlugin.py │ │ │ │ │ ├── PngImagePlugin.py │ │ │ │ │ ├── PpmImagePlugin.py │ │ │ │ │ ├── PsdImagePlugin.py │ │ │ │ │ ├── PyAccess.py │ │ │ │ │ ├── SgiImagePlugin.py │ │ │ │ │ ├── SpiderImagePlugin.py │ │ │ │ │ ├── SunImagePlugin.py │ │ │ │ │ ├── TarIO.py │ │ │ │ │ ├── TgaImagePlugin.py │ │ │ │ │ ├── TiffImagePlugin.py │ │ │ │ │ ├── TiffTags.py │ │ │ │ │ ├── WalImageFile.py │ │ │ │ │ ├── WebPImagePlugin.py │ │ │ │ │ ├── WmfImagePlugin.py │ │ │ │ │ ├── XVThumbImagePlugin.py │ │ │ │ │ ├── XbmImagePlugin.py │ │ │ │ │ ├── XpmImagePlugin.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── __main__.py │ │ │ │ │ ├── _binary.py │ │ │ │ │ ├── _imaging.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _imagingcms.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _imagingft.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _imagingmath.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _imagingmorph.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _imagingtk.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ ├── _tkinter_finder.py │ │ │ │ │ ├── _util.py │ │ │ │ │ ├── _version.py │ │ │ │ │ ├── _webp.cpython-37m-x86_64-linux-gnu.so │ │ │ │ │ └── features.py │ │ │ │ │ ├── Pillow-9.0.1.dist-info │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── METADATA │ │ │ │ │ ├── RECORD │ │ │ │ │ ├── WHEEL │ │ │ │ │ ├── top_level.txt │ │ │ │ │ └── zip-safe │ │ │ │ │ └── Pillow.libs │ │ │ │ │ ├── libXau-00ec42fe.so.6.0.0 │ │ │ │ │ ├── libfreetype-a029e222.so.6.18.1 │ │ │ │ │ ├── libharfbuzz-851aa43c.so.0.30200.0 │ │ │ │ │ ├── libjpeg-62ed1500.so.62.3.0 │ │ │ │ │ ├── liblcms2-5ee890d7.so.2.0.13 │ │ │ │ │ ├── liblzma-d540a118.so.5.2.5 │ │ │ │ │ ├── libopenjp2-430a98fc.so.2.4.0 │ │ │ │ │ ├── libpng16-213e245f.so.16.37.0 │ │ │ │ │ ├── libtiff-8e99fb9e.so.5.7.0 │ │ │ │ │ ├── libwebp-8efe125f.so.7.1.3 │ │ │ │ │ ├── libwebpdemux-016472e8.so.2.0.9 │ │ │ │ │ ├── libwebpmux-5c00cf3e.so.3.0.8 │ │ │ │ │ ├── libxcb-1122e22b.so.1.1.0 │ │ │ │ │ └── libz-dd453c56.so.1.2.11 │ │ │ │ └── ResourceManagementLambdaLayer │ │ │ │ ├── pyproject.toml │ │ │ │ ├── python │ │ │ │ └── gamekitresourcemanagement │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── cfn_custom_resource.py │ │ │ │ └── setup.cfg │ │ ├── layersTests │ │ │ ├── test_CommonLambdaLayer │ │ │ │ ├── __init__.py │ │ │ │ ├── test_cfn_custom_resource.py │ │ │ │ ├── test_handler_request.py │ │ │ │ ├── test_pagination.py │ │ │ │ ├── test_sanitizer.py │ │ │ │ └── test_validation.py │ │ │ └── test_ResourceManagementLambdaLayer │ │ │ │ ├── __init__.py │ │ │ │ └── test_cfn_custom_resource.py │ │ ├── misc │ │ │ ├── achievements │ │ │ │ ├── achievements_template.json │ │ │ │ ├── earned.png │ │ │ │ └── unearned.png │ │ │ └── awsGameKitAwsRegionMappings.yml │ │ ├── policies │ │ │ ├── GameKitDeveloperPolicy_Template.json │ │ │ ├── README.md │ │ │ ├── create_IAM_user.py │ │ │ ├── generate_policy_instance.py │ │ │ └── requirements.txt │ │ ├── requirements.txt │ │ └── tools │ │ │ ├── delete_policy.json │ │ │ ├── gamekit_cleanup.py │ │ │ └── requirements.txt │ ├── documentation │ │ └── documentation.ini │ └── icons │ │ ├── cloud.png │ │ ├── error.png │ │ ├── external.png │ │ ├── garbage.png │ │ ├── refresh.png │ │ ├── success.png │ │ ├── unsynchronized.png │ │ ├── waiting.png │ │ ├── warning.png │ │ ├── warning_16x16.png │ │ ├── warning_inline.png │ │ └── working.png ├── Source │ ├── AwsGameKitCore │ │ ├── AwsGameKitCore.Build.cs │ │ ├── Private │ │ │ ├── AwsGameKitCore.cpp │ │ │ └── Core │ │ │ │ ├── AwsGameKitCoreWrapper.cpp │ │ │ │ ├── AwsGameKitErrorCodes.cpp │ │ │ │ ├── AwsGameKitLibraryWrapper.cpp │ │ │ │ └── Logging.cpp │ │ └── Public │ │ │ ├── AwsGameKitCore.h │ │ │ └── Core │ │ │ ├── AwsGameKitCoreWrapper.h │ │ │ ├── AwsGameKitDispatcher.h │ │ │ ├── AwsGameKitErrorCodes.h │ │ │ ├── AwsGameKitErrors.h │ │ │ ├── AwsGameKitLibraryUtils.h │ │ │ ├── AwsGameKitLibraryWrapper.h │ │ │ ├── AwsGameKitMarshalling.h │ │ │ └── Logging.h │ ├── AwsGameKitEditor │ │ ├── AwsGameKitEditor.Build.cs │ │ ├── Private │ │ │ ├── Achievements │ │ │ │ ├── AwsGameKitAchievementUI.cpp │ │ │ │ ├── AwsGameKitAchievementsAdmin.cpp │ │ │ │ ├── AwsGameKitAchievementsAdminWrapper.cpp │ │ │ │ ├── AwsGameKitAchievementsExamples.cpp │ │ │ │ ├── AwsGameKitAchievementsExamplesLayout.cpp │ │ │ │ ├── AwsGameKitAchievementsLayoutDetails.cpp │ │ │ │ └── EditorAchievementFeatureExample.cpp │ │ │ ├── AwsCredentialsManager.cpp │ │ │ ├── AwsGameKitCredentialsLayoutDetails.cpp │ │ │ ├── AwsGameKitEditor.cpp │ │ │ ├── AwsGameKitFeatureControlCenter.cpp │ │ │ ├── AwsGameKitFeatureLayoutDetails.cpp │ │ │ ├── AwsGameKitSettings.cpp │ │ │ ├── AwsGameKitSettingsLayoutDetails.cpp │ │ │ ├── AwsGameKitStyleSet.cpp │ │ │ ├── EditorState.cpp │ │ │ ├── FeatureResourceManager.cpp │ │ │ ├── GameSaving │ │ │ │ ├── AwsGameKitGameSavingExamples.cpp │ │ │ │ ├── AwsGameKitGameSavingExamplesLayout.cpp │ │ │ │ ├── AwsGameKitGameSavingLayoutDetails.cpp │ │ │ │ └── EditorGameSavingFeatureExample.cpp │ │ │ ├── Identity │ │ │ │ ├── AwsGameKitIdentityExamples.cpp │ │ │ │ ├── AwsGameKitIdentityExamplesLayout.cpp │ │ │ │ ├── AwsGameKitIdentityLayoutDetails.cpp │ │ │ │ └── EditorIdentityFeatureExample.cpp │ │ │ ├── ImageDownloader.cpp │ │ │ ├── UserGameplayData │ │ │ │ ├── AwsGameKitUserGameplayDataExamples.cpp │ │ │ │ ├── AwsGameKitUserGameplayDataExamplesLayout.cpp │ │ │ │ ├── AwsGameKitUserGameplayDataLayoutDetails.cpp │ │ │ │ └── EditorUserGameplayFeatureExample.cpp │ │ │ └── Utils │ │ │ │ └── AwsGameKitDocumentationManager.cpp │ │ └── Public │ │ │ ├── Achievements │ │ │ ├── AwsGameKitAchievementUI.h │ │ │ ├── AwsGameKitAchievementsAdmin.h │ │ │ ├── AwsGameKitAchievementsAdminWrapper.h │ │ │ ├── AwsGameKitAchievementsExamples.h │ │ │ ├── AwsGameKitAchievementsExamplesLayout.h │ │ │ ├── AwsGameKitAchievementsLayoutDetails.h │ │ │ └── EditorAchievementFeatureExample.h │ │ │ ├── AwsCredentialsManager.h │ │ │ ├── AwsGameKitCredentialsLayoutDetails.h │ │ │ ├── AwsGameKitEditor.h │ │ │ ├── AwsGameKitFeatureControlCenter.h │ │ │ ├── AwsGameKitFeatureLayoutDetails.h │ │ │ ├── AwsGameKitSettings.h │ │ │ ├── AwsGameKitSettingsLayoutDetails.h │ │ │ ├── AwsGameKitStyleSet.h │ │ │ ├── EditorState.h │ │ │ ├── FeatureResourceManager.h │ │ │ ├── GameSaving │ │ │ ├── AwsGameKitGameSavingExamples.h │ │ │ ├── AwsGameKitGameSavingExamplesLayout.h │ │ │ ├── AwsGameKitGameSavingLayoutDetails.h │ │ │ └── EditorGameSavingFeatureExample.h │ │ │ ├── IGameKitEditorFeatureExample.h │ │ │ ├── Identity │ │ │ ├── AwsGameKitIdentityExamples.h │ │ │ ├── AwsGameKitIdentityExamplesLayout.h │ │ │ ├── AwsGameKitIdentityLayoutDetails.h │ │ │ └── EditorIdentityFeatureExample.h │ │ │ ├── ImageDownloader.h │ │ │ ├── UserGameplayData │ │ │ ├── AwsGameKitUserGameplayDataExamples.h │ │ │ ├── AwsGameKitUserGameplayDataExamplesLayout.h │ │ │ ├── AwsGameKitUserGameplayDataLayoutDetails.h │ │ │ └── EditorUserGameplayFeatureExample.h │ │ │ └── Utils │ │ │ ├── AwsGameKitDocumentationManager.h │ │ │ ├── AwsGameKitEditorUtils.h │ │ │ └── AwsGameKitProjectSettingsUtils.h │ └── AwsGameKitRuntime │ │ ├── AwsGameKitRuntime.Build.cs │ │ ├── Private │ │ ├── Achievements │ │ │ ├── AwsGameKitAchievements.cpp │ │ │ ├── AwsGameKitAchievementsFunctionLibrary.cpp │ │ │ └── AwsGameKitAchievementsWrapper.cpp │ │ ├── AwsGameKitRuntime.cpp │ │ ├── AwsGameKitRuntimeInternalHelpers.h │ │ ├── GameSaving │ │ │ ├── AwsGameKitGameSaving.cpp │ │ │ ├── AwsGameKitGameSavingFunctionLibrary.cpp │ │ │ └── AwsGameKitGameSavingWrapper.cpp │ │ ├── Identity │ │ │ ├── AwsGameKitIdentity.cpp │ │ │ ├── AwsGameKitIdentityFunctionLibrary.cpp │ │ │ └── AwsGameKitIdentityWrapper.cpp │ │ ├── SessionManager │ │ │ ├── AwsGameKitSessionManager.cpp │ │ │ ├── AwsGameKitSessionManagerFunctionLibrary.cpp │ │ │ └── AwsGameKitSessionManagerWrapper.cpp │ │ ├── UserGameplayData │ │ │ ├── AwsGameKitUserGameplayData.cpp │ │ │ ├── AwsGameKitUserGameplayDataFunctionLibrary.cpp │ │ │ ├── AwsGameKitUserGameplayDataStateHandler.cpp │ │ │ └── AwsGameKitUserGameplayDataWrapper.cpp │ │ └── Utils │ │ │ └── Blueprints │ │ │ ├── UAwsGameKitErrorUtils.cpp │ │ │ ├── UAwsGameKitFileUtils.cpp │ │ │ └── UAwsGameKitLifecycleUtils.cpp │ │ └── Public │ │ ├── Achievements │ │ ├── AwsGameKitAchievements.h │ │ ├── AwsGameKitAchievementsFunctionLibrary.h │ │ └── AwsGameKitAchievementsWrapper.h │ │ ├── AwsGameKitRuntime.h │ │ ├── AwsGameKitRuntimePublicHelpers.h │ │ ├── Common │ │ └── AwsGameKitBlueprintCommon.h │ │ ├── GameSaving │ │ ├── AwsGameKitGameSaving.h │ │ ├── AwsGameKitGameSavingFunctionLibrary.h │ │ └── AwsGameKitGameSavingWrapper.h │ │ ├── Identity │ │ ├── AwsGameKitIdentity.h │ │ ├── AwsGameKitIdentityFunctionLibrary.h │ │ └── AwsGameKitIdentityWrapper.h │ │ ├── Models │ │ ├── AwsGameKitAchievementModels.h │ │ ├── AwsGameKitCommonModels.h │ │ ├── AwsGameKitEnumConverter.h │ │ ├── AwsGameKitGameSavingModels.h │ │ ├── AwsGameKitIdentityModels.h │ │ ├── AwsGameKitSessionManagerModels.h │ │ └── AwsGameKitUserGameplayDataModels.h │ │ ├── SessionManager │ │ ├── AwsGameKitSessionManager.h │ │ ├── AwsGameKitSessionManagerFunctionLibrary.h │ │ └── AwsGameKitSessionManagerWrapper.h │ │ ├── UserGameplayData │ │ ├── AwsGameKitUserGameplayData.h │ │ ├── AwsGameKitUserGameplayDataFunctionLibrary.h │ │ ├── AwsGameKitUserGameplayDataStateHandler.h │ │ └── AwsGameKitUserGameplayDataWrapper.h │ │ └── Utils │ │ └── Blueprints │ │ ├── UAwsGameKitErrorUtils.h │ │ ├── UAwsGameKitFileUtils.h │ │ └── UAwsGameKitLifecycleUtils.h └── generate_error_code_blueprint.py ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md └── package_plugin.bat /.gitallowed: -------------------------------------------------------------------------------- 1 | # This file contains "safe" regex patterns that should not be flagged by git-secrets: 2 | # https://github.com/awslabs/git-secrets 3 | 4 | # Example AWS Account ID, used in Python unit tests: 5 | 123456789012 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/unreal-plugin-bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Unreal Plugin Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Logs** 24 | If possible, any output logs captured for when the problem occurred. 25 | 26 | **Screenshots** 27 | If applicable, add screenshots to help explain your problem. 28 | 29 | **Development Environment** 30 | - Version of the AWS GameKit [e.g. 1.1] 31 | - Unreal Editor Version [e.g. 4.27.2] 32 | - IDE and Version [e.g. Visual Studio 2019 16.11.7] 33 | 34 | **Desktop (please complete the following information):** 35 | - OS: [e.g. Windows or Mac] 36 | - Version [e.g. 22] 37 | 38 | **Smartphone (if applicable please complete the following information for each mobile device and mobile OS version you encountered this issue with):** 39 | - Device: [e.g. iPhone6] 40 | - OS: [e.g. iOS8.1] 41 | - Version [e.g. 22] 42 | 43 | **Additional context** 44 | Add any other context about the problem here. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | *.sln 3 | .idea 4 | .DS_Store 5 | 6 | awsGameKitClientConfig.yml 7 | 8 | DefaultEngine.ini 9 | Build/ 10 | Binaries/ 11 | Content/Developers/ 12 | DerivedDataCache/ 13 | Intermediate/ 14 | Libraries/ 15 | Saved/ 16 | plugin_package/ 17 | 18 | AwsGameKitUnrealGame/Plugins/AwsGameKit/Docs/ 19 | AwsGameKitUnrealGame/Plugins/AwsGameKit/Resources/misc/achievements/achievements_local_state.json 20 | -------------------------------------------------------------------------------- /.gkcpp_version: -------------------------------------------------------------------------------- 1 | v2.0.2 2 | -------------------------------------------------------------------------------- /AwsGameKit/AwsGameKit.uplugin: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "Version": 1, 4 | "EngineVersion": "5.0.0", 5 | "VersionName": "1.0", 6 | "FriendlyName": "AWS GameKit", 7 | "Description": "", 8 | "Category": "AWS", 9 | "CreatedBy": "Amazon Web Services Game Tech", 10 | "CreatedByURL": "https://aws.amazon.com/gametech/", 11 | "DocsURL": "", 12 | "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/product/a41f73528b1246be8286e482d7861cf6", 13 | "SupportURL": "", 14 | "CanContainContent": true, 15 | "IsBetaVersion": false, 16 | "IsExperimentalVersion": false, 17 | "Installed": true, 18 | "ExplicitlyLoaded": false, 19 | "Modules": [ 20 | { 21 | "Name": "AwsGameKitCore", 22 | "Type": "Runtime", 23 | "LoadingPhase": "Default", 24 | "WhitelistPlatforms": [ 25 | "Win64", 26 | "Mac", 27 | "IOS", 28 | "Android" 29 | ] 30 | }, 31 | { 32 | "Name": "AwsGameKitRuntime", 33 | "Type": "Runtime", 34 | "LoadingPhase": "Default", 35 | "WhitelistPlatforms": [ 36 | "Win64", 37 | "Mac", 38 | "IOS", 39 | "Android" 40 | ] 41 | }, 42 | { 43 | "Name": "AwsGameKitEditor", 44 | "Type": "Editor", 45 | "LoadingPhase": "Default", 46 | "WhitelistPlatforms": [ 47 | "Win64", 48 | "Mac" 49 | ] 50 | } 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /AwsGameKit/Config/FilterPlugin.ini: -------------------------------------------------------------------------------- 1 | [FilterPlugin] 2 | ; This section lists additional files which will be packaged along with your plugin. Paths should be listed relative to the root plugin directory, and 3 | ; may include "...", "*", and "?" wildcards to match directories, files, and individual characters respectively. 4 | ; 5 | /Libraries/Win64/Debug/*.dll 6 | /Libraries/Win64/Debug/*.pdb 7 | /Libraries/Win64/Release/*.dll 8 | /Libraries/Mac/Debug/*.dylib 9 | /Libraries/Mac/Release/*.dylib 10 | /Libraries/IOS/Debug/*.a 11 | /Libraries/IOS/Debug/boost/*.a 12 | /Libraries/IOS/Debug/curl/*.a 13 | /Libraries/IOS/Debug/nghttp2/*.a 14 | /Libraries/IOS/Debug/openssl/*.a 15 | /Libraries/IOS/Debug/yaml-cpp/*.a 16 | /Libraries/IOS/Release/*.a 17 | /Libraries/IOS/Release/boost/*.a 18 | /Libraries/IOS/Release/curl/*.a 19 | /Libraries/IOS/Release/nghttp2/*.a 20 | /Libraries/IOS/Release/openssl/*.a 21 | /Libraries/IOS/Release/yaml-cpp/*.a 22 | /Libraries/include/*.h 23 | /Libraries/certs/*.pem 24 | /Libraries/include/... 25 | /Docs/... 26 | -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/BP_AwsGameKitAchievementsExamples.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/BP_AwsGameKitAchievementsExamples.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/BP_AwsGameKitAchievementsExamples_UI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/BP_AwsGameKitAchievementsExamples_UI.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/SAchievement.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/SAchievement.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/UAchievement.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/UAchievement.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/WBP_AchievementListViewEntry.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/WBP_AchievementListViewEntry.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Achievements/WBP_AchievementListViewWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Achievements/WBP_AchievementListViewWidget.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/BP_AwsGameKitGameSavingExamples.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/BP_AwsGameKitGameSavingExamples.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/BP_AwsGameKitGameSavingExamplesUI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/BP_AwsGameKitGameSavingExamplesUI.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Close_Icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Close_Icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/GameSavingTestLevel.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/GameSavingTestLevel.umap -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/Close_Icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/Close_Icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/People_Icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/People_Icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/cloud.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/cloud.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/date-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/date-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/load-menu-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/load-menu-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/local-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/local-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/local.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/local.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/metadata-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/metadata-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/save-spinner.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/save-spinner.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/slot-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/slot-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/trash-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/trash-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/Icons/warning.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/Icons/warning.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/People_Icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/People_Icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/SSlot.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/SSlot.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/USlot.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/USlot.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingDeletePopup.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingDeletePopup.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingHandleConflict.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingHandleConflict.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingLoadOptions.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingLoadOptions.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingSaveOptions.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingSaveOptions.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingSlotListViewEntry.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingSlotListViewEntry.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/WBP_GameSavingSlotListViewWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/WBP_GameSavingSlotListViewWidget.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/cloud.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/cloud.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/date-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/date-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/load-menu-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/load-menu-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/local-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/local-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/local.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/local.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/metadata-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/metadata-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/save-spinner.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/save-spinner.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/slot-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/slot-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/trash-icon.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/trash-icon.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/GameSaving/warning.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/GameSaving/warning.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Identity/BP_AwsGameKitIdentityExamples.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Identity/BP_AwsGameKitIdentityExamples.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/Identity/BP_AwsGameKitIdentityExamplesUI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/Identity/BP_AwsGameKitIdentityExamplesUI.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/BP_AwsGameKitUserGameplayDataExamples.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/BP_AwsGameKitUserGameplayDataExamples.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/BP_AwsGameKitUserGameplayDataExamplesUI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/BP_AwsGameKitUserGameplayDataExamplesUI.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/AWSGameKit_UserGameplayData_GM.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/AWSGameKit_UserGameplayData_GM.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/BP_AwsGameKitUserGameplayDataLogin_UI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/BP_AwsGameKitUserGameplayDataLogin_UI.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/BP_AwsGameKitUserGameplayData_HUD.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/BP_AwsGameKitUserGameplayData_HUD.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/FontDataTable.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/FontDataTable.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/Icons/save-spinner.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/Icons/save-spinner.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/billboard.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/billboard.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/ExampleGameResources/billboard_Mat.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/ExampleGameResources/billboard_Mat.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGame.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGame.umap -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGameCharacter.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGameCharacter.uasset -------------------------------------------------------------------------------- /AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGame_BuiltData.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Content/UserGameplayData/GameplayData_ExampleGame_BuiltData.uasset -------------------------------------------------------------------------------- /AwsGameKit/Resources/Icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/Icon128.png -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Need help? 2 | If you have questions, comments, or simply want to engage with the AWS GameKit developer community, please leverage our [issues list](https://github.com/aws/aws-gamekit-cloud-resources/issues) where we actively monitor and respond to developer feedback and concerns. 3 | 4 | ## Report an issue 5 | If you find a bug in the source code or a mistake in the documentation, please submit an issue using the [issue tracker](https://github.com/aws/aws-gamekit-cloud-resources/issues/new). 6 | 7 | Before opening a new issue, please look through the [open issues](https://github.com/aws/aws-gamekit-cloud-resources/issues) to make sure it's not a duplicate. Avoiding duplicates allows our team to spend more time fixing bugs, adding new features, and making AWS GameKit awesome. If you find an existing issue and you have additional information, please add it to that issue. 8 | 9 | The following information will ensure a quick response: 10 | 11 | * **Overview** - provide a brief, but complete, overview of the issue you're encountering. 12 | * **OS and build** - tell us about your operating system and build. 13 | * **Game engine version and build** - tell us about your game engine version and build. 14 | * **Logs** - can you spot the issue in your logs? 15 | * **Related issues** - does a similar issue exist (open or closed)? 16 | 17 | ## Pull requests 18 | We are **not** accepting pull requests or community contributed bug fixes at this time. 19 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/cloudformation/main/dashboard.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | Description: The AWS CloudFormation template for the AWS GameKit Main v1.0.0 Cloudwatch Dashboard 6 | AWSTemplateFormatVersion: 2010-09-09 7 | 8 | Parameters: 9 | GameKitEnv: 10 | Type: String 11 | GameKitGameName: 12 | Type: String 13 | 14 | Resources: 15 | CloudWatchDashboard: 16 | Type: 'AWS::CloudWatch::Dashboard' 17 | Properties: 18 | DashboardName: !Join [ '-', ['GameKit', !Ref GameKitEnv, !Ref "AWS::Region", 'main'] ] 19 | DashboardBody: !Sub 20 | - > 21 | { 22 | "widgets": [ 23 | { 24 | "type": "text", 25 | "x": 0, 26 | "y": 0, 27 | "width": 6, 28 | "height": 6, 29 | "properties": { 30 | "markdown": "PUT IN A REAL DASHBOARD" 31 | } 32 | } 33 | ] 34 | } 35 | - env: !Ref GameKitEnv 36 | gamename: !Ref GameKitGameName -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/cloudformation/main/parameters.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | GameKitEnv: 6 | value: {{AWSGAMEKIT::SYS::ENV}} 7 | GameKitBase36AwsAccountId: 8 | value: {{AWSGAMEKIT::SYS::BASE36AWSACCOUNTID}} 9 | GameKitShortAwsRegionCode: 10 | value: {{AWSGAMEKIT::SYS::SHORTREGIONCODE}} 11 | GameKitApiName: 12 | value: "gamekit_{{AWSGAMEKIT::SYS::ENV}}_{{AWSGAMEKIT::SYS::GAMENAME}}_main" 13 | GameKitGameName: 14 | value: {{AWSGAMEKIT::SYS::GAMENAME}} 15 | EmptyS3BucketOnDeleteLambdaName: 16 | value: "EmptyS3BucketOnDelete" 17 | EmptyS3BucketOnDeleteLambdaRoleName: 18 | value: "gamekit_{{AWSGAMEKIT::SYS::ENV}}_{{AWSGAMEKIT::SYS::SHORTREGIONCODE}}_{{AWSGAMEKIT::SYS::GAMENAME}}_EmptyS3BucketOnDeleteRole" 19 | RemoveLambdaLayersOnDeleteLambdaName: 20 | value: "RemoveLambdaLayersOnDelete" 21 | RemoveLambdaLayersOnDeleteLambdaRoleName: 22 | value: "gamekit_{{AWSGAMEKIT::SYS::ENV}}_{{AWSGAMEKIT::SYS::SHORTREGIONCODE}}_{{AWSGAMEKIT::SYS::GAMENAME}}_RemoveLambdaLayersOnDelete" 23 | ApiGatewayLoggingRoleName: 24 | value: "gamekit_{{AWSGAMEKIT::SYS::ENV}}_{{AWSGAMEKIT::SYS::SHORTREGIONCODE}}_{{AWSGAMEKIT::SYS::GAMENAME}}_ApiGatewayLoggingRole" 25 | CWLoggingEnabled: 26 | value: true 27 | LambdaFunctionsReplacementID: 28 | value: "GAMEKIT_LAMBDA_FUNCTIONS_REPLACEMENT_ID_main_{{AWSGAMEKIT::SYS::GAMENAME}}_{{AWSGAMEKIT::SYS::ENV}}" 29 | LambdaLayerARNResourceManagementLambdaLayer: 30 | value: "GAMEKIT_LAMBDA_LAYER_ARN_main_ResourceManagementLambdaLayer_{{AWSGAMEKIT::SYS::GAMENAME}}_{{AWSGAMEKIT::SYS::ENV}}" 31 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/configOutputs/achievements/clientConfig.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Key/value pairs to be added to the game's client_config.yml file 6 | # These values will be replaced at the end of create/update of 7 | # the feature's CloudFormation stack. 8 | 9 | achievements_api_gateway_base_url: "{{AWSGAMEKIT::CFNOUTPUT::AchievementsApiGatewayBaseUrl}}" 10 | achievements_region: "{{AWSGAMEKIT::CFNOUTPUT::AchievementsRegion}}" 11 | achievements_icons_base_url: "{{AWSGAMEKIT::CFNOUTPUT::AchievementsIconsCloudFrontBaseUrl}}" 12 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/configOutputs/gamesaving/clientConfig.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Key/value pairs to be added to the game's client_config.yml file 6 | # These values will be replaced at the end of create/update of 7 | # the feature's CloudFormation stack. 8 | 9 | gamesaving_api_gateway_base_url: "{{AWSGAMEKIT::CFNOUTPUT::GameSavingApiGatewayBaseUrl}}" 10 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/configOutputs/identity/clientConfig.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Key/value pairs to be added to the game's client_config.yml file 6 | # These values will be replaced at the end of create/update of 7 | # the feature's CloudFormation stack. 8 | 9 | user_pool_client_id: "{{AWSGAMEKIT::CFNOUTPUT::GameKitUserPoolClientId}}" 10 | identity_api_gateway_base_url: "{{AWSGAMEKIT::CFNOUTPUT::IdentityApiGatewayBaseUrl}}" 11 | identity_region: "{{AWSGAMEKIT::CFNOUTPUT::IdentityRegion}}" 12 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/configOutputs/usergamedata/clientConfig.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | # SPDX-License-Identifier: Apache-2.0 4 | 5 | # Key/value pairs to be added to the game's client_config.yml file 6 | # These values will be replaced at the end of create/update of 7 | # the feature's CloudFormation stack. 8 | 9 | usergamedata_api_gateway_base_url: "{{AWSGAMEKIT::CFNOUTPUT::UserGameDataApiGatewayBaseUrl}}" 10 | usergamedata_region: "{{AWSGAMEKIT::CFNOUTPUT::UserGameDataRegion}}" 11 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/continuous-integration/.version: -------------------------------------------------------------------------------- 1 | v1.0.0 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/continuous-integration/Windows/upload_to_s3.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import logging 3 | import pathlib 4 | import re 5 | import shutil 6 | import sys 7 | import tempfile 8 | 9 | import boto3 10 | 11 | def get_version(version_path): 12 | with open(version_path, 'r') as v: 13 | version = v.read().strip() 14 | 15 | version_regex = "v(\d+)\.(\d+)\.(\d+)" 16 | match = re.match(version_regex, version) 17 | 18 | if match: 19 | return version 20 | logging.error(f"Does not match version pattern vX.X.X .. got {version} instead.") 21 | sys.exit(2) 22 | 23 | if __name__ == "__main__": 24 | parser = argparse.ArgumentParser(description="Builds Aws GameKit Sdk and publishes it to github and uploads to s3.") 25 | parser.add_argument("--s3_bucket", required=True, help="Bucket where artifact should be output to.") 26 | args = parser.parse_args() 27 | 28 | logging.basicConfig(level=logging.INFO) 29 | script_path = pathlib.Path(__file__).absolute() 30 | repository_root = script_path.parents[2] 31 | 32 | version = get_version(script_path.parents[1] / ".version") 33 | 34 | tmp_dir = tempfile.TemporaryDirectory().name 35 | shutil.copytree(repository_root, pathlib.Path(tmp_dir), dirs_exist_ok=True) 36 | logging.info("Zipping up artifact ...") 37 | shutil.make_archive(tmp_dir, "zip", tmp_dir) 38 | logging.info("Artifact zipped.") 39 | s3_client = boto3.client('s3', region_name='us-west-2') 40 | s3_client.put_object(Bucket=args.s3_bucket, Key=version + ".zip", Body=open(f'{tmp_dir}.zip', 'rb')) -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functions/identity/CognitoGetUser/index.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | import botocore 5 | from gamekithelpers import handler_request, handler_response, ddb 6 | import os 7 | 8 | ddb_table = ddb.get_table(os.environ.get('IDENTITY_TABLE_NAME')) 9 | 10 | 11 | def lambda_handler(event, context): 12 | handler_request.log_event(event) 13 | gk_user_id = handler_request.get_player_id(event) 14 | if not gk_user_id: 15 | return handler_response.response_envelope(401) 16 | 17 | try: 18 | response = ddb_table.get_item(**ddb.get_item_request_param({'gk_user_id': gk_user_id})) 19 | except botocore.exceptions.ClientError as err: 20 | print(f"Error getting item: {gk_user_id}. Error: {err}") 21 | raise err 22 | 23 | desired_fields = ["updated_at", "created_at", "gk_user_id", 24 | "facebook_external_id", "facebook_ref_id", 25 | "user_name"] 26 | 27 | filtered_response = {} 28 | for k, v in response["Item"].items(): 29 | if k in desired_fields: 30 | # ignore type in dynamo response cast value to string 31 | filtered_response[k] = v 32 | 33 | return handler_response.response_envelope(200, None, filtered_response) 34 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functions/identity/JwksRefresh/index.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | """ 5 | Purpose 6 | 7 | This retrieves the JSON Web Key Set (JWKS) from the configured source 8 | """ 9 | 10 | 11 | import boto3 12 | import botocore 13 | import logging 14 | import os 15 | from urllib.request import urlopen 16 | 17 | logger = logging.getLogger() 18 | logger.setLevel(logging.INFO) 19 | secrets_manager_client = boto3.client('secretsmanager') 20 | 21 | 22 | def lambda_handler(event, context): 23 | """ 24 | This is the lambda function handler. 25 | """ 26 | 27 | # Download JWKS file 28 | with urlopen(os.environ.get('JWKS_THIRDPARTY_URI')) as f: 29 | jwks = f.read().decode('utf-8') 30 | 31 | # Store JWKS contents in Secrets Manager 32 | secret_name = os.environ.get('JWKS_SECRET_NAME') 33 | try: 34 | secrets = secrets_manager_client.list_secrets( 35 | Filters=[ { 'Key': 'name', 'Values': [secret_name] } ] 36 | ) 37 | 38 | if len(secrets['SecretList']) > 0: 39 | logger.info(f"Updating secret {secret_name}.") 40 | secrets_manager_client.put_secret_value( 41 | SecretId=secret_name, 42 | SecretString=jwks 43 | ) 44 | else: 45 | logger.info(f"Creating secret {secret_name}.") 46 | secrets_manager_client.create_secret( 47 | Name=secret_name, 48 | SecretString=jwks 49 | ) 50 | 51 | except botocore.exceptions.ClientError as err: 52 | logger.error(f"Error storing secret {secret_name}. Error: {err}") 53 | raise err 54 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functions/usergamedata/BatchDeleteHelper/index.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | """ 5 | Helper Lambda function for asynchronous calling batch_write from the DeleteAll Lambda. 6 | Please refer to the UserGameplay Cloudformation file to increase the number of concurrent BatchDeleteHelper Lambdas 7 | https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html 8 | """ 9 | 10 | import boto3 11 | import botocore 12 | import logging 13 | 14 | logger = logging.getLogger() 15 | logger.setLevel(logging.INFO) 16 | 17 | ddb_resource = boto3.resource('dynamodb') 18 | 19 | 20 | def lambda_handler(event, context): 21 | params = { 22 | 'RequestItems': { 23 | event['TableName']: event['DeleteRequest'] 24 | } 25 | } 26 | try: 27 | ddb_resource.batch_write_item(**params) 28 | except botocore.exceptions.ClientError as err: 29 | logger.error(f"Error calling batch_write_item. Error: {err}") 30 | raise err 31 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsIntegrationTests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsIntegrationTests/manual_test_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/boto3/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/boto3/mock_responses/DynamoDB/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/boto3/mock_responses/DynamoDB/shared.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | from typing import Dict, Any 5 | 6 | 7 | def get_response_metadata() -> Dict[str, Any]: 8 | """ 9 | Get a sample "ResponseMetadata" object. 10 | 11 | All DynamoDB APIs include the key 'ResponseMetadata' in their API response. The metadata looks like this: 12 | """ 13 | return { 14 | 'RequestId': '5LAM4TN08CAOH89NC7HNQE4567VV4KQNSO5AEMVJF66Q9ASUAAJG', 15 | 'HTTPStatusCode': 200, 16 | 'HTTPHeaders': { 17 | 'server': 'Server', 18 | 'date': 'Wed, 28 Jul 2021 21:05:35 GMT', 19 | 'content-type': 'application/x-amz-json-1.0', 20 | 'content-length': '167', 21 | 'connection': 'keep-alive', 22 | 'x-amzn-requestid': '5LAM4TN08CAOH89NC7HNQE4567VV4KQNSO5AEMVJF66Q9ASUAAJG', 23 | 'x-amz-crc32': '1788032195' 24 | }, 25 | 'RetryAttempts': 0 26 | } 27 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/boto3/mock_responses/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/boto3/mock_responses/exceptions.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | import botocore 5 | 6 | 7 | def new_boto_exception(exception_constructor): 8 | """ 9 | Get a new boto3 exception of the specified type with a mock exception message. 10 | 11 | The mock exception message will look like this: 12 | >>> 'An error occurred (MockError) when calling the MockOperation operation: mock message' 13 | 14 | Example (different exception types): 15 | >>> import botocore 16 | >>> new_boto_exception(botocore.exceptions.ClientError) 17 | >>> 18 | >>> import boto3 19 | >>> ddb_client = boto3.client('dynamodb') 20 | >>> new_boto_exception(ddb_client.exceptions.ConditionalCheckFailedException) 21 | 22 | Example (inside a unit test): 23 | >>> from unittest.mock import patch, MagicMock 24 | >>> from functionsTests.helpers.boto3.mock_responses.exceptions import new_boto_exception 25 | >>> 26 | >>> @patch('path.to.test.file.boto3') 27 | >>> def test_can_handle_error_gracefully(self, mock_boto3: MagicMock): 28 | >>> # Arrange 29 | >>> mock_boto3.client('kms').generate_data_key.side_effect = new_boto_exception(botocore.exceptions.ClientError) 30 | >>> 31 | >>> # ... etc. 32 | """ 33 | return exception_constructor( 34 | operation_name='MockOperation', 35 | error_response={ 36 | 'Error': { 37 | 'Code': 'MockError', 38 | 'Message': 'mock message' 39 | } 40 | } 41 | ) 42 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/test_helpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/test_helpers/test_boto3/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/test_helpers/test_boto3/test_mock_responses/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/helpers/test_helpers/test_boto3/test_mock_responses/test_exceptions.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | import os 5 | from unittest import TestCase 6 | from unittest.mock import patch 7 | 8 | import boto3 9 | import botocore 10 | 11 | from functionsTests.helpers.boto3.mock_responses.exceptions import new_boto_exception 12 | 13 | 14 | class TestBoto3Helper(TestCase): 15 | 16 | def test_can_create_botocore_client_error_successfully(self): 17 | # Arrange 18 | exception_constructor = botocore.exceptions.ClientError 19 | 20 | # Act 21 | exception = new_boto_exception(exception_constructor) 22 | 23 | # Assert 24 | self.assertIsNotNone(exception) 25 | 26 | # Patch the location boto3 looks for the AWS credentials file to a fake location so this test is not dependent on 27 | # the users existing file, as it can be malformed. Also, patch default AWS region so 'ddb_client' can be created 28 | # since there is no AWS credentials file or AWS configuration file. 29 | # See: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration 30 | @patch.dict(os.environ, {'AWS_SHARED_CREDENTIALS_FILE': './fakePath', 31 | 'AWS_DEFAULT_REGION': 'us-west-2'}) 32 | def test_can_create_dynamodb_error_successfully(self): 33 | # Arrange 34 | ddb_client = boto3.client('dynamodb') 35 | exception_constructor = ddb_client.exceptions.ConditionalCheckFailedException 36 | 37 | # Act 38 | exception = new_boto_exception(exception_constructor) 39 | 40 | # Assert 41 | self.assertIsNotNone(exception) 42 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/__init__.py -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_AdminAddAchievements/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_AdminDeleteAchievements/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_AdminGetAchievements/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_GetAchievement/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_GetAchievements/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_achievements/test_UpdateAchievements/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_DeleteSaveSlot/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_GeneratePreSignedGetURL/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_GeneratePreSignedPutURL/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_GetAllSlotsMetadata/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_GetSlotMetadata/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_gamesaving/test_UpdateSlotMetadata/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_CognitoFbCallbackHandler/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_CognitoGetUser/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_CognitoPostConfirmation/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_CognitoPreSignUp/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_DefaultAuthorizer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_GenerateFacebookLoginUrl/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_PollFacebookLoginCompletion/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_identity/test_RetrieveFacebookTokens/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_main/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_main/test_EmptyS3BucketOnDelete/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_main/test_RemoveLambdaLayersOnDelete/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/functionsTests/test_main/test_RemoveLambdaLayersOnDelete/__init__.py -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_Add/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_BatchDeleteHelper/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_BatchDeleteHelper/test_index.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | from unittest import TestCase 5 | from unittest.mock import patch, call, MagicMock 6 | 7 | with patch("boto3.resource") as boto_resource_mock: 8 | from functions.usergamedata.BatchDeleteHelper import index 9 | 10 | 11 | def _build_batch_delete_helper_event(): 12 | return { 13 | 'TableName': 'test_bundleitems_table', 14 | 'DeleteRequest': [ 15 | {'DeleteRequest': {'Key': {'player_id_bundle': '12345678-1234-1234-1234-123456789012_BANANA_BUNDLE', 16 | 'bundle_item_key': 'SCORE1'}}}, 17 | {'DeleteRequest': {'Key': {'player_id_bundle': '12345678-1234-1234-1234-123456789012_BANANA_BUNDLE', 18 | 'bundle_item_key': 'SCORE2'}}} 19 | ] 20 | } 21 | 22 | 23 | class TestGetItem(TestCase): 24 | def setUp(self): 25 | index.ddb_resource = MagicMock() 26 | 27 | def test_batch_delete_helper_event_calls_batch_write_item(self): 28 | test_event = _build_batch_delete_helper_event() 29 | 30 | index.lambda_handler(test_event, None) 31 | 32 | index.ddb_resource.batch_write_item.assert_called_once_with( 33 | RequestItems={'test_bundleitems_table': [ 34 | {'DeleteRequest': 35 | {'Key': {'player_id_bundle': '12345678-1234-1234-1234-123456789012_BANANA_BUNDLE', 36 | 'bundle_item_key': 'SCORE1'}}}, 37 | {'DeleteRequest': 38 | {'Key': {'player_id_bundle': '12345678-1234-1234-1234-123456789012_BANANA_BUNDLE', 39 | 'bundle_item_key': 'SCORE2'}}}]}) 40 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_DeleteAll/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_DeleteBundle/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_GetBundle/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_GetItem/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_ListBundles/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/functionsTests/test_usergamedata/test_UpdateItem/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | build-backend = "setuptools.build_meta" -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/pagination.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | import hmac 5 | import json 6 | 7 | from base64 import b64encode, b64decode 8 | from hashlib import sha256 9 | from time import time 10 | 11 | def validate_pagination_token(player_id: str = None, 12 | next_start_key: dict = None, 13 | pagination_token: str = None) -> bool: 14 | """ 15 | Calculate the HMAC pagination token and verify it matches 16 | what the player sent up in their request. 17 | """ 18 | if pagination_token is None: 19 | return False 20 | 21 | digest, expires_at = b64decode(pagination_token).decode().split(":") 22 | now = time() 23 | if now > int(expires_at): 24 | logger.warning("{} tried to use pagination token after expiration".format(player_id)) 25 | return False 26 | return digest == generate_hmac(player_id, next_start_key, expires_at) 27 | 28 | 29 | def generate_hmac(key: str = None, data: dict = None, expires_at: int = 0) -> str: 30 | byte_key = key.encode() 31 | message = "".join([json.dumps(data), "1.0.0", str(expires_at)]) 32 | byte_msg = message.encode() 33 | return hmac.new(byte_key, byte_msg, sha256).hexdigest().upper() 34 | 35 | 36 | def generate_pagination_token(key: str = "", start_key: dict = None) -> str: 37 | # Expires 5 minutes from now 38 | expires_at = int(time() + 300) 39 | digest = generate_hmac(key, start_key, expires_at) 40 | token = ":".join([digest, str(expires_at)]).encode() 41 | # b64encode gets us bytes, 42 | # .decode() gets us a string 43 | return b64encode(token).decode() 44 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/sanitizer.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | import re 5 | 6 | 7 | _invalid_pattern = re.compile('<[\s]*(img|a|script|link|/img|/a|/script|/link)[^>]*>', re.IGNORECASE) 8 | _all_tags_regex = re.compile('<[^>]*>') 9 | 10 | 11 | def sanitize(text, new_value=''): 12 | """ 13 | Removes HTML tags that can be executed, used to download from or link to external resources. 14 | """ 15 | 16 | # if input type is anything but string, return as-is 17 | # not enforcing type in parameters since we don't want this to fail with a non string type 18 | if not isinstance(text, str): 19 | return text 20 | 21 | temp = text 22 | 23 | # First use a regular expression that matches ALL tags with or without attributes, white space, 24 | # dashes, slash, etc... 25 | for match in re.finditer(_all_tags_regex, text): 26 | matched_str = match.group(0) 27 | 28 | # Now match and replace the invalid tags pattern 29 | if re.search(_invalid_pattern, matched_str): 30 | temp = temp.replace(matched_str, new_value) 31 | 32 | return temp 33 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/types.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | """ 5 | Type annotations for custom data types. 6 | """ 7 | 8 | from typing import Union, Dict, List 9 | 10 | 11 | # As defined by: https://docs.python.org/3/library/json.html#py-to-json-table 12 | JsonObject = Union[ 13 | Dict[str, 'JsonObject'], 14 | List['JsonObject'], 15 | str, 16 | int, 17 | float, 18 | bool, 19 | None 20 | ] 21 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/user_game_play_constants.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | """ 5 | Shared constants used in the User Gameplay Data service 6 | """ 7 | 8 | BUNDLE_NAME_MAX_LENGTH = 255 9 | BUNDLE_ITEM_NAME_MAX_LENGTH = 255 10 | BUNDLE_ITEM_VALUE_MAX_LENGTH = 1024 11 | DYNAMO_MAX_ITEM_WRITES = 25 12 | QUERYSTRING_MAX_LENGTH = 1024 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/python/gamekithelpers/validation.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | """ 5 | Helper functions for validating objects. 6 | """ 7 | 8 | import re 9 | 10 | # Constraints 11 | MAX_PRIMARY_IDENTIFIER_CHARS = 512 12 | MIN_PRIMARY_IDENTIFIER_CHARS = 1 13 | 14 | primary_identifier_regex = re.compile('^([a-zA-Z0-9-_.]+)$') 15 | base_64_regex = re.compile('^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$') 16 | 17 | 18 | def is_valid_primary_identifier(identifier: str) -> bool: 19 | """ 20 | Returns true if the input string is a valid primary identifier, false otherwise. 21 | 22 | A primary identifier is a string between 1 and 512 characters long, using alphanumeric characters, dashes (-), 23 | underscores (_), and periods (.). Primary identifiers are safe to use in path parameters without being encoded, 24 | DynamoDB partition and sort keys, and S3 object keys. 25 | """ 26 | if len(identifier) < MIN_PRIMARY_IDENTIFIER_CHARS or len(identifier) > MAX_PRIMARY_IDENTIFIER_CHARS: 27 | return False 28 | return primary_identifier_regex.fullmatch(identifier) is not None 29 | 30 | 31 | def is_valid_base_64(string: str) -> bool: 32 | """ 33 | Returns true if the input is a valid Base64 encoded string. 34 | 35 | :param string: Input string to validate 36 | :return: Whether the input string is a valid Base64 encoded string. 37 | """ 38 | return base_64_regex.fullmatch(string) is not None 39 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CommonLambdaLayer/setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = gamekithelpers 3 | version = 1.0.0 4 | author = AWS Game Tech 5 | description = AWS GameKit Helper Package 6 | 7 | [options] 8 | package_dir = 9 | = python 10 | packages = find: 11 | python_requires = >=3.7 12 | 13 | [options.packages.find] 14 | where = python 15 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/_cffi_backend.cpython-36m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/_cffi_backend.cpython-36m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/_cffi_backend.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/_cffi_backend.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk-2.3.0.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk-2.3.0.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk-2.3.0.dist-info/REQUESTED -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk-2.3.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk-2.3.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | aws_encryption_sdk 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk/internal/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). You 4 | # may not use this file except in compliance with the License. A copy of 5 | # the License is located at 6 | # 7 | # http://aws.amazon.com/apache2.0/ 8 | # 9 | # or in the "license" file accompanying this file. This file is 10 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 11 | # ANY KIND, either express or implied. See the License for the specific 12 | # language governing permissions and limitations under the License. 13 | """Internal Implementation Details 14 | 15 | .. warning:: 16 | No guarantee is provided on the modules and APIs within this 17 | namespace staying consistent. Directly reference at your own risk. 18 | """ 19 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk/internal/crypto/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). You 4 | # may not use this file except in compliance with the License. A copy of 5 | # the License is located at 6 | # 7 | # http://aws.amazon.com/apache2.0/ 8 | # 9 | # or in the "license" file accompanying this file. This file is 10 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 11 | # ANY KIND, either express or implied. See the License for the specific 12 | # language governing permissions and limitations under the License. 13 | """Cryptographic modules.""" 14 | # Backwards compatible import for use by RawMasterKeyProvider implementations. 15 | from .wrapping_keys import WrappingKey # noqa 16 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk/internal/str_ops.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). You 4 | # may not use this file except in compliance with the License. A copy of 5 | # the License is located at 6 | # 7 | # http://aws.amazon.com/apache2.0/ 8 | # 9 | # or in the "license" file accompanying this file. This file is 10 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 11 | # ANY KIND, either express or implied. See the License for the specific 12 | # language governing permissions and limitations under the License. 13 | """Helper functions for consistently obtaining str and bytes objects in both Python2 and Python3.""" 14 | import codecs 15 | 16 | import six 17 | 18 | import aws_encryption_sdk.internal.defaults 19 | 20 | 21 | def to_str(data): 22 | """Takes an input str or bytes object and returns an equivalent str object. 23 | 24 | :param data: Input data 25 | :type data: str or bytes 26 | :returns: Data normalized to str 27 | :rtype: str 28 | """ 29 | if isinstance(data, bytes): 30 | return codecs.decode(data, aws_encryption_sdk.internal.defaults.ENCODING) 31 | return data 32 | 33 | 34 | def to_bytes(data): 35 | """Takes an input str or bytes object and returns an equivalent bytes object. 36 | 37 | :param data: Input data 38 | :type data: str or bytes 39 | :returns: Data normalized to bytes 40 | :rtype: bytes 41 | """ 42 | if isinstance(data, six.string_types) and not isinstance(data, bytes): 43 | return codecs.encode(data, aws_encryption_sdk.internal.defaults.ENCODING) 44 | return data 45 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk/internal/utils/signature.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). You 4 | # may not use this file except in compliance with the License. A copy of 5 | # the License is located at 6 | # 7 | # http://aws.amazon.com/apache2.0/ 8 | # 9 | # or in the "license" file accompanying this file. This file is 10 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 11 | # ANY KIND, either express or implied. See the License for the specific 12 | # language governing permissions and limitations under the License. 13 | """Helper functions for validating signature policies and algorithms for the AWS Encryption SDK.""" 14 | 15 | from enum import Enum 16 | 17 | from aws_encryption_sdk.exceptions import ActionNotAllowedError 18 | 19 | 20 | class SignaturePolicy(Enum): 21 | """Controls algorithm suites that can be used on encryption and decryption.""" 22 | 23 | ALLOW_ENCRYPT_ALLOW_DECRYPT = 0 24 | ALLOW_ENCRYPT_FORBID_DECRYPT = 1 25 | 26 | 27 | def validate_signature_policy_on_decrypt(signature_policy, algorithm): 28 | """Validates that the provided algorithm does not violate the signature policy for a decrypt request.""" 29 | if signature_policy == SignaturePolicy.ALLOW_ENCRYPT_FORBID_DECRYPT and algorithm.is_signing(): 30 | error_message = ( 31 | "Configuration conflict. Cannot decrypt signed message in decrypt-unsigned mode. Algorithm ID was {}. " 32 | ) 33 | raise ActionNotAllowedError(error_message.format(algorithm.algorithm_id)) 34 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/aws_encryption_sdk/key_providers/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"). You 4 | # may not use this file except in compliance with the License. A copy of 5 | # the License is located at 6 | # 7 | # http://aws.amazon.com/apache2.0/ 8 | # 9 | # or in the "license" file accompanying this file. This file is 10 | # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 11 | # ANY KIND, either express or implied. See the License for the specific 12 | # language governing permissions and limitations under the License. 13 | """All provided master key provider and master keys.""" 14 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Except when otherwise stated (look for LICENSE files in directories or 3 | information at the beginning of each file) all software and 4 | documentation is licensed as follows: 5 | 6 | The MIT License 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or 13 | sell copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included 17 | in all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 20 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 22 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 24 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 | DEALINGS IN THE SOFTWARE. 26 | 27 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/METADATA: -------------------------------------------------------------------------------- 1 | Metadata-Version: 2.1 2 | Name: cffi 3 | Version: 1.14.5 4 | Summary: Foreign Function Interface for Python calling C code. 5 | Home-page: http://cffi.readthedocs.org 6 | Author: Armin Rigo, Maciej Fijalkowski 7 | Author-email: python-cffi@googlegroups.com 8 | License: MIT 9 | Platform: UNKNOWN 10 | Classifier: Programming Language :: Python 11 | Classifier: Programming Language :: Python :: 2 12 | Classifier: Programming Language :: Python :: 2.6 13 | Classifier: Programming Language :: Python :: 2.7 14 | Classifier: Programming Language :: Python :: 3 15 | Classifier: Programming Language :: Python :: 3.2 16 | Classifier: Programming Language :: Python :: 3.3 17 | Classifier: Programming Language :: Python :: 3.4 18 | Classifier: Programming Language :: Python :: 3.5 19 | Classifier: Programming Language :: Python :: 3.6 20 | Classifier: Programming Language :: Python :: Implementation :: CPython 21 | Classifier: Programming Language :: Python :: Implementation :: PyPy 22 | Classifier: License :: OSI Approved :: MIT License 23 | Requires-Dist: pycparser 24 | 25 | 26 | CFFI 27 | ==== 28 | 29 | Foreign Function Interface for Python calling C code. 30 | Please see the `Documentation `_. 31 | 32 | Contact 33 | ------- 34 | 35 | `Mailing list `_ 36 | 37 | 38 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/REQUESTED -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: false 4 | Tag: cp37-cp37m-manylinux1_x86_64 5 | 6 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/entry_points.txt: -------------------------------------------------------------------------------- 1 | [distutils.setup_keywords] 2 | cffi_modules = cffi.setuptools_ext:cffi_modules 3 | 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi-1.14.5.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | _cffi_backend 2 | cffi 3 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi.libs/libffi-806b1a9d.so.6.0.4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi.libs/libffi-806b1a9d.so.6.0.4 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['FFI', 'VerificationError', 'VerificationMissing', 'CDefError', 2 | 'FFIError'] 3 | 4 | from .api import FFI 5 | from .error import CDefError, FFIError, VerificationError, VerificationMissing 6 | from .error import PkgConfigError 7 | 8 | __version__ = "1.14.5" 9 | __version_info__ = (1, 14, 5) 10 | 11 | # The verifier module file names are based on the CRC32 of a string that 12 | # contains the following version number. It may be older than __version__ 13 | # if nothing is clearly incompatible. 14 | __version_verifier_modules__ = "0.8.6" 15 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi/error.py: -------------------------------------------------------------------------------- 1 | 2 | class FFIError(Exception): 3 | __module__ = 'cffi' 4 | 5 | class CDefError(Exception): 6 | __module__ = 'cffi' 7 | def __str__(self): 8 | try: 9 | current_decl = self.args[1] 10 | filename = current_decl.coord.file 11 | linenum = current_decl.coord.line 12 | prefix = '%s:%d: ' % (filename, linenum) 13 | except (AttributeError, TypeError, IndexError): 14 | prefix = '' 15 | return '%s%s' % (prefix, self.args[0]) 16 | 17 | class VerificationError(Exception): 18 | """ An error raised when verification fails 19 | """ 20 | __module__ = 'cffi' 21 | 22 | class VerificationMissing(Exception): 23 | """ An error raised when incomplete structures are passed into 24 | cdef, but no verification has been done 25 | """ 26 | __module__ = 'cffi' 27 | 28 | class PkgConfigError(Exception): 29 | """ An error raised for missing modules in pkg-config 30 | """ 31 | __module__ = 'cffi' 32 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cffi/lock.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | if sys.version_info < (3,): 4 | try: 5 | from thread import allocate_lock 6 | except ImportError: 7 | from dummy_thread import allocate_lock 8 | else: 9 | try: 10 | from _thread import allocate_lock 11 | except ImportError: 12 | from _dummy_thread import allocate_lock 13 | 14 | 15 | ##import sys 16 | ##l1 = allocate_lock 17 | 18 | ##class allocate_lock(object): 19 | ## def __init__(self): 20 | ## self._real = l1() 21 | ## def __enter__(self): 22 | ## for i in range(4, 0, -1): 23 | ## print sys._getframe(i).f_code 24 | ## print 25 | ## return self._real.__enter__() 26 | ## def __exit__(self, *args): 27 | ## return self._real.__exit__(*args) 28 | ## def acquire(self, f): 29 | ## assert f is False 30 | ## return self._real.acquire(f) 31 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | This software is made available under the terms of *either* of the licenses 2 | found in LICENSE.APACHE or LICENSE.BSD. Contributions to cryptography are made 3 | under the terms of *both* these licenses. 4 | 5 | The code used in the OS random engine is derived from CPython, and is licensed 6 | under the terms of the PSF License Agreement. 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/LICENSE.BSD: -------------------------------------------------------------------------------- 1 | Copyright (c) Individual contributors. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of PyCA Cryptography nor the names of its contributors 15 | may be used to endorse or promote products derived from this software 16 | without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 25 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/REQUESTED -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: false 4 | Tag: pp37-pypy37_pp73-manylinux2010_x86_64 5 | 6 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography-3.4.7.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | _openssl 2 | _padding 3 | cryptography 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/__about__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | __all__ = [ 7 | "__title__", 8 | "__summary__", 9 | "__uri__", 10 | "__version__", 11 | "__author__", 12 | "__email__", 13 | "__license__", 14 | "__copyright__", 15 | ] 16 | 17 | __title__ = "cryptography" 18 | __summary__ = ( 19 | "cryptography is a package which provides cryptographic recipes" 20 | " and primitives to Python developers." 21 | ) 22 | __uri__ = "https://github.com/pyca/cryptography" 23 | 24 | __version__ = "3.4.7" 25 | 26 | __author__ = "The Python Cryptographic Authority and individual contributors" 27 | __email__ = "cryptography-dev@python.org" 28 | 29 | __license__ = "BSD or Apache License, Version 2.0" 30 | __copyright__ = "Copyright 2013-2021 {}".format(__author__) 31 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | from cryptography.__about__ import ( 7 | __author__, 8 | __copyright__, 9 | __email__, 10 | __license__, 11 | __summary__, 12 | __title__, 13 | __uri__, 14 | __version__, 15 | ) 16 | 17 | 18 | __all__ = [ 19 | "__title__", 20 | "__summary__", 21 | "__uri__", 22 | "__version__", 23 | "__author__", 24 | "__email__", 25 | "__license__", 26 | "__copyright__", 27 | ] 28 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/exceptions.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | from enum import Enum 7 | 8 | 9 | class _Reasons(Enum): 10 | BACKEND_MISSING_INTERFACE = 0 11 | UNSUPPORTED_HASH = 1 12 | UNSUPPORTED_CIPHER = 2 13 | UNSUPPORTED_PADDING = 3 14 | UNSUPPORTED_MGF = 4 15 | UNSUPPORTED_PUBLIC_KEY_ALGORITHM = 5 16 | UNSUPPORTED_ELLIPTIC_CURVE = 6 17 | UNSUPPORTED_SERIALIZATION = 7 18 | UNSUPPORTED_X509 = 8 19 | UNSUPPORTED_EXCHANGE_ALGORITHM = 9 20 | UNSUPPORTED_DIFFIE_HELLMAN = 10 21 | UNSUPPORTED_MAC = 11 22 | 23 | 24 | class UnsupportedAlgorithm(Exception): 25 | def __init__(self, message, reason=None): 26 | super(UnsupportedAlgorithm, self).__init__(message) 27 | self._reason = reason 28 | 29 | 30 | class AlreadyFinalized(Exception): 31 | pass 32 | 33 | 34 | class AlreadyUpdated(Exception): 35 | pass 36 | 37 | 38 | class NotYetFinalized(Exception): 39 | pass 40 | 41 | 42 | class InvalidTag(Exception): 43 | pass 44 | 45 | 46 | class InvalidSignature(Exception): 47 | pass 48 | 49 | 50 | class InternalError(Exception): 51 | def __init__(self, msg, err_code): 52 | super(InternalError, self).__init__(msg) 53 | self.err_code = err_code 54 | 55 | 56 | class InvalidKey(Exception): 57 | pass 58 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | """ 5 | Hazardous Materials 6 | 7 | This is a "Hazardous Materials" module. You should ONLY use it if you're 8 | 100% absolutely sure that you know what you're doing because this module 9 | is full of land mines, dragons, and dinosaurs with laser guns. 10 | """ 11 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/_types.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | import typing 6 | 7 | from cryptography.hazmat.primitives.asymmetric import ( 8 | dsa, 9 | ec, 10 | ed25519, 11 | ed448, 12 | rsa, 13 | ) 14 | 15 | 16 | _PUBLIC_KEY_TYPES = typing.Union[ 17 | dsa.DSAPublicKey, 18 | rsa.RSAPublicKey, 19 | ec.EllipticCurvePublicKey, 20 | ed25519.Ed25519PublicKey, 21 | ed448.Ed448PublicKey, 22 | ] 23 | _PRIVATE_KEY_TYPES = typing.Union[ 24 | ed25519.Ed25519PrivateKey, 25 | ed448.Ed448PrivateKey, 26 | rsa.RSAPrivateKey, 27 | dsa.DSAPrivateKey, 28 | ec.EllipticCurvePrivateKey, 29 | ] 30 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/backends/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | import typing 6 | 7 | _default_backend: typing.Any = None 8 | 9 | 10 | def default_backend(): 11 | global _default_backend 12 | 13 | if _default_backend is None: 14 | from cryptography.hazmat.backends.openssl.backend import backend 15 | 16 | _default_backend = backend 17 | 18 | return _default_backend 19 | 20 | 21 | def _get_backend(backend): 22 | if backend is None: 23 | return default_backend() 24 | else: 25 | return backend 26 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/backends/openssl/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | from cryptography.hazmat.backends.openssl.backend import backend 7 | 8 | 9 | __all__ = ["backend"] 10 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_openssl.abi3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_openssl.abi3.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_openssl.pypy37-pp73-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_openssl.pypy37-pp73-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.abi3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.abi3.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.pyd -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.pypy37-pp73-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_padding.pypy37-pp73-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.abi3.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.abi3.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.pyd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.pyd -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.pypy37-pp73-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/_rust.pypy37-pp73-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/bindings/openssl/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/_asymmetric.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | import abc 6 | 7 | 8 | # This exists to break an import cycle. It is normally accessible from the 9 | # asymmetric padding module. 10 | 11 | 12 | class AsymmetricPadding(metaclass=abc.ABCMeta): 13 | @abc.abstractproperty 14 | def name(self) -> str: 15 | """ 16 | A string naming this padding (e.g. "PSS", "PKCS1"). 17 | """ 18 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/_cipheralgorithm.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | import abc 6 | import typing 7 | 8 | 9 | # This exists to break an import cycle. It is normally accessible from the 10 | # ciphers module. 11 | 12 | 13 | class CipherAlgorithm(metaclass=abc.ABCMeta): 14 | @abc.abstractproperty 15 | def name(self) -> str: 16 | """ 17 | A string naming this mode (e.g. "AES", "Camellia"). 18 | """ 19 | 20 | @abc.abstractproperty 21 | def key_sizes(self) -> typing.FrozenSet[int]: 22 | """ 23 | Valid key sizes for this algorithm in bits 24 | """ 25 | 26 | @abc.abstractproperty 27 | def key_size(self) -> int: 28 | """ 29 | The size of the key being used as an integer in bits (e.g. 128, 256). 30 | """ 31 | 32 | 33 | class BlockCipherAlgorithm(metaclass=abc.ABCMeta): 34 | @abc.abstractproperty 35 | def block_size(self) -> int: 36 | """ 37 | The size of a block as an integer in bits (e.g. 64, 128). 38 | """ 39 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/_serialization.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | import abc 6 | from enum import Enum 7 | 8 | # This exists to break an import cycle. These classes are normally accessible 9 | # from the serialization module. 10 | 11 | 12 | class Encoding(Enum): 13 | PEM = "PEM" 14 | DER = "DER" 15 | OpenSSH = "OpenSSH" 16 | Raw = "Raw" 17 | X962 = "ANSI X9.62" 18 | SMIME = "S/MIME" 19 | 20 | 21 | class PrivateFormat(Enum): 22 | PKCS8 = "PKCS8" 23 | TraditionalOpenSSL = "TraditionalOpenSSL" 24 | Raw = "Raw" 25 | OpenSSH = "OpenSSH" 26 | 27 | 28 | class PublicFormat(Enum): 29 | SubjectPublicKeyInfo = "X.509 subjectPublicKeyInfo with PKCS#1" 30 | PKCS1 = "Raw PKCS#1" 31 | OpenSSH = "OpenSSH" 32 | Raw = "Raw" 33 | CompressedPoint = "X9.62 Compressed Point" 34 | UncompressedPoint = "X9.62 Uncompressed Point" 35 | 36 | 37 | class ParameterFormat(Enum): 38 | PKCS3 = "PKCS3" 39 | 40 | 41 | class KeySerializationEncryption(metaclass=abc.ABCMeta): 42 | pass 43 | 44 | 45 | class BestAvailableEncryption(KeySerializationEncryption): 46 | def __init__(self, password: bytes): 47 | if not isinstance(password, bytes) or len(password) == 0: 48 | raise ValueError("Password must be 1 or more bytes.") 49 | 50 | self.password = password 51 | 52 | 53 | class NoEncryption(KeySerializationEncryption): 54 | pass 55 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/asymmetric/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import abc 7 | 8 | 9 | class AsymmetricSignatureContext(metaclass=abc.ABCMeta): 10 | @abc.abstractmethod 11 | def update(self, data): 12 | """ 13 | Processes the provided bytes and returns nothing. 14 | """ 15 | 16 | @abc.abstractmethod 17 | def finalize(self): 18 | """ 19 | Returns the signature as bytes. 20 | """ 21 | 22 | 23 | class AsymmetricVerificationContext(metaclass=abc.ABCMeta): 24 | @abc.abstractmethod 25 | def update(self, data): 26 | """ 27 | Processes the provided bytes and returns nothing. 28 | """ 29 | 30 | @abc.abstractmethod 31 | def verify(self): 32 | """ 33 | Raises an exception if the bytes provided to update do not match the 34 | signature or the signature does not match the public key. 35 | """ 36 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/asymmetric/utils.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import typing 7 | 8 | from cryptography import utils 9 | from cryptography.hazmat._der import ( 10 | DERReader, 11 | INTEGER, 12 | SEQUENCE, 13 | encode_der, 14 | encode_der_integer, 15 | ) 16 | from cryptography.hazmat.primitives import hashes 17 | 18 | 19 | def decode_dss_signature(signature: bytes) -> typing.Tuple[int, int]: 20 | with DERReader(signature).read_single_element(SEQUENCE) as seq: 21 | r = seq.read_element(INTEGER).as_integer() 22 | s = seq.read_element(INTEGER).as_integer() 23 | return r, s 24 | 25 | 26 | def encode_dss_signature(r: int, s: int) -> bytes: 27 | return encode_der( 28 | SEQUENCE, 29 | encode_der(INTEGER, encode_der_integer(r)), 30 | encode_der(INTEGER, encode_der_integer(s)), 31 | ) 32 | 33 | 34 | class Prehashed(object): 35 | def __init__(self, algorithm: hashes.HashAlgorithm): 36 | if not isinstance(algorithm, hashes.HashAlgorithm): 37 | raise TypeError("Expected instance of HashAlgorithm.") 38 | 39 | self._algorithm = algorithm 40 | self._digest_size = algorithm.digest_size 41 | 42 | digest_size = utils.read_only_property("_digest_size") 43 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/ciphers/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | from cryptography.hazmat.primitives.ciphers.base import ( 7 | AEADCipherContext, 8 | AEADDecryptionContext, 9 | AEADEncryptionContext, 10 | BlockCipherAlgorithm, 11 | Cipher, 12 | CipherAlgorithm, 13 | CipherContext, 14 | ) 15 | 16 | 17 | __all__ = [ 18 | "Cipher", 19 | "CipherAlgorithm", 20 | "BlockCipherAlgorithm", 21 | "CipherContext", 22 | "AEADCipherContext", 23 | "AEADDecryptionContext", 24 | "AEADEncryptionContext", 25 | ] 26 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/constant_time.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import hmac 7 | 8 | 9 | def bytes_eq(a: bytes, b: bytes) -> bool: 10 | if not isinstance(a, bytes) or not isinstance(b, bytes): 11 | raise TypeError("a and b must be bytes.") 12 | 13 | return hmac.compare_digest(a, b) 14 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/kdf/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import abc 7 | 8 | 9 | class KeyDerivationFunction(metaclass=abc.ABCMeta): 10 | @abc.abstractmethod 11 | def derive(self, key_material: bytes) -> bytes: 12 | """ 13 | Deterministically generates and returns a new key based on the existing 14 | key material. 15 | """ 16 | 17 | @abc.abstractmethod 18 | def verify(self, key_material: bytes, expected_key: bytes) -> None: 19 | """ 20 | Checks whether the key generated by the key material matches the 21 | expected derived key. Raises an exception if they do not match. 22 | """ 23 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/serialization/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | from cryptography.hazmat.primitives._serialization import ( 7 | BestAvailableEncryption, 8 | Encoding, 9 | KeySerializationEncryption, 10 | NoEncryption, 11 | ParameterFormat, 12 | PrivateFormat, 13 | PublicFormat, 14 | ) 15 | from cryptography.hazmat.primitives.serialization.base import ( 16 | load_der_parameters, 17 | load_der_private_key, 18 | load_der_public_key, 19 | load_pem_parameters, 20 | load_pem_private_key, 21 | load_pem_public_key, 22 | ) 23 | from cryptography.hazmat.primitives.serialization.ssh import ( 24 | load_ssh_private_key, 25 | load_ssh_public_key, 26 | ) 27 | 28 | 29 | __all__ = [ 30 | "load_der_parameters", 31 | "load_der_private_key", 32 | "load_der_public_key", 33 | "load_pem_parameters", 34 | "load_pem_private_key", 35 | "load_pem_public_key", 36 | "load_ssh_private_key", 37 | "load_ssh_public_key", 38 | "Encoding", 39 | "PrivateFormat", 40 | "PublicFormat", 41 | "ParameterFormat", 42 | "KeySerializationEncryption", 43 | "BestAvailableEncryption", 44 | "NoEncryption", 45 | ] 46 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/serialization/base.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import typing 7 | 8 | from cryptography.hazmat._types import ( 9 | _PRIVATE_KEY_TYPES, 10 | _PUBLIC_KEY_TYPES, 11 | ) 12 | from cryptography.hazmat.backends import _get_backend 13 | from cryptography.hazmat.primitives.asymmetric import dh 14 | 15 | 16 | def load_pem_private_key( 17 | data: bytes, password: typing.Optional[bytes], backend=None 18 | ) -> _PRIVATE_KEY_TYPES: 19 | backend = _get_backend(backend) 20 | return backend.load_pem_private_key(data, password) 21 | 22 | 23 | def load_pem_public_key(data: bytes, backend=None) -> _PUBLIC_KEY_TYPES: 24 | backend = _get_backend(backend) 25 | return backend.load_pem_public_key(data) 26 | 27 | 28 | def load_pem_parameters(data: bytes, backend=None) -> "dh.DHParameters": 29 | backend = _get_backend(backend) 30 | return backend.load_pem_parameters(data) 31 | 32 | 33 | def load_der_private_key( 34 | data: bytes, password: typing.Optional[bytes], backend=None 35 | ) -> _PRIVATE_KEY_TYPES: 36 | backend = _get_backend(backend) 37 | return backend.load_der_private_key(data, password) 38 | 39 | 40 | def load_der_public_key(data: bytes, backend=None) -> _PUBLIC_KEY_TYPES: 41 | backend = _get_backend(backend) 42 | return backend.load_der_public_key(data) 43 | 44 | 45 | def load_der_parameters(data: bytes, backend=None) -> "dh.DHParameters": 46 | backend = _get_backend(backend) 47 | return backend.load_der_parameters(data) 48 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/twofactor/__init__.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | class InvalidToken(Exception): 7 | pass 8 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/hazmat/primitives/twofactor/utils.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import base64 7 | import typing 8 | from urllib.parse import quote, urlencode 9 | 10 | 11 | def _generate_uri( 12 | hotp, 13 | type_name: str, 14 | account_name: str, 15 | issuer: typing.Optional[str], 16 | extra_parameters, 17 | ) -> str: 18 | parameters = [ 19 | ("digits", hotp._length), 20 | ("secret", base64.b32encode(hotp._key)), 21 | ("algorithm", hotp._algorithm.name.upper()), 22 | ] 23 | 24 | if issuer is not None: 25 | parameters.append(("issuer", issuer)) 26 | 27 | parameters.extend(extra_parameters) 28 | 29 | uriparts = { 30 | "type": type_name, 31 | "label": ( 32 | "%s:%s" % (quote(issuer), quote(account_name)) 33 | if issuer 34 | else quote(account_name) 35 | ), 36 | "parameters": urlencode(parameters), 37 | } 38 | return "otpauth://{type}/{label}?{parameters}".format(**uriparts) 39 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/py.typed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/py.typed -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/cryptography/x509/certificate_transparency.py: -------------------------------------------------------------------------------- 1 | # This file is dual licensed under the terms of the Apache License, Version 2 | # 2.0, and the BSD License. See the LICENSE file in the root of this repository 3 | # for complete details. 4 | 5 | 6 | import abc 7 | import datetime 8 | from enum import Enum 9 | 10 | 11 | class LogEntryType(Enum): 12 | X509_CERTIFICATE = 0 13 | PRE_CERTIFICATE = 1 14 | 15 | 16 | class Version(Enum): 17 | v1 = 0 18 | 19 | 20 | class SignedCertificateTimestamp(metaclass=abc.ABCMeta): 21 | @abc.abstractproperty 22 | def version(self) -> Version: 23 | """ 24 | Returns the SCT version. 25 | """ 26 | 27 | @abc.abstractproperty 28 | def log_id(self) -> bytes: 29 | """ 30 | Returns an identifier indicating which log this SCT is for. 31 | """ 32 | 33 | @abc.abstractproperty 34 | def timestamp(self) -> datetime.datetime: 35 | """ 36 | Returns the timestamp for this SCT. 37 | """ 38 | 39 | @abc.abstractproperty 40 | def entry_type(self) -> LogEntryType: 41 | """ 42 | Returns whether this is an SCT for a certificate or pre-certificate. 43 | """ 44 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/jose/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "3.3.0" 2 | __author__ = "Michael Davis" 3 | __license__ = "MIT" 4 | __copyright__ = "Copyright 2016 Michael Davis" 5 | 6 | 7 | from .exceptions import ExpiredSignatureError # noqa: F401 8 | from .exceptions import JOSEError # noqa: F401 9 | from .exceptions import JWSError # noqa: F401 10 | from .exceptions import JWTError # noqa: F401 11 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/jose/backends/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | from jose.backends.cryptography_backend import get_random_bytes # noqa: F401 3 | except ImportError: 4 | try: 5 | from jose.backends.pycrypto_backend import get_random_bytes # noqa: F401 6 | except ImportError: 7 | from jose.backends.native import get_random_bytes # noqa: F401 8 | 9 | try: 10 | from jose.backends.cryptography_backend import CryptographyRSAKey as RSAKey # noqa: F401 11 | except ImportError: 12 | try: 13 | from jose.backends.rsa_backend import RSAKey # noqa: F401 14 | except ImportError: 15 | RSAKey = None 16 | 17 | try: 18 | from jose.backends.cryptography_backend import CryptographyECKey as ECKey # noqa: F401 19 | except ImportError: 20 | from jose.backends.ecdsa_backend import ECDSAECKey as ECKey # noqa: F401 21 | 22 | try: 23 | from jose.backends.cryptography_backend import CryptographyAESKey as AESKey # noqa: F401 24 | except ImportError: 25 | AESKey = None 26 | 27 | try: 28 | from jose.backends.cryptography_backend import CryptographyHMACKey as HMACKey # noqa: F401 29 | except ImportError: 30 | from jose.backends.native import HMACKey # noqa: F401 31 | 32 | from .base import DIRKey # noqa: F401 33 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/jose/exceptions.py: -------------------------------------------------------------------------------- 1 | class JOSEError(Exception): 2 | pass 3 | 4 | 5 | class JWSError(JOSEError): 6 | pass 7 | 8 | 9 | class JWSSignatureError(JWSError): 10 | pass 11 | 12 | 13 | class JWSAlgorithmError(JWSError): 14 | pass 15 | 16 | 17 | class JWTError(JOSEError): 18 | pass 19 | 20 | 21 | class JWTClaimsError(JWTError): 22 | pass 23 | 24 | 25 | class ExpiredSignatureError(JWTError): 26 | pass 27 | 28 | 29 | class JWKError(JOSEError): 30 | pass 31 | 32 | 33 | class JWEError(JOSEError): 34 | """Base error for all JWE errors""" 35 | 36 | pass 37 | 38 | 39 | class JWEParseError(JWEError): 40 | """Could not parse the JWE string provided""" 41 | 42 | pass 43 | 44 | 45 | class JWEInvalidAuth(JWEError): 46 | """ 47 | The authentication tag did not match the protected sections of the 48 | JWE string provided 49 | """ 50 | 51 | pass 52 | 53 | 54 | class JWEAlgorithmUnsupportedError(JWEError): 55 | """ 56 | The JWE algorithm is not supported by the backend 57 | """ 58 | 59 | pass 60 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | OpenSSL/SSL.py,sha256=hzrH-ZpQ1E_TNMa0ZRHHpNtBoq50aVc-8m9o_TUW5cg,85169 2 | OpenSSL/__init__.py,sha256=yLB6P6M4uI5LpYpd6H6vk4bON9VBBMauX5UZvp5q3J8,498 3 | OpenSSL/__pycache__/SSL.cpython-37.pyc,, 4 | OpenSSL/__pycache__/__init__.cpython-37.pyc,, 5 | OpenSSL/__pycache__/_util.cpython-37.pyc,, 6 | OpenSSL/__pycache__/crypto.cpython-37.pyc,, 7 | OpenSSL/__pycache__/debug.cpython-37.pyc,, 8 | OpenSSL/__pycache__/rand.cpython-37.pyc,, 9 | OpenSSL/__pycache__/version.cpython-37.pyc,, 10 | OpenSSL/_util.py,sha256=uju8FEWyrsV90m2xj5A9VAKgJkivrcBCGvupveMeN1o,4229 11 | OpenSSL/crypto.py,sha256=Ywxs5-fHmt5a6ROyLb7fETeM2NL9PE-TLKy5nwDSl-A,104508 12 | OpenSSL/debug.py,sha256=K9CVsRfD9naMS_tlriaaxr9SLFYIo6MWWq7XqBzB71Q,1048 13 | OpenSSL/rand.py,sha256=9CGox0RJbrrdH1L7SisEQYhcOp0ygphuI801OzYwSoE,1042 14 | OpenSSL/version.py,sha256=yqWwc9mf7s7qX53OKM9AM4M8p9rFVjodxOoSqj5ra3o,650 15 | pyOpenSSL-20.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 16 | pyOpenSSL-20.0.1.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358 17 | pyOpenSSL-20.0.1.dist-info/METADATA,sha256=MF6jvBA9RZGpiclB5DAdZxPD5XPWD3CT5FXImDXAH0A,6689 18 | pyOpenSSL-20.0.1.dist-info/RECORD,, 19 | pyOpenSSL-20.0.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 20 | pyOpenSSL-20.0.1.dist-info/WHEEL,sha256=ADKeyaGyKF5DwBNE0sRE5pvW-bSkFMJfBuhzZ3rceP4,110 21 | pyOpenSSL-20.0.1.dist-info/top_level.txt,sha256=NNxWqS8hKNJh2cUXa1RZOMX62VJfyd8URo1TsYnR_MU,8 22 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/REQUESTED: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/REQUESTED -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.35.1) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pyOpenSSL-20.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | OpenSSL 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser-2.20.dist-info/INSTALLER: -------------------------------------------------------------------------------- 1 | pip 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser-2.20.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | pycparser -- A C parser in Python 2 | 3 | Copyright (c) 2008-2017, Eli Bendersky 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without modification, 7 | are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | * Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | * Neither the name of Eli Bendersky nor the names of its contributors may 15 | be used to endorse or promote products derived from this software without 16 | specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 24 | GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 27 | OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser-2.20.dist-info/METADATA: -------------------------------------------------------------------------------- 1 | Metadata-Version: 2.1 2 | Name: pycparser 3 | Version: 2.20 4 | Summary: C parser in Python 5 | Home-page: https://github.com/eliben/pycparser 6 | Author: Eli Bendersky 7 | Author-email: eliben@gmail.com 8 | Maintainer: Eli Bendersky 9 | License: BSD 10 | Platform: Cross Platform 11 | Classifier: Development Status :: 5 - Production/Stable 12 | Classifier: License :: OSI Approved :: BSD License 13 | Classifier: Programming Language :: Python :: 2 14 | Classifier: Programming Language :: Python :: 2.7 15 | Classifier: Programming Language :: Python :: 3 16 | Classifier: Programming Language :: Python :: 3.4 17 | Classifier: Programming Language :: Python :: 3.5 18 | Classifier: Programming Language :: Python :: 3.6 19 | Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* 20 | 21 | 22 | pycparser is a complete parser of the C language, written in 23 | pure Python using the PLY parsing library. 24 | It parses C code into an AST and can serve as a front-end for 25 | C compilers or analysis tools. 26 | 27 | 28 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser-2.20.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.34.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser-2.20.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | pycparser 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser/_build_tables.py: -------------------------------------------------------------------------------- 1 | #----------------------------------------------------------------- 2 | # pycparser: _build_tables.py 3 | # 4 | # A dummy for generating the lexing/parsing tables and and 5 | # compiling them into .pyc for faster execution in optimized mode. 6 | # Also generates AST code from the configuration file. 7 | # Should be called from the pycparser directory. 8 | # 9 | # Eli Bendersky [https://eli.thegreenplace.net/] 10 | # License: BSD 11 | #----------------------------------------------------------------- 12 | 13 | # Insert '.' and '..' as first entries to the search path for modules. 14 | # Restricted environments like embeddable python do not include the 15 | # current working directory on startup. 16 | import sys 17 | sys.path[0:0] = ['.', '..'] 18 | 19 | # Generate c_ast.py 20 | from _ast_gen import ASTCodeGenerator 21 | ast_gen = ASTCodeGenerator('_c_ast.cfg') 22 | ast_gen.generate(open('c_ast.py', 'w')) 23 | 24 | from pycparser import c_parser 25 | 26 | # Generates the tables 27 | # 28 | c_parser.CParser( 29 | lex_optimize=True, 30 | yacc_debug=False, 31 | yacc_optimize=True) 32 | 33 | # Load to compile into .pyc 34 | # 35 | import lextab 36 | import yacctab 37 | import c_ast 38 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/pycparser/ply/__init__.py: -------------------------------------------------------------------------------- 1 | # PLY package 2 | # Author: David Beazley (dave@dabeaz.com) 3 | 4 | __version__ = '3.9' 5 | __all__ = ['lex','yacc'] 6 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/python_jose-3.3.0.dist-info/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Michael Davis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/python_jose-3.3.0.dist-info/RECORD: -------------------------------------------------------------------------------- 1 | jose/__init__.py,sha256=0XQau8AXQwNwztdDWVr6l7PyWq9w0qN1R0PGcrsMIGM,322 2 | jose/constants.py,sha256=A0yHNjsby-YVOeKhcoN0rxoM8bai1JlVDvZx82UCZeE,2596 3 | jose/exceptions.py,sha256=K_ueFBsmTwQySE0CU09iMthOAdPaTQ_HvzRz9lYT1ls,791 4 | jose/jwe.py,sha256=jSBN3aT2D7xAQ3D-5cVf_9kZebchAI3qoaf-3yMLanY,21976 5 | jose/jwk.py,sha256=3A1dXXfhGIMQvT43EBAQgiShQZuqLpUZk_xWvW7c9cs,2024 6 | jose/jws.py,sha256=qgMDRIlyGbGfAGApQfuAL5Qr66Qqa8aYUC3qUO8qM_g,7820 7 | jose/jwt.py,sha256=7czQxPsfOavLpY6jJTetdPN_FQDcZmmkaZ2QtV3bVPw,17310 8 | jose/utils.py,sha256=_doSyRne-OygjSI3Iz1kWTSGnwVHHMA6_wYHOS1rhCw,3190 9 | jose/backends/__init__.py,sha256=yDExDpMlV6U4IBgk2Emov6cpQ2zQftFEh0J3yGaV2Lo,1091 10 | jose/backends/_asn1.py,sha256=etzWxBjkt0Et19_IQ92Pj61bAe0nCgPN7bTvSuz8W3s,2655 11 | jose/backends/base.py,sha256=0kuposKfixAR2W3enKuYdqEZpVG56ODOQDEdgq_pmvs,2224 12 | jose/backends/cryptography_backend.py,sha256=28-792EKVGjjq2nUoCWdfyPGkoXfWN5vHFO7uolCtog,22763 13 | jose/backends/ecdsa_backend.py,sha256=ORORepIpIS9D4s6Vtmhli5GZV9kj3CJj2_Mv0ARKGqE,5055 14 | jose/backends/native.py,sha256=9zyounmjG1ZgVJYkseMcDosJOBILLRyu_UbzhH7ZZ1o,2289 15 | jose/backends/rsa_backend.py,sha256=RKIC_bphhe52t2D_jEINO_ngj50ty9wXnv7cVO1EmdE,10942 16 | python_jose-3.3.0.dist-info/LICENSE,sha256=peYY7ubUlvd62K5w_qbt8UgVlVji0ih4fZB2yQCi-SY,1081 17 | python_jose-3.3.0.dist-info/METADATA,sha256=Sk_zCqxtDfFMG5lAL6EG7Br3KP0yhtw_IsJBwZaDliM,5403 18 | python_jose-3.3.0.dist-info/WHEEL,sha256=Z-nyYpwrcSqxfdux5Mbn_DQ525iP7J2DG3JgGvOYyTQ,110 19 | python_jose-3.3.0.dist-info/top_level.txt,sha256=WIdGzeaROX_xI9hGqyB3h4KKXKGKU2XmV1XphZWIrD8,19 20 | python_jose-3.3.0.dist-info/RECORD,, 21 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/python_jose-3.3.0.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.36.2) 3 | Root-Is-Purelib: true 4 | Tag: py2-none-any 5 | Tag: py3-none-any 6 | 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/CryptoLambdaLayer/python/python_jose-3.3.0.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | jose 2 | jose/backends 3 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/BufrStubImagePlugin.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library 3 | # $Id$ 4 | # 5 | # BUFR stub adapter 6 | # 7 | # Copyright (c) 1996-2003 by Fredrik Lundh 8 | # 9 | # See the README file for information on usage and redistribution. 10 | # 11 | 12 | from . import Image, ImageFile 13 | 14 | _handler = None 15 | 16 | 17 | def register_handler(handler): 18 | """ 19 | Install application-specific BUFR image handler. 20 | 21 | :param handler: Handler object. 22 | """ 23 | global _handler 24 | _handler = handler 25 | 26 | 27 | # -------------------------------------------------------------------- 28 | # Image adapter 29 | 30 | 31 | def _accept(prefix): 32 | return prefix[:4] == b"BUFR" or prefix[:4] == b"ZCZC" 33 | 34 | 35 | class BufrStubImageFile(ImageFile.StubImageFile): 36 | 37 | format = "BUFR" 38 | format_description = "BUFR" 39 | 40 | def _open(self): 41 | 42 | offset = self.fp.tell() 43 | 44 | if not _accept(self.fp.read(4)): 45 | raise SyntaxError("Not a BUFR file") 46 | 47 | self.fp.seek(offset) 48 | 49 | # make something up 50 | self.mode = "F" 51 | self._size = 1, 1 52 | 53 | loader = self._load() 54 | if loader: 55 | loader.open(self) 56 | 57 | def _load(self): 58 | return _handler 59 | 60 | 61 | def _save(im, fp, filename): 62 | if _handler is None or not hasattr("_handler", "save"): 63 | raise OSError("BUFR save handler not installed") 64 | _handler.save(im, fp, filename) 65 | 66 | 67 | # -------------------------------------------------------------------- 68 | # Registry 69 | 70 | Image.register_open(BufrStubImageFile.format, BufrStubImageFile, _accept) 71 | Image.register_save(BufrStubImageFile.format, _save) 72 | 73 | Image.register_extension(BufrStubImageFile.format, ".bufr") 74 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/GimpPaletteFile.py: -------------------------------------------------------------------------------- 1 | # 2 | # Python Imaging Library 3 | # $Id$ 4 | # 5 | # stuff to read GIMP palette files 6 | # 7 | # History: 8 | # 1997-08-23 fl Created 9 | # 2004-09-07 fl Support GIMP 2.0 palette files. 10 | # 11 | # Copyright (c) Secret Labs AB 1997-2004. All rights reserved. 12 | # Copyright (c) Fredrik Lundh 1997-2004. 13 | # 14 | # See the README file for information on usage and redistribution. 15 | # 16 | 17 | import re 18 | 19 | from ._binary import o8 20 | 21 | 22 | class GimpPaletteFile: 23 | """File handler for GIMP's palette format.""" 24 | 25 | rawmode = "RGB" 26 | 27 | def __init__(self, fp): 28 | 29 | self.palette = [o8(i) * 3 for i in range(256)] 30 | 31 | if fp.readline()[:12] != b"GIMP Palette": 32 | raise SyntaxError("not a GIMP palette file") 33 | 34 | for i in range(256): 35 | 36 | s = fp.readline() 37 | if not s: 38 | break 39 | 40 | # skip fields and comment lines 41 | if re.match(br"\w+:|#", s): 42 | continue 43 | if len(s) > 100: 44 | raise SyntaxError("bad palette file") 45 | 46 | v = tuple(map(int, s.split()[:3])) 47 | if len(v) != 3: 48 | raise ValueError("bad palette entry") 49 | 50 | self.palette[i] = o8(v[0]) + o8(v[1]) + o8(v[2]) 51 | 52 | self.palette = b"".join(self.palette) 53 | 54 | def getpalette(self): 55 | 56 | return self.palette, self.rawmode 57 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/GribStubImagePlugin.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library 3 | # $Id$ 4 | # 5 | # GRIB stub adapter 6 | # 7 | # Copyright (c) 1996-2003 by Fredrik Lundh 8 | # 9 | # See the README file for information on usage and redistribution. 10 | # 11 | 12 | from . import Image, ImageFile 13 | 14 | _handler = None 15 | 16 | 17 | def register_handler(handler): 18 | """ 19 | Install application-specific GRIB image handler. 20 | 21 | :param handler: Handler object. 22 | """ 23 | global _handler 24 | _handler = handler 25 | 26 | 27 | # -------------------------------------------------------------------- 28 | # Image adapter 29 | 30 | 31 | def _accept(prefix): 32 | return prefix[0:4] == b"GRIB" and prefix[7] == 1 33 | 34 | 35 | class GribStubImageFile(ImageFile.StubImageFile): 36 | 37 | format = "GRIB" 38 | format_description = "GRIB" 39 | 40 | def _open(self): 41 | 42 | offset = self.fp.tell() 43 | 44 | if not _accept(self.fp.read(8)): 45 | raise SyntaxError("Not a GRIB file") 46 | 47 | self.fp.seek(offset) 48 | 49 | # make something up 50 | self.mode = "F" 51 | self._size = 1, 1 52 | 53 | loader = self._load() 54 | if loader: 55 | loader.open(self) 56 | 57 | def _load(self): 58 | return _handler 59 | 60 | 61 | def _save(im, fp, filename): 62 | if _handler is None or not hasattr("_handler", "save"): 63 | raise OSError("GRIB save handler not installed") 64 | _handler.save(im, fp, filename) 65 | 66 | 67 | # -------------------------------------------------------------------- 68 | # Registry 69 | 70 | Image.register_open(GribStubImageFile.format, GribStubImageFile, _accept) 71 | Image.register_save(GribStubImageFile.format, _save) 72 | 73 | Image.register_extension(GribStubImageFile.format, ".grib") 74 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/Hdf5StubImagePlugin.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library 3 | # $Id$ 4 | # 5 | # HDF5 stub adapter 6 | # 7 | # Copyright (c) 2000-2003 by Fredrik Lundh 8 | # 9 | # See the README file for information on usage and redistribution. 10 | # 11 | 12 | from . import Image, ImageFile 13 | 14 | _handler = None 15 | 16 | 17 | def register_handler(handler): 18 | """ 19 | Install application-specific HDF5 image handler. 20 | 21 | :param handler: Handler object. 22 | """ 23 | global _handler 24 | _handler = handler 25 | 26 | 27 | # -------------------------------------------------------------------- 28 | # Image adapter 29 | 30 | 31 | def _accept(prefix): 32 | return prefix[:8] == b"\x89HDF\r\n\x1a\n" 33 | 34 | 35 | class HDF5StubImageFile(ImageFile.StubImageFile): 36 | 37 | format = "HDF5" 38 | format_description = "HDF5" 39 | 40 | def _open(self): 41 | 42 | offset = self.fp.tell() 43 | 44 | if not _accept(self.fp.read(8)): 45 | raise SyntaxError("Not an HDF file") 46 | 47 | self.fp.seek(offset) 48 | 49 | # make something up 50 | self.mode = "F" 51 | self._size = 1, 1 52 | 53 | loader = self._load() 54 | if loader: 55 | loader.open(self) 56 | 57 | def _load(self): 58 | return _handler 59 | 60 | 61 | def _save(im, fp, filename): 62 | if _handler is None or not hasattr("_handler", "save"): 63 | raise OSError("HDF5 save handler not installed") 64 | _handler.save(im, fp, filename) 65 | 66 | 67 | # -------------------------------------------------------------------- 68 | # Registry 69 | 70 | Image.register_open(HDF5StubImageFile.format, HDF5StubImageFile, _accept) 71 | Image.register_save(HDF5StubImageFile.format, _save) 72 | 73 | Image.register_extensions(HDF5StubImageFile.format, [".h5", ".hdf"]) 74 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/ImagePath.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library 3 | # $Id$ 4 | # 5 | # path interface 6 | # 7 | # History: 8 | # 1996-11-04 fl Created 9 | # 2002-04-14 fl Added documentation stub class 10 | # 11 | # Copyright (c) Secret Labs AB 1997. 12 | # Copyright (c) Fredrik Lundh 1996. 13 | # 14 | # See the README file for information on usage and redistribution. 15 | # 16 | 17 | from . import Image 18 | 19 | Path = Image.core.path 20 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/PaletteFile.py: -------------------------------------------------------------------------------- 1 | # 2 | # Python Imaging Library 3 | # $Id$ 4 | # 5 | # stuff to read simple, teragon-style palette files 6 | # 7 | # History: 8 | # 97-08-23 fl Created 9 | # 10 | # Copyright (c) Secret Labs AB 1997. 11 | # Copyright (c) Fredrik Lundh 1997. 12 | # 13 | # See the README file for information on usage and redistribution. 14 | # 15 | 16 | from ._binary import o8 17 | 18 | 19 | class PaletteFile: 20 | """File handler for Teragon-style palette files.""" 21 | 22 | rawmode = "RGB" 23 | 24 | def __init__(self, fp): 25 | 26 | self.palette = [(i, i, i) for i in range(256)] 27 | 28 | while True: 29 | 30 | s = fp.readline() 31 | 32 | if not s: 33 | break 34 | if s[0:1] == b"#": 35 | continue 36 | if len(s) > 100: 37 | raise SyntaxError("bad palette file") 38 | 39 | v = [int(x) for x in s.split()] 40 | try: 41 | [i, r, g, b] = v 42 | except ValueError: 43 | [i, r] = v 44 | g = b = r 45 | 46 | if 0 <= i <= 255: 47 | self.palette[i] = o8(r) + o8(g) + o8(b) 48 | 49 | self.palette = b"".join(self.palette) 50 | 51 | def getpalette(self): 52 | 53 | return self.palette, self.rawmode 54 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/PcdImagePlugin.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library. 3 | # $Id$ 4 | # 5 | # PCD file handling 6 | # 7 | # History: 8 | # 96-05-10 fl Created 9 | # 96-05-27 fl Added draft mode (128x192, 256x384) 10 | # 11 | # Copyright (c) Secret Labs AB 1997. 12 | # Copyright (c) Fredrik Lundh 1996. 13 | # 14 | # See the README file for information on usage and redistribution. 15 | # 16 | 17 | 18 | from . import Image, ImageFile 19 | 20 | ## 21 | # Image plugin for PhotoCD images. This plugin only reads the 768x512 22 | # image from the file; higher resolutions are encoded in a proprietary 23 | # encoding. 24 | 25 | 26 | class PcdImageFile(ImageFile.ImageFile): 27 | 28 | format = "PCD" 29 | format_description = "Kodak PhotoCD" 30 | 31 | def _open(self): 32 | 33 | # rough 34 | self.fp.seek(2048) 35 | s = self.fp.read(2048) 36 | 37 | if s[:4] != b"PCD_": 38 | raise SyntaxError("not a PCD file") 39 | 40 | orientation = s[1538] & 3 41 | self.tile_post_rotate = None 42 | if orientation == 1: 43 | self.tile_post_rotate = 90 44 | elif orientation == 3: 45 | self.tile_post_rotate = -90 46 | 47 | self.mode = "RGB" 48 | self._size = 768, 512 # FIXME: not correct for rotated images! 49 | self.tile = [("pcd", (0, 0) + self.size, 96 * 2048, None)] 50 | 51 | def load_end(self): 52 | if self.tile_post_rotate: 53 | # Handle rotated PCDs 54 | self.im = self.im.rotate(self.tile_post_rotate) 55 | self._size = self.im.size 56 | 57 | 58 | # 59 | # registry 60 | 61 | Image.register_open(PcdImageFile.format, PcdImageFile) 62 | 63 | Image.register_extension(PcdImageFile.format, ".pcd") 64 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/TarIO.py: -------------------------------------------------------------------------------- 1 | # 2 | # The Python Imaging Library. 3 | # $Id$ 4 | # 5 | # read files from within a tar file 6 | # 7 | # History: 8 | # 95-06-18 fl Created 9 | # 96-05-28 fl Open files in binary mode 10 | # 11 | # Copyright (c) Secret Labs AB 1997. 12 | # Copyright (c) Fredrik Lundh 1995-96. 13 | # 14 | # See the README file for information on usage and redistribution. 15 | # 16 | 17 | import io 18 | 19 | from . import ContainerIO 20 | 21 | 22 | class TarIO(ContainerIO.ContainerIO): 23 | """A file object that provides read access to a given member of a TAR file.""" 24 | 25 | def __init__(self, tarfile, file): 26 | """ 27 | Create file object. 28 | 29 | :param tarfile: Name of TAR file. 30 | :param file: Name of member file. 31 | """ 32 | self.fh = open(tarfile, "rb") 33 | 34 | while True: 35 | 36 | s = self.fh.read(512) 37 | if len(s) != 512: 38 | raise OSError("unexpected end of tar file") 39 | 40 | name = s[:100].decode("utf-8") 41 | i = name.find("\0") 42 | if i == 0: 43 | raise OSError("cannot find subfile") 44 | if i > 0: 45 | name = name[:i] 46 | 47 | size = int(s[124:135], 8) 48 | 49 | if file == name: 50 | break 51 | 52 | self.fh.seek((size + 511) & (~511), io.SEEK_CUR) 53 | 54 | # Open region 55 | super().__init__(self.fh, self.fh.tell(), size) 56 | 57 | # Context manager support 58 | def __enter__(self): 59 | return self 60 | 61 | def __exit__(self, *args): 62 | self.close() 63 | 64 | def close(self): 65 | self.fh.close() 66 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/__main__.py: -------------------------------------------------------------------------------- 1 | from .features import pilinfo 2 | 3 | pilinfo() 4 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imaging.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingcms.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingcms.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingft.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingft.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingmath.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingmath.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingmorph.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingmorph.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingtk.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_imagingtk.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_tkinter_finder.py: -------------------------------------------------------------------------------- 1 | """ Find compiled module linking to Tcl / Tk libraries 2 | """ 3 | import sys 4 | import tkinter 5 | import warnings 6 | from tkinter import _tkinter as tk 7 | 8 | if hasattr(sys, "pypy_find_executable"): 9 | TKINTER_LIB = tk.tklib_cffi.__file__ 10 | else: 11 | TKINTER_LIB = tk.__file__ 12 | 13 | tk_version = str(tkinter.TkVersion) 14 | if tk_version == "8.4": 15 | warnings.warn( 16 | "Support for Tk/Tcl 8.4 is deprecated and will be removed" 17 | " in Pillow 10 (2023-07-01). Please upgrade to Tk/Tcl 8.5 " 18 | "or newer.", 19 | DeprecationWarning, 20 | ) 21 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_util.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | 5 | def isPath(f): 6 | return isinstance(f, (bytes, str, Path)) 7 | 8 | 9 | # Checks if an object is a string, and that it points to a directory. 10 | def isDirectory(f): 11 | return isPath(f) and os.path.isdir(f) 12 | 13 | 14 | class deferred_error: 15 | def __init__(self, ex): 16 | self.ex = ex 17 | 18 | def __getattr__(self, elt): 19 | raise self.ex 20 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_version.py: -------------------------------------------------------------------------------- 1 | # Master version for Pillow 2 | __version__ = "9.0.1" 3 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_webp.cpython-37m-x86_64-linux-gnu.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/PIL/_webp.cpython-37m-x86_64-linux-gnu.so -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow-9.0.1.dist-info/WHEEL: -------------------------------------------------------------------------------- 1 | Wheel-Version: 1.0 2 | Generator: bdist_wheel (0.37.1) 3 | Root-Is-Purelib: false 4 | Tag: cp37-cp37m-manylinux_2_17_x86_64 5 | Tag: cp37-cp37m-manylinux2014_x86_64 6 | 7 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow-9.0.1.dist-info/top_level.txt: -------------------------------------------------------------------------------- 1 | PIL 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow-9.0.1.dist-info/zip-safe: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libXau-00ec42fe.so.6.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libXau-00ec42fe.so.6.0.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libfreetype-a029e222.so.6.18.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libfreetype-a029e222.so.6.18.1 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libharfbuzz-851aa43c.so.0.30200.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libharfbuzz-851aa43c.so.0.30200.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libjpeg-62ed1500.so.62.3.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libjpeg-62ed1500.so.62.3.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/liblcms2-5ee890d7.so.2.0.13: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/liblcms2-5ee890d7.so.2.0.13 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/liblzma-d540a118.so.5.2.5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/liblzma-d540a118.so.5.2.5 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libopenjp2-430a98fc.so.2.4.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libopenjp2-430a98fc.so.2.4.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libpng16-213e245f.so.16.37.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libpng16-213e245f.so.16.37.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libtiff-8e99fb9e.so.5.7.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libtiff-8e99fb9e.so.5.7.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebp-8efe125f.so.7.1.3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebp-8efe125f.so.7.1.3 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebpdemux-016472e8.so.2.0.9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebpdemux-016472e8.so.2.0.9 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebpmux-5c00cf3e.so.3.0.8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libwebpmux-5c00cf3e.so.3.0.8 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libxcb-1122e22b.so.1.1.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libxcb-1122e22b.so.1.1.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libz-dd453c56.so.1.2.11: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ImageProcessingLambdaLayer/python/Pillow.libs/libz-dd453c56.so.1.2.11 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ResourceManagementLambdaLayer/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = [ 3 | "setuptools>=42", 4 | "wheel" 5 | ] 6 | build-backend = "setuptools.build_meta" -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ResourceManagementLambdaLayer/python/gamekitresourcemanagement/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layers/main/ResourceManagementLambdaLayer/python/gamekitresourcemanagement/__init__.py -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layers/main/ResourceManagementLambdaLayer/setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = gamekitresourcemanagement 3 | version = 1.0.0 4 | author = AWS Game Tech 5 | description = AWS GameKit Resource Management Package 6 | 7 | [options] 8 | package_dir = 9 | = python 10 | packages = find: 11 | python_requires = >=3.7 12 | 13 | [options.packages.find] 14 | where = python 15 | -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layersTests/test_CommonLambdaLayer/__init__.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layersTests/test_CommonLambdaLayer/test_pagination.py: -------------------------------------------------------------------------------- 1 | import time 2 | from base64 import b64decode, b64encode 3 | from unittest import TestCase, mock 4 | 5 | from layers.main.CommonLambdaLayer.python.gamekithelpers import pagination 6 | 7 | 8 | class TestPagination(TestCase): 9 | 10 | def setUp(self): 11 | self.player_id = "foo" 12 | self.start_key = {"bar": "baz"} 13 | self.token = pagination.generate_pagination_token(self.player_id, self.start_key) 14 | 15 | def test_validate_pagination_token(self): 16 | self.assertTrue(pagination.validate_pagination_token(self.player_id, self.start_key, self.token)) 17 | 18 | def test_rejects_tampered_expired_at(self): 19 | digest, expires_at = b64decode(self.token).decode().split(":") 20 | expires_at = str(int(expires_at) + 300) #attempt to extend it another 5 minutes 21 | tampered_token = b64encode(":".join([digest, expires_at]).encode()).decode() 22 | self.assertFalse(pagination.validate_pagination_token(self.player_id, self.start_key, tampered_token)) 23 | 24 | def test_rejects_with_no_paging_token(self): 25 | self.assertFalse(pagination.validate_pagination_token(self.player_id, self.start_key, None)) 26 | 27 | def test_rejects_tampered_digest(self): 28 | digest, expires_at = b64decode(self.token).decode().split(":") 29 | tampered_digest = "".join([digest, "DEADBEEF"]) 30 | tampered_token = b64encode(":".join([tampered_digest, expires_at]).encode()).decode() 31 | self.assertFalse(pagination.validate_pagination_token(self.player_id, self.start_key, tampered_token)) -------------------------------------------------------------------------------- /AwsGameKit/Resources/cloudResources/layersTests/test_CommonLambdaLayer/test_sanitizer.py: -------------------------------------------------------------------------------- 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | from unittest import TestCase 5 | from layers.main.CommonLambdaLayer.python.gamekithelpers.sanitizer import sanitize 6 | 7 | 8 | class TestSanitization(TestCase): 9 | def test_remove_tags(self): 10 | text = "easiest way is just regex and remove tags. " \ 11 | "and for HTML we can just remove the links, " \ 12 | ", and < link > that can download other resource files " \ 13 | "but keep
, and
"
14 |         expected = "easiest way is just regex and remove  and  tags. " \
15 |                    "and for HTML we can just remove  the  links, " \
16 |                    ",  and  that can download other resource files " \
17 |                    "but keep 
, and
"
18 | 
19 |         result = sanitize(text)
20 | 
21 |         self.assertEqual(result, expected)
22 | 
23 |     def test_int_input_type_returns_as_is(self):
24 |         text = 10
25 |         expected = 10
26 | 
27 |         result = sanitize(text)
28 | 
29 |         self.assertEqual(result, expected)
30 |         self.assertIsInstance(result, type(text))
31 | 
32 | 


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/layersTests/test_ResourceManagementLambdaLayer/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/layersTests/test_ResourceManagementLambdaLayer/__init__.py


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/misc/achievements/earned.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/misc/achievements/earned.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/misc/achievements/unearned.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/cloudResources/misc/achievements/unearned.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/misc/awsGameKitAwsRegionMappings.yml:
--------------------------------------------------------------------------------
 1 | #
 2 | # EDITING THIS FILE MAY LEAD TO BREAKING CHANGES
 3 | # When adding a new region to your game, please add the region and it's corresponding shortcodes here.
 4 | #
 5 | {
 6 |   five_letter_region_codes: {
 7 |     us-east-1: usea1,
 8 |     us-east-2: usea2,
 9 |     us-west-1: uswe1,
10 |     us-west-2: uswe2,
11 |     af-south-1: afso1,
12 |     ap-east-1: apea1,
13 |     ap-south-1: apso1,
14 |     ap-northeast-3: apne3,
15 |     ap-northeast-2: apne2,
16 |     ap-southeast-1: apse1,
17 |     ap-southeast-2: apse2,
18 |     ap-northeast-1: apne1,
19 |     ca-central-1: cace1,
20 |     eu-central-1: euce1,
21 |     eu-west-1: euwe1,
22 |     eu-west-2: euwe2,
23 |     eu-south-1: euso1,
24 |     eu-west-3: euwe3,
25 |     eu-north-1: euno1,
26 |     me-south-1: meso1,
27 |     sa-east-1: saea1
28 |   }
29 | }


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/policies/README.md:
--------------------------------------------------------------------------------
 1 | # Create an IAM user
 2 | - If you have an admin access key and secret key you can use `create_IAM_user.py` to create an IAM user in your account with all permissions needed to use Aws GameKit.
 3 | - It can also be used to update permissions for an existing user.
 4 | 
 5 | ## Instructions 
 6 | - Install dependencies `pip install -r requirements.txt`
 7 | - Run `python create_IAM_user.py [AWS IAM USERNAME] [AWS ADMIN ACCESS KEY] [AWS ADMIN SECRET KEY]`
 8 | - The access key and secret access key for a new user will be output to a [username]_credentials.txt file in this directory.
 9 | 
10 | # Creating Developer Policy Document
11 | - If you wish to only create the policy document `generate_policy_instance.py` can be used.
12 | - The json document produced grants permission to deploy and manage all AWS GameKit features in your account when uploaded to AWS IAM.
13 | 
14 | ## Instructions
15 | - Retrieve your 12 digit AWS Account ID after creating an AWS Account.
16 | - Run `python generate_policy_instance.py [YOUR ACCOUNT ID]` from the command line in this directory.
17 | - A file named `GameKitDeveloperPolicy_[your id]` will be produced in this directory, ready to upload.


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/policies/generate_policy_instance.py:
--------------------------------------------------------------------------------
 1 | # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | # SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | import sys
 5 | import argparse
 6 | 
 7 | def main(account_id):
 8 |     #input file
 9 |     with open('GameKitDeveloperPolicy_Template.json', 'r') as file:
10 |         filedata = file.read()
11 |   
12 |     # Replace the target string
13 |     filedata = filedata.replace('', account_id)
14 |   
15 |     with open(f"GameKitDeveloperPolicy_{account_id}.json", 'w') as file:
16 |         file.write(filedata)
17 | 
18 |     return f"GameKitDeveloperPolicy_{account_id}.json"
19 |   
20 | if __name__ == "__main__":
21 |     parser = argparse.ArgumentParser(description='Create a GameKitDeveloperPolicy file using your AWS Account ID.')
22 |     parser.add_argument('account_id', type=str, help='Your 12 digit AWS account ID.')
23 |     args = parser.parse_args()
24 | 
25 |     main(args.account_id)


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/policies/requirements.txt:
--------------------------------------------------------------------------------
1 | boto3


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/requirements.txt:
--------------------------------------------------------------------------------
 1 | # AWS Lambda - Python 3.7 Runtime: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
 2 | # Use the latest version, because the AWS Lambda runtimes are upgraded over time.
 3 | boto3
 4 | botocore
 5 | 
 6 | # Crypto Lambda Layer:
 7 | cryptography == 3.4.7
 8 | python-jose[cryptography] == 3.3.0
 9 | 
10 | # Image Processing Lambda Layer:
11 | Pillow == 9.0.1
12 | 


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/tools/delete_policy.json:
--------------------------------------------------------------------------------
 1 | {
 2 |     "Version": "2012-10-17",
 3 |     "Statement": [
 4 |         {
 5 |             "Effect": "Allow",
 6 |             "Action": [
 7 |                 "ssm:DeleteParameter",
 8 |                 "logs:DeleteLogGroup"
 9 |             ],
10 |             "Resource": [
11 |                 "arn:aws:logs:*",
12 |                 "arn:aws:ssm:*"
13 |             ]
14 |         },
15 |         {
16 |             "Effect": "Allow",
17 |             "Action": [
18 |                 "s3:ListBucketMultipartUploads",
19 |                 "s3:ListBucketVersions",
20 |                 "s3:ListBucket"
21 |             ],
22 |             "Resource": "arn:aws:s3:::*"
23 |         },
24 |         {
25 |             "Effect": "Allow",
26 |             "Action": "s3:ListMultipartUploadParts",
27 |             "Resource": "arn:aws:s3:::*/*"
28 |         },
29 |         {
30 |             "Effect": "Allow",
31 |             "Action": "s3:DeleteBucket",
32 |             "Resource": "arn:aws:s3:::*"
33 |         },
34 |         {
35 |             "Effect": "Allow",
36 |             "Action": "s3:DeleteObject",
37 |             "Resource": "arn:aws:s3:::*/*"
38 |         },
39 |         {
40 |             "Effect": "Allow",
41 |             "Action": [
42 |                 "s3:ListStorageLensConfigurations",
43 |                 "s3:ListAccessPointsForObjectLambda",
44 |                 "s3:ListAllMyBuckets",
45 |                 "s3:ListAccessPoints",
46 |                 "ssm:DescribeParameters",
47 |                 "s3:ListJobs",
48 |                 "sts:GetCallerIdentity",
49 |                 "s3:ListMultiRegionAccessPoints",
50 |                 "secretsmanager:ListSecrets"
51 |             ],
52 |             "Resource": "*"
53 |         }
54 |     ]
55 | }
56 | 


--------------------------------------------------------------------------------
/AwsGameKit/Resources/cloudResources/tools/requirements.txt:
--------------------------------------------------------------------------------
1 | # AWS GameKit Cleanup Tool Requirements
2 | 
3 | numpy


--------------------------------------------------------------------------------
/AwsGameKit/Resources/documentation/documentation.ini:
--------------------------------------------------------------------------------
 1 | [url]
 2 | gamekit_home="https://docs.aws.amazon.com/gamekit/index.html"
 3 | create_account="https://aws.amazon.com"
 4 | free_tier_intro="http://aws.amazon.com/free/"
 5 | free_tier_reference="https://aws.amazon.com/getting-started/hands-on/control-your-costs-free-tier-budgets"
 6 | backup_dynamo_reference="https://aws.amazon.com/premiumsupport/knowledge-center/back-up-dynamodb-s3"
 7 | 
 8 | [dev_guide_url]
 9 | identity="https://docs.aws.amazon.com/gamekit/latest/DevGuide/identity-auth.html"
10 | achievements="https://docs.aws.amazon.com/gamekit/latest/DevGuide/achievements.html"
11 | game_state_saving="https://docs.aws.amazon.com/gamekit/latest/DevGuide/game-save.html"
12 | user_gameplay_data="https://docs.aws.amazon.com/gamekit/latest/DevGuide/gameplay-data.html"
13 | intro_cost="https://docs.aws.amazon.com/gamekit/latest/DevGuide/intro-costs.html"
14 | setting_up_credentials="https://docs.aws.amazon.com/gamekit/latest/DevGuide/setting-up-credentials.html"
15 | delete_instance_reference="https://docs.aws.amazon.com/gamekit/latest/DevGuide/plugin-project-delete.html"
16 | cloudwatch_dashboards_reference="https://docs.aws.amazon.com/gamekit/latest/DevGuide/monitoring-dashboards.html"
17 | known_issues_reference="https://docs.aws.amazon.com/gamekit/latest/DevGuide/versions.html#versions-knownissues"
18 | 


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/cloud.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/error.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/external.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/external.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/garbage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/garbage.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/refresh.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/success.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/unsynchronized.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/unsynchronized.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/waiting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/waiting.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/warning.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/warning_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/warning_16x16.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/warning_inline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/warning_inline.png


--------------------------------------------------------------------------------
/AwsGameKit/Resources/icons/working.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aws/aws-gamekit-unreal/c9e14b94a922e37d95e0f7a2d0c3f7d00ea2579b/AwsGameKit/Resources/icons/working.png


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitCore/Private/AwsGameKitCore.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #include "AwsGameKitCore.h"
 5 | 
 6 | // Unreal
 7 | #include "Core/Logging.h"
 8 | 
 9 | // GameKit
10 | #if PLATFORM_IOS
11 | #include 
12 | #endif
13 | 
14 | #define LOCTEXT_NAMESPACE "FAwsGameKitCoreModule"
15 | 
16 | DEFINE_LOG_CATEGORY(LogAwsGameKit);
17 | 
18 | void FAwsGameKitCoreModule::StartupModule()
19 | {
20 |   UE_LOG(LogAwsGameKit, Log, TEXT("FAwsGameKitCoreModule::StartupModule()"));
21 | #if PLATFORM_IOS
22 |   ::GameKitInitializeAwsSdk(FGameKitLogging::LogCallBack);
23 | #endif
24 | }
25 | 
26 | void FAwsGameKitCoreModule::ShutdownModule()
27 | {
28 |   UE_LOG(LogAwsGameKit, Log, TEXT("FAwsGameKitCoreModule::ShutdownModule()"));
29 | #if PLATFORM_IOS
30 |   ::GameKitShutdownAwsSdk(FGameKitLogging::LogCallBack);
31 | #endif
32 | }
33 | 
34 | #undef LOCTEXT_NAMESPACE
35 | 
36 | IMPLEMENT_MODULE(FAwsGameKitCoreModule, AwsGameKitCore);
37 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitCore/Public/AwsGameKitCore.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "CoreMinimal.h"
 8 | #include "Modules/ModuleInterface.h"
 9 | #include "Modules/ModuleManager.h"
10 | 
11 | DECLARE_LOG_CATEGORY_EXTERN(LogAwsGameKit, Log, All);
12 | 
13 | class FAwsGameKitCoreModule : public IModuleInterface
14 | {
15 | public:
16 | 
17 |     /** IModuleInterface implementation */
18 |     virtual void StartupModule() override;
19 |     virtual void ShutdownModule() override;
20 | };
21 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitCore/Public/Core/AwsGameKitLibraryUtils.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "Logging.h"
 8 | 
 9 | // Helper macro to define a Func handle type and instantiate it (set to nullptr).
10 | #define DEFINE_FUNC_HANDLE(RetType, Func, ...) \
11 | typedef RetType (*__##Func) __VA_ARGS__ ; \
12 | __##Func func##Func = nullptr;
13 | 
14 | // Helper macro to check that the function pointer is valid. If function is invalid,
15 | // logs a message and returns an error code. (Assumes the FuncPtr was declared with DEFINE_FUNC_HANDLE)
16 | #if PLATFORM_WINDOWS || PLATFORM_MAC
17 | #define CHECK_PLUGIN_FUNC_IS_LOADED(Plugin, FuncPtr, ...) \
18 | { \
19 |     if (func##FuncPtr == nullptr) \
20 |     { \
21 |         UE_LOG(LogAwsGameKit, Error, TEXT("AWS GameKit " #Plugin " Plugin Function (" #FuncPtr ") is null")); \
22 |         return __VA_ARGS__ ; \
23 |     } \
24 | }
25 | #else
26 | #define CHECK_PLUGIN_FUNC_IS_LOADED(Plugin, FuncPtr, ...) {}
27 | #endif
28 | 
29 | // Helper macro to invoke a Func that was declared with DEFINE_FUNC_HANDLE
30 | #if PLATFORM_WINDOWS || PLATFORM_MAC
31 | #define INVOKE_FUNC(Func, ...) (func##Func)(__VA_ARGS__)
32 | #else
33 | #define INVOKE_FUNC(Func, ...) (::Func)(__VA_ARGS__)
34 | #endif
35 | 
36 | // Helper macro to assign an exported Func (Func must be declared with DEFINE_FUNC_HANDLE)
37 | #if PLATFORM_WINDOWS || PLATFORM_MAC
38 | #define LOAD_PLUGIN_FUNC(ProcName, DllHandle) func##ProcName = (__##ProcName)FPlatformProcess::GetDllExport(DllHandle, UTF8_TO_TCHAR(#ProcName))
39 | #else
40 | #define LOAD_PLUGIN_FUNC(ProcName, DllHandle) {}
41 | #endif
42 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitCore/Public/Core/Logging.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Containers/UnrealString.h"
 8 | #include "HAL/CriticalSection.h"
 9 | 
10 | /**
11 |  * Signature for a callback function the AWS GameKit library can use to log a message.
12 |  */
13 | typedef void(*FuncLogCallback)(unsigned int level, const char* message, int size);
14 | 
15 | /**
16 |  * Interface that defines a Child logger. Use to forward logging messages.
17 |  */
18 | class IChildLogger
19 | {
20 | public:
21 |     IChildLogger() {}
22 |     virtual ~IChildLogger() {}
23 |     virtual void Log(unsigned int level, const FString& message) {};
24 | };
25 | 
26 | /**
27 |  * Default implementation for ::FuncFuncLogCallback.
28 |  */
29 | class AWSGAMEKITCORE_API FGameKitLogging
30 | {
31 | private:
32 |     static int32 toggleVerbose;
33 |     static TArray childLoggers;
34 |     static FCriticalSection childLoggerMutex;
35 | 
36 | public:
37 |     static void AttachLogger(IChildLogger* logger);
38 |     static void DetachLogger(IChildLogger* logger);
39 |     static void LogCallBack(unsigned int level, const char* message, int size);
40 | };
41 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/Achievements/AwsGameKitAchievementsExamplesLayout.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "Achievements/AwsGameKitAchievementsExamplesLayout.h"
 6 | 
 7 | // Unreal
 8 | #include "DetailLayoutBuilder.h"
 9 | 
10 | TSharedRef AwsGameKitAchievementsExamplesLayout::MakeInstance()
11 | {
12 |     return MakeShareable(new AwsGameKitAchievementsExamplesLayout);
13 | }
14 | 
15 | void AwsGameKitAchievementsExamplesLayout::CustomizeDetails(IDetailLayoutBuilder& detailBuilder)
16 | {
17 |     // Hide these categories from Details panel:
18 |     detailBuilder.HideCategory("Rendering");
19 |     detailBuilder.HideCategory("Replication");
20 |     detailBuilder.HideCategory("Collision");
21 |     detailBuilder.HideCategory("Input");
22 |     detailBuilder.HideCategory("Actor");
23 |     detailBuilder.HideCategory("LOD");
24 |     detailBuilder.HideCategory("Cooking");
25 | }


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/Achievements/EditorAchievementFeatureExample.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "Achievements/EditorAchievementFeatureExample.h" // First include (Unreal requirement)
 6 | #include "Achievements/AwsGameKitAchievementsExamples.h"
 7 | #include "Achievements/AwsGameKitAchievementsExamplesLayout.h"
 8 | 
 9 | EditorAchievementFeatureExample::EditorAchievementFeatureExample()
10 | {}
11 | 
12 | FName EditorAchievementFeatureExample::GetFeatureExampleClassName()
13 | {
14 |     return AAwsGameKitAchievementsExamples::StaticClass()->GetFName();
15 | }
16 | 
17 | FOnGetDetailCustomizationInstance EditorAchievementFeatureExample::GetDetailCustomizationForExampleCreationMethod()
18 | {
19 |     return FOnGetDetailCustomizationInstance::CreateStatic(&AwsGameKitAchievementsExamplesLayout::MakeInstance);
20 | }
21 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/AwsCredentialsManager.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "AwsCredentialsManager.h"
 7 | 
 8 | AwsCredentialsManager::AwsCredentialsManager()
 9 | {
10 |     // default to development until changed
11 |     this->env = "Development";
12 | 
13 |     FString userDir = FPlatformProcess::UserDir();
14 |     this->path = FPaths::Combine(userDir, TEXT("../.aws/credentials"));
15 |     if (FPaths::FileExists(this->path))
16 |     {
17 |         UE_LOG(LogAwsGameKit, Display, TEXT("Using credentials file: %s"), *this->path);
18 |         this->credentials.Read(this->path);
19 |     }
20 | }
21 | 
22 | void AwsCredentialsManager::SetAccessKey(const FString& val)
23 | {
24 |     FString profile = this->GetProfile();
25 |     this->credentials.SetString(*profile, TEXT("aws_access_key_id"), *val);
26 | }
27 | 
28 | void AwsCredentialsManager::SetSecretKey(const FString& val)
29 | {
30 |     FString profile = this->GetProfile();
31 |     this->credentials.SetString(*profile, TEXT("aws_secret_access_key"), *val);
32 | }
33 | 
34 | FString AwsCredentialsManager::GetKey(const FString& key) const
35 | {
36 |     FString profile = this->GetProfile();
37 |     FString result;
38 |     this->credentials.GetString(*profile, *key, result);
39 |     return result;
40 | }
41 | 
42 | FString AwsCredentialsManager::GetAccessKey() const
43 | {
44 |     return this->GetKey(FString("aws_access_key_id"));
45 | }
46 | 
47 | FString AwsCredentialsManager::GetSecretKey() const
48 | {
49 |     return this->GetKey(FString("aws_secret_access_key"));
50 | }
51 | 
52 | void AwsCredentialsManager::SaveCredentials()
53 | {
54 |     this->credentials.Write(this->path);
55 | }
56 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/AwsGameKitSettings.cpp:
--------------------------------------------------------------------------------
1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2 | // SPDX-License-Identifier: Apache-2.0
3 | 
4 | #include "AwsGameKitSettings.h"


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/AwsGameKitSettingsLayoutDetails.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #include "AwsGameKitSettingsLayoutDetails.h" // First include (Unreal requirement)
 5 | 
 6 | // GameKit
 7 | #include "Achievements/AwsGameKitAchievementsLayoutDetails.h"
 8 | #include "AwsGameKitCredentialsLayoutDetails.h"
 9 | #include "GameSaving/AwsGameKitGameSavingLayoutDetails.h"
10 | #include "Identity/AwsGameKitIdentityLayoutDetails.h"
11 | #include "UserGameplayData/AwsGameKitUserGameplayDataLayoutDetails.h"
12 | 
13 | AwsGameKitSettingsLayoutDetails::AwsGameKitSettingsLayoutDetails()
14 | {
15 |     FAwsGameKitEditorModule* editorModule = AWSGAMEKIT_EDITOR_MODULE_INSTANCE();
16 |     this->credentialsLayout = AwsGameKitCredentialsLayoutDetails::MakeInstance(editorModule);
17 |     this->achievementsLayout = AwsGameKitAchievementsLayoutDetails::MakeInstance(editorModule);
18 |     this->gameSavingLayout = AwsGameKitGameSavingLayoutDetails::MakeInstance(editorModule);
19 |     this->identityLayout = AwsGameKitIdentityLayoutDetails::MakeInstance(editorModule);
20 |     this->userGameplayDataLayout = AwsGameKitUserGameplayDataLayoutDetails::MakeInstance(editorModule);
21 | }
22 | 
23 | TSharedRef AwsGameKitSettingsLayoutDetails::MakeInstance()
24 | {
25 |     return MakeShareable(new AwsGameKitSettingsLayoutDetails());
26 | }
27 | 
28 | void AwsGameKitSettingsLayoutDetails::CustomizeDetails(IDetailLayoutBuilder& DetailLayout)
29 | {
30 |     // Layout order is preserved
31 |     this->credentialsLayout->CustomizeDetails(DetailLayout);
32 |     this->identityLayout->CustomizeDetails(DetailLayout);
33 |     this->achievementsLayout->CustomizeDetails(DetailLayout);
34 |     this->gameSavingLayout->CustomizeDetails(DetailLayout);
35 |     this->userGameplayDataLayout->CustomizeDetails(DetailLayout);
36 | }
37 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/GameSaving/AwsGameKitGameSavingExamplesLayout.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "GameSaving/AwsGameKitGameSavingExamplesLayout.h"
 6 | 
 7 | // Unreal
 8 | #include "DetailLayoutBuilder.h"
 9 | 
10 | TSharedRef AwsGameKitGameSavingExamplesLayout::MakeInstance()
11 | {
12 |     return MakeShareable(new AwsGameKitGameSavingExamplesLayout);
13 | }
14 | 
15 | void AwsGameKitGameSavingExamplesLayout::CustomizeDetails(IDetailLayoutBuilder& detailBuilder)
16 | {
17 |     // Hide these categories from Details panel:
18 |     detailBuilder.HideCategory("Rendering");
19 |     detailBuilder.HideCategory("Replication");
20 |     detailBuilder.HideCategory("Collision");
21 |     detailBuilder.HideCategory("Input");
22 |     detailBuilder.HideCategory("Actor");
23 |     detailBuilder.HideCategory("LOD");
24 |     detailBuilder.HideCategory("Cooking");
25 | }
26 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/GameSaving/EditorGameSavingFeatureExample.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "GameSaving/EditorGameSavingFeatureExample.h" // First include (Unreal requirement)
 6 | #include "GameSaving/AwsGameKitGameSavingExamples.h"
 7 | #include "GameSaving/AwsGameKitGameSavingExamplesLayout.h"
 8 | 
 9 | EditorGameSavingFeatureExample::EditorGameSavingFeatureExample()
10 | {}
11 | 
12 | FName EditorGameSavingFeatureExample::GetFeatureExampleClassName()
13 | {
14 |     return AAwsGameKitGameSavingExamples::StaticClass()->GetFName();
15 | }
16 | 
17 | FOnGetDetailCustomizationInstance EditorGameSavingFeatureExample::GetDetailCustomizationForExampleCreationMethod()
18 | {
19 |     return FOnGetDetailCustomizationInstance::CreateStatic(&AwsGameKitGameSavingExamplesLayout::MakeInstance);
20 | }
21 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/Identity/AwsGameKitIdentityExamplesLayout.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "Identity/AwsGameKitIdentityExamplesLayout.h" // First include (Unreal requirement)
 6 | 
 7 | // Unreal
 8 | #include "DetailLayoutBuilder.h"
 9 | 
10 | TSharedRef AwsGameKitIdentityExamplesLayout::MakeInstance()
11 | {
12 |     return MakeShareable(new AwsGameKitIdentityExamplesLayout);
13 | }
14 | 
15 | void AwsGameKitIdentityExamplesLayout::CustomizeDetails(IDetailLayoutBuilder& detailBuilder)
16 | {
17 |     // Hide these categories from Details panel:
18 |     detailBuilder.HideCategory("Rendering");
19 |     detailBuilder.HideCategory("Replication");
20 |     detailBuilder.HideCategory("Collision");
21 |     detailBuilder.HideCategory("Input");
22 |     detailBuilder.HideCategory("Actor");
23 |     detailBuilder.HideCategory("LOD");
24 |     detailBuilder.HideCategory("Cooking");
25 | }
26 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/Identity/EditorIdentityFeatureExample.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "Identity/EditorIdentityFeatureExample.h" // First include (Unreal requirement)
 6 | #include "Identity/AwsGameKitIdentityExamples.h"
 7 | #include "Identity/AwsGameKitIdentityExamplesLayout.h"
 8 | 
 9 | EditorIdentityFeatureExample::EditorIdentityFeatureExample()
10 | {}
11 | 
12 | FName EditorIdentityFeatureExample::GetFeatureExampleClassName()
13 | {
14 |     return AAwsGameKitIdentityExamples::StaticClass()->GetFName();
15 | }
16 | 
17 | FOnGetDetailCustomizationInstance EditorIdentityFeatureExample::GetDetailCustomizationForExampleCreationMethod()
18 | {
19 |     return FOnGetDetailCustomizationInstance::CreateStatic(&AwsGameKitIdentityExamplesLayout::MakeInstance);
20 | }
21 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/UserGameplayData/AwsGameKitUserGameplayDataExamplesLayout.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "UserGameplayData/AwsGameKitUserGameplayDataExamplesLayout.h"
 6 | 
 7 | // Unreal
 8 | #include "DetailLayoutBuilder.h"
 9 | 
10 | TSharedRef AwsGameKitUserGameplayDataExamplesLayout::MakeInstance()
11 | {
12 |     return MakeShareable(new AwsGameKitUserGameplayDataExamplesLayout);
13 | }
14 | 
15 | void AwsGameKitUserGameplayDataExamplesLayout::CustomizeDetails(IDetailLayoutBuilder& detailBuilder)
16 | {
17 |     // Hide these categories from Details panel:
18 |     detailBuilder.HideCategory("Rendering");
19 |     detailBuilder.HideCategory("Replication");
20 |     detailBuilder.HideCategory("Collision");
21 |     detailBuilder.HideCategory("Input");
22 |     detailBuilder.HideCategory("Actor");
23 |     detailBuilder.HideCategory("LOD");
24 |     detailBuilder.HideCategory("Cooking");
25 | }
26 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Private/UserGameplayData/EditorUserGameplayFeatureExample.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | // GameKit
 5 | #include "UserGameplayData/EditorUserGameplayFeatureExample.h" // First include (Unreal requirement)
 6 | #include "UserGameplayData/AwsGameKitUserGameplayDataExamples.h"
 7 | #include "UserGameplayData/AwsGameKitUserGameplayDataExamplesLayout.h"
 8 | 
 9 | EditorUserGameplayFeatureExample::EditorUserGameplayFeatureExample()
10 | {}
11 | 
12 | FName EditorUserGameplayFeatureExample::GetFeatureExampleClassName()
13 | {
14 |     return AAwsGameKitUserGameplayDataExamples::StaticClass()->GetFName();
15 | }
16 | 
17 | FOnGetDetailCustomizationInstance EditorUserGameplayFeatureExample::GetDetailCustomizationForExampleCreationMethod()
18 | {
19 |     return FOnGetDetailCustomizationInstance::CreateStatic(&AwsGameKitUserGameplayDataExamplesLayout::MakeInstance);
20 | }
21 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Achievements/AwsGameKitAchievementsExamplesLayout.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | #include "Templates/SharedPointer.h"
 9 | 
10 | /**
11 |  * This class defines the custom Details Panel that goes with the AwsGameKitAchievementsExamples Actor.
12 |  */
13 | class AWSGAMEKITEDITOR_API AwsGameKitAchievementsExamplesLayout : public IDetailCustomization
14 | {
15 | public:
16 |     /**
17 |      * Make a new instance of this detail layout class for a specific detail view requesting it.
18 |      */
19 |     static TSharedRef MakeInstance();
20 | 
21 |     virtual void CustomizeDetails(IDetailLayoutBuilder& detailBuilder) override;
22 | };
23 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Achievements/EditorAchievementFeatureExample.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "IGameKitEditorFeatureExample.h"
 8 | 
 9 | class AWSGAMEKITEDITOR_API EditorAchievementFeatureExample : IGameKitEditorFeatureExample
10 | {
11 | public:
12 |     EditorAchievementFeatureExample();
13 |     virtual ~EditorAchievementFeatureExample() {}
14 | 
15 |     FName GetFeatureExampleClassName() override;
16 |     FOnGetDetailCustomizationInstance GetDetailCustomizationForExampleCreationMethod() override;
17 | };
18 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/AwsCredentialsManager.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Containers/UnrealString.h"
 8 | #include "Misc/ConfigCacheIni.h"
 9 | 
10 | class AwsCredentialsManager
11 | {
12 | private:
13 |     FConfigFile credentials;
14 |     FString path;
15 |     FString gameName;
16 |     FString env;
17 | 
18 |     inline FString GetProfile() const
19 |     {
20 |         return FString("GameKit-") + *gameName + "-" + *env;
21 |     }
22 | 
23 |     FString GetKey(const FString& key) const;
24 | 
25 | public:
26 |     AwsCredentialsManager();
27 | 
28 |     inline void SetGameName(const FString& name)
29 |     {
30 |         this->gameName = name;
31 |     }
32 | 
33 |     inline void SetEnv(const FString& environment)
34 |     {
35 |         this->env = environment;
36 |     }
37 | 
38 |     void SaveCredentials();
39 |     void SetAccessKey(const FString& val);
40 |     void SetSecretKey(const FString& val);
41 |     FString GetAccessKey() const;
42 |     FString GetSecretKey() const;
43 | };
44 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/AwsGameKitSettings.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "CoreMinimal.h"
 7 | #include "UObject/NoExportTypes.h"
 8 | 
 9 | #include "AwsGameKitSettings.generated.h" // Last include (Unreal requirement)
10 | 
11 | /**
12 |  * Placeholder object for AWS GameKit settings. Add basic UPROPERTY configurations here.
13 |  * Layout customizations can be added to the AwsGameKitSettingsLayoutDetails class.
14 |  */
15 | UCLASS()
16 | class AWSGAMEKITEDITOR_API UAwsGameKitSettings : public UObject
17 | {
18 | 	GENERATED_BODY()
19 | };
20 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/AwsGameKitSettingsLayoutDetails.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | #include "Templates/SharedPointer.h"
 9 | 
10 | class AWSGAMEKITEDITOR_API AwsGameKitSettingsLayoutDetails : public IDetailCustomization
11 | {
12 | private:
13 |     TSharedPtr credentialsLayout;
14 |     TSharedPtr achievementsLayout;
15 |     TSharedPtr gameSavingLayout;
16 |     TSharedPtr identityLayout;
17 |     TSharedPtr userGameplayDataLayout;
18 |     
19 | public:
20 |     AwsGameKitSettingsLayoutDetails();
21 | 
22 |     /**
23 |     * @brief Creates a new instance.
24 |     * @return A new property type customization.
25 |     */
26 |     static TSharedRef MakeInstance();
27 | 
28 |     // IDetailCustomization interface
29 |     virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
30 | };


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/AwsGameKitStyleSet.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Templates/SharedPointer.h"
 8 | 
 9 | // Unreal forward declarations
10 | class FSlateStyleSet;
11 | 
12 | class AwsGameKitStyleSet
13 | {
14 | public:
15 |     static TSharedPtr Style;
16 |     AwsGameKitStyleSet();
17 |     ~AwsGameKitStyleSet() = default;
18 | };


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/EditorState.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include 
 8 | 
 9 | // Unreal
10 | #include "Containers/UnrealString.h"
11 | 
12 | // Unreal forward declarations
13 | class IMessageContext;
14 | 
15 | // Last include (Unreal requirement)
16 | #include "EditorState.generated.h"
17 | 
18 | USTRUCT()
19 | struct FMsgCredentialsState
20 | {
21 |     GENERATED_BODY()
22 |     bool IsSubmitted;
23 | };
24 | 
25 | USTRUCT()
26 | struct FMsgDeploymentState
27 | {
28 |     GENERATED_BODY()
29 |     FeatureType FeatureType;
30 | };
31 | 
32 | class EditorState
33 | {
34 | private:
35 |     TMap stateMap;
36 | public:
37 |     static const FString EDITOR_STATE_SHORT_GAME_NAME;
38 |     static const FString EDITOR_STATE_SELECTED_ENVIRONMENT;
39 |     static const FString EDITOR_STATE_ACCOUNT_ID;
40 |     static const FString EDITOR_STATE_REGION;
41 |     static const FString EDITOR_STATE_ACCESS_KEY;
42 |     static const FString EDITOR_STATE_ACCESS_SECRET;
43 |     static const FString EDITOR_STATE_CREDENTIALS_SUBMITTED;
44 |     static const FString TrueString;
45 |     static const FString FalseString;
46 | 
47 |     void SetCredentials(const AccountDetails& accountDetails);
48 |     void SetCredentialState(bool isSubmitted);
49 | 
50 |     TMap GetCredentials() const;
51 |     bool GetCredentialState() const;
52 |     bool AreCredentialsValid() const;
53 | 
54 |     // MessageBus Handlers
55 |     void CredentialsStateMessageHandler(const struct FMsgCredentialsState& message, const TSharedRef& context);
56 | };
57 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/GameSaving/AwsGameKitGameSavingExamplesLayout.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | #include "Templates/SharedPointer.h"
 9 | 
10 | /**
11 |  * This class defines the custom Details Panel that goes with the AwsGameKitGameSavingExamples Actor.
12 |  */
13 | class AWSGAMEKITEDITOR_API AwsGameKitGameSavingExamplesLayout : public IDetailCustomization
14 | {
15 | public:
16 |     /**
17 |      * Make a new instance of this detail layout class for a specific detail view requesting it.
18 |      */
19 |     static TSharedRef MakeInstance();
20 | 
21 |     virtual void CustomizeDetails(IDetailLayoutBuilder& detailBuilder) override;
22 | };
23 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/GameSaving/EditorGameSavingFeatureExample.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "IGameKitEditorFeatureExample.h"
 8 | 
 9 | class AWSGAMEKITEDITOR_API EditorGameSavingFeatureExample : IGameKitEditorFeatureExample
10 | {
11 | public:
12 |     EditorGameSavingFeatureExample();
13 |     virtual ~EditorGameSavingFeatureExample() {}
14 | 
15 |     FName GetFeatureExampleClassName() override;
16 |     FOnGetDetailCustomizationInstance GetDetailCustomizationForExampleCreationMethod() override;
17 | };
18 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/IGameKitEditorFeatureExample.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | 
 9 | class AWSGAMEKITEDITOR_API IGameKitEditorFeatureExample
10 | {
11 | public:
12 |     IGameKitEditorFeatureExample() {}
13 |     virtual ~IGameKitEditorFeatureExample() {}
14 |     virtual FName GetFeatureExampleClassName() = 0;
15 |     virtual FOnGetDetailCustomizationInstance GetDetailCustomizationForExampleCreationMethod() = 0;
16 | };
17 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Identity/AwsGameKitIdentityExamplesLayout.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | 
 9 | /**
10 |  * This class defines the custom Details Panel that goes with the AwsGameKitIdentityExamples Actor.
11 |  */
12 | class AWSGAMEKITEDITOR_API AwsGameKitIdentityExamplesLayout : public IDetailCustomization
13 | {
14 | public:
15 |     /**
16 |      * Make a new instance of this detail layout class for a specific detail view requesting it.
17 |      */
18 |     static TSharedRef MakeInstance();
19 | 
20 |     virtual void CustomizeDetails(IDetailLayoutBuilder& detailBuilder) override;
21 | };
22 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Identity/EditorIdentityFeatureExample.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "IGameKitEditorFeatureExample.h"
 8 | 
 9 | class AWSGAMEKITEDITOR_API EditorIdentityFeatureExample : IGameKitEditorFeatureExample
10 | {
11 | public:
12 |     EditorIdentityFeatureExample();
13 |     virtual ~EditorIdentityFeatureExample() {}
14 | 
15 |     FName GetFeatureExampleClassName() override;
16 |     FOnGetDetailCustomizationInstance GetDetailCustomizationForExampleCreationMethod() override;
17 | };
18 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/ImageDownloader.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Containers/UnrealString.h"
 8 | #include "Templates/SharedPointer.h"
 9 | #include "HttpModule.h"
10 | 
11 | // Unreal forward declarations
12 | class SImage;
13 | 
14 | class GameKitImage :
15 |     public SImage
16 | {
17 | public:
18 |     const FSlateBrush* brush;
19 | };
20 | 
21 | class IImageDownloader
22 | {
23 | public:
24 |     IImageDownloader() {}
25 |     virtual ~IImageDownloader() {}
26 |     virtual void SetImageFromUrl(const FString& iconUrl, const TSharedPtr& iconImg, int retryCount) {};
27 |     virtual void HandleImageDownload(FHttpRequestPtr request, FHttpResponsePtr response, bool succeeded) {};
28 | };
29 | 
30 | typedef TSharedPtr IImageDownloaderPtr;
31 | 
32 | struct ImageResource
33 | {
34 |     TSharedPtr iconImg;
35 |     int attempts;
36 | };
37 | 
38 | class AWSGAMEKITEDITOR_API ImageDownloader :
39 |     public TSharedFromThis,
40 |     public IImageDownloader
41 | {
42 | private:
43 |     FCriticalSection downloadMutex;
44 |     TMap imageDownloads;
45 | 
46 | public:
47 |     static const int DOWNLOAD_MAX_ATTEMPTS = 5;
48 |     static const int DOWNLOAD_RETRY_DELAY_IN_SECONDS = 1;
49 | 
50 |     static IImageDownloaderPtr MakeInstance();
51 |     virtual void SetImageFromUrl(const FString& iconUrl, const TSharedPtr& iconImg, int retryCount) override;
52 |     virtual void HandleImageDownload(FHttpRequestPtr request, FHttpResponsePtr response, bool succeeded) override;
53 | };
54 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/UserGameplayData/AwsGameKitUserGameplayDataExamplesLayout.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "IDetailCustomization.h"
 8 | #include "Templates/SharedPointer.h"
 9 | 
10 | /**
11 |  * This class defines the custom Details Panel that goes with the Aws GameKit User Gameplay Data Examples Actor.
12 |  */
13 | class AWSGAMEKITEDITOR_API AwsGameKitUserGameplayDataExamplesLayout : public IDetailCustomization
14 | {
15 | public:
16 |     /**
17 |      * Make a new instance of this detail layout class for a specific detail view requesting it.
18 |      */
19 |     static TSharedRef MakeInstance();
20 | 
21 |     virtual void CustomizeDetails(IDetailLayoutBuilder& detailBuilder) override;
22 | };
23 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/UserGameplayData/AwsGameKitUserGameplayDataLayoutDetails.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "AwsGameKitFeatureLayoutDetails.h"
 8 | 
 9 | // Unreal
10 | #include "DetailCategoryBuilder.h"
11 | #include "IDetailCustomization.h"
12 | #include "Templates/SharedPointer.h"
13 | 
14 | // Unreal forward declarations
15 | class FMessageEndpoint;
16 | 
17 | class AWSGAMEKITEDITOR_API AwsGameKitUserGameplayDataLayoutDetails : public AwsGameKitFeatureLayoutDetails
18 | {
19 | public:
20 | 
21 |     AwsGameKitUserGameplayDataLayoutDetails(const FAwsGameKitEditorModule* editorModule);
22 |     ~AwsGameKitUserGameplayDataLayoutDetails() = default;
23 | 
24 |     /**
25 |     * @brief Creates a new instance.
26 |     * @return A new property type customization.
27 |     */
28 |     static TSharedRef MakeInstance(const FAwsGameKitEditorModule* editorModule);
29 | 
30 |     // IDetailCustomization interface
31 |     virtual void CustomizeDetails(IDetailLayoutBuilder& DetailLayout) override;
32 | };
33 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/UserGameplayData/EditorUserGameplayFeatureExample.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "IGameKitEditorFeatureExample.h"
 8 | 
 9 | class AWSGAMEKITEDITOR_API EditorUserGameplayFeatureExample : IGameKitEditorFeatureExample
10 | {
11 | public:
12 |     EditorUserGameplayFeatureExample();
13 |     virtual ~EditorUserGameplayFeatureExample() {}
14 | 
15 |     FName GetFeatureExampleClassName() override;
16 |     FOnGetDetailCustomizationInstance GetDetailCustomizationForExampleCreationMethod() override;
17 | };
18 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Utils/AwsGameKitDocumentationManager.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // GameKit
 7 | #include "Core/Logging.h"
 8 | 
 9 | // Unreal
10 | #include "Containers/UnrealString.h"
11 | #include "Misc/ConfigCacheIni.h"
12 | #include "Templates/SharedPointer.h"
13 | 
14 | // Forward declarations
15 | class SBox;
16 | 
17 | class AwsGameKitDocumentationManager
18 | {
19 | private:
20 |     static TSharedPtr documentationConfig;
21 | 
22 | public:
23 | 
24 |     static FString GetDocumentString(const FString& section, const FString& key);
25 |     static TSharedRef BuildHelpButton(const FString& section, const FString& linkKey);
26 | 
27 |     static FText GetDocumentText(const FString& section, const FString& key)
28 |     {
29 |         return FText::FromString(GetDocumentString(section, key));
30 |     }
31 | };
32 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitEditor/Public/Utils/AwsGameKitProjectSettingsUtils.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | #define LEFT_COLUMN_BOX(content) SHorizontalBox::Slot() \
 7 |     .Padding(0, 5) \
 8 |     .AutoWidth() \
 9 |     .VAlign(VAlign_Center) \
10 |     [ \
11 |         SNew(SBox) \
12 |         .WidthOverride(GameKit::PROJECT_SETTINGS_LEFT_COLUMN_WIDTH) \
13 |         .MinDesiredWidth(GameKit::PROJECT_SETTINGS_LEFT_COLUMN_WIDTH) \
14 |         [ content ] \
15 |     ]
16 | 
17 | #define RIGHT_COLUMN_BOX(content) SHorizontalBox::Slot() \
18 |     .Padding(0, 5) \
19 |     .FillWidth(GameKit::PROJECT_SETTINGS_FILL_REMAINING) \
20 |     [ content ]
21 | 
22 | #define PROJECT_SETTINGS_ROW(left, right) SNew(SHorizontalBox) \
23 |     + LEFT_COLUMN_BOX(left) \
24 |     + RIGHT_COLUMN_BOX(right)
25 | 
26 | #define EXTERNAL_ICON_BOX() SNew(SVerticalBox) \
27 |     + SVerticalBox::Slot() \
28 |     .MaxHeight(15) \
29 |     [ \
30 |         SNew(SHorizontalBox) \
31 |         + SHorizontalBox::Slot() \
32 |         [ \
33 |             SNew(SImage) \
34 |             .Image(AwsGameKitStyleSet::Style->GetBrush("ExternalIcon")) \
35 |         ] \
36 |     ]
37 | 
38 | namespace GameKit
39 | {
40 |     static const float PROJECT_SETTINGS_LEFT_COLUMN_WIDTH = 150.0f;
41 |     static const float PROJECT_SETTINGS_FILL_REMAINING = 5.0f;
42 | }


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Private/UserGameplayData/AwsGameKitUserGameplayDataStateHandler.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #include "UserGameplayData/AwsGameKitUserGameplayDataStateHandler.h"
 5 | 
 6 | void AwsGameKitUserGameplayDataStateHandler::SetCacheProcessedDelegate(const FCacheProcessedDelegate& cacheProcessedDelegate)
 7 | {
 8 |     if (!this->onCacheProcessedDelegate.IsBound() && cacheProcessedDelegate.IsBound()) {
 9 |         this->onCacheProcessedDelegate = cacheProcessedDelegate;
10 |     }
11 | }
12 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Private/Utils/Blueprints/UAwsGameKitErrorUtils.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #include "Utils/Blueprints/UAwsGameKitErrorUtils.h"
 5 | 
 6 | // GameKit
 7 | #include 
 8 | 
 9 | FString UAwsGameKitErrorUtils::StatusCodeToHexFString(int statusCode)
10 | {
11 |     return GameKit::StatusCodeToHexFStr((unsigned int) statusCode);
12 | }
13 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Private/Utils/Blueprints/UAwsGameKitLifecycleUtils.cpp:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #include "Utils/Blueprints/UAwsGameKitLifecycleUtils.h"
 5 | 
 6 | // GameKit
 7 | #include "AwsGameKitCore.h"
 8 | #include "AwsGameKitRuntime.h"
 9 | 
10 | void UAwsGameKitLifecycleUtils::ShutdownGameKit()
11 | {
12 |     UE_LOG(LogAwsGameKit, Log, TEXT("UAwsGameKitLifecycleUtils::ShutdownGameKit()"));
13 |     FAwsGameKitCoreModule* coreModule = FModuleManager::GetModulePtr("AwsGameKitCore");
14 |     FAwsGameKitRuntimeModule* runtimeModule = FModuleManager::GetModulePtr("AwsGameKitRuntime");
15 | 
16 |     UE_LOG(LogAwsGameKit, Log, TEXT("Shutting down AwsGameKitRuntime..."));
17 |     runtimeModule->ShutdownModule();
18 | 
19 |     UE_LOG(LogAwsGameKit, Log, TEXT("Shutting down AwsGameKitCore..."));
20 |     coreModule->ShutdownModule();
21 | }
22 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Public/Models/AwsGameKitCommonModels.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "Dom/JsonObject.h"
 7 | #include "Dom/JsonValue.h"
 8 | #include "Serialization/JsonSerializer.h"
 9 | #include "AwsGameKitCommonModels.generated.h"
10 | 
11 | USTRUCT(BlueprintType)
12 | struct AWSGAMEKITRUNTIME_API FAwsGameKitOperationResult
13 | {
14 |     GENERATED_USTRUCT_BODY()
15 | public:
16 |     /**
17 |      * A GameKit status code indicating the reason the API call failed. Status codes are defined in errors.h.
18 |      * Each API's possible status codes should be documented on the "Error" pin of the API node.
19 |      */
20 |     UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "AWS GameKit | Core")
21 |     int Status;
22 | 
23 |     /**
24 |      * An optional error message which may explain why the API call failed.
25 |      */
26 |     UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "AWS GameKit | Core")
27 |     FString Message;
28 | };
29 | 
30 | UENUM(BlueprintType)
31 | enum class FeatureType_E : uint8
32 | {
33 |     Main = 0 UMETA(DisplayName = "Main"),
34 |     Identity = 1 UMETA(DisplayName = "Identity"),
35 |     Authentication = 2 UMETA(DisplayName = "Authentication"),
36 |     Achievements = 3 UMETA(DisplayName = "Achievements"),
37 |     GameStateCloudSaving = 5 UMETA(DisplayName = "Game State Cloud Saving"),
38 |     UserGameplayData = 6 UMETA(DisplayName = "User Gameplay Data")
39 | };
40 | 
41 | UENUM(BlueprintType)
42 | enum class TokenType_E : uint8
43 | {
44 |     AccessToken = 0 UMETA(DisplayName = "AccessToken"),
45 |     RefreshToken =1 UMETA(DisplayName = "RefreshToken"),
46 |     IdToken = 2 UMETA(DisplayName = "IdToken"),
47 |     IamSessionToken = 3 UMETA(DisplayName = "IamSessionToken")
48 | };
49 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Public/Models/AwsGameKitSessionManagerModels.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | #include "AwsGameKitCommonModels.h"
 7 | #include "AwsGameKitSessionManagerModels.generated.h"
 8 | 
 9 | USTRUCT(BlueprintType)
10 | struct FSetTokenRequest
11 | {
12 |     GENERATED_BODY()
13 | 
14 |     /**
15 |      * The token type to set.
16 |      */
17 |     UPROPERTY(BlueprintReadWrite, Category = "AWS GameKit | SessionManager | Token")
18 |     TokenType_E TokenType;
19 | 
20 |     /**
21 |      * The value of the token
22 |      */
23 |     UPROPERTY(BlueprintReadWrite, Category = "AWS GameKit | SessionManager | Token")
24 |     FString TokenValue;
25 | };
26 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Public/UserGameplayData/AwsGameKitUserGameplayDataStateHandler.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Delegates/Delegate.h"
 8 | #include "UObject/NoExportTypes.h"
 9 | 
10 | #include "AwsGameKitUserGameplayDataStateHandler.generated.h"
11 | 
12 | /**
13 |  * @brief This class sets and keeps the state of what delegates and other long term variables are to be used for the User Gameplay Data library.
14 |  */
15 | UDELEGATE(BlueprintCallable, Category = "AWS GameKit | User Gameplay Data | Cache Processed Delegate")
16 | DECLARE_DYNAMIC_DELEGATE_OneParam(FCacheProcessedDelegate, bool, isCacheProcessed);
17 | class AWSGAMEKITRUNTIME_API AwsGameKitUserGameplayDataStateHandler
18 | {
19 | public:
20 |     // Delegate that gets triggered when the offline cache is finished processing
21 |     FCacheProcessedDelegate onCacheProcessedDelegate;
22 | 
23 |     /**
24 |      * @brief Set the callback to invoke when the offline cache finishes processing.
25 |      *
26 |      * @param cacheProcessedDelegate Reference to receiver that will be notified on when the offline cache is finished processing
27 |     */
28 |     void SetCacheProcessedDelegate(const FCacheProcessedDelegate& cacheProcessedDelegate);
29 | };
30 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Public/Utils/Blueprints/UAwsGameKitErrorUtils.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "Containers/UnrealString.h"
 8 | #include "Kismet/BlueprintFunctionLibrary.h"
 9 | 
10 | #include "UAwsGameKitErrorUtils.generated.h" // Last include (Unreal requirement)
11 | 
12 | /**
13 |  * @brief A library with useful utility functions for handling GameKit status codes that can be called from both Blueprint and C++.
14 |  */
15 | UCLASS()
16 | class AWSGAMEKITRUNTIME_API UAwsGameKitErrorUtils : public UBlueprintFunctionLibrary
17 | {
18 |     GENERATED_BODY()
19 | 
20 | public:
21 |     /**
22 |      * Convert a GameKit status code from decimal integer to a hexadecimal string representation.
23 |      *
24 |      * For example, convert 69632 (GAMEKIT_ERROR_GAME_SAVING_SLOT_NOT_FOUND) to "0x11000".
25 |      *
26 |      * All GameKit status codes are defined in errors.h. Each method's documentation lists the possible status codes which the method may return.
27 |      *
28 |      * @param statusCode The GameKit status code in integer form.
29 |      *
30 |      * @return The GameKit status code in hexadecimal string.
31 |      */
32 |     UFUNCTION(BlueprintCallable, Category = "AWS GameKit | Utilities | Errors")
33 |     static FString StatusCodeToHexFString(int statusCode);
34 | };
35 | 


--------------------------------------------------------------------------------
/AwsGameKit/Source/AwsGameKitRuntime/Public/Utils/Blueprints/UAwsGameKitLifecycleUtils.h:
--------------------------------------------------------------------------------
 1 | // Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 2 | // SPDX-License-Identifier: Apache-2.0
 3 | 
 4 | #pragma once
 5 | 
 6 | // Unreal
 7 | #include "CoreMinimal.h"
 8 | #include "Kismet/BlueprintFunctionLibrary.h"
 9 | 
10 | #include "UAwsGameKitLifecycleUtils.generated.h" // Last include (Unreal requirement)
11 | 
12 | /**
13 |  * @brief A library with useful utility functions for GameKit lifecycle management
14 |  */
15 | UCLASS()
16 | class AWSGAMEKITRUNTIME_API UAwsGameKitLifecycleUtils : public UBlueprintFunctionLibrary
17 | {
18 |     GENERATED_BODY()
19 | 
20 | public:
21 |     /**
22 |     * Shutsdown GameKit Modules
23 |     */
24 |     UFUNCTION(BlueprintCallable, Category = "AWS GameKit | Utilities | Lifecycle")
25 |     static void ShutdownGameKit();
26 | };
27 | 


--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | ## Code of Conduct
2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
4 | opensource-codeofconduct@amazon.com with any additional questions or comments.
5 | 


--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
 1 | ## Need help?
 2 | If you have questions, comments, or simply want to engage with the AWS GameKit developer community, please leverage our [issues list](https://github.com/aws/aws-gamekit/issues) where we actively monitor and respond to developer feedback and concerns.
 3 | 
 4 | ## Report an issue
 5 | If you find a bug in the source code or a mistake in the documentation, please submit an issue using the [issue tracker](https://github.com/aws/aws-gamekit/issues/new).
 6 | 
 7 | Before opening a new issue, please look through the [open issues](https://github.com/aws/aws-gamekit/issues) to make sure it's not a duplicate. Avoiding duplicates allows our team to spend more time fixing bugs, adding new features, and making AWS GameKit awesome. If you find an existing issue and you have additional information, please add it to that issue.   
 8 | 
 9 | The following information will ensure a quick response:
10 | 
11 | * **Overview** - provide a brief, but complete, overview of the issue you're encountering.
12 | * **OS and build** - tell us about your operating system and build.
13 | * **Game engine version and build** - tell us about your game engine version and build.
14 | * **Logs** - can you spot the issue in your logs?
15 | * **Related issues** - does a similar issue exist (open or closed)?
16 | 
17 | ## Pull requests
18 | We are **not** accepting pull requests or community contributed bug fixes at this time.
19 | 


--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
 1 | # AWS GameKit Plugin for Unreal
 2 | 
 3 | ## Dev Setup
 4 | 
 5 | ### Unreal/C++
 6 | **The plugin is developed using Unreal version 5.0. Install before proceeding.**
 7 | 
 8 | Game projects created in Unreal versions later than 5.0 are not backward compatible. AWS GameKit supports Unreal Engine version 5.0.
 9 | 
10 | #### Build
11 | 
12 | ##### Windows
13 | 1. Create the Visual Studio Solution for your game. In File Explorer, right click on `[your_game].uproject` and select "Generate Visual Studio project files"
14 | 
15 | 2. Build [GameKit C++](https://github.com/aws/aws-gamekit) and copy over the DLL/PDB files. Make sure to checkout the matching version from the .gkcpp_version file in this repository. Note: this step is only needed if the plugin is being rebuilt. Prebuilt plugin for Windows, macOS, Android and iOS can be downloaded from this repository's [Releases](https://github.com/aws/aws-gamekit-unreal/releases).
16 | 
17 | ##### macOS
18 | 1. Generate the Xcode workspace
19 | 
20 | ```
21 | /Users/Shared/Epic\ Games/UE_5.0/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh -project 
22 | ```
23 | 
24 | 2. Build [GameKit C++](https://github.com/aws/aws-gamekit) and copy over the libraries. Make sure to checkout the matching version from the .gkcpp_version file in this repository. Note: this step is only needed if the plugin is being rebuilt. Prebuilt plugin for Windows, macOS, Android and iOS can be downloaded from this repository's [Releases](https://github.com/aws/aws-gamekit-unreal/releases).
25 | 
26 | ##### Android and iOS
27 | Detailed steps for building and packaging a game for Android and iOS are available in the [Game Packaging section of our Production Readiness Guide](https://docs.aws.amazon.com/gamekit/latest/DevGuide/launch-package.html).
28 | 
29 | ### Using the Plugin
30 | Check the updated [GUIDE](https://docs.aws.amazon.com/gamekit/latest/DevGuide/setting-up.html) for in-depth details about how to use AWS GameKit.
31 | 


--------------------------------------------------------------------------------