/* Ċ Ġ* ĠCopyright ĠAmazon . com , ĠInc . Ġor Ġits Ġaffiliates . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 . Ċ Ġ*/ Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġsoftware . amazon . smithy . utils . Code Writer Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠGenerate Ġa Ġbasic Ġdocs Ġlanding Ġpage Ġinto Ġ[ output Dir ] Ċ Ġ* Ċ Ġ* ĠThe Ġgenerated Ġdocs Ġwill Ġinclude Ġlinks Ġto Ġcr ates . io , Ġdocs . rs Ġand ĠGitHub Ġexamples Ġfor Ġall Ġgenerated Ġservices . ĠThe Ġgenerated Ġdocs Ġwill Ċ Ġ* Ġbe Ġwritten Ġto Ġ` docs . md ` Ġin Ġthe Ġprovided Ġ[ output Dir ]. Ċ Ġ*/ Ċ fun ĠProject . docs Landing Page ( aws Services : ĠList < Aws Service >, Ġoutput Dir : ĠFile ) Ġ{ ĊĠĠĠ Ġval Ġproject Ġ= Ġthis ĊĠĠĠ Ġval Ġwriter Ġ= ĠCode Writer () ĊĠĠĠ Ġwith ( writer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite ("# ĠAWS ĠSDK Ġfor ĠRust ") ĊĠĠĠĠĠĠĠ Ġwrite ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" The ĠAWS ĠSDK Ġfor ĠRust Ġcontains Ġone Ġcrate Ġfor Ġeach ĠAWS Ġservice , Ġas Ġwell Ġas Ġ${ docs Rs (" aws - config ")}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| a Ġcrate Ġimplementing Ġconfiguration Ġloading Ġsuch Ġas Ġcredential Ġproviders . """. trim Margin () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġwriter . write (" ## ĠAWS ĠServices ") ĊĠĠĠĠĠĠĠ Ġ/* Ġgenerate Ġa Ġbasic Ġmarkdown Ġtable Ġ*/ ĊĠĠĠĠĠĠĠ Ġwriter . write ("| ĠService Ġ| Ġ[ docs . rs ]( https :// docs . rs ) Ġ| Ġ[ crates . io ]( https :// crates . io ) Ġ| Ġ[ Usage ĠExamples ]( https :// github . com / aw sl abs / aws - sdk - rust / tree / main / examples /) Ġ| ") ĊĠĠĠĠĠĠĠ Ġwriter . write ("| Ġ------- Ġ| Ġ------- Ġ| Ġ--------- Ġ| Ġ------ Ġ| ") ĊĠĠĠĠĠĠĠ Ġaws Services . sorted By Ġ{ Ġit . human Name Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwriter . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"| Ġ${ it . human Name } Ġ| Ġ${ docs Rs ( it )} Ġ| Ġ${ crates Io ( it )} Ġ| Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexamples ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoutput Dir . resolve (" docs . md "). write Text ( writer . toString ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠGenerate Ġa Ġlink Ġto Ġthe Ġexamples Ġfor Ġa Ġgiven Ġservice Ċ Ġ*/ Ċ private Ġfun Ġexamples ( service : ĠAws Service , Ġproject : ĠProject ) Ġ= Ġif Ġ( with ( service ) Ġ{ Ġproject . examples () Ġ}) Ġ{ ĊĠĠĠ Ġ"[ Link ]( https :// github . com / aw sl abs / aws - sdk - rust / tree / main / examples /${ service . module })" Ċ } Ġelse Ġ{ ĊĠĠĠ Ġ" None Ġyet !" Ċ } Ċ Ċ /** Ċ Ġ* ĠGenerate Ġa Ġlink Ġto Ġthe Ġdocs Ċ Ġ*/ Ċ private Ġfun Ġdocs Rs ( service : ĠAws Service ) Ġ= Ġdocs Rs ( service . crate ()) Ċ private Ġfun Ġdocs Rs ( crate : ĠString ) Ġ= Ġ" [$ crate ]( https :// docs . rs /$ crate )" Ċ private Ġfun Ġcr ates Io ( service : ĠAws Service ) Ġ= Ġ"[ ${ service . crate ()} ]( https :// crates . io / crates /${ service . crate () })" Ċ