diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index ad12dbf6c..a8328d070 100755 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,20 +1,20 @@ lockVersion: 2.0.0 id: 482384cc-3b98-4ced-bd0b-14aa8b3e0053 management: - docChecksum: 33527700549d0c6fd064530f36d2892b + docChecksum: 756fdf00e6298583ca90f061d641a377 docVersion: 1.0.0 - speakeasyVersion: 1.790.3 - generationVersion: 2.918.4 - releaseVersion: 0.41.1 - configChecksum: 825800d6c48f6b1308af01fe8766a912 + speakeasyVersion: 1.791.0 + generationVersion: 2.924.0 + releaseVersion: 0.41.2 + configChecksum: 292316eab28fe34b211be859d12764fa repoURL: https://github.com/StackOneHQ/stackone-client-ruby.git repoSubDirectory: . installationURL: https://github.com/StackOneHQ/stackone-client-ruby published: true persistentEdits: - generation_id: 48f272f0-071a-4c0b-acb7-8de72f465648 - pristine_commit_hash: 91fbb9f8212de53a05775fd9193d1887cd2ef66e - pristine_tree_hash: 83210972ee8e091bed563d25c2bff79b7c8dcbd2 + generation_id: c57748dc-4395-46b2-9731-3e3f3f56819d + pristine_commit_hash: c2a7132b219950fd4819b3c8c85c941bf509118e + pristine_tree_hash: c366701fb789420208b9998f9f882854cfbd059b features: ruby: additionalProperties: 0.1.1 @@ -54,8 +54,8 @@ trackedFiles: pristine_git_object: b0ea40558f3ca80dcf7d30b159d34a1e5ab33440 Gemfile.lock: id: 21fb5836b499 - last_write_checksum: sha1:32b9a2301819795b75d200f0f879e6f16864f41d - pristine_git_object: d1b84e5e8d65e1ea9260b8cf3db12d8386c5f016 + last_write_checksum: sha1:254726e9fd8dd5b891e9ff19f456e9d31d7459a7 + pristine_git_object: 6b4c14f237b390d626fab257918de27b49c8e73f Rakefile: id: 44b7fa1ba503 last_write_checksum: sha1:c572639efdae8c7b24141ee5c02d8f009e101ed8 @@ -2984,38 +2984,14 @@ trackedFiles: id: b3b5726b785e last_write_checksum: sha1:ea828c76522a107d5564f05e9770ed8779d4f78a pristine_git_object: 989f075ecbf9b4c069d995d889f6c2d1d53cdcf9 - docs/models/operations/stackonemcpdeleterequest.md: - id: 09641be476d9 - last_write_checksum: sha1:e9429ea01bd235d0d2b8f4405ebc3fcc7d8b9ea5 - pristine_git_object: 674f3cf4dc0e479d6353a64fca8606ca79badf82 - docs/models/operations/stackonemcpdeleteresponse.md: - id: 44963a626374 - last_write_checksum: sha1:e9ae648d06f77929a4fe15ff70a6b690231cad4e - pristine_git_object: 611210bb2f0fd5aaab6cb1957405832658983b7a - docs/models/operations/stackonemcpdeletesecurity.md: - id: 073eee460ef4 - last_write_checksum: sha1:75d3b1cc8d8e47915bfde03868892b5c7b351e93 - pristine_git_object: 257ecff96814f270ce21b285d9e46ec623a813b6 - docs/models/operations/stackonemcpgetrequest.md: - id: 4e3d50811de9 - last_write_checksum: sha1:1118b07bdd1278ffc7ea84970cc882be1da523bc - pristine_git_object: d5dd4407f5fa4e8341e01f8e24f4f966fa978fa2 - docs/models/operations/stackonemcpgetresponse.md: - id: af4165da15ec - last_write_checksum: sha1:86bb255185e427281570c4a8e4e9ffad799fc06b - pristine_git_object: 3376a9ca253c6c5b6beb1b2ef84ac48e33989054 - docs/models/operations/stackonemcpgetsecurity.md: - id: 0678d1c1b9d1 - last_write_checksum: sha1:7fd2be7447f4ec73fa18f32a92cc500c335c2727 - pristine_git_object: 74698609f419b07b53aeaf8faf070ff7ebab2e75 docs/models/operations/stackonemcppostrequest.md: id: 3459db2b8e02 - last_write_checksum: sha1:fb9766878e8aa4ac1c3e6d60c530ada58ab4c214 - pristine_git_object: a62d76c24704b277cbfd894626ce7c39eca053ec + last_write_checksum: sha1:10f82480cf57d926c0e072c07b9694547a68e6a2 + pristine_git_object: c518949a18fcbe39624eea5e539f15dc2281ef74 docs/models/operations/stackonemcppostresponse.md: id: 4be8692b0ccf - last_write_checksum: sha1:043b6607bbd157752895f96f96c64c14c91edf78 - pristine_git_object: 91ea893ea789b0b529c6c4ee387d2d258e316080 + last_write_checksum: sha1:5669ce82fc3594e8680a63cacd24085621a02a9c + pristine_git_object: d75c54f9c8321cd4e9e4463853fcea4ca41d65c0 docs/models/operations/stackonemcppostresponsebody.md: id: 81ccd3d5a4cf last_write_checksum: sha1:f5178fbe8637722e02c75776a8c6a070acd086ff @@ -3530,8 +3506,8 @@ trackedFiles: pristine_git_object: 1cef339a6dfca8c0c1461d541518f361241ccf51 docs/models/shared/actionmetaitem.md: id: dfb9dc69e5b5 - last_write_checksum: sha1:934a7ee38f1547168e3fac0644fc4742357de190 - pristine_git_object: 91de1314c69a596e2f2ae8502d97f42da5e1134a + last_write_checksum: sha1:eef20e4b19fa350243cabfc922aeda419f0c62b5 + pristine_git_object: 6240ae55890a7d6002b06f7efda968e320016b12 docs/models/shared/actionsearchdto.md: id: 0d04631d1db5 last_write_checksum: sha1:0c4ebdbc45c3fc1da2653dea0e216892b3f79653 @@ -3566,8 +3542,8 @@ trackedFiles: pristine_git_object: 4a8cc0ffc8e00efcc9f8af7b8052437d2bc8fe47 docs/models/shared/actionsrpcsyncedrequestdto.md: id: ba8eaab37c45 - last_write_checksum: sha1:b5007c43146ec7b9187fe07f575411fff3e8f6e3 - pristine_git_object: bb3c3a097b66c80a573987dd67782d946f443bed + last_write_checksum: sha1:7aa513f3729d3c210e6c129792160db140243068 + pristine_git_object: 72277c405f16f27103328198a6f3bde3722ac2e2 docs/models/shared/actionssynceddatasync.md: id: 1b35178cc4cf last_write_checksum: sha1:6d8b7fea2e9ac5494c2bca5e28182ba5763157b7 @@ -10466,8 +10442,8 @@ trackedFiles: pristine_git_object: bf64bc80d5fa336262011af80bd62e22559b91a3 docs/sdks/actions/README.md: id: e229cf99e666 - last_write_checksum: sha1:424c2059eddb007ffcd7ece0e01ab074aef934e5 - pristine_git_object: de0962eaf4442aecdf1b45d518fd15cbe072466b + last_write_checksum: sha1:4e2700fe08bc2ef5941f367f175504fd26ac74d1 + pristine_git_object: b5e4cc3bf51e35907085aa57ca87e82349333f9a docs/sdks/ats/README.md: id: 24fafa267f6c last_write_checksum: sha1:a20028fa09ce3e9277f69334c20fc4853ad1cdb7 @@ -10518,8 +10494,8 @@ trackedFiles: pristine_git_object: c463c52ed115c9762a98d0d466495740734124f5 docs/sdks/mcp/README.md: id: fb362f76f7be - last_write_checksum: sha1:f0bc4265e3dcd6fe852d7b79b33b29ff8048bcfe - pristine_git_object: 1e29bd469c1a18b4b96603523704feb53d3476ed + last_write_checksum: sha1:787d63c9d6e80f2e287372b5fc9d9a474ae39c18 + pristine_git_object: 445a8be0867ccbc7f0053430b0b96f46bfd10a57 docs/sdks/messaging/README.md: id: 827f9d81a390 last_write_checksum: sha1:ba8fe61cb4e5e93321db0b2942a8122c39d64354 @@ -10626,8 +10602,8 @@ trackedFiles: pristine_git_object: e19c3a1849961191d38995943e3f6ed7dffc51b2 lib/stack_one/mcp.rb: id: edb08b648364 - last_write_checksum: sha1:5b9983f9fac9d7b6b9d7c0c40fed960901b23cf9 - pristine_git_object: 93fed07104d0796400bb9e1038b8c33f4f6be974 + last_write_checksum: sha1:b6230f705961d2daf6940310b5a3c787980d52ac + pristine_git_object: 0a0f705770b77bf5eae0f012bf51c755523a0d81 lib/stack_one/messaging.rb: id: a84c26e0ff05 last_write_checksum: sha1:b7725baad227f09e0ece66207f1637f1f5db3034 @@ -10762,8 +10738,8 @@ trackedFiles: pristine_git_object: 93d0598ae377207f9fca341e4342ae4347c8411b lib/stack_one/models/operations.rb: id: 98d5c39b0613 - last_write_checksum: sha1:cb36ddb165e8ad89da1e39daa361e5730873e691 - pristine_git_object: b546697ebcb352982c015cd86c48df32a76adff8 + last_write_checksum: sha1:20505c1da1dff74f890ef42719c7b10091361969 + pristine_git_object: 5b5bab5ca5158d2e3586c5332671353d501015ff lib/stack_one/models/operations/accounting_batch_create_company_journals_request.rb: id: 7e046b8fa826 last_write_checksum: sha1:ae44f7b39cee7c5b2c59ec170c6debfd66ce2565 @@ -16492,70 +16468,22 @@ trackedFiles: id: 3f45be28deec last_write_checksum: sha1:fea55b7a3f4cf096ad1781ba32043618df0e8bb1 pristine_git_object: d6a328eb62e820eef011b44f5590649e0a3dae7a - lib/stack_one/models/operations/stackone_mcp_delete_request.rb: - id: 7f753d909caf - last_write_checksum: sha1:ba8cddbafc34446bd2d78047d07902d11e02a3e9 - pristine_git_object: e977d38d55fa4adaf234f0155b4774cb75074342 - lib/stack_one/models/operations/stackone_mcp_delete_request.rbi: - id: cee415c8f83d - last_write_checksum: sha1:92a9c6b37caa06c906e33779f033608a43763b34 - pristine_git_object: c93bd1b9ff550c44be9dfc7f6bef432e1f39c450 - lib/stack_one/models/operations/stackone_mcp_delete_response.rb: - id: 0e466c8b940b - last_write_checksum: sha1:bf89ec372a056d630b83094ae3bd51d72a684f4b - pristine_git_object: 9eaad2a01e290485a789b3fb59e6e897e230ead4 - lib/stack_one/models/operations/stackone_mcp_delete_response.rbi: - id: 1e44f4631f46 - last_write_checksum: sha1:50f8ebddb6ae32a74e3bb72c08def25e0dfdeced - pristine_git_object: f5c7cdfd3630f2e67084a9f96a15972650b60260 - lib/stack_one/models/operations/stackone_mcp_delete_security.rb: - id: e6ea51ed2607 - last_write_checksum: sha1:c298c04efc428a61a0ac224031c4484e599bf373 - pristine_git_object: f93b099e14eb07dd6b2005ce664b013b3de103db - lib/stack_one/models/operations/stackone_mcp_delete_security.rbi: - id: fc248de437e4 - last_write_checksum: sha1:f97421409242a35d65ceb3b72921c0d269ed881a - pristine_git_object: d3f20e270fab60d1b64349ffef99485110ab1d44 - lib/stack_one/models/operations/stackone_mcp_get_request.rb: - id: 9c27b685c4fd - last_write_checksum: sha1:5a6901725d1ed19755e8423fe5b140251ec54cdf - pristine_git_object: 6d730c8d781f2dbb5f5f3d795d4cde5552131018 - lib/stack_one/models/operations/stackone_mcp_get_request.rbi: - id: 2139e6b5548a - last_write_checksum: sha1:73016799c39eca58f6f203f503d9f58f1cf577d9 - pristine_git_object: c922153c21185d5e3ff2d58456d22106294657e4 - lib/stack_one/models/operations/stackone_mcp_get_response.rb: - id: 47e2ae2734a6 - last_write_checksum: sha1:e8f471932afa06d9fef6de6be26a9ecb0bfcab32 - pristine_git_object: 44e3a71f6764a953407ce56100dc977effbd95eb - lib/stack_one/models/operations/stackone_mcp_get_response.rbi: - id: 6e9cb5c1c2c6 - last_write_checksum: sha1:a53e851190ac1d7eda71c504c5e3268ba8943ca8 - pristine_git_object: e35cce264028e1e172da259b326ba10eae648a5a - lib/stack_one/models/operations/stackone_mcp_get_security.rb: - id: e2e2d5a7f601 - last_write_checksum: sha1:31f4e5c2699dc02c66714295d44103c98aaf541b - pristine_git_object: 449fb909dffa1ce5bb44c08995f54b9e6769ff25 - lib/stack_one/models/operations/stackone_mcp_get_security.rbi: - id: 5e45e575a777 - last_write_checksum: sha1:dc86d116dd6c8c38c9ba49108230c7e7e3325bc4 - pristine_git_object: 15033f912f6b1a2c94f2f2cdc72bb0bde5e9e9a1 lib/stack_one/models/operations/stackone_mcp_post_request.rb: id: 523bbf45ce29 - last_write_checksum: sha1:34836779a57a014cbbd91bc54c9bdc340c880620 - pristine_git_object: 063f993a1930038230f591fdf600e73e15c58f41 + last_write_checksum: sha1:0ff7f6cff7ac4aa7778d4b83a5890c7a59a0647d + pristine_git_object: 46016682d80c8abe868150a664db3adf08548b1e lib/stack_one/models/operations/stackone_mcp_post_request.rbi: id: e036f93c199b - last_write_checksum: sha1:471df632d333eb8b6a91a0d16eb228c12a0704c8 - pristine_git_object: cf026ef3ebc0dc3869a9a7424ee15fef3fd51dd7 + last_write_checksum: sha1:7f5b2a365ebec9522f35c90891681a9444873f47 + pristine_git_object: c923ce511cde9c7318c55d0261114554c60b668f lib/stack_one/models/operations/stackone_mcp_post_response.rb: id: d64fe52af9ec - last_write_checksum: sha1:2ad8c5f1b33da50f0df8cccfb0acd3643dcf813a - pristine_git_object: b87617c9205e2deea3e3441792d3d67dd10ed676 + last_write_checksum: sha1:76aa4631053bcfb95131702421fe1038f841b250 + pristine_git_object: 1844e5e33fc137a8163901578dbffbd585913e99 lib/stack_one/models/operations/stackone_mcp_post_response.rbi: id: aece95c468b4 - last_write_checksum: sha1:a6ac83f9d57bcb55c46377ccf1c64af8164e9c6c - pristine_git_object: 70619df6576acb9cdaa5722f1612f021a735ac08 + last_write_checksum: sha1:c88e78a1d191a7fa225ee5957928b7ee4c775549 + pristine_git_object: 0cc245fb6858a142dfc959bf0a66ab99fdc23a2b lib/stack_one/models/operations/stackone_mcp_post_responsebody.rb: id: d2562d401a87 last_write_checksum: sha1:f8a831fc05cc3556e48d630b6aeb8f170fdf9368 @@ -17586,12 +17514,12 @@ trackedFiles: pristine_git_object: 2704054bcff8f019ae85f904f46821d38a7382bb lib/stack_one/models/shared/actionmetaitem.rb: id: ca01327e9fbc - last_write_checksum: sha1:02cd66d8ca4db51fa36d6403cfa5ede1dcbee40c - pristine_git_object: d86082b79f1c68319179eccca7db313f88e6d62c + last_write_checksum: sha1:616a89fa8818a61e28a8cb9bbe62c42b496a25a3 + pristine_git_object: 07d1216a3d6417ba5ddfbd408a5865e2576fa661 lib/stack_one/models/shared/actionmetaitem.rbi: id: b91bf1a958fa - last_write_checksum: sha1:abf262276e2816b4aa20035f335ae44bf2df54a3 - pristine_git_object: e3f8ae77ca8c71b9d1898ef74e7c76efa8ee7f32 + last_write_checksum: sha1:128a038f8d2d992fa25b56b387666f97e2ac2b08 + pristine_git_object: f7d48b26ca647583ad87b34555eb024b93b9cd2d lib/stack_one/models/shared/actionsearchdto.rb: id: d98634b57888 last_write_checksum: sha1:407c8f91835f0a1a82094dc0e69879f333e8949c @@ -17658,12 +17586,12 @@ trackedFiles: pristine_git_object: 767a2a9506081a342a75a33dedff96345d0b26e1 lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rb: id: 1a0fc74bbae9 - last_write_checksum: sha1:89805e7b1c2df04ba32dc66542d811867e88f143 - pristine_git_object: d7ea43744d98a88bc1f5e212974787a8a821268c + last_write_checksum: sha1:f024de1b11c656bc3b1fa639d4b10508ff16bb89 + pristine_git_object: c15883d96091745d54cfddc2019417e1278b2156 lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rbi: id: a6d5b40a2f44 - last_write_checksum: sha1:bcba9688464979bb48fd7e812975806f7a88f215 - pristine_git_object: 684c4c5e9024c9933792c2e9117eb36f18277be7 + last_write_checksum: sha1:eeadae02b19123494107d2f67a3d22e0f80368ae + pristine_git_object: 6b28c993d1d419b11585a8300fd3974d9239f945 lib/stack_one/models/shared/actionssynceddatasync.rb: id: 07839954f05d last_write_checksum: sha1:18c5a22aae03fa993bbc40a9fa9b205589ac1286 @@ -31462,8 +31390,8 @@ trackedFiles: pristine_git_object: 639acd413c3c7dda15d946d388661dad3fd97837 lib/stack_one/sdkconfiguration.rb: id: 073fab24bd77 - last_write_checksum: sha1:777c521eb44cffffa351defaa3d18ff9e24477db - pristine_git_object: 7d1db86bc4d9d7ff6aace61774085ad303988562 + last_write_checksum: sha1:1bb70226d5909e378be553af92642c505ec61531 + pristine_git_object: 6a05056d20c80ba320a12ae3030e76c32294d5fe lib/stack_one/sdkconfiguration.rbi: id: b14272994fad last_write_checksum: sha1:10f1877c55e4df6d6b8ee7d75f4d0cd9f23c06cb @@ -31534,8 +31462,8 @@ trackedFiles: pristine_git_object: fd79b01b9f6c3054247d35f984063b0d70a76bd6 stackone_client.gemspec: id: 441a330b877d - last_write_checksum: sha1:2b9dd46c93a96488e27ce706f61ca9fbf8cb15d9 - pristine_git_object: bb62d2f391c6106dc0a566c709df8c0f6c13441a + last_write_checksum: sha1:412e1d6543ba95b226cf44dd17d8c4b158dc45e2 + pristine_git_object: 424919d662089113827904e647cc9657bde91d3c examples: stackone_delete_account: speakeasy-default-stackone-delete-account: @@ -42517,7 +42445,7 @@ examples: page_size: 25 skip: 0 requestBody: - application/json: {"action": "create_employee", "body": {"search": "John"}, "filter": {"status": "active"}, "headers": {"x-custom-header": "value"}, "path": {"id": "123"}, "query": {"account_id": "abc"}} + application/json: {"action": "create_employee", "body": {"search": "John"}, "filter": {"status": "active"}, "headers": {"x-custom-header": "value"}, "path": {"id": "123"}, "query": {"account_id": "abc"}, "search": "onboarding safety"} responses: "200": application/json: {"datasync": {"last_full_run_id": "", "last_run_id": "", "params_hash": "", "request_id": "", "sync_expires_at": "", "synced_at": ""}} @@ -43463,12 +43391,7 @@ examples: application/json: {"message": "Bad Gateway", "statusCode": 502, "timestamp": "2023-05-30T00:00:00.000Z"} examplesVersion: 1.0.2 generatedTests: {} -releaseNotes: | - ## Ruby SDK Changes: - * `stack_one.accounts.delete_account()`: `response` **Changed** (Breaking ⚠️) - * `stack_one.accounts.get_account()`: `response` **Changed** (Breaking ⚠️) - * `stack_one.accounts.list_linked_accounts()`: `response.union(LinkedAccountsPaginated).data[]` **Changed** (Breaking ⚠️) - * `stack_one.accounts.update_account()`: `response` **Changed** (Breaking ⚠️) +releaseNotes: "## Ruby SDK Changes:\n* `stack_one.mcp.mcp_post()`: \n * `request.mcp_session_id` **Removed** (Breaking ⚠️)\n * `response.status[200].content[text/event-stream` **Removed** (Breaking ⚠️)\n* `stack_one.mcp.mcp_delete()`: **Removed** (Breaking ⚠️)\n* `stack_one.mcp.mcp_get()`: **Removed** (Breaking ⚠️)\n* `stack_one.actions.list_actions_meta()`: `response.data[].actions[].has_required_parameters` **Added**\n* `stack_one.actions.rpc_action_synced()`: \n * `request.actions_rpc_synced_request_dto.search` **Added**\n" generatedFiles: - .gitattributes - .rubocop.yml diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 55479be30..0a767f181 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.790.3 +speakeasyVersion: 1.791.0 sources: my-source: sourceNamespace: my-source - sourceRevisionDigest: sha256:914ca6ecf0e6a3bc040602755ac3df782cd7bc32fcc35b3f231928407d70b1c1 - sourceBlobDigest: sha256:e19934553ca41e75383a049a2b6e9c4988259e18ba4aa3418517a75968ae5941 + sourceRevisionDigest: sha256:6f89c173cb48a295cd5d22c67511cb149e513408733611c84098f0259d0cab76 + sourceBlobDigest: sha256:1d9fb7a5577b0877a4aa97d63196ce0c7a44d06bc116bd944877655a1c2487ae tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: StackOneRubyClient: source: my-source sourceNamespace: my-source - sourceRevisionDigest: sha256:914ca6ecf0e6a3bc040602755ac3df782cd7bc32fcc35b3f231928407d70b1c1 - sourceBlobDigest: sha256:e19934553ca41e75383a049a2b6e9c4988259e18ba4aa3418517a75968ae5941 + sourceRevisionDigest: sha256:6f89c173cb48a295cd5d22c67511cb149e513408733611c84098f0259d0cab76 + sourceBlobDigest: sha256:1d9fb7a5577b0877a4aa97d63196ce0c7a44d06bc116bd944877655a1c2487ae codeSamplesNamespace: code-samples-ruby-stackonerubyclient - codeSamplesRevisionDigest: sha256:9616d7b9e610db812935c02c47979d00d1757b127ac4640fba85143c69e13b86 + codeSamplesRevisionDigest: sha256:f227804ab2096094e25db839c0f43c1023e33af340b50b864a3b0799b0d7fd94 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 1a05984ff..0e8b35b9b 100644 --- a/README.md +++ b/README.md @@ -124,11 +124,21 @@ require 'stackone_client' Models = ::StackOne::Models s = ::StackOne::StackOne.new -res = s.mcp.mcp_delete(security: Models::Operations::StackoneMcpDeleteSecurity.new( -), mcp_session_id: '', x_account_id: '') +req = Models::Operations::StackoneMcpPostRequest.new( + json_rpc_message_dto: Models::Shared::JsonRpcMessageDto.new( + id: 'init-1', + jsonrpc: '2.0', + method: 'initialize', + params: Models::Shared::Params.new + ), + x_account_id: '' +) +res = s.mcp.mcp_post(request: req, security: Models::Operations::StackoneMcpPostSecurity.new( + +)) -if res.status_code == 200 +unless res.object.nil? # handle response end @@ -470,8 +480,6 @@ end ### [Mcp](docs/sdks/mcp/README.md) -* [mcp_delete](docs/sdks/mcp/README.md#mcp_delete) - Delete MCP session -* [mcp_get](docs/sdks/mcp/README.md#mcp_get) - Open MCP SSE stream * [mcp_post](docs/sdks/mcp/README.md#mcp_post) - Send MCP JSON-RPC message ### [Messaging](docs/sdks/messaging/README.md) diff --git a/RELEASES.md b/RELEASES.md index bbd3cba74..2c99c04d1 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1128,4 +1128,14 @@ Based on: ### Generated - [ruby v0.41.1] . ### Releases -- [Ruby Gems v0.41.1] https://rubygems.org/gems/stackone_client/versions/0.41.1 - . \ No newline at end of file +- [Ruby Gems v0.41.1] https://rubygems.org/gems/stackone_client/versions/0.41.1 - . + +## 2026-08-03 10:14:18 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.791.0 (2.924.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [ruby v0.41.2] . +### Releases +- [Ruby Gems v0.41.2] https://rubygems.org/gems/stackone_client/versions/0.41.2 - . \ No newline at end of file diff --git a/codeSamples.yaml b/codeSamples.yaml index 390463dd8..0a1061ec5 100644 --- a/codeSamples.yaml +++ b/codeSamples.yaml @@ -50,7 +50,7 @@ actions: "x-codeSamples": - "lang": "ruby" "label": "stackone_rpc_action_synced" - "source": "require 'stackone_client'\n\nModels = ::StackOne::Models\ns = ::StackOne::StackOne.new(\n security: Models::Shared::Security.new(\n password: '',\n username: ''\n )\n)\nres = s.actions.rpc_action_synced(actions_rpc_synced_request_dto: Models::Shared::ActionsRpcSyncedRequestDto.new(\n action: 'create_employee',\n body: {\n 'search' => 'John',\n },\n filter: {\n 'status' => 'active',\n },\n headers: {\n 'x-custom-header' => 'value',\n },\n path: {\n 'id' => '123',\n },\n query: {\n 'account_id' => 'abc',\n }\n), page_size: 25.0, skip: 0.0)\n\nunless res.actions_synced_response.nil?\n # handle response\nend" + "source": "require 'stackone_client'\n\nModels = ::StackOne::Models\ns = ::StackOne::StackOne.new(\n security: Models::Shared::Security.new(\n password: '',\n username: ''\n )\n)\nres = s.actions.rpc_action_synced(actions_rpc_synced_request_dto: Models::Shared::ActionsRpcSyncedRequestDto.new(\n action: 'create_employee',\n body: {\n 'search' => 'John',\n },\n filter: {\n 'status' => 'active',\n },\n headers: {\n 'x-custom-header' => 'value',\n },\n path: {\n 'id' => '123',\n },\n query: {\n 'account_id' => 'abc',\n },\n search: 'onboarding safety'\n), page_size: 25.0, skip: 0.0)\n\nunless res.actions_synced_response.nil?\n # handle response\nend" - target: $["paths"]["/actions/search"]["post"] update: "x-codeSamples": @@ -213,18 +213,6 @@ actions: - "lang": "ruby" "label": "stackone_get_provider_advanced_log" "source": "require 'stackone_client'\n\nModels = ::StackOne::Models\ns = ::StackOne::StackOne.new(\n security: Models::Shared::Security.new(\n password: '',\n username: ''\n )\n)\nres = s.logs.get_provider_advanced_log(id: '', request_id: '')\n\nif res.status_code == 200\n # handle response\nend" - - target: $["paths"]["/mcp"]["delete"] - update: - "x-codeSamples": - - "lang": "ruby" - "label": "stackone_mcp_delete" - "source": "require 'stackone_client'\n\nModels = ::StackOne::Models\ns = ::StackOne::StackOne.new\nres = s.mcp.mcp_delete(security: Models::Operations::StackoneMcpDeleteSecurity.new(\n api_key: ''\n), mcp_session_id: '', x_account_id: '')\n\nif res.status_code == 200\n # handle response\nend" - - target: $["paths"]["/mcp"]["get"] - update: - "x-codeSamples": - - "lang": "ruby" - "label": "stackone_mcp_get" - "source": "require 'stackone_client'\n\nModels = ::StackOne::Models\ns = ::StackOne::StackOne.new\nres = s.mcp.mcp_get(security: Models::Operations::StackoneMcpGetSecurity.new(\n api_key: ''\n), mcp_session_id: '', x_account_id: '')\n\nif res.status_code == 200\n # handle response\nend" - target: $["paths"]["/mcp"]["post"] update: "x-codeSamples": diff --git a/docs/models/operations/stackonemcpdeleterequest.md b/docs/models/operations/stackonemcpdeleterequest.md deleted file mode 100644 index 674f3cf4d..000000000 --- a/docs/models/operations/stackonemcpdeleterequest.md +++ /dev/null @@ -1,10 +0,0 @@ -# StackoneMcpDeleteRequest - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `mcp_session_id` | *::String* | :heavy_check_mark: | Session id | -| `x_account_id` | *T.nilable(::String)* | :heavy_minus_sign: | Account secure id for the target provider account (optional if x-account-id query parameter is provided) | -| `x_account_id_query_parameter` | *T.nilable(::Object)* | :heavy_minus_sign: | Account secure id (alternative to x-account-id header) | \ No newline at end of file diff --git a/docs/models/operations/stackonemcpdeleteresponse.md b/docs/models/operations/stackonemcpdeleteresponse.md deleted file mode 100644 index 611210bb2..000000000 --- a/docs/models/operations/stackonemcpdeleteresponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# StackoneMcpDeleteResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | -| `headers` | T::Hash[Symbol, T::Array<*::String*>] | :heavy_check_mark: | N/A | -| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | -| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/operations/stackonemcpdeletesecurity.md b/docs/models/operations/stackonemcpdeletesecurity.md deleted file mode 100644 index 257ecff96..000000000 --- a/docs/models/operations/stackonemcpdeletesecurity.md +++ /dev/null @@ -1,9 +0,0 @@ -# StackoneMcpDeleteSecurity - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `api_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | -| `basic` | [T.nilable(Models::Shared::SchemeBasic)](../../models/shared/schemebasic.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/stackonemcpgetrequest.md b/docs/models/operations/stackonemcpgetrequest.md deleted file mode 100644 index d5dd4407f..000000000 --- a/docs/models/operations/stackonemcpgetrequest.md +++ /dev/null @@ -1,10 +0,0 @@ -# StackoneMcpGetRequest - - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `mcp_session_id` | *::String* | :heavy_check_mark: | Session id | -| `x_account_id` | *T.nilable(::String)* | :heavy_minus_sign: | Account secure id for the target provider account (optional if x-account-id query parameter is provided) | -| `x_account_id_query_parameter` | *T.nilable(::Object)* | :heavy_minus_sign: | Account secure id (alternative to x-account-id header) | \ No newline at end of file diff --git a/docs/models/operations/stackonemcpgetresponse.md b/docs/models/operations/stackonemcpgetresponse.md deleted file mode 100644 index 3376a9ca2..000000000 --- a/docs/models/operations/stackonemcpgetresponse.md +++ /dev/null @@ -1,11 +0,0 @@ -# StackoneMcpGetResponse - - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | -| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | -| `headers` | T::Hash[Symbol, T::Array<*::String*>] | :heavy_check_mark: | N/A | -| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | -| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/models/operations/stackonemcpgetsecurity.md b/docs/models/operations/stackonemcpgetsecurity.md deleted file mode 100644 index 74698609f..000000000 --- a/docs/models/operations/stackonemcpgetsecurity.md +++ /dev/null @@ -1,9 +0,0 @@ -# StackoneMcpGetSecurity - - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `api_key` | *T.nilable(::String)* | :heavy_minus_sign: | N/A | -| `basic` | [T.nilable(Models::Shared::SchemeBasic)](../../models/shared/schemebasic.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/stackonemcppostrequest.md b/docs/models/operations/stackonemcppostrequest.md index a62d76c24..c518949a1 100644 --- a/docs/models/operations/stackonemcppostrequest.md +++ b/docs/models/operations/stackonemcppostrequest.md @@ -7,7 +7,6 @@ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `json_rpc_message_dto` | [Models::Shared::JsonRpcMessageDto](../../models/shared/jsonrpcmessagedto.md) | :heavy_check_mark: | JSON-RPC 2.0 message | | `instructions` | [T.nilable(Models::Operations::Instructions)](../../models/operations/instructions.md) | :heavy_minus_sign: | Server `instructions` (returned in the MCP initialize handshake) that teach the model the path/query/body/headers parameter envelope: "off" (default) omits them, "on" includes envelope guidance matched to the active param-style | -| `mcp_session_id` | *T.nilable(::String)* | :heavy_minus_sign: | Session id; omit for initialize, include for subsequent calls | | `param_style` | [T.nilable(Models::Operations::ParamStyle)](../../models/operations/paramstyle.md) | :heavy_minus_sign: | Parameter schema style: "nested" (default) groups by location, "flat_prefixed" flattens with location prefix, "flat_smart" flattens and only prefixes on name collision | | `tool_mode` | [T.nilable(Models::Operations::ToolMode)](../../models/operations/toolmode.md) | :heavy_minus_sign: | Tool registration mode: "individual" (default) registers each action as a separate tool; "search_execute" registers two tools per linked account for a search-then-execute flow | | `x_account_id` | *T.nilable(::String)* | :heavy_minus_sign: | Account secure id for the target provider account (optional if x-account-id query parameter is provided) | diff --git a/docs/models/operations/stackonemcppostresponse.md b/docs/models/operations/stackonemcppostresponse.md index 91ea893ea..d75c54f9c 100644 --- a/docs/models/operations/stackonemcppostresponse.md +++ b/docs/models/operations/stackonemcppostresponse.md @@ -9,5 +9,4 @@ | `headers` | T::Hash[Symbol, T::Array<*::String*>] | :heavy_check_mark: | N/A | | `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | | `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | -| `object` | [T.nilable(Models::Operations::StackoneMcpPostResponseBody)](../../models/operations/stackonemcppostresponsebody.md) | :heavy_minus_sign: | Processed successfully | -| `res` | *T.nilable(::String)* | :heavy_minus_sign: | Processed successfully | \ No newline at end of file +| `object` | [T.nilable(Models::Operations::StackoneMcpPostResponseBody)](../../models/operations/stackonemcppostresponsebody.md) | :heavy_minus_sign: | Processed successfully | \ No newline at end of file diff --git a/docs/models/shared/actionmetaitem.md b/docs/models/shared/actionmetaitem.md index 91de1314c..6240ae558 100644 --- a/docs/models/shared/actionmetaitem.md +++ b/docs/models/shared/actionmetaitem.md @@ -3,15 +3,16 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -| `action_details` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | The action details for the action | -| `authentication` | T::Array<[Models::Shared::AuthenticationMetaItem](../../models/shared/authenticationmetaitem.md)> | :heavy_minus_sign: | The authentication methods supported by this action | -| `description` | *T.nilable(::String)* | :heavy_minus_sign: | The action description | -| `id` | *T.nilable(::String)* | :heavy_minus_sign: | The action ID | -| `label` | *T.nilable(::String)* | :heavy_minus_sign: | The action label | -| `required_scopes` | T::Array<*::String*> | :heavy_minus_sign: | The required scopes for the action | -| `schema_type` | *T.nilable(::String)* | :heavy_minus_sign: | The schema type for the action | -| `supports_incremental` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether this action supports incremental syncs (has an incremental strategy). | -| `syncable` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether this action can be synced with the datasync v2 sync engine. | -| `tags` | T::Array<*::String*> | :heavy_minus_sign: | The tags associated with this action | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `action_details` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | The action details for the action | +| `authentication` | T::Array<[Models::Shared::AuthenticationMetaItem](../../models/shared/authenticationmetaitem.md)> | :heavy_minus_sign: | The authentication methods supported by this action | +| `description` | *T.nilable(::String)* | :heavy_minus_sign: | The action description | +| `has_required_parameters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether this action requires parameters to be supplied when it is synced. Such actions cannot be linked automatically for every account — each schedule must be created with its parameter values. | +| `id` | *T.nilable(::String)* | :heavy_minus_sign: | The action ID | +| `label` | *T.nilable(::String)* | :heavy_minus_sign: | The action label | +| `required_scopes` | T::Array<*::String*> | :heavy_minus_sign: | The required scopes for the action | +| `schema_type` | *T.nilable(::String)* | :heavy_minus_sign: | The schema type for the action | +| `supports_incremental` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether this action supports incremental syncs (has an incremental strategy). | +| `syncable` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | Whether this action can be synced with the datasync v2 sync engine. | +| `tags` | T::Array<*::String*> | :heavy_minus_sign: | The tags associated with this action | \ No newline at end of file diff --git a/docs/models/shared/actionsrpcsyncedrequestdto.md b/docs/models/shared/actionsrpcsyncedrequestdto.md index bb3c3a097..72277c405 100644 --- a/docs/models/shared/actionsrpcsyncedrequestdto.md +++ b/docs/models/shared/actionsrpcsyncedrequestdto.md @@ -3,11 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `action` | *::String* | :heavy_check_mark: | The action to execute | create_employee | -| `body` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Request body for the action. Must match the body used when the run was written so the params_hash resolves to the same synced run. | {
"search": "John"
} | -| `filter` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Filter parameters to scope the synced action | {
"status": "active"
} | -| `headers` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Headers for the action. Must match the headers used when the run was written so the params_hash resolves to the same synced run. | {
"x-custom-header": "value"
} | -| `path` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Path parameters for the action | {
"id": "123"
} | -| `query` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Query parameters for the action. Must match the query params used when the run was written so the params_hash resolves to the same synced run. | {
"account_id": "abc"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `action` | *::String* | :heavy_check_mark: | The action to execute | create_employee | +| `body` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Request body for the action. Must match the body used when the run was written so the params_hash resolves to the same synced run. | {
"search": "John"
} | +| `filter` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | OpenSearch-style filter (Query DSL) (term / terms / range / wildcard / match / match_phrase / exists / bool) over synced fields. match / match_phrase do word-level search (string fields only, case-insensitive); wildcard matches patterns (case-sensitive). Use field names exactly as returned in the action's "queryable_fields". | {
"match": {
"description": "onboarding"
}
} | +| `headers` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Headers for the action. Must match the headers used when the run was written so the params_hash resolves to the same synced run. | {
"x-custom-header": "value"
} | +| `path` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Path parameters for the action | {
"id": "123"
} | +| `query` | T::Hash[Symbol, *::Object*] | :heavy_minus_sign: | Query parameters for the action. Must match the query params used when the run was written so the params_hash resolves to the same synced run. | {
"account_id": "abc"
} | +| `search` | *T.nilable(::String)* | :heavy_minus_sign: | Free-text search over the record's text fields, ranked by relevance. Supports "quoted phrases", +required / -excluded terms, and prefix* — lenient (never errors). Combine with `filter` to narrow; results are relevance-ranked unless an explicit sort is given. | onboarding safety | \ No newline at end of file diff --git a/docs/sdks/actions/README.md b/docs/sdks/actions/README.md index de0962eaf..b5e4cc3bf 100644 --- a/docs/sdks/actions/README.md +++ b/docs/sdks/actions/README.md @@ -305,7 +305,8 @@ res = s.actions.rpc_action_synced(actions_rpc_synced_request_dto: Models::Shared }, query: { 'account_id' => 'abc', - } + }, + search: 'onboarding safety' ), page_size: 25.0, skip: 0.0) unless res.actions_synced_response.nil? diff --git a/docs/sdks/mcp/README.md b/docs/sdks/mcp/README.md index 1e29bd469..445a8be08 100644 --- a/docs/sdks/mcp/README.md +++ b/docs/sdks/mcp/README.md @@ -6,114 +6,8 @@ Model Context Protocol endpoint. ### Available Operations -* [mcp_delete](#mcp_delete) - Delete MCP session -* [mcp_get](#mcp_get) - Open MCP SSE stream * [mcp_post](#mcp_post) - Send MCP JSON-RPC message -## mcp_delete - -Close an existing MCP session for the provided session id - -### Example Usage - - -```ruby -require 'stackone_client' - -Models = ::StackOne::Models -s = ::StackOne::StackOne.new -res = s.mcp.mcp_delete(security: Models::Operations::StackoneMcpDeleteSecurity.new( - api_key: '' -), mcp_session_id: '', x_account_id: '') - -if res.status_code == 200 - # handle response -end - -``` - -### Parameters - -| Parameter | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `security` | [Models::Operations::StackoneMcpDeleteSecurity](../../models/operations/stackonemcpdeletesecurity.md) | :heavy_check_mark: | The security requirements to use for the request. | -| `mcp_session_id` | *::String* | :heavy_check_mark: | Session id | -| `x_account_id` | *T.nilable(::String)* | :heavy_minus_sign: | Account secure id for the target provider account (optional if x-account-id query parameter is provided) | -| `x_account_id_query_parameter` | *T.nilable(::Object)* | :heavy_minus_sign: | Account secure id (alternative to x-account-id header) | - -### Response - -**[T.nilable(Models::Operations::StackoneMcpDeleteResponse)](../../models/operations/stackonemcpdeleteresponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| Models::Errors::BadRequestResponse | 400 | application/json | -| Models::Errors::UnauthorizedResponse | 401 | application/json | -| Models::Errors::ForbiddenResponse | 403 | application/json | -| Models::Errors::NotFoundResponse | 404 | application/json | -| Models::Errors::RequestTimedOutResponse | 408 | application/json | -| Models::Errors::ConflictResponse | 409 | application/json | -| Models::Errors::UnprocessableEntityResponse | 422 | application/json | -| Models::Errors::TooManyRequestsResponse | 429 | application/json | -| Models::Errors::InternalServerErrorResponse | 500 | application/json | -| Models::Errors::NotImplementedResponse | 501 | application/json | -| Models::Errors::BadGatewayResponse | 502 | application/json | -| Errors::APIError | 4XX, 5XX | \*/\* | - -## mcp_get - -Open a dedicated Server-Sent Events stream for MCP notifications - -### Example Usage - - -```ruby -require 'stackone_client' - -Models = ::StackOne::Models -s = ::StackOne::StackOne.new -res = s.mcp.mcp_get(security: Models::Operations::StackoneMcpGetSecurity.new( - api_key: '' -), mcp_session_id: '', x_account_id: '') - -if res.status_code == 200 - # handle response -end - -``` - -### Parameters - -| Parameter | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `security` | [Models::Operations::StackoneMcpGetSecurity](../../models/operations/stackonemcpgetsecurity.md) | :heavy_check_mark: | The security requirements to use for the request. | -| `mcp_session_id` | *::String* | :heavy_check_mark: | Session id | -| `x_account_id` | *T.nilable(::String)* | :heavy_minus_sign: | Account secure id for the target provider account (optional if x-account-id query parameter is provided) | -| `x_account_id_query_parameter` | *T.nilable(::Object)* | :heavy_minus_sign: | Account secure id (alternative to x-account-id header) | - -### Response - -**[T.nilable(Models::Operations::StackoneMcpGetResponse)](../../models/operations/stackonemcpgetresponse.md)** - -### Errors - -| Error Type | Status Code | Content Type | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| Models::Errors::BadRequestResponse | 400 | application/json | -| Models::Errors::UnauthorizedResponse | 401 | application/json | -| Models::Errors::ForbiddenResponse | 403 | application/json | -| Models::Errors::NotFoundResponse | 404 | application/json | -| Models::Errors::RequestTimedOutResponse | 408 | application/json | -| Models::Errors::ConflictResponse | 409 | application/json | -| Models::Errors::UnprocessableEntityResponse | 422 | application/json | -| Models::Errors::TooManyRequestsResponse | 429 | application/json | -| Models::Errors::InternalServerErrorResponse | 500 | application/json | -| Models::Errors::NotImplementedResponse | 501 | application/json | -| Models::Errors::BadGatewayResponse | 502 | application/json | -| Errors::APIError | 4XX, 5XX | \*/\* | - ## mcp_post Send JSON-RPC request to the MCP server over HTTP streaming transport diff --git a/gen.yaml b/gen.yaml index 0b7fa8000..eafa1eab7 100644 --- a/gen.yaml +++ b/gen.yaml @@ -27,7 +27,7 @@ generation: generateNewTests: false skipResponseBodyAssertions: false ruby: - version: 0.41.1 + version: 0.41.2 additionalDependencies: development: {} runtime: {} diff --git a/lib/stack_one/mcp.rb b/lib/stack_one/mcp.rb index 93fed0710..0a0f70577 100644 --- a/lib/stack_one/mcp.rb +++ b/lib/stack_one/mcp.rb @@ -41,552 +41,8 @@ def get_url(base_url:, url_variables: nil) - sig { params(security: Models::Operations::StackoneMcpDeleteSecurity, mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::StackoneMcpDeleteResponse) } - def mcp_delete(security:, mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil, retries: nil, timeout_ms: nil, http_headers: nil) - # mcp_delete - Delete MCP session - # Close an existing MCP session for the provided session id - request = Models::Operations::StackoneMcpDeleteRequest.new( - mcp_session_id: mcp_session_id, - x_account_id: x_account_id, - x_account_id_query_parameter: x_account_id_query_parameter - ) - url, params = @sdk_configuration.get_server_details - base_url = Utils.template_url(url, params) - url = "#{base_url}/mcp" - headers = Utils.get_headers(request) - headers = T.cast(headers, T::Hash[String, String]) - query_params = Utils.get_query_params(Models::Operations::StackoneMcpDeleteRequest, request, nil) - headers['Accept'] = 'application/json' - headers['user-agent'] = @sdk_configuration.user_agent - retries ||= @sdk_configuration.retry_config - retries ||= Utils::RetryConfig.new( - backoff: Utils::BackoffStrategy.new( - exponent: 1.5, - initial_interval: 500, - max_elapsed_time: 3_600_000, - max_interval: 60_000 - ), - retry_connection_errors: true, - strategy: 'backoff' - ) - retry_options = retries.to_faraday_retry_options(initial_time: Time.now) - retry_options[:retry_statuses] = [429, 408] - - timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil? - timeout ||= @sdk_configuration.timeout - - - connection = @sdk_configuration.client.dup - connection.request :retry, retry_options - - hook_ctx = SDKHooks::HookContext.new( - config: @sdk_configuration, - base_url: base_url, - oauth2_scopes: nil, - operation_id: 'stackone_mcp_delete', - security_source: -> { security } - ) - - error = T.let(nil, T.nilable(StandardError)) - http_response = T.let(nil, T.nilable(Faraday::Response)) - - - begin - http_response = T.must(connection).delete(url) do |req| - req.headers.merge!(headers) - req.options.timeout = timeout unless timeout.nil? - req.params = query_params - Utils.configure_request_security(req, security) - http_headers&.each do |key, value| - req.headers[key.to_s] = value - end - - @sdk_configuration.hooks.before_request( - hook_ctx: SDKHooks::BeforeRequestHookContext.new( - hook_ctx: hook_ctx - ), - request: req - ) - end - rescue StandardError => e - error = e - ensure - if http_response.nil? || Utils.error_status?(http_response.status) - http_response = @sdk_configuration.hooks.after_error( - error: error, - hook_ctx: SDKHooks::AfterErrorHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - else - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - end - - if http_response.nil? - raise error if !error.nil? - raise 'no response' - end - end - - content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream') - if Utils.match_status_code(http_response.status, ['200']) - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - return Models::Operations::StackoneMcpDeleteResponse.new( - status_code: http_response.status, - content_type: content_type, - raw_response: http_response, - headers: {} - ) - elsif Utils.match_status_code(http_response.status, ['400']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['401']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['403']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ForbiddenResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['404']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['408']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RequestTimedOutResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['409']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['422']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnprocessableEntityResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['429']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::TooManyRequestsResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['500']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerErrorResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['501']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotImplementedResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['502']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadGatewayResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['4XX']) - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred' - elsif Utils.match_status_code(http_response.status, ['5XX']) - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred' - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received' - - end - end - - - sig { params(security: Models::Operations::StackoneMcpGetSecurity, mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object), retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::StackoneMcpGetResponse) } - def mcp_get(security:, mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil, retries: nil, timeout_ms: nil, http_headers: nil) - # mcp_get - Open MCP SSE stream - # Open a dedicated Server-Sent Events stream for MCP notifications - request = Models::Operations::StackoneMcpGetRequest.new( - mcp_session_id: mcp_session_id, - x_account_id: x_account_id, - x_account_id_query_parameter: x_account_id_query_parameter - ) - url, params = @sdk_configuration.get_server_details - base_url = Utils.template_url(url, params) - url = "#{base_url}/mcp" - headers = Utils.get_headers(request) - headers = T.cast(headers, T::Hash[String, String]) - query_params = Utils.get_query_params(Models::Operations::StackoneMcpGetRequest, request, nil) - headers['Accept'] = 'application/json' - headers['user-agent'] = @sdk_configuration.user_agent - retries ||= @sdk_configuration.retry_config - retries ||= Utils::RetryConfig.new( - backoff: Utils::BackoffStrategy.new( - exponent: 1.5, - initial_interval: 500, - max_elapsed_time: 3_600_000, - max_interval: 60_000 - ), - retry_connection_errors: true, - strategy: 'backoff' - ) - retry_options = retries.to_faraday_retry_options(initial_time: Time.now) - retry_options[:retry_statuses] = [429, 408] - - timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil? - timeout ||= @sdk_configuration.timeout - - - connection = @sdk_configuration.client.dup - connection.request :retry, retry_options - - hook_ctx = SDKHooks::HookContext.new( - config: @sdk_configuration, - base_url: base_url, - oauth2_scopes: nil, - operation_id: 'stackone_mcp_get', - security_source: -> { security } - ) - - error = T.let(nil, T.nilable(StandardError)) - http_response = T.let(nil, T.nilable(Faraday::Response)) - - - begin - http_response = T.must(connection).get(url) do |req| - req.headers.merge!(headers) - req.options.timeout = timeout unless timeout.nil? - req.params = query_params - Utils.configure_request_security(req, security) - http_headers&.each do |key, value| - req.headers[key.to_s] = value - end - - @sdk_configuration.hooks.before_request( - hook_ctx: SDKHooks::BeforeRequestHookContext.new( - hook_ctx: hook_ctx - ), - request: req - ) - end - rescue StandardError => e - error = e - ensure - if http_response.nil? || Utils.error_status?(http_response.status) - http_response = @sdk_configuration.hooks.after_error( - error: error, - hook_ctx: SDKHooks::AfterErrorHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - else - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - end - - if http_response.nil? - raise error if !error.nil? - raise 'no response' - end - end - - content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream') - if Utils.match_status_code(http_response.status, ['200']) - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - return Models::Operations::StackoneMcpGetResponse.new( - status_code: http_response.status, - content_type: content_type, - raw_response: http_response, - headers: {} - ) - elsif Utils.match_status_code(http_response.status, ['400']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['401']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnauthorizedResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['403']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ForbiddenResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['404']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['408']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RequestTimedOutResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['409']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ConflictResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['422']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::UnprocessableEntityResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['429']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::TooManyRequestsResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['500']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerErrorResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['501']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotImplementedResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['502']) - if Utils.match_content_type(content_type, 'application/json') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - response_data = http_response.env.response_body - obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadGatewayResponse) - raise obj - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' - end - elsif Utils.match_status_code(http_response.status, ['4XX']) - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred' - elsif Utils.match_status_code(http_response.status, ['5XX']) - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred' - else - raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received' - - end - end - - - sig { params(security: Models::Operations::StackoneMcpPostSecurity, request: Models::Operations::StackoneMcpPostRequest, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer), accept_header_override: T.nilable(String), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::StackoneMcpPostResponse) } - def mcp_post(security:, request:, retries: nil, timeout_ms: nil, accept_header_override: nil, http_headers: nil) + sig { params(security: Models::Operations::StackoneMcpPostSecurity, request: Models::Operations::StackoneMcpPostRequest, retries: T.nilable(Utils::RetryConfig), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::StackoneMcpPostResponse) } + def mcp_post(security:, request:, retries: nil, timeout_ms: nil, http_headers: nil) # mcp_post - Send MCP JSON-RPC message # Send JSON-RPC request to the MCP server over HTTP streaming transport url, params = @sdk_configuration.get_server_details @@ -606,7 +62,7 @@ def mcp_post(security:, request:, retries: nil, timeout_ms: nil, accept_header_o body = data end query_params = Utils.get_query_params(Models::Operations::StackoneMcpPostRequest, request, nil) - headers['Accept'] = accept_header_override || 'application/json;q=1, text/event-stream;q=0' + headers['Accept'] = 'application/json' headers['user-agent'] = @sdk_configuration.user_agent retries ||= @sdk_configuration.retry_config retries ||= Utils::RetryConfig.new( @@ -705,22 +161,6 @@ def mcp_post(security:, request:, retries: nil, timeout_ms: nil, accept_header_o ) return response - elsif Utils.match_content_type(content_type, 'text/event-stream') - http_response = @sdk_configuration.hooks.after_success( - hook_ctx: SDKHooks::AfterSuccessHookContext.new( - hook_ctx: hook_ctx - ), - response: http_response - ) - obj = http_response.env.body.force_encoding('UTF-8') - - return Models::Operations::StackoneMcpPostResponse.new( - status_code: http_response.status, - content_type: content_type, - raw_response: http_response, - headers: {}, - res: T.unsafe(obj) - ) else raise ::StackOne::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' end diff --git a/lib/stack_one/models/operations.rb b/lib/stack_one/models/operations.rb index b546697eb..5b5bab5ca 100644 --- a/lib/stack_one/models/operations.rb +++ b/lib/stack_one/models/operations.rb @@ -722,12 +722,6 @@ module Operations autoload :StackoneListUnifiedLogsResponse, 'stack_one/models/operations/stackone_list_unified_logs_response.rb' autoload :StackoneListUnifiedProviderLogsRequest, 'stack_one/models/operations/stackone_list_unified_provider_logs_request.rb' autoload :StackoneListUnifiedProviderLogsResponse, 'stack_one/models/operations/stackone_list_unified_provider_logs_response.rb' - autoload :StackoneMcpDeleteSecurity, 'stack_one/models/operations/stackone_mcp_delete_security.rb' - autoload :StackoneMcpDeleteRequest, 'stack_one/models/operations/stackone_mcp_delete_request.rb' - autoload :StackoneMcpDeleteResponse, 'stack_one/models/operations/stackone_mcp_delete_response.rb' - autoload :StackoneMcpGetSecurity, 'stack_one/models/operations/stackone_mcp_get_security.rb' - autoload :StackoneMcpGetRequest, 'stack_one/models/operations/stackone_mcp_get_request.rb' - autoload :StackoneMcpGetResponse, 'stack_one/models/operations/stackone_mcp_get_response.rb' autoload :StackoneMcpPostSecurity, 'stack_one/models/operations/stackone_mcp_post_security.rb' autoload :StackoneMcpPostRequest, 'stack_one/models/operations/stackone_mcp_post_request.rb' autoload :StackoneMcpPostResponse, 'stack_one/models/operations/stackone_mcp_post_response.rb' diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_request.rb b/lib/stack_one/models/operations/stackone_mcp_delete_request.rb deleted file mode 100644 index e977d38d5..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_request.rb +++ /dev/null @@ -1,40 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpDeleteRequest - extend T::Sig - include Crystalline::MetadataFields - - # Session id - field :mcp_session_id, ::String, { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } } - # Account secure id for the target provider account (optional if x-account-id query parameter is provided) - field :x_account_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } } - # Account secure id (alternative to x-account-id header) - field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } } - - sig { params(mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void } - def initialize(mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil) - @mcp_session_id = mcp_session_id - @x_account_id = x_account_id - @x_account_id_query_parameter = x_account_id_query_parameter - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @mcp_session_id == other.mcp_session_id - return false unless @x_account_id == other.x_account_id - return false unless @x_account_id_query_parameter == other.x_account_id_query_parameter - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_request.rbi b/lib/stack_one/models/operations/stackone_mcp_delete_request.rbi deleted file mode 100644 index c93bd1b9f..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_request.rbi +++ /dev/null @@ -1,17 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpDeleteRequest - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpDeleteRequest - def mcp_session_id(); end - def mcp_session_id=(str_); end - def x_account_id(); end - def x_account_id=(str_); end - def x_account_id_query_parameter(); end - def x_account_id_query_parameter=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_response.rb b/lib/stack_one/models/operations/stackone_mcp_delete_response.rb deleted file mode 100644 index 9eaad2a01..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_response.rb +++ /dev/null @@ -1,44 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpDeleteResponse - extend T::Sig - include Crystalline::MetadataFields - - # HTTP response content type for this operation - field :content_type, ::String - - field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String)) - # HTTP response status code for this operation - field :status_code, ::Integer - # Raw HTTP response; suitable for custom response parsing - field :raw_response, ::Faraday::Response - - sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response).void } - def initialize(content_type:, headers:, status_code:, raw_response:) - @content_type = content_type - @headers = headers - @status_code = status_code - @raw_response = raw_response - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @content_type == other.content_type - return false unless @headers == other.headers - return false unless @status_code == other.status_code - return false unless @raw_response == other.raw_response - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_response.rbi b/lib/stack_one/models/operations/stackone_mcp_delete_response.rbi deleted file mode 100644 index f5c7cdfd3..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_response.rbi +++ /dev/null @@ -1,19 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpDeleteResponse - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpDeleteResponse - def content_type(); end - def content_type=(str_); end - def headers(); end - def headers=(str_); end - def status_code(); end - def status_code=(str_); end - def raw_response(); end - def raw_response=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_security.rb b/lib/stack_one/models/operations/stackone_mcp_delete_security.rb deleted file mode 100644 index f93b099e1..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_security.rb +++ /dev/null @@ -1,36 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpDeleteSecurity - extend T::Sig - include Crystalline::MetadataFields - - - field :api_key, Crystalline::Nilable.new(::String), { 'security': { 'scheme': true, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' } } - - field :basic, Crystalline::Nilable.new(Models::Shared::SchemeBasic), { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'basic' } } - - sig { params(api_key: T.nilable(::String), basic: T.nilable(Models::Shared::SchemeBasic)).void } - def initialize(api_key: nil, basic: nil) - @api_key = api_key - @basic = basic - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @api_key == other.api_key - return false unless @basic == other.basic - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_delete_security.rbi b/lib/stack_one/models/operations/stackone_mcp_delete_security.rbi deleted file mode 100644 index d3f20e270..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_delete_security.rbi +++ /dev/null @@ -1,15 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpDeleteSecurity - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpDeleteSecurity - def api_key(); end - def api_key=(str_); end - def basic(); end - def basic=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_request.rb b/lib/stack_one/models/operations/stackone_mcp_get_request.rb deleted file mode 100644 index 6d730c8d7..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_request.rb +++ /dev/null @@ -1,40 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpGetRequest - extend T::Sig - include Crystalline::MetadataFields - - # Session id - field :mcp_session_id, ::String, { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } } - # Account secure id for the target provider account (optional if x-account-id query parameter is provided) - field :x_account_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'x-account-id', 'style': 'simple', 'explode': false } } - # Account secure id (alternative to x-account-id header) - field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } } - - sig { params(mcp_session_id: ::String, x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void } - def initialize(mcp_session_id:, x_account_id: nil, x_account_id_query_parameter: nil) - @mcp_session_id = mcp_session_id - @x_account_id = x_account_id - @x_account_id_query_parameter = x_account_id_query_parameter - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @mcp_session_id == other.mcp_session_id - return false unless @x_account_id == other.x_account_id - return false unless @x_account_id_query_parameter == other.x_account_id_query_parameter - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_request.rbi b/lib/stack_one/models/operations/stackone_mcp_get_request.rbi deleted file mode 100644 index c922153c2..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_request.rbi +++ /dev/null @@ -1,17 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpGetRequest - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpGetRequest - def mcp_session_id(); end - def mcp_session_id=(str_); end - def x_account_id(); end - def x_account_id=(str_); end - def x_account_id_query_parameter(); end - def x_account_id_query_parameter=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_response.rb b/lib/stack_one/models/operations/stackone_mcp_get_response.rb deleted file mode 100644 index 44e3a71f6..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_response.rb +++ /dev/null @@ -1,44 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpGetResponse - extend T::Sig - include Crystalline::MetadataFields - - # HTTP response content type for this operation - field :content_type, ::String - - field :headers, Crystalline::Hash.new(Symbol, Crystalline::Array.new(::String)) - # HTTP response status code for this operation - field :status_code, ::Integer - # Raw HTTP response; suitable for custom response parsing - field :raw_response, ::Faraday::Response - - sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response).void } - def initialize(content_type:, headers:, status_code:, raw_response:) - @content_type = content_type - @headers = headers - @status_code = status_code - @raw_response = raw_response - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @content_type == other.content_type - return false unless @headers == other.headers - return false unless @status_code == other.status_code - return false unless @raw_response == other.raw_response - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_response.rbi b/lib/stack_one/models/operations/stackone_mcp_get_response.rbi deleted file mode 100644 index e35cce264..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_response.rbi +++ /dev/null @@ -1,19 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpGetResponse - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpGetResponse - def content_type(); end - def content_type=(str_); end - def headers(); end - def headers=(str_); end - def status_code(); end - def status_code=(str_); end - def raw_response(); end - def raw_response=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_security.rb b/lib/stack_one/models/operations/stackone_mcp_get_security.rb deleted file mode 100644 index 449fb909d..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_security.rb +++ /dev/null @@ -1,36 +0,0 @@ -# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -# typed: true -# frozen_string_literal: true - - -module StackOne - module Models - module Operations - - class StackoneMcpGetSecurity - extend T::Sig - include Crystalline::MetadataFields - - - field :api_key, Crystalline::Nilable.new(::String), { 'security': { 'scheme': true, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' } } - - field :basic, Crystalline::Nilable.new(Models::Shared::SchemeBasic), { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'basic' } } - - sig { params(api_key: T.nilable(::String), basic: T.nilable(Models::Shared::SchemeBasic)).void } - def initialize(api_key: nil, basic: nil) - @api_key = api_key - @basic = basic - end - - sig { params(other: T.untyped).returns(T::Boolean) } - def ==(other) - return false unless other.is_a? self.class - return false unless @api_key == other.api_key - return false unless @basic == other.basic - true - end - end - end - end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_get_security.rbi b/lib/stack_one/models/operations/stackone_mcp_get_security.rbi deleted file mode 100644 index 15033f912..000000000 --- a/lib/stack_one/models/operations/stackone_mcp_get_security.rbi +++ /dev/null @@ -1,15 +0,0 @@ -# typed: true -# frozen_string_literal: true - - -class StackOne::Models::Operations::StackoneMcpGetSecurity - extend ::Crystalline::MetadataFields::ClassMethods -end - - -class StackOne::Models::Operations::StackoneMcpGetSecurity - def api_key(); end - def api_key=(str_); end - def basic(); end - def basic=(str_); end -end diff --git a/lib/stack_one/models/operations/stackone_mcp_post_request.rb b/lib/stack_one/models/operations/stackone_mcp_post_request.rb index 063f993a1..46016682d 100644 --- a/lib/stack_one/models/operations/stackone_mcp_post_request.rb +++ b/lib/stack_one/models/operations/stackone_mcp_post_request.rb @@ -16,8 +16,6 @@ class StackoneMcpPostRequest field :json_rpc_message_dto, Models::Shared::JsonRpcMessageDto, { 'request': { 'media_type': 'application/json' } } # Server `instructions` (returned in the MCP initialize handshake) that teach the model the path/query/body/headers parameter envelope: "off" (default) omits them, "on" includes envelope guidance matched to the active param-style field :instructions, Crystalline::Nilable.new(Models::Operations::Instructions), { 'query_param': { 'field_name': 'instructions', 'style': 'form', 'explode': true } } - # Session id; omit for initialize, include for subsequent calls - field :mcp_session_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'mcp-session-id', 'style': 'simple', 'explode': false } } # Parameter schema style: "nested" (default) groups by location, "flat_prefixed" flattens with location prefix, "flat_smart" flattens and only prefixes on name collision field :param_style, Crystalline::Nilable.new(Models::Operations::ParamStyle), { 'query_param': { 'field_name': 'param-style', 'style': 'form', 'explode': true } } # Tool registration mode: "individual" (default) registers each action as a separate tool; "search_execute" registers two tools per linked account for a search-then-execute flow @@ -27,11 +25,10 @@ class StackoneMcpPostRequest # Account secure id (alternative to x-account-id header) field :x_account_id_query_parameter, Crystalline::Nilable.new(::Object), { 'query_param': { 'field_name': 'x-account-id', 'style': 'form', 'explode': true } } - sig { params(json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, instructions: T.nilable(Models::Operations::Instructions), mcp_session_id: T.nilable(::String), param_style: T.nilable(Models::Operations::ParamStyle), tool_mode: T.nilable(Models::Operations::ToolMode), x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void } - def initialize(json_rpc_message_dto:, instructions: nil, mcp_session_id: nil, param_style: nil, tool_mode: nil, x_account_id: nil, x_account_id_query_parameter: nil) + sig { params(json_rpc_message_dto: Models::Shared::JsonRpcMessageDto, instructions: T.nilable(Models::Operations::Instructions), param_style: T.nilable(Models::Operations::ParamStyle), tool_mode: T.nilable(Models::Operations::ToolMode), x_account_id: T.nilable(::String), x_account_id_query_parameter: T.nilable(::Object)).void } + def initialize(json_rpc_message_dto:, instructions: nil, param_style: nil, tool_mode: nil, x_account_id: nil, x_account_id_query_parameter: nil) @json_rpc_message_dto = json_rpc_message_dto @instructions = instructions - @mcp_session_id = mcp_session_id @param_style = param_style @tool_mode = tool_mode @x_account_id = x_account_id @@ -43,7 +40,6 @@ def ==(other) return false unless other.is_a? self.class return false unless @json_rpc_message_dto == other.json_rpc_message_dto return false unless @instructions == other.instructions - return false unless @mcp_session_id == other.mcp_session_id return false unless @param_style == other.param_style return false unless @tool_mode == other.tool_mode return false unless @x_account_id == other.x_account_id diff --git a/lib/stack_one/models/operations/stackone_mcp_post_request.rbi b/lib/stack_one/models/operations/stackone_mcp_post_request.rbi index cf026ef3e..c923ce511 100644 --- a/lib/stack_one/models/operations/stackone_mcp_post_request.rbi +++ b/lib/stack_one/models/operations/stackone_mcp_post_request.rbi @@ -12,8 +12,6 @@ class StackOne::Models::Operations::StackoneMcpPostRequest def json_rpc_message_dto=(str_); end def instructions(); end def instructions=(str_); end - def mcp_session_id(); end - def mcp_session_id=(str_); end def param_style(); end def param_style=(str_); end def tool_mode(); end diff --git a/lib/stack_one/models/operations/stackone_mcp_post_response.rb b/lib/stack_one/models/operations/stackone_mcp_post_response.rb index b87617c92..1844e5e33 100644 --- a/lib/stack_one/models/operations/stackone_mcp_post_response.rb +++ b/lib/stack_one/models/operations/stackone_mcp_post_response.rb @@ -22,17 +22,14 @@ class StackoneMcpPostResponse field :raw_response, ::Faraday::Response # Processed successfully field :object, Crystalline::Nilable.new(Models::Operations::StackoneMcpPostResponseBody) - # Processed successfully - field :res, Crystalline::Nilable.new(::String) - sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response, object: T.nilable(Models::Operations::StackoneMcpPostResponseBody), res: T.nilable(::String)).void } - def initialize(content_type:, headers:, status_code:, raw_response:, object: nil, res: nil) + sig { params(content_type: ::String, headers: T::Hash[Symbol, T::Array[::String]], status_code: ::Integer, raw_response: ::Faraday::Response, object: T.nilable(Models::Operations::StackoneMcpPostResponseBody)).void } + def initialize(content_type:, headers:, status_code:, raw_response:, object: nil) @content_type = content_type @headers = headers @status_code = status_code @raw_response = raw_response @object = object - @res = res end sig { params(other: T.untyped).returns(T::Boolean) } @@ -43,7 +40,6 @@ def ==(other) return false unless @status_code == other.status_code return false unless @raw_response == other.raw_response return false unless @object == other.object - return false unless @res == other.res true end end diff --git a/lib/stack_one/models/operations/stackone_mcp_post_response.rbi b/lib/stack_one/models/operations/stackone_mcp_post_response.rbi index 70619df65..0cc245fb6 100644 --- a/lib/stack_one/models/operations/stackone_mcp_post_response.rbi +++ b/lib/stack_one/models/operations/stackone_mcp_post_response.rbi @@ -18,6 +18,4 @@ class StackOne::Models::Operations::StackoneMcpPostResponse def raw_response=(str_); end def object(); end def object=(str_); end - def res(); end - def res=(str_); end end diff --git a/lib/stack_one/models/shared/actionmetaitem.rb b/lib/stack_one/models/shared/actionmetaitem.rb index d86082b79..07d1216a3 100644 --- a/lib/stack_one/models/shared/actionmetaitem.rb +++ b/lib/stack_one/models/shared/actionmetaitem.rb @@ -18,6 +18,8 @@ class ActionMetaItem field :authentication, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::AuthenticationMetaItem)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('authentication') } } # The action description field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('description') } } + # Whether this action requires parameters to be supplied when it is synced. Such actions cannot be linked automatically for every account — each schedule must be created with its parameter values. + field :has_required_parameters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('has_required_parameters') } } # The action ID field :id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('id') } } # The action label @@ -33,11 +35,12 @@ class ActionMetaItem # The tags associated with this action field :tags, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('tags') } } - sig { params(action_details: T.nilable(T::Hash[Symbol, ::Object]), authentication: T.nilable(T::Array[Models::Shared::AuthenticationMetaItem]), description: T.nilable(::String), id: T.nilable(::String), label: T.nilable(::String), required_scopes: T.nilable(T::Array[::String]), schema_type: T.nilable(::String), supports_incremental: T.nilable(T::Boolean), syncable: T.nilable(T::Boolean), tags: T.nilable(T::Array[::String])).void } - def initialize(action_details: nil, authentication: nil, description: nil, id: nil, label: nil, required_scopes: nil, schema_type: nil, supports_incremental: nil, syncable: nil, tags: nil) + sig { params(action_details: T.nilable(T::Hash[Symbol, ::Object]), authentication: T.nilable(T::Array[Models::Shared::AuthenticationMetaItem]), description: T.nilable(::String), has_required_parameters: T.nilable(T::Boolean), id: T.nilable(::String), label: T.nilable(::String), required_scopes: T.nilable(T::Array[::String]), schema_type: T.nilable(::String), supports_incremental: T.nilable(T::Boolean), syncable: T.nilable(T::Boolean), tags: T.nilable(T::Array[::String])).void } + def initialize(action_details: nil, authentication: nil, description: nil, has_required_parameters: nil, id: nil, label: nil, required_scopes: nil, schema_type: nil, supports_incremental: nil, syncable: nil, tags: nil) @action_details = action_details @authentication = authentication @description = description + @has_required_parameters = has_required_parameters @id = id @label = label @required_scopes = required_scopes @@ -53,6 +56,7 @@ def ==(other) return false unless @action_details == other.action_details return false unless @authentication == other.authentication return false unless @description == other.description + return false unless @has_required_parameters == other.has_required_parameters return false unless @id == other.id return false unless @label == other.label return false unless @required_scopes == other.required_scopes diff --git a/lib/stack_one/models/shared/actionmetaitem.rbi b/lib/stack_one/models/shared/actionmetaitem.rbi index e3f8ae77c..f7d48b26c 100644 --- a/lib/stack_one/models/shared/actionmetaitem.rbi +++ b/lib/stack_one/models/shared/actionmetaitem.rbi @@ -14,6 +14,8 @@ class StackOne::Models::Shared::ActionMetaItem def authentication=(str_); end def description(); end def description=(str_); end + def has_required_parameters(); end + def has_required_parameters=(str_); end def id(); end def id=(str_); end def label(); end diff --git a/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rb b/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rb index d7ea43744..c15883d96 100644 --- a/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rb +++ b/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rb @@ -16,7 +16,7 @@ class ActionsRpcSyncedRequestDto field :action, ::String, { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('action'), required: true } } # Request body for the action. Must match the body used when the run was written so the params_hash resolves to the same synced run. field :body, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('body') } } - # Filter parameters to scope the synced action + # OpenSearch-style filter (Query DSL) (term / terms / range / wildcard / match / match_phrase / exists / bool) over synced fields. match / match_phrase do word-level search (string fields only, case-insensitive); wildcard matches patterns (case-sensitive). Use field names exactly as returned in the action's "queryable_fields". field :filter, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('filter') } } # Headers for the action. Must match the headers used when the run was written so the params_hash resolves to the same synced run. field :headers, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('headers') } } @@ -24,15 +24,18 @@ class ActionsRpcSyncedRequestDto field :path, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('path') } } # Query parameters for the action. Must match the query params used when the run was written so the params_hash resolves to the same synced run. field :query, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('query') } } + # Free-text search over the record's text fields, ranked by relevance. Supports "quoted phrases", +required / -excluded terms, and prefix* — lenient (never errors). Combine with `filter` to narrow; results are relevance-ranked unless an explicit sort is given. + field :search, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::StackOne::Utils.field_name('search') } } - sig { params(action: ::String, body: T.nilable(T::Hash[Symbol, ::Object]), filter: T.nilable(T::Hash[Symbol, ::Object]), headers: T.nilable(T::Hash[Symbol, ::Object]), path: T.nilable(T::Hash[Symbol, ::Object]), query: T.nilable(T::Hash[Symbol, ::Object])).void } - def initialize(action:, body: nil, filter: nil, headers: nil, path: nil, query: nil) + sig { params(action: ::String, body: T.nilable(T::Hash[Symbol, ::Object]), filter: T.nilable(T::Hash[Symbol, ::Object]), headers: T.nilable(T::Hash[Symbol, ::Object]), path: T.nilable(T::Hash[Symbol, ::Object]), query: T.nilable(T::Hash[Symbol, ::Object]), search: T.nilable(::String)).void } + def initialize(action:, body: nil, filter: nil, headers: nil, path: nil, query: nil, search: nil) @action = action @body = body @filter = filter @headers = headers @path = path @query = query + @search = search end sig { params(other: T.untyped).returns(T::Boolean) } @@ -44,6 +47,7 @@ def ==(other) return false unless @headers == other.headers return false unless @path == other.path return false unless @query == other.query + return false unless @search == other.search true end end diff --git a/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rbi b/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rbi index 684c4c5e9..6b28c993d 100644 --- a/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rbi +++ b/lib/stack_one/models/shared/actionsrpcsyncedrequestdto.rbi @@ -20,4 +20,6 @@ class StackOne::Models::Shared::ActionsRpcSyncedRequestDto def path=(str_); end def query(); end def query=(str_); end + def search(); end + def search=(str_); end end diff --git a/lib/stack_one/sdkconfiguration.rb b/lib/stack_one/sdkconfiguration.rb index 7d1db86bc..6a05056d2 100644 --- a/lib/stack_one/sdkconfiguration.rb +++ b/lib/stack_one/sdkconfiguration.rb @@ -88,9 +88,9 @@ def initialize(client, hooks, retry_config, timeout_ms, security, security_sourc end @language = 'ruby' @openapi_doc_version = '1.0.0' - @sdk_version = '0.41.1' - @gen_version = '2.918.4' - @user_agent = 'speakeasy-sdk/ruby 0.41.1 2.918.4 1.0.0 stackone_client' + @sdk_version = '0.41.2' + @gen_version = '2.924.0' + @user_agent = 'speakeasy-sdk/ruby 0.41.2 2.924.0 1.0.0 stackone_client' end sig { returns([String, T::Hash[Symbol, String]]) } diff --git a/stackone_client.gemspec b/stackone_client.gemspec index bb62d2f39..424919d66 100644 --- a/stackone_client.gemspec +++ b/stackone_client.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) Gem::Specification.new do |s| s.name = 'stackone_client' - s.version = '0.41.1' + s.version = '0.41.2' s.platform = Gem::Platform::RUBY s.licenses = ['Apache-2.0'] s.summary = ''