akeyless 5.0.7 → 5.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -1
  3. data/docs/Auth.md +4 -0
  4. data/docs/AuthOutput.md +2 -0
  5. data/docs/CreateRole.md +2 -0
  6. data/docs/DSProducerDetails.md +10 -0
  7. data/docs/DynamicSecretCreateOpenAI.md +40 -0
  8. data/docs/DynamicSecretUpdateOpenAI.md +42 -0
  9. data/docs/EsmGetSecretOutput.md +2 -0
  10. data/docs/EventForwarderCreateTeams.md +44 -0
  11. data/docs/EventForwarderUpdateTeams.md +46 -0
  12. data/docs/GatewayCreateAllowedAccess.md +1 -1
  13. data/docs/GatewayUpdateAllowedAccess.md +1 -1
  14. data/docs/GeminiTargetDetails.md +2 -2
  15. data/docs/GetCertChallenge.md +22 -0
  16. data/docs/GetCertChallengeOutput.md +18 -0
  17. data/docs/NotiForwarder.md +2 -0
  18. data/docs/OpenAITargetDetails.md +5 -5
  19. data/docs/PathRule.md +2 -0
  20. data/docs/ReverseRBACClient.md +2 -0
  21. data/docs/RoleAuthMethodAssociation.md +2 -0
  22. data/docs/SecretInfo.md +2 -0
  23. data/docs/SharingItemFullInfo.md +2 -0
  24. data/docs/TargetItemAssociation.md +2 -0
  25. data/docs/UpdateRole.md +2 -0
  26. data/docs/UscCreate.md +2 -0
  27. data/docs/UscGetSecretOutput.md +2 -0
  28. data/docs/UscUpdate.md +2 -0
  29. data/docs/V2Api.md +315 -0
  30. data/lib/akeyless/api/v2_api.rb +320 -0
  31. data/lib/akeyless/models/auth.rb +21 -1
  32. data/lib/akeyless/models/auth_output.rb +10 -1
  33. data/lib/akeyless/models/create_role.rb +11 -1
  34. data/lib/akeyless/models/ds_producer_details.rb +46 -1
  35. data/lib/akeyless/models/dynamic_secret_create_open_ai.rb +339 -0
  36. data/lib/akeyless/models/dynamic_secret_update_open_ai.rb +349 -0
  37. data/lib/akeyless/models/esm_get_secret_output.rb +10 -1
  38. data/lib/akeyless/models/event_forwarder_create_teams.rb +385 -0
  39. data/lib/akeyless/models/event_forwarder_update_teams.rb +391 -0
  40. data/lib/akeyless/models/gateway_create_allowed_access.rb +1 -1
  41. data/lib/akeyless/models/gateway_update_allowed_access.rb +1 -1
  42. data/lib/akeyless/models/gemini_target_details.rb +7 -7
  43. data/lib/akeyless/models/get_cert_challenge.rb +238 -0
  44. data/lib/akeyless/models/get_cert_challenge_output.rb +214 -0
  45. data/lib/akeyless/models/noti_forwarder.rb +10 -1
  46. data/lib/akeyless/models/open_ai_target_details.rb +19 -19
  47. data/lib/akeyless/models/path_rule.rb +11 -1
  48. data/lib/akeyless/models/reverse_rbac_client.rb +10 -1
  49. data/lib/akeyless/models/role_auth_method_association.rb +10 -1
  50. data/lib/akeyless/models/secret_info.rb +10 -1
  51. data/lib/akeyless/models/sharing_item_full_info.rb +11 -1
  52. data/lib/akeyless/models/target_item_association.rb +10 -1
  53. data/lib/akeyless/models/update_role.rb +11 -1
  54. data/lib/akeyless/models/usc_create.rb +11 -1
  55. data/lib/akeyless/models/usc_get_secret_output.rb +10 -1
  56. data/lib/akeyless/models/usc_update.rb +11 -1
  57. data/lib/akeyless/version.rb +1 -1
  58. data/lib/akeyless.rb +6 -0
  59. data/spec/models/dynamic_secret_create_open_ai_spec.rb +102 -0
  60. data/spec/models/dynamic_secret_update_open_ai_spec.rb +108 -0
  61. data/spec/models/event_forwarder_create_teams_spec.rb +114 -0
  62. data/spec/models/event_forwarder_update_teams_spec.rb +120 -0
  63. data/spec/models/get_cert_challenge_output_spec.rb +36 -0
  64. data/spec/models/get_cert_challenge_spec.rb +48 -0
  65. metadata +25 -1
@@ -29,6 +29,10 @@ module Akeyless
29
29
 
30
30
  attr_accessor :administrative_port
31
31
 
32
+ attr_accessor :api_key
33
+
34
+ attr_accessor :api_key_id
35
+
32
36
  attr_accessor :artifactory_admin_apikey
33
37
 
34
38
  attr_accessor :artifactory_admin_username
@@ -402,12 +406,16 @@ module Akeyless
402
406
 
403
407
  attr_accessor :mysql_revocation_statements
404
408
 
409
+ attr_accessor :openai_url
410
+
405
411
  attr_accessor :oracle_creation_statements
406
412
 
407
413
  attr_accessor :oracle_revocation_statements
408
414
 
409
415
  attr_accessor :oracle_wallet_details
410
416
 
417
+ attr_accessor :organization_id
418
+
411
419
  attr_accessor :password
412
420
 
413
421
  attr_accessor :password_length
@@ -424,6 +432,8 @@ module Akeyless
424
432
 
425
433
  attr_accessor :privileged_user
426
434
 
435
+ attr_accessor :project_id
436
+
427
437
  attr_accessor :rabbitmq_server_password
428
438
 
429
439
  attr_accessor :rabbitmq_server_uri
@@ -550,6 +560,8 @@ module Akeyless
550
560
  :'admin_pwd' => :'admin_pwd',
551
561
  :'admin_rotation_interval_days' => :'admin_rotation_interval_days',
552
562
  :'administrative_port' => :'administrative_port',
563
+ :'api_key' => :'api_key',
564
+ :'api_key_id' => :'api_key_id',
553
565
  :'artifactory_admin_apikey' => :'artifactory_admin_apikey',
554
566
  :'artifactory_admin_username' => :'artifactory_admin_username',
555
567
  :'artifactory_base_url' => :'artifactory_base_url',
@@ -729,9 +741,11 @@ module Akeyless
729
741
  :'mssql_revocation_statements' => :'mssql_revocation_statements',
730
742
  :'mysql_creation_statements' => :'mysql_creation_statements',
731
743
  :'mysql_revocation_statements' => :'mysql_revocation_statements',
744
+ :'openai_url' => :'openai_url',
732
745
  :'oracle_creation_statements' => :'oracle_creation_statements',
733
746
  :'oracle_revocation_statements' => :'oracle_revocation_statements',
734
747
  :'oracle_wallet_details' => :'oracle_wallet_details',
748
+ :'organization_id' => :'organization_id',
735
749
  :'password' => :'password',
736
750
  :'password_length' => :'password_length',
737
751
  :'password_policy' => :'password_policy',
@@ -740,6 +754,7 @@ module Akeyless
740
754
  :'postgres_creation_statements' => :'postgres_creation_statements',
741
755
  :'postgres_revocation_statements' => :'postgres_revocation_statements',
742
756
  :'privileged_user' => :'privileged_user',
757
+ :'project_id' => :'project_id',
743
758
  :'rabbitmq_server_password' => :'rabbitmq_server_password',
744
759
  :'rabbitmq_server_uri' => :'rabbitmq_server_uri',
745
760
  :'rabbitmq_server_user' => :'rabbitmq_server_user',
@@ -813,6 +828,8 @@ module Akeyless
813
828
  :'admin_pwd' => :'String',
814
829
  :'admin_rotation_interval_days' => :'Integer',
815
830
  :'administrative_port' => :'String',
831
+ :'api_key' => :'String',
832
+ :'api_key_id' => :'String',
816
833
  :'artifactory_admin_apikey' => :'String',
817
834
  :'artifactory_admin_username' => :'String',
818
835
  :'artifactory_base_url' => :'String',
@@ -992,9 +1009,11 @@ module Akeyless
992
1009
  :'mssql_revocation_statements' => :'String',
993
1010
  :'mysql_creation_statements' => :'String',
994
1011
  :'mysql_revocation_statements' => :'String',
1012
+ :'openai_url' => :'String',
995
1013
  :'oracle_creation_statements' => :'String',
996
1014
  :'oracle_revocation_statements' => :'String',
997
1015
  :'oracle_wallet_details' => :'WalletDetails',
1016
+ :'organization_id' => :'String',
998
1017
  :'password' => :'String',
999
1018
  :'password_length' => :'Integer',
1000
1019
  :'password_policy' => :'String',
@@ -1003,6 +1022,7 @@ module Akeyless
1003
1022
  :'postgres_creation_statements' => :'String',
1004
1023
  :'postgres_revocation_statements' => :'String',
1005
1024
  :'privileged_user' => :'String',
1025
+ :'project_id' => :'String',
1006
1026
  :'rabbitmq_server_password' => :'String',
1007
1027
  :'rabbitmq_server_uri' => :'String',
1008
1028
  :'rabbitmq_server_user' => :'String',
@@ -1112,6 +1132,14 @@ module Akeyless
1112
1132
  self.administrative_port = attributes[:'administrative_port']
1113
1133
  end
1114
1134
 
1135
+ if attributes.key?(:'api_key')
1136
+ self.api_key = attributes[:'api_key']
1137
+ end
1138
+
1139
+ if attributes.key?(:'api_key_id')
1140
+ self.api_key_id = attributes[:'api_key_id']
1141
+ end
1142
+
1115
1143
  if attributes.key?(:'artifactory_admin_apikey')
1116
1144
  self.artifactory_admin_apikey = attributes[:'artifactory_admin_apikey']
1117
1145
  end
@@ -1844,6 +1872,10 @@ module Akeyless
1844
1872
  self.mysql_revocation_statements = attributes[:'mysql_revocation_statements']
1845
1873
  end
1846
1874
 
1875
+ if attributes.key?(:'openai_url')
1876
+ self.openai_url = attributes[:'openai_url']
1877
+ end
1878
+
1847
1879
  if attributes.key?(:'oracle_creation_statements')
1848
1880
  self.oracle_creation_statements = attributes[:'oracle_creation_statements']
1849
1881
  end
@@ -1856,6 +1888,10 @@ module Akeyless
1856
1888
  self.oracle_wallet_details = attributes[:'oracle_wallet_details']
1857
1889
  end
1858
1890
 
1891
+ if attributes.key?(:'organization_id')
1892
+ self.organization_id = attributes[:'organization_id']
1893
+ end
1894
+
1859
1895
  if attributes.key?(:'password')
1860
1896
  self.password = attributes[:'password']
1861
1897
  end
@@ -1888,6 +1924,10 @@ module Akeyless
1888
1924
  self.privileged_user = attributes[:'privileged_user']
1889
1925
  end
1890
1926
 
1927
+ if attributes.key?(:'project_id')
1928
+ self.project_id = attributes[:'project_id']
1929
+ end
1930
+
1891
1931
  if attributes.key?(:'rabbitmq_server_password')
1892
1932
  self.rabbitmq_server_password = attributes[:'rabbitmq_server_password']
1893
1933
  end
@@ -2146,6 +2186,8 @@ module Akeyless
2146
2186
  admin_pwd == o.admin_pwd &&
2147
2187
  admin_rotation_interval_days == o.admin_rotation_interval_days &&
2148
2188
  administrative_port == o.administrative_port &&
2189
+ api_key == o.api_key &&
2190
+ api_key_id == o.api_key_id &&
2149
2191
  artifactory_admin_apikey == o.artifactory_admin_apikey &&
2150
2192
  artifactory_admin_username == o.artifactory_admin_username &&
2151
2193
  artifactory_base_url == o.artifactory_base_url &&
@@ -2325,9 +2367,11 @@ module Akeyless
2325
2367
  mssql_revocation_statements == o.mssql_revocation_statements &&
2326
2368
  mysql_creation_statements == o.mysql_creation_statements &&
2327
2369
  mysql_revocation_statements == o.mysql_revocation_statements &&
2370
+ openai_url == o.openai_url &&
2328
2371
  oracle_creation_statements == o.oracle_creation_statements &&
2329
2372
  oracle_revocation_statements == o.oracle_revocation_statements &&
2330
2373
  oracle_wallet_details == o.oracle_wallet_details &&
2374
+ organization_id == o.organization_id &&
2331
2375
  password == o.password &&
2332
2376
  password_length == o.password_length &&
2333
2377
  password_policy == o.password_policy &&
@@ -2336,6 +2380,7 @@ module Akeyless
2336
2380
  postgres_creation_statements == o.postgres_creation_statements &&
2337
2381
  postgres_revocation_statements == o.postgres_revocation_statements &&
2338
2382
  privileged_user == o.privileged_user &&
2383
+ project_id == o.project_id &&
2339
2384
  rabbitmq_server_password == o.rabbitmq_server_password &&
2340
2385
  rabbitmq_server_uri == o.rabbitmq_server_uri &&
2341
2386
  rabbitmq_server_user == o.rabbitmq_server_user &&
@@ -2402,7 +2447,7 @@ module Akeyless
2402
2447
  # Calculates hash code according to all attributes.
2403
2448
  # @return [Integer] Hash code
2404
2449
  def hash
2405
- [access_token_manager_id, acl_rules, active, admin_name, admin_pwd, admin_rotation_interval_days, administrative_port, artifactory_admin_apikey, artifactory_admin_username, artifactory_base_url, artifactory_token_audience, artifactory_token_scope, authorization_port, aws_access_key_id, aws_access_mode, aws_external_id, aws_region, aws_role_arns, aws_secret_access_key, aws_session_tags, aws_session_token, aws_transitive_tag_keys, aws_user_console_access, aws_user_groups, aws_user_policies, aws_user_programmatic_access, azure_administrative_unit, azure_app_object_id, azure_client_id, azure_client_secret, azure_fixed_user_name_sub_claim_key, azure_fixed_user_only, azure_resource_group_name, azure_resource_name, azure_subscription_id, azure_tenant_id, azure_user_groups_obj_id, azure_user_portal_access, azure_user_programmatic_access, azure_user_roles_template_id, azure_username, cassandra_creation_statements, chef_organizations, chef_server_access_mode, chef_server_host_name, chef_server_key, chef_server_port, chef_server_url, chef_server_username, chef_skip_ssl, client_authentication_type, cloud_service_provider, cluster_mode, connection_type, create_sync_url, db_client_id, db_client_secret, db_host_name, db_isolation_level, db_max_idle_conns, db_max_open_conns, db_name, db_port, db_private_key, db_private_key_passphrase, db_pwd, db_server_certificates, db_server_name, db_tenant_id, db_user_name, delete_protection, dynamic_secret_id, dynamic_secret_key, dynamic_secret_name, dynamic_secret_type, eks_access_key_id, eks_assume_role, eks_cluster_ca_certificate, eks_cluster_endpoint, eks_cluster_name, eks_region, eks_secret_access_key, enable_admin_rotation, enforce_replay_prevention, expiration_date, externally_provided_user, failure_message, fixed_user_only, gcp_key_algo, gcp_role_bindings, gcp_service_account_email, gcp_service_account_key, gcp_service_account_key_base64, gcp_service_account_key_id, gcp_service_account_type, gcp_tmp_service_account_name, gcp_token_lifetime, gcp_token_scope, gcp_token_type, github_app_id, github_app_private_key, github_base_url, github_installation_id, github_installation_token_permissions, github_installation_token_repositories, github_installation_token_repositories_ids, github_organization_name, github_repository_path, gitlab_access_token, gitlab_access_type, gitlab_certificate, gitlab_group_name, gitlab_project_name, gitlab_role, gitlab_token_scope, gitlab_url, gke_cluster_ca_certificate, gke_cluster_endpoint, gke_cluster_name, gke_service_account_key, gke_service_account_name, google_workspace_access_mode, google_workspace_admin_name, google_workspace_fixed_user_name_sub_claim_key, google_workspace_group_name, google_workspace_group_role, google_workspace_role_name, google_workspace_role_scope, grace_rotated_secret_key, grant_types, groups, gw_cloud_identity_external_id_opt, hanadb_creation_statements, hanadb_revocation_statements, host_name, host_port, implementation_type, is_fixed_user, issuer, item_targets_assoc, jwks, jwks_url, k8s_allowed_namespaces, k8s_auth_type, k8s_bearer_token, k8s_client_cert_data, k8s_client_key_data, k8s_cluster_ca_certificate, k8s_cluster_endpoint, k8s_cluster_name, k8s_dynamic_mode, k8s_multiple_doc_yaml_temp_definition, k8s_namespace, k8s_role_name, k8s_role_type, k8s_service_account, last_admin_rotation, ldap_audience, ldap_bind_dn, ldap_bind_password, ldap_certificate, ldap_fixed_user_name_sub_claim_key, ldap_fixed_user_type, ldap_group_dn, ldap_token_expiration, ldap_url, ldap_user_attr, ldap_user_dn, metadata, mongodb_atlas_api_private_key, mongodb_atlas_api_public_key, mongodb_atlas_project_id, mongodb_custom_data, mongodb_db_name, mongodb_default_auth_db, mongodb_host_port, mongodb_is_atlas, mongodb_password, mongodb_roles, mongodb_uri_connection, mongodb_uri_options, mongodb_username, mssql_creation_statements, mssql_revocation_statements, mysql_creation_statements, mysql_revocation_statements, oracle_creation_statements, oracle_revocation_statements, oracle_wallet_details, password, password_length, password_policy, payload, ping_url, postgres_creation_statements, postgres_revocation_statements, privileged_user, rabbitmq_server_password, rabbitmq_server_uri, rabbitmq_server_user, rabbitmq_user_conf_permission, rabbitmq_user_read_permission, rabbitmq_user_tags, rabbitmq_user_vhost, rabbitmq_user_write_permission, rdp_fixed_user_name_sub_claim_key, redirect_uris, redshift_creation_statements, restricted_scopes, revoke_sync_url, rotate_sync_url, scopes, secure_remote_access_details, session_extension_warn_interval_min, sf_account, sf_auth_mode, sf_key_algo, sf_user_role, sf_warehouse_name, should_stop, signing_algorithm, ssl_connection_certificate, ssl_connection_mode, subject_dn, tags, timeout_seconds, use_gw_cloud_identity, use_gw_service_account, user_name, user_password, user_principal_name, user_ttl, username_length, username_policy, username_template, venafi_allow_subdomains, venafi_allowed_domains, venafi_api_key, venafi_auto_generated_folder, venafi_base_url, venafi_root_first_in_chain, venafi_sign_using_akeyless_pki, venafi_signer_key_name, venafi_store_private_key, venafi_tpp_access_token, venafi_tpp_client_id, venafi_tpp_password, venafi_tpp_refresh_token, venafi_tpp_username, venafi_use_tpp, venafi_zone, warn_before_user_expiration_min].hash
2450
+ [access_token_manager_id, acl_rules, active, admin_name, admin_pwd, admin_rotation_interval_days, administrative_port, api_key, api_key_id, artifactory_admin_apikey, artifactory_admin_username, artifactory_base_url, artifactory_token_audience, artifactory_token_scope, authorization_port, aws_access_key_id, aws_access_mode, aws_external_id, aws_region, aws_role_arns, aws_secret_access_key, aws_session_tags, aws_session_token, aws_transitive_tag_keys, aws_user_console_access, aws_user_groups, aws_user_policies, aws_user_programmatic_access, azure_administrative_unit, azure_app_object_id, azure_client_id, azure_client_secret, azure_fixed_user_name_sub_claim_key, azure_fixed_user_only, azure_resource_group_name, azure_resource_name, azure_subscription_id, azure_tenant_id, azure_user_groups_obj_id, azure_user_portal_access, azure_user_programmatic_access, azure_user_roles_template_id, azure_username, cassandra_creation_statements, chef_organizations, chef_server_access_mode, chef_server_host_name, chef_server_key, chef_server_port, chef_server_url, chef_server_username, chef_skip_ssl, client_authentication_type, cloud_service_provider, cluster_mode, connection_type, create_sync_url, db_client_id, db_client_secret, db_host_name, db_isolation_level, db_max_idle_conns, db_max_open_conns, db_name, db_port, db_private_key, db_private_key_passphrase, db_pwd, db_server_certificates, db_server_name, db_tenant_id, db_user_name, delete_protection, dynamic_secret_id, dynamic_secret_key, dynamic_secret_name, dynamic_secret_type, eks_access_key_id, eks_assume_role, eks_cluster_ca_certificate, eks_cluster_endpoint, eks_cluster_name, eks_region, eks_secret_access_key, enable_admin_rotation, enforce_replay_prevention, expiration_date, externally_provided_user, failure_message, fixed_user_only, gcp_key_algo, gcp_role_bindings, gcp_service_account_email, gcp_service_account_key, gcp_service_account_key_base64, gcp_service_account_key_id, gcp_service_account_type, gcp_tmp_service_account_name, gcp_token_lifetime, gcp_token_scope, gcp_token_type, github_app_id, github_app_private_key, github_base_url, github_installation_id, github_installation_token_permissions, github_installation_token_repositories, github_installation_token_repositories_ids, github_organization_name, github_repository_path, gitlab_access_token, gitlab_access_type, gitlab_certificate, gitlab_group_name, gitlab_project_name, gitlab_role, gitlab_token_scope, gitlab_url, gke_cluster_ca_certificate, gke_cluster_endpoint, gke_cluster_name, gke_service_account_key, gke_service_account_name, google_workspace_access_mode, google_workspace_admin_name, google_workspace_fixed_user_name_sub_claim_key, google_workspace_group_name, google_workspace_group_role, google_workspace_role_name, google_workspace_role_scope, grace_rotated_secret_key, grant_types, groups, gw_cloud_identity_external_id_opt, hanadb_creation_statements, hanadb_revocation_statements, host_name, host_port, implementation_type, is_fixed_user, issuer, item_targets_assoc, jwks, jwks_url, k8s_allowed_namespaces, k8s_auth_type, k8s_bearer_token, k8s_client_cert_data, k8s_client_key_data, k8s_cluster_ca_certificate, k8s_cluster_endpoint, k8s_cluster_name, k8s_dynamic_mode, k8s_multiple_doc_yaml_temp_definition, k8s_namespace, k8s_role_name, k8s_role_type, k8s_service_account, last_admin_rotation, ldap_audience, ldap_bind_dn, ldap_bind_password, ldap_certificate, ldap_fixed_user_name_sub_claim_key, ldap_fixed_user_type, ldap_group_dn, ldap_token_expiration, ldap_url, ldap_user_attr, ldap_user_dn, metadata, mongodb_atlas_api_private_key, mongodb_atlas_api_public_key, mongodb_atlas_project_id, mongodb_custom_data, mongodb_db_name, mongodb_default_auth_db, mongodb_host_port, mongodb_is_atlas, mongodb_password, mongodb_roles, mongodb_uri_connection, mongodb_uri_options, mongodb_username, mssql_creation_statements, mssql_revocation_statements, mysql_creation_statements, mysql_revocation_statements, openai_url, oracle_creation_statements, oracle_revocation_statements, oracle_wallet_details, organization_id, password, password_length, password_policy, payload, ping_url, postgres_creation_statements, postgres_revocation_statements, privileged_user, project_id, rabbitmq_server_password, rabbitmq_server_uri, rabbitmq_server_user, rabbitmq_user_conf_permission, rabbitmq_user_read_permission, rabbitmq_user_tags, rabbitmq_user_vhost, rabbitmq_user_write_permission, rdp_fixed_user_name_sub_claim_key, redirect_uris, redshift_creation_statements, restricted_scopes, revoke_sync_url, rotate_sync_url, scopes, secure_remote_access_details, session_extension_warn_interval_min, sf_account, sf_auth_mode, sf_key_algo, sf_user_role, sf_warehouse_name, should_stop, signing_algorithm, ssl_connection_certificate, ssl_connection_mode, subject_dn, tags, timeout_seconds, use_gw_cloud_identity, use_gw_service_account, user_name, user_password, user_principal_name, user_ttl, username_length, username_policy, username_template, venafi_allow_subdomains, venafi_allowed_domains, venafi_api_key, venafi_auto_generated_folder, venafi_base_url, venafi_root_first_in_chain, venafi_sign_using_akeyless_pki, venafi_signer_key_name, venafi_store_private_key, venafi_tpp_access_token, venafi_tpp_client_id, venafi_tpp_password, venafi_tpp_refresh_token, venafi_tpp_username, venafi_use_tpp, venafi_zone, warn_before_user_expiration_min].hash
2406
2451
  end
2407
2452
 
2408
2453
  # Builds the object from hash
@@ -0,0 +1,339 @@
1
+ =begin
2
+ #Akeyless API
3
+
4
+ #The purpose of this application is to provide access to Akeyless API.
5
+
6
+ The version of the OpenAPI document: 3.0
7
+ Contact: support@akeyless.io
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Akeyless
17
+ # dynamicSecretCreateOpenAI is a command that creates OpenAI dynamic secret
18
+ class DynamicSecretCreateOpenAI
19
+ # Customize how temporary usernames are generated using go template
20
+ attr_accessor :custom_username_template
21
+
22
+ # Protection from accidental deletion of this object [true/false]
23
+ attr_accessor :delete_protection
24
+
25
+ # Description of the object
26
+ attr_accessor :description
27
+
28
+ # Set output format to JSON
29
+ attr_accessor :json
30
+
31
+ # Dynamic secret name
32
+ attr_accessor :name
33
+
34
+ # Dynamic producer encryption key
35
+ attr_accessor :producer_encryption_key_name
36
+
37
+ # Project ID
38
+ attr_accessor :project_id
39
+
40
+ # Add tags attached to this object
41
+ attr_accessor :tags
42
+
43
+ # Name of existing target to use in producer creation
44
+ attr_accessor :target_name
45
+
46
+ # Authentication token (see `/auth` and `/configure`)
47
+ attr_accessor :token
48
+
49
+ # The universal identity token, Required only for universal_identity authentication
50
+ attr_accessor :uid_token
51
+
52
+ # User TTL
53
+ attr_accessor :user_ttl
54
+
55
+ # Attribute mapping from ruby-style variable name to JSON key.
56
+ def self.attribute_map
57
+ {
58
+ :'custom_username_template' => :'custom-username-template',
59
+ :'delete_protection' => :'delete_protection',
60
+ :'description' => :'description',
61
+ :'json' => :'json',
62
+ :'name' => :'name',
63
+ :'producer_encryption_key_name' => :'producer-encryption-key-name',
64
+ :'project_id' => :'project-id',
65
+ :'tags' => :'tags',
66
+ :'target_name' => :'target-name',
67
+ :'token' => :'token',
68
+ :'uid_token' => :'uid-token',
69
+ :'user_ttl' => :'user-ttl'
70
+ }
71
+ end
72
+
73
+ # Returns all the JSON keys this model knows about
74
+ def self.acceptable_attributes
75
+ attribute_map.values
76
+ end
77
+
78
+ # Attribute type mapping.
79
+ def self.openapi_types
80
+ {
81
+ :'custom_username_template' => :'String',
82
+ :'delete_protection' => :'String',
83
+ :'description' => :'String',
84
+ :'json' => :'Boolean',
85
+ :'name' => :'String',
86
+ :'producer_encryption_key_name' => :'String',
87
+ :'project_id' => :'String',
88
+ :'tags' => :'Array<String>',
89
+ :'target_name' => :'String',
90
+ :'token' => :'String',
91
+ :'uid_token' => :'String',
92
+ :'user_ttl' => :'String'
93
+ }
94
+ end
95
+
96
+ # List of attributes with nullable: true
97
+ def self.openapi_nullable
98
+ Set.new([
99
+ ])
100
+ end
101
+
102
+ # Initializes the object
103
+ # @param [Hash] attributes Model attributes in the form of hash
104
+ def initialize(attributes = {})
105
+ if (!attributes.is_a?(Hash))
106
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Akeyless::DynamicSecretCreateOpenAI` initialize method"
107
+ end
108
+
109
+ # check to see if the attribute exists and convert string to symbol for hash key
110
+ attributes = attributes.each_with_object({}) { |(k, v), h|
111
+ if (!self.class.attribute_map.key?(k.to_sym))
112
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Akeyless::DynamicSecretCreateOpenAI`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
113
+ end
114
+ h[k.to_sym] = v
115
+ }
116
+
117
+ if attributes.key?(:'custom_username_template')
118
+ self.custom_username_template = attributes[:'custom_username_template']
119
+ end
120
+
121
+ if attributes.key?(:'delete_protection')
122
+ self.delete_protection = attributes[:'delete_protection']
123
+ end
124
+
125
+ if attributes.key?(:'description')
126
+ self.description = attributes[:'description']
127
+ end
128
+
129
+ if attributes.key?(:'json')
130
+ self.json = attributes[:'json']
131
+ else
132
+ self.json = false
133
+ end
134
+
135
+ if attributes.key?(:'name')
136
+ self.name = attributes[:'name']
137
+ else
138
+ self.name = nil
139
+ end
140
+
141
+ if attributes.key?(:'producer_encryption_key_name')
142
+ self.producer_encryption_key_name = attributes[:'producer_encryption_key_name']
143
+ end
144
+
145
+ if attributes.key?(:'project_id')
146
+ self.project_id = attributes[:'project_id']
147
+ end
148
+
149
+ if attributes.key?(:'tags')
150
+ if (value = attributes[:'tags']).is_a?(Array)
151
+ self.tags = value
152
+ end
153
+ end
154
+
155
+ if attributes.key?(:'target_name')
156
+ self.target_name = attributes[:'target_name']
157
+ end
158
+
159
+ if attributes.key?(:'token')
160
+ self.token = attributes[:'token']
161
+ end
162
+
163
+ if attributes.key?(:'uid_token')
164
+ self.uid_token = attributes[:'uid_token']
165
+ end
166
+
167
+ if attributes.key?(:'user_ttl')
168
+ self.user_ttl = attributes[:'user_ttl']
169
+ else
170
+ self.user_ttl = '60m'
171
+ end
172
+ end
173
+
174
+ # Show invalid properties with the reasons. Usually used together with valid?
175
+ # @return Array for valid properties with the reasons
176
+ def list_invalid_properties
177
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
178
+ invalid_properties = Array.new
179
+ if @name.nil?
180
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
181
+ end
182
+
183
+ invalid_properties
184
+ end
185
+
186
+ # Check to see if the all the properties in the model are valid
187
+ # @return true if the model is valid
188
+ def valid?
189
+ warn '[DEPRECATED] the `valid?` method is obsolete'
190
+ return false if @name.nil?
191
+ true
192
+ end
193
+
194
+ # Checks equality by comparing each attribute.
195
+ # @param [Object] Object to be compared
196
+ def ==(o)
197
+ return true if self.equal?(o)
198
+ self.class == o.class &&
199
+ custom_username_template == o.custom_username_template &&
200
+ delete_protection == o.delete_protection &&
201
+ description == o.description &&
202
+ json == o.json &&
203
+ name == o.name &&
204
+ producer_encryption_key_name == o.producer_encryption_key_name &&
205
+ project_id == o.project_id &&
206
+ tags == o.tags &&
207
+ target_name == o.target_name &&
208
+ token == o.token &&
209
+ uid_token == o.uid_token &&
210
+ user_ttl == o.user_ttl
211
+ end
212
+
213
+ # @see the `==` method
214
+ # @param [Object] Object to be compared
215
+ def eql?(o)
216
+ self == o
217
+ end
218
+
219
+ # Calculates hash code according to all attributes.
220
+ # @return [Integer] Hash code
221
+ def hash
222
+ [custom_username_template, delete_protection, description, json, name, producer_encryption_key_name, project_id, tags, target_name, token, uid_token, user_ttl].hash
223
+ end
224
+
225
+ # Builds the object from hash
226
+ # @param [Hash] attributes Model attributes in the form of hash
227
+ # @return [Object] Returns the model itself
228
+ def self.build_from_hash(attributes)
229
+ return nil unless attributes.is_a?(Hash)
230
+ attributes = attributes.transform_keys(&:to_sym)
231
+ transformed_hash = {}
232
+ openapi_types.each_pair do |key, type|
233
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
234
+ transformed_hash["#{key}"] = nil
235
+ elsif type =~ /\AArray<(.*)>/i
236
+ # check to ensure the input is an array given that the attribute
237
+ # is documented as an array but the input is not
238
+ if attributes[attribute_map[key]].is_a?(Array)
239
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
240
+ end
241
+ elsif !attributes[attribute_map[key]].nil?
242
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
243
+ end
244
+ end
245
+ new(transformed_hash)
246
+ end
247
+
248
+ # Deserializes the data based on type
249
+ # @param string type Data type
250
+ # @param string value Value to be deserialized
251
+ # @return [Object] Deserialized data
252
+ def self._deserialize(type, value)
253
+ case type.to_sym
254
+ when :Time
255
+ Time.parse(value)
256
+ when :Date
257
+ Date.parse(value)
258
+ when :String
259
+ value.to_s
260
+ when :Integer
261
+ value.to_i
262
+ when :Float
263
+ value.to_f
264
+ when :Boolean
265
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
266
+ true
267
+ else
268
+ false
269
+ end
270
+ when :Object
271
+ # generic object (usually a Hash), return directly
272
+ value
273
+ when /\AArray<(?<inner_type>.+)>\z/
274
+ inner_type = Regexp.last_match[:inner_type]
275
+ value.map { |v| _deserialize(inner_type, v) }
276
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
277
+ k_type = Regexp.last_match[:k_type]
278
+ v_type = Regexp.last_match[:v_type]
279
+ {}.tap do |hash|
280
+ value.each do |k, v|
281
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
282
+ end
283
+ end
284
+ else # model
285
+ # models (e.g. Pet) or oneOf
286
+ klass = Akeyless.const_get(type)
287
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
288
+ end
289
+ end
290
+
291
+ # Returns the string representation of the object
292
+ # @return [String] String presentation of the object
293
+ def to_s
294
+ to_hash.to_s
295
+ end
296
+
297
+ # to_body is an alias to to_hash (backward compatibility)
298
+ # @return [Hash] Returns the object in the form of hash
299
+ def to_body
300
+ to_hash
301
+ end
302
+
303
+ # Returns the object in the form of hash
304
+ # @return [Hash] Returns the object in the form of hash
305
+ def to_hash
306
+ hash = {}
307
+ self.class.attribute_map.each_pair do |attr, param|
308
+ value = self.send(attr)
309
+ if value.nil?
310
+ is_nullable = self.class.openapi_nullable.include?(attr)
311
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
312
+ end
313
+
314
+ hash[param] = _to_hash(value)
315
+ end
316
+ hash
317
+ end
318
+
319
+ # Outputs non-array value in the form of hash
320
+ # For object, use to_hash. Otherwise, just return the value
321
+ # @param [Object] value Any valid value
322
+ # @return [Hash] Returns the value in the form of hash
323
+ def _to_hash(value)
324
+ if value.is_a?(Array)
325
+ value.compact.map { |v| _to_hash(v) }
326
+ elsif value.is_a?(Hash)
327
+ {}.tap do |hash|
328
+ value.each { |k, v| hash[k] = _to_hash(v) }
329
+ end
330
+ elsif value.respond_to? :to_hash
331
+ value.to_hash
332
+ else
333
+ value
334
+ end
335
+ end
336
+
337
+ end
338
+
339
+ end